云效(原RDC)+ 容器服务完成持续集成

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品。 我会把我最近3个月的使用体会分成5个部分:使用RDC的动机、PHP项目集成、JS项目集成、JAVA项目集成、Docker类项目集成这5.

最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品。

我会把我最近3个月的使用体会分成5个部分:使用RDC的动机、PHP项目集成、JS项目集成、JAVA项目集成、Docker类项目集成这5个分支来写

因为近期RDC的迭代比较频繁,所以我的分享会比较的浅,点到为止,仅供参考,目录:

1、RDC如何耦合进我们的业务

2、如何构建一个基于Composer的PHP项目

3、如何构建一个基于NodeJS的前后端项目

4、如何构建一个基于Maven的Java项目

5、RDC + 容器服务完成持续集成


一、现状

在没有切入RDC之前,我们公司的持续集成主要是通过Jenkins完成,定时构建、打包、制作docker镜像,然后通过API发布到docker集群。

这套方案的优点在于:

1.只要技术能力过硬,几乎可以通过jenkins的自定义脚本实现99%的功能。相对更自由一些。

2.可以通过分布式的构建节点来降低构建压力和提高稳定性,适合大并发的构建场景。

缺点也很明显:

1.没有过多技术精力的团队,只能使用jenkins自带的功能、扩展插件来实现相关功能,较为繁琐且jenkins的界面和操作有时候确实有点反人类的,属于用起来很简单,要用好很难。

2.需要投入额外的部署、构建节点,成本,成本~

3.因为公司的服务基于docker部署,而jenkins+docker的构建和部署并非特别的好用。更关键的问题是安全,需要将相关集群的证书打入构建和部署节点,一旦被攻击,可能公司/团队就没了~


二、RDC结合阿里云容器服务实现自动迭代

阿里云目前提供了Docker的集群服务,分为3种类型,一种是阿里云自己基于原生集群改造的版本、Swarm Mode、K8S,后两个是新支持的,目前来说体验体验就好,不太建议在生产环境用。

具体的阿里云容器服务我就不介绍了,感兴趣的朋友可以去cs.console.aliyun.com开通并使用。

那么让RDC自动部署到容器服务需要如下的步骤:

1.先修改应用的流程,进入项目—-流水线,找到下图界面,点击某个流水线的修改按钮:

2.调整部署规则,可以按需要删除或添加新的部署点,环境选择已有环境,如果此处没有可用的环境,请进入 应用—–环境—-配置,进行设置,可以指定每个环境对应的docker集群、应用、服务、蓝绿发布规则等。

3.调整完成后,保存即可,然后重新运行一次流水线,就OK啦。其实还有一些更高级的用法,比如加开关,日常部署全自动,正式部署由特定权限者手动点确认才能部署等。

是不是超级简单!

部署到Docker集群的几个小坑:

1.比如你的容器应用由(nginx+code)组成,而你在RDC中部署目标设置为code,更新后可能出现nginx的link目标还是上一次的集群IP,导致fpm转发失败。这个问题,小概率出现,不知是容器的问题还是RDC的问题,大概1000次部署,遇到1次。

2.如果你的应用名称为中文,比如:门户网站前端应用,通过RDC自动部署后,容器应用名会变成?????,对使用没影响,就是看上去怪怪的,应该是2个产品的编码没协调好。


三、后记

几个分享就说到这里了,在写分享的过程中发现一些功能经常在迭代,导致反反复复修改文章,如果你在看的时候发现文章和配套搭配不了,请重新按官方文档进行理解吧~

5篇分享写的比较浅,主要用作入门,后面有时间会再写3篇进阶分享,主要聊聊如何用RDC等工具链完成一整套的持续集成工作。

文章原文出处:qipangzi.com (个人博客)

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
4月前
|
消息中间件 弹性计算 Kubernetes
RabbitMQ与容器化技术的集成实践
【8月更文第28天】RabbitMQ 是一个开源消息代理和队列服务器,用于在分布式系统中存储、转发消息。随着微服务架构的普及,容器化技术(如 Docker 和 Kubernetes)成为了部署和管理应用程序的标准方式。本文将探讨如何使用 Docker 和 Kubernetes 在生产环境中部署和管理 RabbitMQ 服务,同时保证高可用性和弹性伸缩能力。
85 3
|
6月前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
212 1
|
2月前
|
缓存 监控 测试技术
掌握容器化持续集成/持续部署(CI/CD)的最佳实践
【10月更文挑战第8天】本文介绍了容器化持续集成/持续部署(CI/CD)的最佳实践,涵盖容器化CI/CD的概念、优势和实施步骤。通过使用容器技术,可以实现环境一致性、快速迭代和易于扩展,提高软件开发的效率和可靠性。文章还详细讨论了编写高效的Dockerfile、自动化测试、安全性、监控和日志管理等方面的最佳实践。
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何找回旧版rdc的代码仓库
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
缓存 资源调度 Kubernetes
阿里云云效产品使用合集之如何将两个独立的代码仓库构建并部署到同一个容器内
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
Kubernetes 监控 Shell
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
|
4月前
|
测试技术 持续交付 数据库
容器镜像解析问题之区分单元测试和集成测试如何解决
容器镜像解析问题之区分单元测试和集成测试如何解决
24 0
|
5月前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
5月前
|
API 开发工具 数据安全/隐私保护
阿里云云效操作报错合集之流水线镜像已经生成,但容器没有出现,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
敏捷开发 Kubernetes 测试技术
阿里云云效产品使用合集之流水线创建时,不想选择节点和容器,该如何操作
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

相关产品

  • 容器计算服务