微服务的许多优点,例如缩短开发时间、小且独立发布、分散管理等引入了一系列挑战,像是版本控制,测试,部署和配置管理。本文提供了一个方法,来处理微服务复杂的构建、测试和部署程序。
问题说明
构建、测试和部署程序对于那些只有很少的微服务和普通服务的项目来说是非常简单的。通常,一个解决方案有2-3个Docker镜像,服务和UI,因此它很容易执行集成、测试,我们因此得出结论——服务与UI和其他兼容。版本控制策略也可以很简单,直接用程序文件的版本(pom, nuget或其他)。即使部署到生产环境,也可以为每个微服务手工完成
当下面的情况发生时,情况就会发生巨变:
当每个微服务有它自己的部署和运行配置时,情况变得更为复杂。举个例子,在一个测试环境中,一个微服务不需要安装多种实例,但却是生产所需。因此我们需要处理至少3-n维数组:
这些还需要进行管理。
另外,项目中还可能存在一些额外的约束和需求。我们还需要考虑一些额外的要求:
构建程序
微服务管道
当世界上其他国家休息时,微服务必须继续工作,所以下面的结果是正确的——首先它必须被分别构建和测试。一个微服务的管道应该与下图类似。
步骤:
端到端测试管道
在此阶段,一组微服务将与其他微服务的***稳定版本集成。
步骤:
集成测试前
端到端的集成测试工作拥有所有微服务的***版本,已经成功地通过了集成测试。“集成测试前”加上变更将提供必须测试的微服务版本集。
所有微服务的集成测试,可以说是通过集成测试的每一个构建都有可能交付的。
提示和陷阱
使用“***”的反面模式来部署服务并不是一个好办法,需要指定微服务的确切版本,因为不是所有的服务变更都需要重新部署。
几乎不可能为每个环境测试所有可能的微服务版本配置,在大多数情况下实际上是不需要的。
***每次都重新创建测试环境。
保持Jenkins管道作为源代码的一部分。
尽量避免使用Spring Cloud config server等外部化的运行时配置。***使用部署描述符提供配置值。
只要部署在国内服务器上的网站,无论是个人站还是企业站,都需要进行域名备案。...
近日,全球权威ICT市场研究机构IDC发布《2019年第四季度中国x86服务器市场跟踪报...
希捷科技公司今天发布《数据新视界:从边缘到云,激活更多业务数据》报告。该报...
用户在选择台湾服务器的时候,不能单单是看到服务器的选择,或者看价格来选择,...
为了解决三副本分布式存储面临的性能问题、稳定性及可靠性等缺陷,道熵的铁力士...
【51CTO.com原创稿件】2018年5月18-19日,由51CTO主办的全球软件与运维技术峰会...
随着云服务器租用广泛应用,云产品的安全问题越来越引起重视。云计算的多租户、...
通常来说,当系统写数据到缓存的时候,在某个时点也需要更新缓存后端的数据库。...
香港服务器优势众多,对于外贸企业而言要想选择优质服务器,香港服务器绝对是首...
香港服务器和网时美国服务器各有千秋,建站用户在租用时要根据自身的情况来安排...