容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

DevOps传教士
• 阅读 347

容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式。

甚至可以说,是在容器技术之后,DevOps、CI/CD 等运维关键问题才有了质的飞跃:实现资源的动态创建和销毁,更轻量的容器技术既能保证环境一致性也能进一步提高迭代频率,各种容器平台也能更好地保证应用高可用、自动伸缩、业务连续等等。

今天将跟大家分享支撑双十一的容器镜像仓库 ACR,以及它是如何实现搭配 IDE 插件和 CICD/云原生应用交付链来实现一键部署与持续集成,以下是本文提纲:

  • 什么是容器镜像仓库 ACR
  • 如何搭配免费 IDE 插件实现一键部署
  • 如何运用 CICD/ 云原生应用交付链实现持续集成与交付
想听软萌音在线讲解?阿里云小姐姐直播,手把手教你,12月5日晚上8点—9点,直播间等你(还有弹幕截屏送礼品!),直播间地址点击链接:https://developer.aliyun.com/special/cloudtoolkitlive

容器镜像仓库 ACR

为了更好地支持双十一大规模分发需求,容器镜像服务(Alibaba Cloud Container Registery, ACR)团队提前进行规划及迭代更新,全面提升了大规模分发场景下的性能、可观测性和稳定性。在新的双十一来临前,容器镜像服务已达到了 PB 的镜像托管量,月均镜像拉取达数亿次,平滑度过 54.4 万笔交易峰值。

阿里云镜像仓库 ACR 分为默认实例版与企业版,虽然结合阿里云产品做了多维度优化,但是并不与阿里云强制绑定。ACR 默认实例版面向容器开发者,提供安全的镜像托管、便捷的镜像授权功能,方便用户进行镜像全生命周期管理,并且简化了 Registry 的搭建运维工作,支持全球 20 个地域的镜像托管。ACR 企业版面向安全需求高、业务多地域大规模部署的企业级客户,提供大规模镜像分发能力、企业级的安全独享特性,以及云原生应用交付链,全链路可观测、可跟踪以及可设置,可实现一次应用变更,多场景自动化交付。

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

如何搭配 免费 IDE 插件实现一键部署

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

