云效+ACK 构建容器云 DevOps 平台 最佳实践

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 最佳实践目前已覆盖23类常用场景,已发布200多篇最佳实践,这其中涉及100款以上阿里云产品的最佳使用场景。目前,最佳实践已成功帮助大量客户实现自助上云。本篇主要讲述容器应用DevOpsforACK集群最佳实践。DevOps的目的是构建一种文化和环境,使构建,测试,发布软件更加快捷,频繁和可靠。而到了容器时代,需要部署的机器不但量更大,变化更剧烈,有的甚至需要根据条件自动升缩,为了满足企业敏捷的需求,持续部署也成了必须,本方案使用云效完成容器应用(小程序后端服务)的自动化构建和持续部署。
直达最佳实践:【 https://bp.aliyun.com/detail/52
观看视频:【 https://yqh.aliyun.com/live/detail/22965
阿里云最佳实践目前已覆盖23类常用场景,有200多篇最佳实践,这其中涉及110款以上阿里云产品的最佳使用场景。目前,最佳实践已成功帮助大量客户实现自助上云。
本方案将从3个部分为读者介绍容器应用DevOpsforACK集群最佳实践,希望可以让大家对其有更深入的了解,并可以将其应用到项目中,达到降本提效的目的。
本方案内容分为以下三个方面:
  • 最佳实践原理讲解
  • 核心产品云效讲解
  • 最佳实践系统搭建

一、最佳实践原理讲解

1. 最佳实践的场景描述和适用的场景

本最佳实践的核心场景是容器化的应用怎么做Devops.Devops是Development和Operations的组合,它代表一种文化、运动或实践。目的在促进软件交付和基础设施,变更软件开发人员和IT运维人员之间的合作和沟通,使构建,测试,发布软件更加快捷,频繁和可靠。
而到了容器化时代,需要部署的机器不但量更大,变化更剧烈,有的甚至需要根据条件自动的弹性升缩。为了满足企业敏捷开发和部署的需求,持续部署也成了必须。本方案以小程序的后端服务为例,使用云效完成容器化应用(小程序后端服务)的自动化构建和持续部署,完整模拟容器CI/CD的全流程,比如分批发布、蓝绿发布等等。
以下几个场景非常适合使用本方案:

  • 微服务CI/CD
  • 线上应用的蓝绿部署升级
  • 自动化测试和部署

image.png

2. 本方案的系统架构

方案使用的是小程序应用的后端服务,开发人员开发新的feature或者修复bug后提交代码到代码仓库,会自动触发云效进行代码编译,镜像构建并推送到容器镜像服务然后部署到测试环境。这时测试人员就可以在测试环境对应用进行测试,如果通过后流程进入下一个环境的部署,比如预发环境,部署测试及发布,然后通过后再发布到线上进行测试回归。整个过程全自动化完成,部署应用可以进行分批发布测试,蓝绿灰度测试部署等多种方式平滑上线,出现问题也可以快速回滚。这里的应用是容器化的应用,部署到阿里云的容器服务。后端数据库使用云数据库RDS MySql版,蓝绿发布使用了托管版的服务网格ASM。在这个方案中我们也可以看到阿里云多产品之间完美衔接,降低运维成本。
image.png

3. 架构的优势

  • 代码提交自动触发构建和发布,减少人工失误,降低迭代成本,提升迭代频率和效率。
  • 自动化部署,提高部署效率。平均部署一次只需要几分钟到几十分钟。
  • 应用的容器化保障了应用高可用和高弹性,并且保障应用在开发、测试和正式环境中的一致性。
  • 线上应用支持蓝绿灰度发布,更加安全,保障业务的连续性。不同版本也可以做灰度对比测试。也可以支持用户体验测试等等。
  • 资源的高利用率、支持动态弹性扩容,按需分配降低了硬件成本,自动化降低了人力成本。
  • 容器平台的多租户特点可以满足多项目组同时开发,支持构建不同集群和命名空间级别的隔离。

image.png

二、云效流水线Flow

1. 什么是云效流水线

云效企业一站式DevOps解决方案源于阿里巴巴先进的管理理念和工程实践,致力于成为数字企业的研发效能引擎。云效提供从需求-开发-测试-发布-运维-运营,端到端的协同服务和研发工具,通过人工智能、自动化技术的应用,助力开发者提升研发效能,持续快速交付有效价值。
image.png
云效流水线是云效产品矩阵中一款企业级、自动化的研发交付流水线,提供灵活易用的持续集成、持续验证、持续发布功能,帮助企业高质量、高效率的交付业务。通过云效流水线可以帮助企业快速搭建自己的研发、测试、验证、发布流程。开发者提供代码或合并其开发分支到集成分支触发发布流水线的运行,软件自动完成代码扫描、软件构建、部署到测试环境,完成集成测试。如果成功完成验证,自动合并到待发布分支,软件到达可发布状态后通知发布负责人,发布到生产环境,同时准备回滚预案。最终可发部版本的发布部署,由发布窗口及人工审核来决定。在整个持续集成和持续发布流程中,均有钉钉及邮件反馈集成和发布的结果。
image.png

2. 云效流水线的特性

