阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%

简介: 阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%

【阅读原文】戳:阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%

作者:蔡靖、周章金、周晓晖

 

万兴科技深耕数字创意软件领域,并面向AIGC时代深度布局,旗下已推出万兴喵影、万兴播爆等视频创意软件。自2023年以来,AIGC如火如荼,万兴科技也蓬勃发展,业务在全球加速扩张。

 

随着业务的发展,万兴科技业务团队需要管理的K8s集群越来越多,且分布在多个地域,对集群管理的复杂度也越来越高,对分布式、多集群交付平台的需求也越来越强烈,经过详尽的调研后,最终选定基于ACK One GitOps来做多集群的分布式交付。

 

 

 

 

多集群交付痛点

 

 

 

随着业务蓬勃发展,当前业务发布更多地依赖人工,痛点主要有以下几点:

 

1)提升部署效率、减少失误可能性

 

阿里云上ACK和云下IDC共数十个Kubernetes集群,逐个集群逐个应用部署效率较低,需要提高效率,并减少人工操作失误的可能性。

 

2)优化发布追踪和回滚流程

 

难以追踪每一次发布记录,且回滚需要重新走一次发布流程。

 

3)多部门多租户应用权限管理困难

 

传统模式下,要管理每位用户可操作的应用存在较大挑战,易导致用户在操作中影响到其他团队或用户的应用。

 

 

 

 

ACK One GitOps方案

 

 

 

分布式云容器平台ACK One是阿里云面向混合云、多集群场景推出的企业级分布式云容器平台,提供多集群统一管理能力。通过全托管Argo CD,在开源能力基础上提升稳定性和体验等,并集成阿里云上多项能力,为客户提供开箱即用的Argo CD能力,快速、一致、安全地实现多集群的应用持续部署。


 

 


GitOps是使用Git仓库来管理应用的部署模板,将Git仓库作为Kubernetes集群中部署应用的唯一来源,实现应用的持续部署。ACK One GitOps依托这一理念,在ACK One GitOps中建立应用与集群的关系后,仅需提交代码(push commit)到Git仓库,即可完成业务应用的自动部署/同步到相应集群,大幅减少人工操作、提升发布效率。

 

ACK One支持通过注册集群将云下IDC Kubernetes集群注册到ACK上。在此基础上,万兴科技通过ACK One舰队,开发并实施了一系列高效管理策略,对在阿里云上ACK和云下IDC的数十个Kubernetes集群进行统一管理。同时,万兴科技深度运用ACK One GitOps,实现数千个Argo CD applications的稳定高效地自动化持续部署、灰度发布,并实现基于阿里云RAM的应用级别的权限管理。

 

 

 

 

落地过程中万兴团队解决的问题

 

 

 

1. 随着业务在全球范围内的快速发展,万兴科技跨境发布频次快速增长,从国内到美西、欧洲的发布,最初通过公网发布,多次遇到超时问题。万兴科技灵活调整策略,切换为通过专线发布,成功解决了这一问题,确保发布的稳定和高效。

 

2. 当ArgoCD同时有多个应用发版时,Gitlab的默认配置难以承受压力,万兴科技团队在Gitlab参数上进行精准优化,有效提升了系统承载能力,顺利解决了这一问题,实现了多个应用同时顺畅发版。

 

3. 一个应用会有多机房、多环境(测试、UAT、生产等)部署的需求,应用更新时,默认会触发ArgoCD的所有缓存更新,对Gitlab造成很大压力。万兴科技在与阿里云的合作中,设计并实施了针对性的解决方案,将应用更新时的缓存更新限定在特定环境,巧妙解决这一问题。


 

 

 

 

 

落地成果

 

 

 

大规模应用大规模集群的稳定分发

 

在万兴科技与阿里云的深度合作中,对网络拓扑进行了全面优化,对社区ArgoCD进行大量参数调优,精准定位并修复了社区中的缺陷,显著提升系统稳定性。当前,ACK One GitOps已可轻松支持万兴科技全球数十个集群和数千个Argo CD applications的快速、稳定、高效地持续部署。

 

自动化分发流程

 