Cloud Toolkit 是一款免费的本地 IDE 插件,很多技术博客都有相关的测评,是一款口碑较好的插件。它能够帮助开发者更高效地开发、测试、诊断并部署应用。设置好插件的初始配置之后,可以将本地应用一键部署到任意服务器 Host,甚至云端(ECS、ACR、Kubernetes 和 小程序云 等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器等工具,减少了切换工作界面的时间,灵巧且实用,推荐安装试用一波。下面介绍,插件如何将应用一键部署到容器镜像仓库 ACR 。

开发者的部署包从形成镜像到镜像仓库,手动操作的话,每一次都需要经历下图 4 个步骤:登录阿里云Docker Registr--> 从Registry中拉取镜像 --> 将镜像推送到Registry --> 选择合适的镜像仓库地址,但是,使用 Cloud Toolkit ,开发者可以实现在本地 IDE 就能一键部署到镜像仓库。

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

(一)配置插件首选项

安装完插件之后,点击:顶部菜单Tools --> Alibaba Cloud Toolkit --> Preferences-->左边列表的 Alibaba Cloud Toolkit--> Accounts ,出现如下界面,配置阿里云账号的 AK 和 SK,即可完成首选项配置。(如果是子账号,则填写子账号的 AK 和 SK)。

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

(二)设置本地 Docker 镜像打包

**点击:顶部菜单Tools --> Alibaba Cloud Toolkit --> Preferences --> 左边列表的 Alibaba Cloud Toolkit --> Docker,如下图,设置本地 Docker 镜像打包。

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

(三)部署应用

第一步:在 Intellij IDEA 中,如下图点击:顶部菜单Tools --> Alibaba Cloud  -->Deploy to ACR/ACK --> Deploy to ACR。

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

第二步:设置 Image

  • 在 Image 标签页中,选择本地应用程序的 Context Directory 和 Dockerfile (通常会根据您本地的应用工程自动识别并设置)。
  • 选择容器镜像服务的地域、命名空间和镜像仓库。

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

第三步:执行部署

点击 Run 按钮之后,即可完成将本地 Docker 镜像推送到 ACR 中去。

如何运用 CICD/云原生应用交付链,实现持续集成与交付

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

ACR企业版的云原生交付链在托管交付分发等方面进一步提升,历经双11大促,沉淀了云原生应用万节点协同的技术经验。

目前支持容器镜像、Helm Chart 两类云原生应用资产,并采用独立网络访问控制,可细粒度控制公网及VPC 网络的访问策略,仅允许符合策略的来源方访问资产,保障访问安全。

同时实现了整个应用交付周期的流程自动化,开发者只要一次变更应用,按照配置多场景交付,即可实现一次应用变更,全球化多场景自动交付。

容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

在应用交付环节,ACR EE 支持自动发起静态安全扫描并自定义配置安全阻断策略。一旦识别到静态应用中存在高危漏洞后,可自动阻断后续部署链路。用户可基于漏洞报告中的修复建议,更新优化构建成新的镜像版本,再次发起交付。
建设 CICD 体系还需要考虑到整体稳定和尽可能不断提升整体交付能力,比如监控报警、容错容灾、依赖治理、限流降级、容量规划。这里可以和大家分享 ACR 团队的相关经验:

  • 在依赖治理方面,要对云原生应用交付链中相关重点环节及外部依赖进行统一管理,识别热点仓库及追踪交付链执行结果;
  • 在限流降级方面,最好分析识别云原生应用分发核心环节的主次业务功能,优先保障主要业务逻辑完成,次要业务逻辑可降级延后处理;
  • 在容量规划方面,平台根据上下游业务变化情况,对资源进行按需扩容,确保云原生应用正常交付完成。

容器镜像服务 ACR 与 插件 Cloud Toolkit 免费面向开发者,帮助技术人员提高开发、部署效率,在减少时间成本的同时提高了业务的质量,还有双十一的顶级洪峰流量场景作为实践案例,希望这篇文章能帮助到有需要的人,并通过相关文章快速上手,真正实现业务价值。

原文链接

本文为云栖社区原创内容,未经允许不得转载。

点赞
收藏
评论区
推荐文章
【敏捷研发系列】前端DevOps流水线实践
软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的相关理念扩展到运维侧,从而将产品、设计、开发、测试、运维团队更紧密的结合在一起。而从交付给客户产品视角看,前端研发通常又是在整个产品设计开发链条的最终节点,意味着前端团队受到上游变更的影响是最大的,并且从经营理念效率出发,提升前端交付效率是至关重要的。
good123 good123
3年前
奈学p7云原生架构师
云原生的概念主要是基于容器云,其主要原则是,软件产品从设计、开发到交付,全流程都考虑适配容器云的环境。传统的开发,是本地开发与测试,测试环境再次测试,然后部署上线,如果有上容器的需求,那么再编写Dcokerfile,做容器化改造,最后部署到容器云上云原生的产品,开发,测试和上线都是完全兼容容器云的环境,例如通过EclipseChe镜像开发,提交到git上,从
Stella981 Stella981
3年前
KubeSphere DevOps 初体验,内置 Jenkins 引擎
KubeSphere是在Kubernetes之上构建的以应用为中心的多租户容器平台,提供全栈的IT自动化运维的能力,简化企业的DevOps工作流。KubeSphere提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere支持部署在任何基础设施环境,提供在线与离线安装,支持一键升级与扩容集群,并且
Stella981 Stella981
3年前
CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境
持续集成概述及运行流程:持续集成概述:持续集成(Continuousintegration)持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进行自动化测试 开发→代码编译→测试持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境持续部署:在持续交付的基础上,把部署到
Stella981 Stella981
3年前
GitLab+Rancher实践DevOps【转载】
摘要本文描述使用自建GitLab和Rancher实践持续集成/持续交付流水线的过程,并用Rancher实现容器编排和蓝绿发布。GitLab持续集成GitLab持续集成/持续交付流程图:!image(https://docs.gitlab.com/ee/ci/img/cicd_pipeline_infograp
Stella981 Stella981
3年前
DevOps工具链
Devops工具链DevOps实际是一种文化上的变迁,代表了开发、运维、测试等环节之间的协作,因此DevOps工具是非常多种多样的,甚至可以由多种工具组成一个完整的DevOps工具链。此类工具可以应用于一种或多种类别,并可体现出软件开发和交付过程的不同阶段:编码:代码开发和审阅,版本控制工具、代码合并工具构建:持续集成工具
Stella981 Stella981
3年前
28项容器镜像的检查清单(Checklist)
容器镜像是云原生环境中各类应用的标准交付格式。由于容器镜像需要大量分发和部署,因此,需要确保容器镜像在构建、分发和运行全生命周期内的安全。镜像扫描是检查操作系统和安装包中是否存在已知漏洞的一项基本措施。除此之外,还有很多措施可以加强容器镜像的安全。如下表所示,基于镜像安全4个阶段,11个要求,28项检查点,全面检测容器生命周期各个阶段的镜像风险,确保容器镜像
【行云流水线】满足你对工作流编排的一切幻想~skr
流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现持续改进。流水线的
容器镜像服务:云原生时代的核心基石
随着云计算技术的快速发展,容器化技术已成为应用部署的主流方式。容器镜像服务作为容器技术的重要组成部分,为应用提供了可靠、高效、一致的运行环境。本文将对容器镜像服务的概念、原理、应用场景以及未来发展趋势进行深入探讨,旨在帮助读者更好地理解和应用容器镜像服务。
镜像供应链安全
容器技术重塑了整个软件供应链。容器镜像将应用及其所依赖项打包,从而使应用可以在不同的计算环境之间快速、可靠地运行。容器镜像已经成为了应用分发的标准。镜像供应链安全应支持:
【行云流水线】满足你对工作流编排的一切幻想~skr
流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现持续改进。流水线的