您现在的位置是:主页 > 数据库技术 > 数据库技术

微服务CD怎么实现

IDCBT2022-01-05服务器技术人已围观

简介这篇文章主要讲解了“微服务CD怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务CD怎么实现”吧! 微服务和

这篇文章主要讲解了“微服务CD怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务CD怎么实现”吧!

微服务和CD

按照Martin Fowler的说法,微服务架构是“将软件设计一组为可独立部署的服务的方式“。这种方式目前已经成为构建分布式系统/应用的主流;按照Jez Humble的说法,CD(持续交付)是“能够以可持续的方式安全快速地将所有类型的变更 - 包括新功能、配置、错误修复和实验 - 投入生产”。

无论是一体化架构还是微服务架构,无论目标部署环境或我们的架构选择如何,设计好CD工作流程以使我们对应用的任何更改投入生产都很重要。CD工作流程是DevOps流程的核心,能够很好的串联组织中的各种功能,包括开发、QA以及IT运维等等。

微服务架构CD的4项挑战

    维护复杂分布式系统的完整性:由于我们将大型一体化系统分解成为了更小、更易于管理的微服务,因此系统本身的整体复杂性会增加,我们开始需要处理分布式系统相关的问题;

    安全快速地发布功能:当我们的功能可能涉及一个或多个微服务的更改时,需要特别考虑一下如何管理频繁的功能发布;

    管理不同技术堆栈的部署:微服务环境通常包括用于服务的不同技术堆栈,跨技术对战的管理和部署过程很有挑战性;

    独立部署服务的过程和工具:有许多工具可用于构建CD工作流程,但选择工具、制定CD工作流并不是一件容易的事。

微服务架构CD的5点思考

    准备好测试策略

跟传统一体化架构应用相比,微服务架构的测试和验证更加细致,也更加复杂。一个有效的测试策略必须同时考虑到测试单个服务和验证整个系统行为的需要。

对于服务的pre-production测试,特别是以隔离的方式测试,传统方法仍然适用。测试金字塔仍然可以帮助我们在不同类型的测试之间保持平衡。但是,在测试服务聚合时,这种测试方式的效果有限。我们会遇到一些在测试环境中无法模拟的错误类别,例如由分布式系统中的最终一致性引起的问题,导致系统部分失败的硬件和网络故障等。

我们最好利用一些技术来作为传统测试的补充,例如synthetic user testing、lightweight user acceptance testing以及fault injection testing等等。

    检查好CI实践

CI是CD的关键实践。除了构建服务器、构建定义相关的考虑,基于主干的开发和功能切换是实现简单而强大的CI过程的两个关键实践。

在基于主干的开发中,开发人员在一个名为“trunk”的分支中协作。这样做的好处是,避免开发分支的drift和由此产生的merge hell。这与维护长期特征和释放分支的做法相反。在分支模型中,虽然我们可能会在各个分支上运行构建,但事实上,我们没有进行持续集成。

标签:

很赞哦! ()

本栏推荐