内容提要
Supabase是Firebase的开源替代品,通过实施平台工程来提高生产力和代码质量。该公司的平台工程项目是为了管理不断增长的客户群体和技术复杂性。Supabase的方法是使用预建议和自己的工具的组合,为应用程序构建创建坚实的基础。公司的内部开发者平台包括开发者控制、集成、安全、监控和资源管理工具。平台工程的努力导致了构建时间和可重复性的改善,使开发人员能够专注于他们的代码。
延伸解读
平台工程:持续演进而非终点
Supabase的平台工程并非一蹴而就,而是一个持续改进和实验的过程。公司自2020年成立以来,随着客户群和技术复杂性的增长,逐渐意识到需要建立内部开发平台(IDP)来整合和标准化开发工具。平台工程师Samuel Rose的加入标志着这一过程从非正式实践转向正式角色,并持续每周推进。这种演进式方法强调适应性和迭代,而非一次性部署。
自研与开源工具的结合策略
Supabase的平台工程策略并非完全从零开始,而是基于CNCF等组织的云原生景观建议,同时融入自有产品。例如,在开发者控制平面中使用GitHub、Terraform和Pulumi,但也集成自有的API和Postgres开发工具。这种混合方法既利用了行业标准,又通过“吃自己的狗粮”来验证产品,适合其技术栈和业务需求。
内部开发者平台的核心组件
Supabase的IDP围绕五到七个主要组件构建,包括开发者控制平面、集成平面、安全平面、监控日志平面和资源平面。具体工具涵盖GitHub Actions、Nix、Docker、AWS服务以及自研的Logflare等。公司强调经济性,避免工具泛滥,通过整合和自动化来提供一致、安全的开发环境,使开发者能自助服务大部分需求。
平台工程带来的可重复性与效率提升
通过平台工程,Supabase实现了确定性构建,即一次构建可重复使用,减少了构建时间并确保了跨系统的一致性。开发者无需花费时间配置和维护工具,可以专注于代码,并安全地访问监控、测试和生产部署。这种改进使团队能更快地交付新版本,并支持自服务,从而提升整体生产力。
Q&A
Supabase的内部开发平台包含哪些主要工具?
Supabase的内部开发平台包括开发者控制、集成、安全、监控和资源管理工具,使用了GitHub、Terraform、Docker等工具。
Supabase为什么决定实施平台工程?
Supabase实施平台工程是为了管理不断增长的客户群体和技术复杂性,提高生产力和代码质量。
Supabase的工程师如何推动平台工程的进展?
Supabase的工程师通过整合和标准化开发工具,推动平台工程的进展。
Supabase的内部开发平台如何改善构建时间?
通过创建可重复使用的构建,Supabase的内部开发平台减少了构建时间,使开发人员能够专注于代码。
Supabase的自有产品在平台工程中扮演什么角色?
Supabase在平台工程中使用自有产品,如API和Postgres,结合行业标准工具,形成独特的开发平台。
平台工程对Supabase的开发团队有什么影响?
平台工程使开发团队能够自助服务,减少了配置和维护开发工具的时间,提高了工作效率。