回顾软件架构的发展历程,IT基础设施(Infrastructure)的变迁总是会推动架构演进,使得架构能够充分发挥基础设施的特点。例如,在大型机时代,架构就是与之匹配的单体架构,随着 PC 及局域网时代的到来,客户服务器架构成为主流。
现今云计算的基础设施同样推动着相应的软件架构的演变。同时,云计算技术甚至还影响了软件的开发过程和团队的组织结构,由此催生的“云原生”的相关理念,正被越来越多的团队所认可并成功应用。(点击 QCon上海2020·云原生专题)
而谈到云原生,有些人会把它的概念和云计算混淆。
Matt Stine 在2015年撰写了《Migrating to Cloud Native Application Architectures》,这是非常早期的一本关于云原生的经典,里面也谈到了我们为什么要做云原生,放在第一位的就是速度,天下功夫唯快不破,软件开发更是如此。
蔡超之前在 Amazon 工作,着手的第一个项目叫做 Enable Daily Deployment,要做到每天都能高质量、高速度的发布软件,这其中涉及到 CI/CD 自动化,测试自动化等,团队每天要交付 3-5个特征,整个公司每天要交付几千个。Google、Netflix其实也是一样。
一、云原生要素
云原生要解决的核心问题,就是如何能够快速交付App。云原生其实并不是在云平台上完整的构建应用这么简单,云原生是一种方法论或者理念,帮助开发团队充分利用云计算的基础架构来构建 App,也可以把它认为是一系列工具,但不是云。
Comments