在云计算时代,组织面临比以往更快地交付业务和客户价值的压力。为此,企业和ISV已经通过DevOps和最近的微服务将他们的敏捷软件开发实践提升到了一个新的水平。结合这两种技术可以大大提高效率。事实上,在某种程度上,正是这种快速发展推动了今天的新兴技术,如大数据、机器学习和其他下一代IT概念。您对DevOps和微服务了解多少?DevOps是一种使开发人员和IT运营人员能够更紧密地合作以更快地交付高质量软件的方法。DevOps通过让开发人员了解其软件将在其中运行的生产环境来帮助他们提高软件质量,从而使开发人员受益。虽然DevOps可以模拟生产环境(这是早期的DevOps标准),但模拟的环境永远不会与生产环境完全匹配。最近,组织已将DevOps实践转移到云中,从而可以更准确地复制生产环境。DevOps使开发人员能够看到IT操作,反之亦然,这减少了两个角色之间的传统摩擦并增加了协作。与敏捷一样,DevOps将软件程序分解为更小的部分,以提高软件交付速度和质量。DevOps的一个标志是“持续”实践,包括持续集成、持续测试、持续交付和持续部署,所有这些都有助于软件产品和软件相关实践的持续改进。微服务架构是一种软件开发技术,是一种面向服务的架构(SOA)。它在不使用微服务的情况下产生比敏捷或DevOps更小(因此更模块化)的功能。顾名思义,微服务是服务本身的一小部分功能。由于它们是独立的构建块,因此它们使应用程序更易于创建、测试和理解。模块化的好处之一是多个DevOps团队可以并行构建和部署微服务。微服务和容器通常结合在任意数量的公共或私有云环境中。此外,微服务可以部署在任何云中,这可以让开发人员不必为MicrosoftAzure和AmazonWebServices等编写特定于平台的代码。简而言之,微服务可以节省时间和金钱,并提供新级别的开发和部署灵活性。结合DevOps和微服务的优势,微服务支持持续交付和部署,这两者都加速了软件的交付。大多数组织都在朝着或朝着持续交付迈进,这意味着在数月和数年、数周和数月、数天和数周以及数小时和数天之间发布软件。持续部署每天可以产生数百或数千个版本。它经常被亚马逊、Facebook和谷歌等云原生玩家实践。事实上,微服务源于希望更快地交付软件并提高产品质量的云原生公司的DevOps实践。微服务和DevOps的一些好处是:更频繁的软件发布更高质量的代码软件的可重用性可扩展性弹性更高级别的自动化灵活性(使用新数据源、框架、库和其他资源的能力)自由(不同的团队可以使用他们喜欢的工具和语言)基于云的架构DevOps更高的生产力水平DevOps如何与微服务一起工作微服务使DevOps团队能够并行开发独立的功能块。跨职能团队不是将代码从一种类型的专家转移到另一种专家(例如,开发、测试、生产),而是协作构建、测试、发布、监控和维护应用程序。为了加快流程并减少手动错误,DevOps团队构建微服务利用自动化的持续交付管道,使他们能够以安全可靠的方式试验新功能并快速从故障中恢复。为了保证产品质量,在持续集成和持续交付(或部署)中加入了持续测试。实现持续质量不仅仅需要测试。具体来说,它包括其他质量要素,例如安全性、与用户需求的一致性、业务风险缓解和度量值。微服务的独立性有助于DevOps团队在更短的时间内完成更多工作。与导致整个应用程序崩溃的单体软件不同,微服务缺陷往往仅限于该微服务。然而,一个微服务的失败会使其他微服务“处于压力之下”,这可能意味着其他微服务无法与失败的微服务通信。微服务的模块化支持增量发布,这是DevOps的目标之一。总之,微服务和DevOps:加速创新让DevOps团队更有效率减少错误降低软件开发成本提高产品质量推动更高水平的商业价值未来几年微服务和DevOps的结合将如何变化?如前所述,微服务提高了DevOps团队的工作效率。展望未来,两者的结合将带来更高的效率。此外,最终用户体验到的与应用程序相关的摩擦也会减少:云原生开发将补充云原生部署。虽然能够在任何云中运行微服务非常高效,但软件通常正在迁移到云中。开发云应用程序比在云本身更好吗?首先,在发布之前更容易发现应用程序错误。机器学习和人工智能正在进入DevOps和微服务工具。智能工具的好处之一是更深入地了解DevOps管道、代码、配置更改、性能等。更多的DevOps团队将采用微服务来使企业应用程序更具价值、可扩展性、弹性和适应性。微服务帮助开创了“后应用程序”时代,在这个时代,用户打开单个应用程序的时间更少,而花在应用程序之外的时间更多。例如,你可以问像Alexa这样的虚拟助手,“今天的天气预报是什么?”在电话上,天气预报可以作为通知推送。可能性实际上是无穷无尽的。
