让我们构建一个内部平台
日益增长的复杂性导致许多企业采用中央平台模式,其中内部平台团队的任务是审查工程师最需要的工具、构建模板并绘制黄金路径,以简化他们的生产过程。同时还集中财务、运营、安全性和治理等功能,以减轻个体开发者的认知负担。
以音乐流媒体巨头Spotify为例。Spotify产品经理Gary Niemen在2020年的一篇博文中写道:“回溯到差不多六年以前,Spotify一直致力于用自主团队打造敏捷工程文化。但这在带来优势的同时,也带来了复杂性,包括一个分散的开发者工具生态系统,当你在系统里遇到问题时,唯一的方法就是询问你的同事。”
随着Spotify的扩展,它发现推动其快速增长的方法实际上已经开始拖累它。它需要整合和简化。“好用或值得推荐的工具应该很容易被找到,使用该工具的过程应该很清楚,其中还应该有高质量的用户说明。而且,用户应该很明确地知道:如果自己遇到困难,能够从哪里获得支持。”Niemen写道。
Humanitec的von Grünberg在2021年的博文中写道,一个好的内部开发者平台的关键是,在不让开发者感到受限制的前提下,为想要继续手头工作的开发者提供自助服务和筛出没有价值的任务之间找到平衡。
“拥有了最佳路径并不意味着限制或扼杀工程师,也不是为了实现路径而设定标准。而是当团队有了最佳路径,就不必重新发明轮子,只需做少量的决策,并且可以利用他们的生产力和创造力来实现更高的目标。他们可以快速恢复行动。”Spotify产品经理Niemen写道。
但问题是,“开发者喜欢重新发明轮子。没有什么比创造出更好的快捷键更让他们满意了。”顾问Simpson说。但是现在很多技术问题都能直接在Stack Overflow上找到解答了,这真的是开发者利用时间的最佳方法吗?
微软开发部门的产品CVP Amanda Silver表示:“总会有一些企业试图压制开发者的权力,而另一些企业则试图赋予开发者权力,其核心理念是开发者的效率。我们可以构建一个系统,让开发者去编写只有他们才能编写的代码,而不会分心,或因学习他们不适合的领域而有负担。”
成立于1987年的旅游科技公司Amadeus经历了这些技术变革的浪潮,他们最开始在大型主机上构建应用程序,之后在2000年代初转向了开放式的Linux平台,现在又更倾向于使用 Kubernetes编排的容器化应用程序。
Amadeus基础设施和云主管Edouard Hubin表示:“我们的开发者需要能够在我们提供的核心上进行开发,因此我们的想法是为他们提供一个功能性平台。新技术为安全性和稳定性带来了更多的复杂性。当你打开一个系统时,你肯定希望它是稳定的。数据驱动应用程序的兴起对我们来说有着完全不同的复杂程度。它带来了一种编写应用程序和构建反馈循环的新方法。这些都是新事物,都会带来相应的复杂性。”
因此,Hubin希望通过内部团队设计解决方案或在有意义的地方进行付费托管服务,来尽可能地隐藏复杂性。以数据库为例,Amadeus过去自己管理MongoDB实例,但现在选择使用供应商管理的MongoDB Atlas服务。该公司对管理Kubernetes 也抱有相同的想法。
但是工程师仍会将新工具引入生态系统。Hubin说:“有时必须拒绝这种情况。最近,有工程师试图引入新的数据库。他们的观点是,就算标准选项不是那么好,公司从整体上仍然能更好地控制我们使用的数据库数量。”
每个大型企业都有大量工程师,其中一些工程师专注于构建弹性系统和向客户快速交付的功能,而另一些则拼命想要补齐最新技术。Two Sigma的Fournier说,这两种工程师都有价值,但需要谨慎管理。
Fournier表示:“你需要那些热衷于了解新事物和发现新事物的人,因为你需要人们来管理在裸机上的Kubernetes。同时你也需要那些热衷于研究新事物的人,他们会了解这些新事物的工作原理,并知道如何使用它们会对公司更好。他们会是你制作原型时的好伙伴,并帮助你确定是否值得投资和解锁新事物。”