我如何选择具有未来基础的技术堆栈

从简单开始,但不以进一步增长为代价。

图片

在开始我的软件工程师职业生涯之后,后来我成为一名技术企业家,并创立了两家SaaS公司,吸引了超过1亿美元的硅谷风险投资。

问题在于,这些公司需要大量投资才能创建他们当时所需要的复杂,多租户的软件系统,还需要销售和实施专家来不断促进和支持他们的工作。 因此,在2017年,我创立了8base

8base的核心思想是,对加速,改进和降低软件开发成本的平台和工具有巨大的需求。 8base提供了一个完整且易于理解的软件环境,我们的体系结构非常重要。 怎么了 技术堆栈不仅为我们设计,还为我们的客户设计。

我们的团队在SaaS公司工作具有丰富的经验,我们有明确的信念可以指导我们选择架构解决方案。 以下是其中一些:

- 首先,API (API优先)-计算基础架构,数据和业务逻辑必须在服务器端并使用单个动态API表示。

- 灵活性 -计算基础结构应该是针对正在运行的应用程序的完全可定制的服务。

- 前端开发的灵活性 。 如今,软件比科学更像一门艺术,公司通过技术来表达自己。 开发人员应能够设计和创建任何风格的用户界面,并结合各种外形尺寸。

我们将这些想法纳入8base的核心。

8base技术栈


首先,我们选择Amazon Web Services(AWS)作为计算基础架构,因为它是云计算的市场领导者。 我们使用许多AWS服务:

-用于无服务器计算的AWS Lambda (无服务器)。 使用8base构建的应用程序也使用Lambda。 无服务器性是一种相对较新的计算模型,该模型可响应事件执行代码,从而自动管理必要的计算资源。 Lambda以与能源公司相同的方式满足计算需求:提供定制和可衡量的服务。 这样可以最大程度地减少对DevOps工程师的需求,从而降低成本。

-AWS Aurora MySQLMongoDB Atlas数据库。 每一个都是数据库即服务,这使得它们快速,可靠,容错,可管理且可扩展。 8base还为每个开发人员工作区提供专用的Aurora MySQL。

-用于存储对象AWS S3的服务(简单存储服务) 。 8base解决了为工作区和客户端前端应用程序提供对S3的访问的问题。 这样可以轻松存储文档,图像,语音和视频文件以及更多内容。 8base还使用FileStack,因此开发人员可以轻松连接其云存储,社交帐户和其他帐户。 我们选择S3是因为它便宜,快速,可靠并且存储量几乎不受限制。

-AWS API Gateway由8base引擎使用,默认情况下可用于基于8base构建的客户端应用程序,作为创建,发布和保护REST和WebSocket API的服务。

8base已经使强大的GraphQL API引擎成为平台的一部分。 GraphQL是Facebook开发的标准,于2015年成为开源。 它是一个单一端点,可在前端和后端之间提供动态连接。 GraphQL允许前端开发人员非常快速地工作,从而减少了对后端开发人员的依赖。 此API技术可帮助8base团队和使用8base的团队更快地发展。

我们支持任何前端框架,但是8base本身是使用React制作的 。 React是Facebook和开发人员社区维护的开源JavaScript库。 它是快速更改数据的最佳选择。 今天,React变得异常流行,并且还提供React Native,这是一个用于在iOS和Android上创建本机应用程序的框架。

最后,我们选择了Auth0平台进行身份验证。 开发人员可以非常轻松地将Auth0集成到其客户端应用程序中,同时他们可以使用其他提供程序进行身份验证。 Auth0除了提供多因素身份验证和许多其他强大功能之外,还提供了与30多种社交和公司服务的集成以进行授权。

小费


按比例设计

精益启动方法通常是通过快速编写软件产品来实践的,因此创始人可以立即开始寻找自己的市场利基。 我敦促创始人考虑在找到合适的位置后需要重新编写产品时可能遇到的问题。

最好在扎实的基础上进行不断迭代以改善产品,而又不牺牲进一步扩展的可能性。 我们使用8base做到了这一点,现在,它得到了回报,因为我们花时间在不断改进产品上,而不是对旧代码进行技术更新或重构,而这对于我们的客户而言基本上是看不见的。

对于制作启动产品而不考虑数据模型的开发人员要小心。

如今,某些现有的后端解决方案允许前端开发人员(尤其是移动应用程序开发人员)将数据简单地上传到他们,而无需考虑任何数据模型或结构。 对于某些应用程序,这是正常的。 但是对于大多数应用程序-las,不是。 确保选择一种非结构化的数据处理方法,因为这是正确的选择,而不是最简单的选择。 否则,您的数据将在煮熟后看起来像意大利面条。

如果您是非技术创始人,并且需要代理机构来帮助您进行开发,请向他们提出以下八个问题。

代理机构倾向于提供专业服务,因此,尽可能长时间地提供服务符合他们的利益。 他们的目标并不总是符合您的目标。 要验证这一点,您可以提出以下问题:

1.您的软件开发方法是什么:先设计(先设计)还是先设计(先开发工程)?
2.第一个获得的结果将是什么样的:它将是完成的设计还是原型?
3.您为哪些初创公司提供了帮助,他们找到了自己的市场利基并财务稳定吗?
4.您将如何设计应用程序体系结构,这样我就不必更改它?
5.其他开发人员是否可以从事该项目?
6.必要时我是否可以扩展软件?
7.如果我们想基于新的营销数据来更改设计,该怎么办?
8.产品推出后,需要什么支持?

对于那些永无止境的企业家来说,创造技术产品是一个旅程。 关于什么如何进行的初始决策可以将成功与失败区分开。 这些决定还包括对以下问题的答案:谁决定产品应该做什么,谁来设计和开发产品以及将使用什么基本技术。

对这些问题的正确答案给企业家提供了获胜的机会,否则决策将导致时间的浪费,额外的成本,甚至可能导致失败。
感谢您的阅读! 我将很乐意发表评论,或通过albert@8base.com与我联系以提出问题。

Source: https://habr.com/ru/post/zh-CN471700/


All Articles