云计算初创企业的技术栈
在Sliplane.io,我们整合了一套可以完成工作的技术堆栈——快速、可靠,最重要的是易于维护和操作。
以下是我们正在进行的工作的简要概述,从前端到后端以及其间的所有内容。
前端
在前端方面,我们稍微打破了当前 Web 开发潮流,选择了Nuxt(当然也包括Typescript和Tailwind)作为我们的首选框架。这主要是因为Lukas(联合创始人)是 Nuxt.js 的长期粉丝和支持者!当然,前端完全托管在Sliplane.io上进行内部测试,并使用 Cloudflare 作为 CDN,因为脚本小子喜欢在我们这里测试他们的 DDOS 脚本 :)。
可观察性
为了密切关注事件进展,我们使用Axiom记录日志,并使用Grafana制作仪表盘和警报。我们将大多数服务的日志直接传输到 Axiom,并在其中设置了一些预定义的过滤器,帮助我们了解事件进展。Grafana 提供了一系列自定义仪表盘,帮助我们对问题进行分类,更重要的是,当某些指标出现问题时,它会发出警报。没有 Grafana,Sliplane.io就不可能存在!
数据持久性
我(Jonas)并非数据管理和数据库操作的狂热爱好者,所以我们尽量保持简单。我们的主要数据库是Postgres,并附带用于分析的Timescale扩展。到目前为止,Postgres 和Timescale 的表现绝对令人惊叹。我们的扩展规模远远超出了我的预期,而且基本上无需进行任何优化,尽管我们整个包含数亿行数据的分析堆栈都存储在 Postgres 中!对了,Postgres 也托管在 Hetzner 上。
Redis处理缓存以保持快速处理,并且我们将诸如备份(当然是静态加密的)之类的 blob 存储在Backblaze中以实现廉价、可靠的对象存储。
有趣的是:在 Backblaze,我们为 S3 事务(也就是 API 请求)支付的费用比存储费用更高。这里面可能存在一些优化潜力 🫠
后端
我写Go 语言已经超过 6 年了,所以选择Go作为我们的主要后端语言是理所当然的,尤其是考虑到它与通用基础设施领域的出色集成。大多数基础设施代码都是 Go 语言,这很有帮助。我们使用Go-Gin作为框架,但说实话,我们也可以使用原生的 http 库。我们还有一小部分C语言代码用于运行一些eBPF 的小东西。没错,我们可以用 Rust 来写,但用 eBPF 写代码的好处微乎其微,而且C 语言是我小时候学的第一门语言 :)
自动化
我们使用Terraform管理基础设施,并大量依赖GitHub Actions进行 CI/CD。非常简单,但很有效!当然,还有很多 Bash 脚本。
云提供商
我们的大部分服务都在Hetzner 上运行——云、裸机,甚至 DNS。它稳定可靠,价格实惠,而且我们与他们关系良好。对于开发工作,我们在v6node上有一些可以尝试的东西。
虚拟化
对于虚拟化,我们使用Firecracker。它轻量级、安全,并且允许我们启动微型虚拟机,而不会产生高昂的开销。它玩起来非常有趣,所以如果你对这类东西感兴趣,就试试吧!
实用程序
当然,我们还使用了很多其他工具,有些很棒,有些则不然。其中两个值得注意的工具是用于客户支持的Crisp和用于发送电子邮件的 AWS SES(我们发送了相当多的交易邮件!)。
这就是Sliplane.io堆栈的核心。它实用、有效,并且让我们在小团队中也能保持高度的可靠性。随着我们不断构建,未来还会分享更多!
干杯,
乔纳斯
鏂囩珷鏉ユ簮锛�https://dev.to/code42cate/the-tech-stack-of-a-cloud-computing-startup-1h09