020-74523666

网站建设 APP开发 小程序

KNOWLEDGE/知识

分享你我感悟

您当前位置>主页 > 知识 > 软件开发 >

一个人如何完成一家创业公司的技术架构?

发表时间:2021-04-26 17:33

文章来源:ahao11

浏览次数:

原标题:一个人如何完成创业公司的技术架构?

作者|安东尼·西蒙

翻译| Sambodhi

规划|田

这是一篇很长的文章,详细介绍了我如何使用SaaS来运行设置。文章将涵盖很多方面,包括负载平衡、cron作业监控、订阅和支付等。

本文最初发表于作者个人网站,由原作者安东尼·n·西蒙授权,InfoQ中文网站翻译分享。

虽然文章标题听起来有些夸张,但我想澄清一下,我们说的是一家压力不大的个人公司,我在德国经营。我自己付的。我喜欢慢慢来。如果我说“科技创业”,大概和大多数人想的不一样。

没有大量的开源软件和管理服务,我做不到这一点。感觉自己站在巨人的肩膀上。在我之前,他们已经做了这么多艰苦的工作。我非常感谢他们。

从背景来看,我经营个人SaaS,这是我发表的一篇关于我使用的技术堆栈的文章的详细介绍。在接受我的建议之前,先考虑一下你的情况。在技术选择上,你的背景很重要,不需要圣杯。

我在AWS上用过Kubernetes,但不要陷入需要它的误区。在一个非常耐心的团队指导下,我花了几年时间学习这些工具。因为这是我最擅长的,工作效率很高,可以专心运货。你们的目标可能不一样。

闲话少,言归正传。

1整体架构

基础设施可以同时处理多个项目,但为了演示,我将使用我最新的SaaS产品Panelbear作为这种设置的示例。

Panelbear中的浏览器时序图是我将在本教程中使用的一个示例项目。

展开全文
就技术而言,SaaS每秒处理来自世界各地的大量请求,并以高效的格式存储数据,实现实时查询。

就业务而言,还处于起步阶段(我是半年前推出的),但是开发速度比我预想的要快,尤其是我最初为自己创建的Django应用,在一个小型虚拟专用服务器上使用SQLite。对于我当时的目标来说,这是非常有效的,我可能已经把这个模式推得很远了。

但是我越来越郁闷,不得不重用很多我习惯的工具:零停机部署、自动伸缩、健康检查、自动DNS/TLS/入口规则等等。Kubernetes宠坏了我,让我习惯于在保持控制和灵活性的同时处理更高级别的抽象。

快进六个月,经过几次迭代,虽然我现在的设置还是Django的单一版本,但是我现在用Postgres作为应用数据库,ClickHouse作为分析数据,Redis作为缓存。同时,芹菜用于调度任务,定制事件队列用于缓冲写操作。其中大部分运行在托管的Kubernetes集群上。

建筑概述

听起来很复杂,但其实是一个运行在Kubernetes上的老式单片架构。如果你把Django换成Rails或者Laravel,你就知道我在说什么了。有趣的是如何将所有东西粘合在一起并自动执行:自动扩展、门户、TLS证书、故障转移、日志记录、监控等等。

相关案例查看更多