合作过程中,万兴科技团队基于ArgoCD打造了一套自动化交付的业务平台,深度整合万兴科技的业务需求与ArgoCD能力,实现一次代码提交即可触发全球多机房自动化部署,提升了部署效率。

 

多租实现多团队权限隔离

 

ACK One GitOps通过集成阿里云RAM系统,不仅支持RAM用户SSO到Argo CD UI,还实现了基于阿里云RAM的应用级别的多租隔离管控。通过简单的配置后,即可对万兴科技多部门多租户应用权限进行隔离,提升了应用的安全性。

 

发布审计和一键回滚

 

ACK One GitOps通过全托管的Argo CD,可记录每一次用户发布,方便查看具体发布内容;同时,ACK One GitOps具备一键回滚机制,可在发布异常后,一键回滚到指定版本,减少发布失误带来的损失。

 

灵活的灰度控制

 

万兴科技团队基于业务需求,结合ArgoCD、Argo Rollouts和service mesh,构建了一套利用Metrics分析做自动渐进发布或刹车回滚的灰度方案。

 

 

 

 

总结

 

 

 

ACK One GitOps是在阿里云上落地GitOps方法论最佳工具,在保持GitOps的优秀理念之外,和云上的各种权限体系和ACK集群做了全面打通,实现了开箱即用。

 

通过与阿里云的深入合作,万兴科技深度参与该方案的落地实施,并结合业务需求进行优化,有效解决了上述业务痛点,助力应用发布效率提升了50%。

 

欢迎通过搜索钉钉群号加入ACK One客户交流钉钉与我们一同交流。(钉钉群号:35688562

 

相关链接:

 

[1] 分布式云容器平台ACK One:

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/ack-one-overview

 

[2] ACK One舰队:

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/fleet-management/?spm=a2c4g.11186623.help-menu-85222.d_2_2.1d4514abkXsG8X&scm=20140722.H_354195._.OR_help-T_cn~zh-V_1

 

[3] ACK One GitOps:

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/gitops/?spm=a2c4g.11186623.help-menu-85222.d_2_2_4.59a04a88O6uf4gACK One CI/CD

 

[4] 最佳实践:

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/ci-cd/?spm=a2c4g.11186623.help-menu-85222.d_3_6.56fa14abnAuKVq&scm=20140722.H_2802985._.OR_help-T_cn~zh-V_1



我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
5
6
0
237
分享
相关文章
超大规模云网络技术新突破!阿里云斩获中国自动化学会科技进步一等奖
超大规模云网络技术新突破!阿里云斩获中国自动化学会科技进步一等奖
102 60
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
超大规模云网络技术新突破!阿里云斩获中国自动化学会科技进步一等奖
超大规模云网络技术新突破!阿里云斩获中国自动化学会科技进步一等奖
如何不编写 YAML 管理 Kubernetes 应用?
Kubernetes 将自身边界内的事物都抽象为资源。其中的主要部分,是以 Deployment、StatefulSet 为代表的 workload 工作负载控制器,其他各类资源都围绕这些主要的资源工作。这些资源合并起来,可以为 IT 技术工作者展现出一个以 workload 为中心的模型。Kubernetes 中所有的资源,都通过声明式配置文件来编辑描述,一条条的 Yaml 字段定义,给了 IT 技术人员最大的自由度的同时,也对技术人员的能力提出了极高的要求。
使用 Kustomize 帮你管理 kubernetes 应用(二): Kustomize 的使用方法
本篇为系列文章第二篇,手把手教你使用 Kustomize 的两种方式。
4654 0
使用 Kustomize 帮你管理 kubernetes 应用(一):什么是 Kustomize ?
本篇为系列文章第一篇,介绍我对 Kustomize 的了解过程以及 Kustomize 是什么,为什么它能解决我的燃眉之急。
4214 0
管理 Kubernetes 应用,So easy!
近期,企业级分布式应用服务(EDAS)针对 Kubernetes 应用的管理功能全新上线,顶着 EDAS 的光环,其中的 Kubernetes 应用管理又是怎样一件利器呢?
2499 0
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。