前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >应用多环境部署的最佳实践

应用多环境部署的最佳实践

作者头像
腾讯云中间件团队
发布2021-10-27 10:10:41
1.8K0
发布2021-10-27 10:10:41
举报
文章被收录于专栏:腾讯云中间件的专栏

前言

日常开发中,开发者通常会有应用多环境部署的需求,一般会在如下场景中出现:

  • 研发流程:企业为了保障服务的稳定性,会在研发流程上要求遵守这样的工作流:测试环境 → 预发环境 → 生产环境。应用需要部署到多个环境中,由各环境的人员进行相关的测试验证工作:研发在测试环境中开发、调试应用,测试同学在预发环境中验收待发布的版本,SRE(网站可靠性工程师) 在生产环境管理应用等等。
  • 稳定性保障:为了保障应用服务的稳定性,架构师通常在构建高可用解决方案时,做一些冗余部署,方便故障出现时,快速切到备用的服务,避免对业务的影响。 - 容灾:将应用部署在多个物理隔离的环境中进行容灾,如部署在同一地域的不同机房、部署在不同的地域。 - 测试:将应用部署在不同类型的环境中进行性能、稳定性等测试,如区分中心云/边缘环境、高配/低配资源环境。
  • 迭代效率:开发者为了避免重复造轮子,提高开发迭代效率。把具有通用能力的应用会部署在多个环境中,便于不同的业务调用。

那么,面对这么多的应用多环境部署需求,如何实现呢?下述将简单分析该需求所面临的问题以及业界开源的解决方案,对于实现细节会陆续推出技术文章分析,并概述腾讯云 TEM 产品的实践,方便读者实践。

问题

简单来看,应用多环境部署是为了解决如下图所示的需求,即将同一个应用部署到多个开发测试环境中。

在实现应用多环境部署的解决方案上,我们需要解决这两个问题:

  • 交付物管理的问题:部署时通常是应用+配置,可通过交付物概念来对其描述,涉及到交付物管理,如配置管理 、应用存储管理等。
  • 分发管理的问题:从应用到环境之间,会涉及到分发管理问题,如环境对接、workflow 管理等。

即:

开源解决方案

对于交付物管理,本质上是管理应用和环境的匹配。

  1. 应用管理:基于 Kubernetes 的场景下,通常可使用 Helm 来管理应用,详情参见:https://helm.sh/。 - 通过 Repository 管理交付物的查找、存储等。 - 通过 Chart 统一描述应用的部署方法、不同场景的配置等。
  2. 配置管理:也可以采用独立的服务,如 Apollo 等。

对于分发管理

  1. 环境对接:通常会涉及到 多集群管理,业界可参考开源的 Karmada、Open Cluster Management、Clusternet 等项目。
  2. workflow 管理 :业界也有开源的项目,如 Argo、Tekton 等项目,通过声明式的方式描述流程。

使用开源解决方案,虽然可以达成目标,但方案本身也存在一定的弊端:

  • 使用者需要学习不同项目的设计和使用方法,必要时还需要深入源码排查问题。
  • 通过组合开源解决方案,形成完整的针对应用多环境部署的服务,势必会带来很大程度的时间和人力投入。

为了可以快速实践应用多环境部署,也可以考虑使用腾讯云弹性微服务TEM来解决这个问题,只需在操作页面上点点点,即可快速实现!

TEM应用多环境部署解决方案

弹性微服务TEM (Tencent Cloud Elastic Microservice) 是腾讯云推出的面向微服务应用的 Serverless PaaS 平台,实现资源 Serverless 与微服务架构的完美结合,提供一整套开箱即用的微服务解决方案,详情可参见:

https://cloud.tencent.com/product/tem。

TEM 抽象了环境应用两个模型,通过环境提供多个维度的隔离,如网络、配置、资源等,通过应用来管理用户应用的生命周期,如部署、访问、可观测性等。

下述将按照如下路径实践应用多环境部署:

  1. 在环境中进行配置管理资源管理
  2. 在应用列表中将应用部署到多个环境中。

1. 环境

下述是环境详情页信息示例:

其中:

  • 基本信息:描述环境关联的 VPC、子网等信息
  • 资源管理:管理环境级别的日志、存储、注册中心等资源
  • 访问管理:管理环境中多应用的路由转发
  • 配置管理:提供环境级别的配置管理,可被环境中所有应用复用

TEM 在环境级别提供了两种维度的隔离:

  • 网络隔离
  • 资源隔离

创建环境时用户需要选择 VPC,通过 VPC 实现二层网络隔离。同时可以选择多个子网,在应用部署时,平台会自动将应用实例打散到不同的子网中。若子网属于不同的可用区,即可由平台保障了应用多可用区部署

在环境中可以绑定资源 (存储/日志/注册中心),应用部署时仅可选择环境中关联的资源,在一定程度上实现了环境间资源的弱隔离

TEM 提供了环境级别的配置管理,可被环境中所有应用共享。对于需要共享配置的场景,可在环境的配置管理中建立配置,然后在应用部署时引用该配置。同时,也可以在 配置管理中查看到配置被哪些应用引用:

2. 应用

TEM 将创建应用描述部署应用解耦,用来支持应用多环境部署。

创建应用描述:

创建应用描述后可以暂不部署,如下图,通过「部署至新环境」功能部署应用到指定环境:

重复上述步骤,可以将应用部署到多个环境中。

小结

通过 TEM 提供的环境和应用模型,可以快速体验应用多环境部署中的交付物管理和分发管理。结合 TEM 提供的 API,可以构建灵活的 workflow。与社区提供的开源解决方案相比,TEM 在公有云场景中简化了应用多环境部署面临的问题,在交付物管理 (应用+配置) 提供了简单普适的模型,在分发管理中提供了 Web 操作界面和 API,方便用户体验、与存量系统对接。目前产品在公测期间,欢迎大家使用,TEM 会持续改善应用管理服务,在公有云场景满足应用多环境部署等需求。

扫码立即使用TEM

往期

推荐

《单元化架构在金融行业的最佳实践》

《服务器又崩了?深度解析高可用架构的挑战和实践》

《Kratos技术系列|从Kratos设计看Go微服务工程实践》

《Pulsar技术系列 - 深度解读Pulsar Schema》

《Apache Pulsar事务机制原理解析|Apache Pulsar 技术系列》

扫描下方二维码关注本公众号,

了解更多微服务、消息队列的相关信息!

解锁超多鹅厂周边!

戳原文,查看更多弹性微服务TEM信息!

点个在看你最好看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云中间件 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对于交付物管理,本质上是管理应用和环境的匹配。
    • 1. 环境
      • 2. 应用
        • 《Pulsar技术系列 - 深度解读Pulsar Schema》
          • 《Apache Pulsar事务机制原理解析|Apache Pulsar 技术系列》
          相关产品与服务
          弹性微服务
          TSE 弹性微服务是面向微服务应用的 Serverless PaaS 平台,实现资源 Serverless 化与微服务架构的完美结合,为用户提供一整套开箱即用的微服务解决方案。弹性微服务面向云原生,支持 Spring Cloud、Dubbo、多语言应用零改造上云,提供应用托管、微服务治理、秒级弹性、多维度监控等能力,帮助企业创建和管理云资源,助力企业充分聚焦核心业务本身。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档