Choerodon猪齿鱼微服务后端环境变量方案

文章讲述了Choerodon猪齿鱼平台如何利用SpringBoot和Helm的环境变量机制实现一次打包部署到不同环境的策略,包括GitLabCI/CD流程、SpringBoot配置和Helmchart的定制。通过SpringBoot的系统环境变量和Helm的模板文件,猪齿鱼实现了服务在开发、测试、UAT和生产环境的无缝部署。
摘要由CSDN通过智能技术生成

Choerodon猪齿鱼平台使用微服务架构进行开发,部署在Kubernetes 扩展中,并且服务新功能开发完成后会被依次部署到暂存环境测试,UAT 环境验收和生产环境使用。在这多个环境的部署过程中,猪齿鱼平台只需要一次CI生成的包,便能实现服务部署的“因地制宜”。

需求

猪齿鱼平台集成的GitLab用于进行CI的过程,在微服务程序中经过Gitlab CI的docker_build和chart_build步骤之后,对应一次成功的CI过程,会有一个可以进行部署的Helm的发行包。

一般情况下,不同环境下基础设施如数据库的地址是不同。而部署服务的需求是一次打包生成的安装包可以在不同的环境进行部署而不需要对源代码重新打包。

spring:
  datasource:
    url: "jdbc:mysql://localhost/demo_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" # 本地数据库
    username: demo
    password: demo

方案基础

猪齿鱼微服务后端环境变量方案的本质上是Springboot的环境变量机制和头盔环境变量机制的结合。

所以在此之前,先聊一聊SpringBoot 和头盔所提供的支持。

SpringBoot环境变量支持

SpringBoot支持外部化配置,允许使用者通过属性文件,YAML文件,环境变量及命令行参数对服务进行外部化配置。同时允许 @Value和@ConfigurationProperties注解的方式对上述变量进行访问。

@Value方式:

@Value("${JAVA_HOME}")
private String javaHome;

@Value("${spring.application.name}")
private String appName;

@ConfigurationProperties 方式:

@Component
@ConfigurationProperties(prefix = "services.gitlab")
public class GitlabConfigurationProperties {
    private String password;
    private Integer projectLimit;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getProjectLimit() {
        return projectLimit;
    }

    public void setProjectLimit(Integer projectLimit) {
        this.projectLimit = projectLimit;
    }
}

在SpringBoot官方文档中,SpringBoot提供了多于十种配置环境变量的方式,并列出他们所配置的环境变量的优先级。从文档中可以看到,对于应用程序而言,系统环境变量的优先级高于应用内的配置文件所配置的值。

Helm环境变量支持

在猪齿鱼微服务中,项目根目录下会有一个 chart 目录用于定义此服务如何打包成 Helm Chart 包,这个目录下就是 helm 的 chart 文件结构:

devops-service/      
  Chart.yaml          # 包含关于chart的的信息的YAML文件
  LICENSE             # 可选:包含chart的许可证信息的纯文本文件
  README.md           # 可选:chart的README文件
  requirements.yaml   # 可选:列出依赖信息的YAML文件
  values.yaml         #
  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Choerodon猪齿是一个开源多云技术平台,是基于开源技术Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。 Choerodon提供: 1、全面的工具链支持DevOps最佳实践,从计划,编程,构建,测试,发布和运营支持Scrum管理。 2、一套基于Spring Cloud的微服务应用程序框架,可帮助公司更快,更高效地进行微服务开发。 Choerodon的特征: 1、协作 -结合精益敏捷对业务需求、工作任务进行管理,打造高效协作生态。提供工作列表、故事地图、知识管理等协作工具,是贯穿开发、测试、部署的价值链,促进团队成员沟通交流,降低项目管理成本,提高沟通协作效率。 2、开发 -提供迭代规划和持续集成的流水线,帮助规范应用服务开发,实现快速迭代。以DevOps理念为指引,结合精益看板和Gitlab的分支管理,提供持续集成的流水线,缩短应用服务开发周期,同时提高团队效率,高效频繁向测试团队或者用户交付软件新版本。 3、测试 -敏捷化的持续测试工具,可以有效地提高软件测试的效率和质量。测试管理为用户提供敏捷化的持续测试工具,包括测试用例管理、测试循环、测试分析等,可以有效地提高软件测试的效率和质量,提高测试的灵活性和可视化水平,最终减少测试时间,让用户将主要精力放到软件功能构建上。 4、部署 -流水线式多环境一键部署。用户客户可以方便地使用部署功能管理各种使用Choerodon开发部署的应用服务,包括应用启停、状态监控,以及应用服务对应的版本控制、容器管理等,同时还包括应用服务涉及到的各种资源管理,例如网络、域名、数据库服务、缓存服务等。 5、运营 -汇集辅助项目进行管理的各种报表,多维度展示项目进展详情和问题。包含了敏捷报表(累积流量图、燃尽图等)、DevOps报表(代码提交图、代码质量图等)、测试报表。 6、微服务框架 - 基于汉得微服务技术平台HZERO的微服务架构,使用此开发框架,用户可以轻松构建应用服务。 另外,您可以查看Choerodon的屏幕快照以最直观地了解Choerodon,还可以访问Choerodon的网站。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正斜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值