云原生才是「吞噬世界」的那条大鱼...
持续交付(英语:Continuous delivery,缩写为 CD),是一种软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。它的目标在于让软件的建置、测试与释出变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。 持续交付的常见体现就是在不影响用户使用服务的前提下,频繁把新功能发布给用户使用。 要做到这点非常非常难,一般的要求是做到不误时开发、不停机更新,这就要求开发版本和稳定版本并存,需要很多流程和工具支撑。 有时候,持续交付也与持续部署混淆。持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。 如果要实施持续部署,必须先实施持续交付。 云原生和本地部署的区别 了解了云原生的概念,我们再来看看云原生和本地部署的区别。 真正的云化不仅仅是基础设施和平台的变化,应用也需要做出改变,在架构设计、开发方式、部署维护等各个阶段和方面都基于云的特点,重新设计,从而建设全新的云化的应用,即云原生应用。 这里,我们引用阿里巴巴高级技术专家酱油(花名)发表的一篇文章中的分析: 本地部署的传统应用往往采用 C/C++、企业级 Java 编写,而云原生应用则需要用以网络为中心的 Go、Node.js 等新兴语言编写。 本地部署的传统应用可能需要停机更新,而云原生应用应该始终是最新的,需要支持频繁变更,持续交付,蓝绿部署。 本地部署的传统应用无法动态扩展,往往需要冗余资源以抵抗流量高峰,而云原生应用利用云的弹性自动伸缩,通过共享降本增效。 本地部署的传统应用对网络资源,比如 IP、端口等有依赖,甚至是硬编码,而云原生应用对网络和存储都没有这种限制。 本地部署的传统应用通常人肉部署手工运维,而云原生应用这一切都是自动化的。 本地部署的传统应用通常依赖系统环境,而云原生应用不会硬连接到任何系统环境,而是依赖抽象的基础架构,从而获得良好移植性。 本地部署的传统应用有些是单体(巨石)应用,或者强依赖,而基于微服务架构的云原生应用,纵向划分服务,模块化更合理。 可见,要转向云原生应用需要以新的云原生方法开展工作,也就是我们在概念中提到的:微服务、容器、DevOps 和持续交付等。 「吞噬世界」的云原生 这个图大家一定熟悉又陌生。 (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |