软件定期发布,通常每周或每月发布,尽管许多新功能通常在发布之前就已经准备就绪,并且没有特定的依赖性。
客户想要的功能迟到,公司就会错失竞争、获取客户和增加收入的机会。用户采用曲线较慢,因为他们一次收到许多新功能,并且很难提供反馈或学习如何使用应用程序的整个新部分。
较大的版本意味着更长的测试时间和更少 的成功机会,并且在出现极端情况或意外事件时管理起来更加复杂。
依赖性
云原生方式:独立
微服务架构将应用程序分解为小的垂直的、模块化的、独立的、自由耦合的组件。
不同组件的开发被分配给较小的独立团队,这使 俄罗斯电报数据 得频繁且不受限制的更新、更细粒度的可扩展性以及在故障转移时恢复而不影响其他服务的能力成为可能。
通过这种设置,团队需要在服务之间定义清晰的通信接口。这需要架构分析并促进对应用程序工作流程的清晰理解,使各个组件的操作透明并记录在案。反过来,这种形式主义有利于其他相关供应商或其他业务部门重用记录良好的组件。
传统方法:相互依赖
单体架构将许多不同的服务捆绑到一个部署包中,有效地使服务相互依赖,并阻碍了开发和部署的敏捷性。
整体内部发生的事情是不透明的,而且往往没有记录。新程序员的入门很困难:复杂应用程序的代码很难阅读,并且只提供应用程序“如何”工作,而不是“为什么”工作。
因此,下一个项目必须再次获得这些知识,并且从领域分析开始,并冒着造成错位的风险,投入大量预算来重建已经存在的组件。
可扩展性
云原生方法:自动缩放
大规模自动化基础设施可以消除人为错误造成的停机。
虽然人们在超负荷并被迫执行重复性任务时往往会犯错误,但自动化不会遇到这些问题,无论配电基础设施的规模如何,都会忠实地复制相同的过程。