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

简介: 最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了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 (个人博客)

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
11月前
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
6月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
209 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
消息中间件 弹性计算 Kubernetes
RabbitMQ与容器化技术的集成实践
【8月更文第28天】RabbitMQ 是一个开源消息代理和队列服务器,用于在分布式系统中存储、转发消息。随着微服务架构的普及,容器化技术(如 Docker 和 Kubernetes)成为了部署和管理应用程序的标准方式。本文将探讨如何使用 Docker 和 Kubernetes 在生产环境中部署和管理 RabbitMQ 服务,同时保证高可用性和弹性伸缩能力。
427 3
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
354 1
|
10月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
371 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
缓存 监控 测试技术
掌握容器化持续集成/持续部署(CI/CD)的最佳实践
【10月更文挑战第8天】本文介绍了容器化持续集成/持续部署(CI/CD)的最佳实践,涵盖容器化CI/CD的概念、优势和实施步骤。通过使用容器技术,可以实现环境一致性、快速迭代和易于扩展,提高软件开发的效率和可靠性。文章还详细讨论了编写高效的Dockerfile、自动化测试、安全性、监控和日志管理等方面的最佳实践。
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
缓存 资源调度 Kubernetes
阿里云云效产品使用合集之如何将两个独立的代码仓库构建并部署到同一个容器内
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
Kubernetes 监控 Shell
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
|
测试技术 持续交付 数据库
容器镜像解析问题之区分单元测试和集成测试如何解决
容器镜像解析问题之区分单元测试和集成测试如何解决
88 0

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版