容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式。
甚至可以说,是在容器技术之后,DevOps、CI/CD 等运维关键问题才有了质的飞跃:实现资源的动态创建和销毁,更轻量的容器技术既能保证环境一致性也能进一步提高迭代频率,各种容器平台也能更好地保证应用高可用、自动伸缩、业务连续等等。
今天将跟大家分享支撑双十一的容器镜像服务 ACR,以及它是如何实现搭配 IDE 插件和 CICD/云原生应用交付链来实现一键部署与持续集成,以下是本文提纲:
* 什么是 容器镜像服务 ACR
* 如何搭配 免费 IDE 插件 实现一键部署
* 如何运用 CICD/云原生应用交付链 实现持续集成与交付
> 想听软萌音在线讲解?阿里云小姐姐直播,手把手教你,12月5日晚上8点—9点,[直播间等你](https://developer.aliyun.com/live/1706)(还有弹幕截屏送礼品!)
容器镜像服务 ACR
--------------
为了更好地支持双十一大规模分发需求,容器镜像服务(Alibaba Cloud Container Registery, ACR)团队提前进行规划及迭代更新,全面提升了大规模分发场景下的性能、可观测性和稳定性。在新的双十一来临前,容器镜像服务已达到了数 PB 的镜像托管量,月均镜像拉取达数亿次,平滑度过 54.4 万笔交易峰值。
阿里云镜像仓库 ACR 分为默认实例版与企业版,虽然结合阿里云产品做了多维度优化,但是并不与阿里云强制绑定。ACR 默认实例版面向容器开发者,提供安全的镜像托管、便捷的镜像授权功能,方便用户进行镜像全生命周期管理,并且简化了 Registry 的搭建运维工作,支持全球 20 个地域的镜像托管。ACR 企业版面向安全需求高、业务多地域大规模部署的企业级客户,提供大规模镜像分发能力、企业级的安全独享特性,以及云原生应用交付链,全链路可观测、可跟踪以及可设置,可实现一次应用变更,多场景自动化交付。
![](https://pic4.zhimg.com/80/v2-57eb3feb1103a45431145dbfe2155855_hd.jpg)
* 官方链接地址:[https://www.aliyun.com/product/acr](https://www.aliyun.com/product/acr)
如何搭配 免费 IDE 插件实现一键部署
------------------------
![](https://pic1.zhimg.com/80/v2-0eb431dd79548e5a86364e0a0e0c749a_hd.png)
[Cloud Toolkit](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2FNiwScrRcMdEhd4BSmM8_bQ) 是一款免费的本地 IDE 插件,很多技术博客都有相关的测评,是一款口碑较好的插件。它能够帮助开发者更高效地开发、测试、诊断并部署应用。设置好插件的初始配置之后,可以将本地应用一键部署到任意服务器 Host,甚至云端(ECS、ACR、Kubernetes 和 小程序云 等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器等工具,减少了切换工作界面的时间,灵巧且实用,推荐安装试用一波。下面介绍,插件如何将应用一键部署到容器镜像服务 ACR 。
* 官方下载地址:[https://cn.aliyun.com/product/cloudtoolkit](https://cn.aliyun.com/product/cloudtoolkit)
开发者的部署包从形成镜像到镜像仓库,手动操作的话,每一次都需要经历下图 4 个步骤:登录阿里云Docker Registr--> 从Registry中拉取镜像 --> 将镜像推送到Registry --> 选择合适的镜像仓库地址,但是,使用 Cloud Toolkit ,开发者可以实现在本地 IDE 就能一键部署到镜像仓库。
![](https://pic4.zhimg.com/80/v2-c11b2ad8982609cda4261fa4c31e0fcd_hd.png)
(一)配置插件首选项
安装完插件之后,点击:顶部菜单Tools --> Alibaba Cloud Toolkit --> Preferences-->左边列表的 Alibaba Cloud Toolkit--> Accounts ,出现如下界面,配置阿里云账号的 AK 和 SK,即可完成首选项配置。(如果是子账号,则填写子账号的 AK 和 SK)
![](https://pic3.zhimg.com/80/v2-e2106189d9596016c0c14be89b9de2e3_hd.png)
(二)设置本地 Docker 镜像打包
点击:顶部菜单Tools --> Alibaba Cloud Toolkit --> Preferences --> 左边列表的 Alibaba Cloud Toolkit --> Docker,如下图,设置本地 Docker 镜像打包。
![](https://pic4.zhimg.com/80/v2-a407a53a47e64d64dab86bc08eba8843_hd.png)
(三)部署应用
第一步:在 Intellij IDEA 中,如下图点击:顶部菜单Tools --> Alibaba Cloud -->Deploy to ACR/ACK --> Deploy to ACR。
![](https://pic2.zhimg.com/80/v2-4502faf1dcc15de6bf7edd5fb8c34396_hd.png)
第二步:设置 Image
* 在 Image 标签页中,选择本地应用程序的 Context Directory 和 Dockerfile (通常会根据您本地的应用工程自动识别并设置)。
* 选择容器镜像服务的地域、命名空间和镜像仓库。
![](https://pic2.zhimg.com/80/v2-46cdd59ed6a972fd770a7c5beb0c6bd3_hd.png)
第三步:执行部署
点击 Run 按钮之后,即可完成将本地 Docker 镜像推送到 ACR 中去。
如何运用 CICD/云原生应用交付链 实现持续集成与交付
--------------------------------
![](https://pic1.zhimg.com/80/v2-3fac5e6b099d28c11891df072bd1268b_hd.png)
ACR企业版的云原生交付链在托管、交付、分发等方面进一步提升,历经双11大促,沉淀了云原生应用万节点协同的技术经验。
目前支持容器镜像、Helm Chart 两类云原生应用资产,并采用独立网络访问控制,可细粒度控制公网及VPC 网络的访问策略,仅允许符合策略的来源方访问资产,保障访问安全。
同时实现了整个应用交付周期的流程自动化,开发者只要一次变更应用,按照配置多场景交付,即可实现一次应用变更,全球化多场景自动交付。
![](https://pic4.zhimg.com/80/v2-42a8c39c06ab028e62ac20c6ab949fd0_hd.png)
在应用交付环节,ACR EE 支持自动发起静态安全扫描并自定义配置安全阻断策略。一旦识别到静态应用中存在高危漏洞后,可自动阻断后续部署链路。用户可基于漏洞报告中的修复建议,更新优化构建成新的镜像版本,再次发起交付。
建设 CICD 体系还需要考虑到整体稳定和尽可能不断提升整体交付能力,比如监控报警、容错容灾、依赖治理、限流降级、容量规划。这里可以和大家分享 ACR 团队的相关经验:
* 在依赖治理方面,要对云原生应用交付链中相关重点环节及外部依赖进行统一管理,识别热点仓库及追踪交付链执行结果;
* 在限流降级方面,最好分析识别云原生应用分发核心环节的主次业务功能,优先保障主要业务逻辑完成,次要业务逻辑可降级延后处理;
* 在容量规划方面,平台根据上下游业务变化情况,对资源进行按需扩容,确保云原生应用正常交付完成。
容器镜像服务 ACR 与 插件 Cloud Toolkit 免费面向开发者,帮助技术人员提高开发、部署效率,在减少时间成本的同时提高了业务的质量,还有双十一的顶级洪峰流量场景作为实践案例,希望这篇文章能帮助到有需要的人,并通过相关文章快速上手,真正实现业务价值。
[原文链接](https://yq.aliyun.com/articles/736799?utm_content=g_1000094634)
本文为阿里云内容,未经允许不得转载。
分享到:
相关推荐
【gpmall商城资源+一键部署脚本】是针对电商领域的解决方案,主要涵盖了商城系统的基础构建、管理和运营所需的关键组件。这个压缩包包含了完整的gpmall商城系统资源以及一个便捷的一键部署脚本,旨在帮助用户快速...
# Seafile 镜像制作及使用说明 1. 从阿里云申请SSL证书并放置到image/cert目录下,更改pem和key名称为server; 2. 制作docker镜像 ```shell # 切换到Dockerfile目录,执行如下命令 docker build -t 你的ID/...
阿里云Kubernetes(简称k8s)是一款强大的容器编排系统,它可以帮助用户轻松管理和部署分布式应用。Nacos是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,它为微服务架构提供了关键的支持。在本场景中,...
项目基本结构是SpringBoot,集成了docker-maven插件实现build完的镜像上传到私服,然后用 Jenkins构建实现docker集群一键自动化部署
nginx镜像,docker-compose一键部署 下载文件后: 第一步:解压 第二步:进入至docker-compose.yml文件所在目录,然后执行命令即可 docker-compose up -d
本文将指导您如何搭建openstack私有云平台,实现一键部署。OpenStack是一款开源的云计算平台,可以为用户提供强大的计算、存储和网络资源。下面将详细介绍搭建openstack私有云平台的步骤。 一、环境准备 1. 安装两...
2、支持 1台主机 一键远程部署rabbitmq镜像模式单机伪集群(1个磁盘节点+2个内存节点)。 3、支持 2台主机 一键远程部署rabbitmq镜像模式 分布式集群(1个磁盘节点+1个内存节点)。 4、支持 3台主机 一键远程部署...
2、只适用部署1台master + 2台node ; 3、在脚本 install-etcd-flannel-k8s.sh 中设置 3台的IP; 4、做好master到两台node的免密登陆; 5、将安装包放在master上,直接执行bash install-etcd-flannel-k8s.sh 即可; ...
"一种对Docker容器镜像实现离线增量更新的方法" Docker 容器镜像离线增量更新方法是指在不影响容器运行的情况下,对 Docker 容器镜像进行增量更新的方法。该方法可以提高 Docker 容器镜像的更新效率,减少更新过程...
2、支持 单机、一主多从、三主多从等 三种部署架构和 六种部署模式的容器版K8S离线集群, 证书有效期为99年。 3、支持 一键部署、分步部署、集群备份(etcd)、集群恢复(etcd)、集群移除 等功能。 4、支持 worker...
6. **网络插件安装**:选择并安装合适的CNI(Container Network Interface)插件,如Calico或Flannel,以实现容器间的网络通信。 7. **验证部署**:使用`kubectl`命令行工具检查节点状态和API服务器的可达性。 这个...
本实施方案旨在实现持续集成、持续交付和持续部署,以提高软件开发和交付的效率和质量。本方案将使用 Jenkins 作为持续集成工具, Git 作为版本控制系统, SVN 作为版本控制系统的备选方案。 一、持续集成、持续...
部署MQTT Server(EMQX) 包括emqx的dockerFile和配置文件,只需要按步骤执行两条命令就可迅速部署emqx。 步骤: 1.解压 ,配置emqx_auth_redis.conf中redis连接地址 2.进入解压目录,执行docker build . 得到镜像 3...
2、支持 1台主机一键远程部署rabbitmq+haproxy高可用镜像模式集群+(1个磁盘节点+2个内存节点+1个haproxy节点)。 3、支持 2台或3台主机一键远程部署rabbitmq+haproxy高可用镜像模式集群(1个磁盘节点+1个内存节点+1...
本文将详细介绍如何使用 Jenkins 与 Docker 实现一键自动化部署项目。该项目环境基于 Centos 7,使用 Git(Gitee)版本控制系统。整个过程可以分为四个步骤:安装 Docker、安装 Jenkins、配置 Jenkins 基本信息、...
一键部署工具实现功能如下: 1、支持rabbitmq单实例部署 2、支持单机rabbitmq镜像集群部署 3、支持多机rabbitmq分布式镜像集群部署 4、支持数据目录、日志目录、插件目录、配置文件持久化 5、支持数据目录、日志目录...
【Nydus容器镜像服务】是针对容器镜像领域的一种技术创新,旨在...总的来说,Nydus容器镜像服务通过技术创新改变了传统容器镜像的工作方式,提升了效率和安全性,尤其在大规模容器部署和云环境中具有广泛的应用前景。
一键部署工具实现功能如下: 1、支持rabbitmq单实例部署 2、支持单机haproxy+rabbitmq高可用镜像集群部署 3、支持多机haproxy+rabbitmq高可用分布式镜像集群部署 4、支持数据目录、日志目录、插件目录、配置文件持久...
1、当前一键部署工具仅支持 X86_64架构的 Ubuntu操作系统。 2、支持 单机、一主多从、两主多从、三主多从等四种部署架构和六种部署模式的二进制K8S离线集群,且 证书有效期为99年。 3、支持一键部署、启动、停止、...
部署系统:centos,已部署docker、docker-compose服务 其他常用命令: docker-compose stop:停止所有服务。 docker-compose start:...3、执行docker-compose脚本拉取镜像及elk容器服务 运行docker-compose up命令