优质的使用体验:(提供)数十种通用的模板来帮助企业快速创建流水线,提供可视化编排和结果展现,所见即所得,更支持定制企业自有模板来管理企业持续集成和持续交付流程。
支持多种交付模式,支持业内通用代码仓库、主流语言框架,供企业灵活选择;提供各种分支管理能力、持续交付模式,让研发过程顺畅自然。
提供自动化测试能力确保交付质量。内置代码扫描、安全扫描和各种自动化测试能力,支持人工测试卡点、自动化验证卡点等多种质量红线,确保业务交付质量。
强大的发布支持保障稳定交付。和阿里云产品深度集成,支持不同国家不同云厂商以及专有云环境发布。通过灰度发布、分批发布的策略,最大限度的避免了不稳定发布对用户的影响,保障业务交付的稳定,以上就是对云效这款产品的介绍。
image.png

三、最佳实践系统搭建

关于本实践的完整系统搭建,大家可以通过https://bp.aliyun.com/detail/52这个链接来访问。里面不仅包含最佳实践场景和完整的搭建过程,还有相关的客户案例,如有态度、卓动信息和晟运科技等等都是参考这个最佳实践,实现容器应用的DevOps及全生命周期的应用管理和发布。下面简单介绍下工具准备和开通资源。

  • 工具准备
    本方案使用了 Docker 客户端工具,需提前准备(本地电脑如果不安装客户端,也可以登录容器集群上的 ECS,容器集群的 ECS 默认安装了 Docker 工具)。客户端 Docker 工具下载和安装(以 Mac 为例)
  1. 进入 docker hub 官网。(https://hub.docker.com/welcome
  2. 选择对应的客户端,单击下载。
    image.png
  3. 下载完成之后进行安装,安装完成后启动 docker,docker 状态为运行中表示可用。
    image.png
  4. 使用本机的命令行工具,输入 docker 进行测试。提示如下信息表示 docker 工具已经可用,客户端 docker 环境部署完成,准备待用。
    image.png
  • 开通资源

1. RAM授权

说明:第一次开通需先授权,已经授权请跳过。

  1. 前往阿里云容器服务控制台(https://cs.console.aliyun.com/),初次使用单击前往 RAM进行授权。
    image.png
  2. 单击同意授权。
    image.png
  3. 授权成功后,进入容器服务控制台。

2. CADT进行架构部署

  1. 在 CADT 控制台(https://bpstudio.console.aliyun.com/),使用官方模板找到“容器应用 Devops_for_ACK”模板,单击基于方案新建。
    image.png
    image.png
  2. 设置 ACK 集群 worker 节点密码、集群名称、Kubernetes 版本等,RDS 暂时关闭部署(此次应用演示使用不到 RDS),最后单击保存应用。
    image.png
    image.png
    image.png
  3. 部署应用,按页面提示,依次进行对应操作即可。
    image.png
    image.png
    image.png

3. 创建命名空间

说明:创建不同的命名空间目的是让不同环境的应用运行在不同的命名空间上,做到资源隔离。

  1. 在容器服务控制台,打开命名空间页面,单击右上角的创建。输入命名空间为 dev,作为日常环境使用,并确定创建。
    image.png
  2. 继续创建预发环境使用的命名空间。
    image.png
  3. 继续创建正式环境的命名空间。
    image.png
  4. 为了不让日常环境和预发环境占用过多资源,对日常环境和预发环境进行资源配额限制。设置 dev 环境的 CPU 限制 2 核,内存限制 4Gi。
    image.png
  5. 预发环境的限制同样设置为 2 核,4Gi。
    image.png
    注:本实践 demo 为节省资源模拟不同环境使用不同命名空间,在生产时建议不同环境使用不同的 ACK 集群,不同业务可以使用不同命名空间进行隔离。

4.开通服务网格 ASM

  1. 在服务网格控制台(https://servicemesh.console.aliyun.com/),单击创建新网格。如果是第一次使用 ASM,会创建 ASM 相关 RAM 角色。
    image.png
  2. 待新建的网格处于运行中以后,进入网格管理。
    image.png
  3. 添加创建的 ACK 集群。
    image.png
  4. 部署入口网关,这里采用默认的 Ingress 入口网关。一般我们选择外部流量策略为 Local
    image.png
    此时在命名空间可以看到 istio-system 命名空间已经处于激活状态:
    image.png
  5. 在 ACK 控制台继续编辑生产环境的命名空间,设置变量名称为 istio-injection,变量值为 enabled,添加标签后确认。设置完成后生产环境就支持蓝绿部署了。
    image.png
    image.png
相关实践学习
使用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
相关文章
|
19天前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
168 2
|
9月前
|
人工智能 弹性计算 运维
ACK Edge与IDC:高效容器网络通信新突破
本文介绍如何基于ACK Edge以及高效的容器网络插件管理IDC进行容器化。
|
8月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
561 272
|
9月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
8月前
|
存储 运维 Kubernetes
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
飞轮科技推出了 Doris 的 Kubernetes Operator 开源项目(简称:Doris Operator),并捐赠给 Apache 基金会。该工具集成了原生 Kubernetes 资源的复杂管理能力,并融合了 Doris 组件间的分布式协同、用户集群形态的按需定制等经验,为用户提供了一个更简洁、高效、易用的容器化部署方案。
359 16
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
|
6月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
152 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
6月前
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
|
7月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
119 1
|
7月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
7月前
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多