3.部署篇(工具部署)

简介: 本文介绍EDAS在Kubernetes上围绕SpringCloud应用部署的完整工具体系,涵盖IDE、Maven、CI/CD、Terraform及CLI等多种部署方式,适配开发、运维与DevOps场景,并强调命名空间隔离与安全控制,为应用高效、安全发布提供全面支持。

导读:上一篇文章《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》我们介绍了从 IDE 插件内介绍了如何进行应用部署的方式,除此之外,目前 EDAS 还支持了额外的工具对其他场景进行覆盖,这一篇内容主要就是介绍 EDAS 上围绕部署的工具体系。


关文章推荐:

  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇》
  • 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》


IDE 插件中进行部署


因为 IDE 是离开发人员的代码最近的工具,所以 IDE 插件中的部署能力也是专门为开发人员提供的部署工具,他的特点就是速度快、使用简单,同时也覆盖了 ECS 集群与 Kubernetes 集群中的 War/Jar 、以及自定义镜像的部署方式。具体使用方式,我们都已经整理成了官方文档,请在 EDAS 的官方帮助文档中,查看《使用 Cloud Toolkit 快速部署应用至 EDAS》章节。


不过对于线上的应用而言,如果随便一个开发人员都能进行随意的变更,这是一件很不安全的事情。EDAS 在命名空间设计的时候,也考虑到了这个问题,解决的办法就是 EDAS 上的命名空间,其用途是用来隔离环境之间的服务与配置用的。可以理解成通常意义上的环境,如:开发、测试、生产等。为避免用户在 IDE 插件中误将线上环境进行变更,我们对命名空间加入了一个允许远程调试的选项,开启之后才能在 IDE 中进行相应的操作,此开关默认为关闭状态。如下图所示:

1. Maven 插件中进行部署

Maven 插件的使用场景介于开发人员与运维人员之间,它的设计主要秉承当下比较流行的 DevOps 的理念,可以将部署流程配置化的方式进行发布。即我们可以将部署的配置信息,随代码工程放置在一起,进行版本跟踪,同时也能将应用的配置根据 Spring 中的 Profile 进行区分。按照相应的配置做好之后,只需要执行简单的  mvn toolkit:deploy  即可完成部署。具体可以参见 EDAS 官方文档的《使用toolkit-maven-plugin插件部署应用》。


2. CI/CD 中进行部署


一套标准的 DevOps 流程肯定少不了 CI/CD 的存在,作为市场上使用最广的 CI/CD 工具 Jenkins ,以其简单易用和其丰富的插件能力而著称。EDAS 也补齐了这一平台的插件,这款插件也涵盖了 EDAS 中所有主流场景的部署,尤其在 Kubernetes 这一块,同时集成了镜像构建、推送、部署的能力。具体可以参见 EDAS 官方文档的《在Jenkins中使用edas-jenkins-plugin构建应用到 EDAS》。


同时,目前还有很多的用户在使用云服务云效,云效中集成了强大的流水线的能力,EDAS 是其中的一个内置的流水线的任务模版,名称为部署到 EDAS,详情请参考 EDAS 官方文档《使用云效部署 Java 应用至 EDAS》。


3. 使用 Terraform 进行编排


Terraform 是一种安全有效地构建、更改和版本控制基础设施的工具(基础架构自动化的编排工具)。它编写了描述云资源拓扑的配置文件中的基础结构,例如虚拟机、存储账户和网络接口。Terraform 的命令行接口(Command Line Interface,CLI)提供一种简单机制,用于将配置文件部署到阿里云上,并对其进行版本控制。


EDAS 也集成了当下比较流行的 Infrastructure As Code 的理念,拥抱 Terraform 的生态,提供了一个官方插件,让用户可以以 Infrastructure As Code 的方式将应用编排到对应的底层 IaaS 层资源与其他 PaaS 资源上,文档参见:《使用 Terraform 部署应用至 EDAS》。


4. 使用 CLI 工具中进行部署


对于一个资深的运维人员而言,可能最喜欢的操作的方式还是命令行工具。除了使用习惯之外,因为命令行工具同时具备很好的脚本化,和其他的脚本语言进行结合后能具备更丰富的能力。


EDAS 中的 CLI 工具,目前是依托于阿里云的命令行入口,已 POP API 为命令,API 的参数为命令行的参数进行构建,也就是说其本质还是转换成为一次 POP API 的调用。官方文档请参考:《使用 CLI 快速部署 EDAS 应用》。


结语及后续


EDAS 的部署工具基本上围绕着开发人员、运维人员、DevOps 场景进行构建,不过对于一次部署而言,触发往往只是提交一个任务,而我们其实更关心任务提交之后的结果,甚至结果对于业务的影响。

