Bootstrap

熵简技术谈 | 私有化部署方案的演进

作者信息:本文出自熵简后台团队,团队致力于为熵简科技各产品线构建高可用、易扩展、低运维的后台系统,并逐步构建起统一、灵活的大后台架构,帮助各研发团队实现快速、高效的产品开发。

导读:熵简科技在近年的金融企业服务的过程当中,随着业务的高速发展,对于私有化部署方案也经历了多次升级,基于 DevOps 的思想,如 DRY (Don’t Repeat Yourself)、SSOT (Single Source of Truth)、CaC (Configuration as Code)、IaC (Infrastructure as Code) 等进行了多次改造。
本文主要介绍了熵简私有化部署方案的演进策略和核心指导思想。整个过程分为三个阶段,第一阶段:以脚本为核心的部署方式(docker文件 + 脚本 + 环境变量);第二阶段:以 Jenkins 为核心的部署方式(docker文件 + jenkins + 配置文件);第三阶段:以 Jenkins 和 docker harbor 为核心的部署方式(docker harbor + jenkins + 配置文件)。

一、背景
熵简科技在近年的金融企业服务的过程当中,随着业务的高速发展,对于私有化部署方案也做了多次改进,基于 DevOps 的思想,如 DRY (Don’t Repeat Yourself)、SSOT (Single Source of Truth)、CaC (Configuration as Code)、IaC (Infrastructure as Code) 等进行了多次改造。
本文从 DevOps 的基本思想出发,以解决业务发展中各阶段的核心问题为基本目标,详细介绍了熵简私有化部署方案的演进策略和核心指导思想。
这三个阶段依次为:
第一阶段:以脚本为核心的部署方式(docker文件 + 脚本 + 环境变量)
第二阶段:以 Jenkins 为核心的部署方式(docker文件 + jenkins + 配置文件)
第三阶段:以 Jenkins 和 docker harbor 为核心的部署方式(docker harbor + jenkins + 配置文件)

二、第一阶段
在我们做第一个私有化部署的系统时,我们的系统架构相对简单,包含的需要部署的组件不超过10个。所以对于部署方案,我们的考虑是:1. 能支持横向扩展。2. 能支持快速部署启动一个开发环境或者 debug 环境。3. 能支持快速部署一个新的客户环境。所以在第一阶段,我们的做法是用一个很牛逼的脚本,一键启动所有组件。其中组件需要相互关联的部分,都通过变量设置在脚本中,从而避免参数设置不一致导致的部署问题,例如:

;