因为我们每一次任务的触发,其实都是对线上环境的一次变更,变更则很容易产生故障,对业务产生不连续性,根据阿里巴巴集团的经验,超过半数严重故障是由于变更产生。所以在 2018 年末,提出了线上变更的三条原则:可灰度、可回滚、可监控。EDAS 也是逐步将这一理念中的各种能力在产品中践行;所以接下来的章节将围绕着线上变更来进行,下一讲将进入第一小节《可灰度》。

相关文章
|
存储 运维 安全
阿里认证哪个方向好?考试难不难?
如果想要获得一份好的工作,那么就需要拥有过硬的技能和专业的证书,对于从事信息通讯行业的人来说,拥有一份阿里云证书,对于提升自己的职业竞争力是有很大的帮助的。
|
3月前
|
人工智能 开发框架 自然语言处理
解放双手:Playwright+AI如何让测试工程师“躺赢”
Playwright携手大模型,重塑自动化测试:代码精度与人类理解融合,让测试从“苦力”升级为“指挥”。MCP作AI之手眼,快照技术传关键上下文,实现自适应操作。案例涵盖公众号发布、智能表单填充,支持自然语言驱动、实时调试,维护成本降80%,覆盖率翻数倍,开启智能测试新纪元。
|
8月前
|
消息中间件 监控 安全
Kafka为何这么快?企业级Kafka该怎么部署?
Kafka凭借其高吞吐、低延迟和横向扩展能力,成为现代实时数据处理的核心组件。其“快”源于顺序写盘、零拷贝、批量处理和无锁设计等架构优化。本文深入解析Kafka的高效机制,并探讨企业在实际应用中的架构设计、安全管理与平台化治理策略,助力构建稳定高效的数据流平台。
|
3月前
|
关系型数据库 应用服务中间件 nginx
容器化部署引擎Docker
Docker是一种轻量级容器化技术,通过镜像打包应用及依赖,实现跨环境一致部署。它利用沙箱机制隔离容器,解决开发、测试、生产环境差异与组件兼容性问题,相比虚拟机更高效便捷,提升应用交付效率。
容器化部署引擎Docker
|
3月前
|
Kubernetes IDE 应用服务中间件
2.部署篇(开发部署)
本文介绍如何将SpringCloud应用部署到Kubernetes云端,基于EDAS实现快速上云。涵盖集群导入、应用初始化及通过IDE插件高效部署,助力开发者提升发布效率。
|
3月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实战步骤,涵盖配置管理、热更新、共享配置及优先级规则,并演示Nacos集群搭建与高可用部署,帮助开发者掌握微服务环境下配置的动态管理与服务解耦方案。
Nacos配置中心
|
3月前
|
消息中间件 负载均衡 Linux
RabbitMQ部署指南
本文介绍了RabbitMQ在CentOS7上基于Docker的单机与集群部署方案,涵盖镜像安装、DelayExchange插件配置、普通模式与镜像模式集群搭建,并重点演示了仲裁队列的高可用特性及集群扩容方法,助力构建稳定可靠的消息中间件服务。
RabbitMQ部署指南
|
3月前
|
监控 Java 测试技术
微服务保护Sentinel
本课程深入讲解微服务中的雪崩问题及其解决方案,重点介绍阿里开源的流量治理组件Sentinel。内容涵盖Sentinel的部署与整合、限流模式(直接、关联、链路)、流控效果(快速失败、预热、排队等待)、熔断降级、线程隔离及规则持久化等核心知识点,结合Jmeter压测实战,帮助开发者构建高可用的分布式系统。
|
3月前
|
消息中间件 Java Nacos
SpringCloud概述
Spring Cloud是Spring团队推出的微服务一站式解决方案,弥补了各独立组件(如Nacos、RabbitMQ等)缺乏统一架构的不足。其特点为约定优于配置、组件丰富、开箱即用,支持云原生。版本以伦敦地铁站命名,避免与子项目冲突。Spring Cloud Alibaba由阿里贡献,集成Nacos、Sentinel、Seata等成熟组件,因Netflix套件停更,现成为主流选择,功能更完整且经大规模验证,是当前微服务架构的优选技术栈。
|
3月前
|
SQL 容灾 数据库
分布式事务Seata
本章节深入探讨分布式事务问题,涵盖CAP定理与BASE理论,重点讲解Seata框架的XA、AT、TCC及SAGA四种模式原理与实现,并指导搭建高可用TC服务集群,确保微服务架构下的数据一致性与系统可靠性。
分布式事务Seata