GitHub Action + ACK:云原生 DevOps 落地利

简介: 据信通院《中国 DevOps 现状调查报告(2020年)》显示,63% 的企业已经实践落地 DevOps,采用持续交付流水线打通开发、测试、部署和运维多个环节。但是依然有 20% 的企业反馈实践 DevOps 复杂,自建 Jenkins 需要自部署及插件运维,而 SaaS 化 CI/CD 工具又配置繁琐,希望有更轻量便捷的工具加速其转型落地。

头图.png

作者 | 瑶靖
来源 | 阿里巴巴云原生公众号

据信通院《中国 DevOps 现状调查报告(2020年)》显示,63% 的企业已经实践落地 DevOps,采用持续交付流水线打通开发、测试、部署和运维多个环节。但是依然有 20% 的企业反馈实践 DevOps 复杂,自建 Jenkins 需要自部署及插件运维,而 SaaS 化 CI/CD 工具又配置繁琐,希望有更轻量便捷的工具加速其转型落地。

目前,阿里云与 GitHub 联合发布了快速部署至阿里云 ACK 的 GitHub Action Workflow。无需再自建部署维护 CI/CD 工具,基于开箱即用的 GitHub Action 及阿里云部署模板,即可实现 GitHub 代码变更后,自动应用打包构建上传阿里云容器镜像服务 ACR、快速部署至阿里云容器服务 ACK 的流程。本文将从 GitHub Action、阿里云容器服务及实践 Demo 来为您详细介绍。

1.jpg

图 1 - GitHub Action 支持阿里云部署模板

GitHub 与阿里云联合发布 GitHub Action Workflow

1. 关于 GitHub Acticon

2.jpg
图 2 - GitHub Action 首页

GitHub Action 是 GitHub 2018 年 10 月推出的内置持续集成工具,简化自动化构建、测试、部署的流程。GitHub Action 通过将持续集成的原子操作封装成 Actions,再基于 Workflow 流程定义,将多个 Action 组装成可复用的模板,实现 GitHub 事件更新后自动触发执行 Action 流程。

GitHub Action 有以下特点:

  • 开箱即用:GitHub Action 是 SaaS 化托管服务,可通过申明指定在 GitHub VM 或者容器内部执行任务,保障业务高峰时期的弹性扩容。同时,也支持添加您自主托管在云上或者 IDC 的机器来执行任务,定制任务执行的环境。
  • 灵活便捷:支持 Linux、macOS、Windows 多平台,虚拟机及容器运行环境。支持 Node.js、Python、Java、Ruby、PHP、Go、Rust、.NET 等多语言和框架。支持矩阵构建,实现多平台多环境并行兼容测试,提高软件测试集成效率。
  • 限额免费:GitHub Action 针对公开仓库及自主托管的 runner 是免费的,针对其他 GitHub 规格有免费的存储及任务运行时长,超额后按量收费,具体收费信息参考:http://t.tb.cn/69r7pJmDOlTsLN724CgrlO。
  • 开放生态:GitHub Action 使用 YAML 脚本编写,它们可以像代码片段一样被编辑和复用。GitHub Action Marketplace 也提供了云厂商认证及三方提供的 GitHub Action 模板,您可直接使用或二次定制。

GitHub Action 的核心概念分为以下四个部分:
 

  • Workflow:基于代码仓库的一次持续集成运行过程,可以设置定时或者由 GitHub 事件触发。Workflow 文件采用 YAML 格式定义,存放在代码仓库的 .github/workflows 目录下。一个代码仓库可以有多个 Workflow 文件,GitHub 识别到目录下的 .yaml 文件,就会并行执行这些 Workflow。
  • Job:一个 Workflow 由多个 Job 构成。默认 Job 会并发执行,也可以设置 Job 顺序执行,实现有前后逻辑依赖的 Workflow。
  • Step:一个Job 由多个 Step 构成。同一个 Job 下的 Step 会在一个 Runner 上执行,保证环境及数据的共享。
  • Action:一个 Step 由多个 Action 构成。Action 是独立的命令集,也基于 YAML 代码定义的,开发者可以像代码一样编辑、重用以及共享。

以下是一个简单的 GitHub Action Workflow 示例,定义了由两个 Step 组成的 Job。其中,第一个 Step 复用了社区的 actions/checkout@v2 模板,执行当前代码库的检出,第二个 Step 则直接执行了 Bash 命令。

name: Greeting
on: pushjobs:my-job:name: My Jobruns-on: ubuntu-lateststeps:- name: Checkoutuses: actions/checkout@v2- name: Greetingrun: |echo 'Welcome to Alibaba Cloud!'

GitHub 与阿里云联合发布的 GitHub Action Worflow,定义了多个 Step,支持快速构建及部署至阿里云容器服务 ACK。具体 Workflow 的定义,可参考链接:http://t.tb.cn/60eKsjLUTOKijV4NjGizeq。

2. 关于阿里云容器服务

如果说 GitHub Action 是实践 DevOps 的瑞士军刀,那么阿里云容器服务就是落地云原生 DevOps 的最佳界面,功能丰富又便捷易用。阿里云容器服务 ACK(Alibaba Cloud Container Service for Kubernetes)是全球首批通过 Kubernetes 一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级 Kubernetes 容器化应用的生命周期管理。ACK 在阿里集团内作为核心的容器化基础设施,有丰富的应用场景和经验积累,包括电商、实时音视频、数据库、消息中间件、人工智能等场景,支撑广泛的内外部客户的 双11 活动。同时,容器服务将阿里内部各种大规模场景的经验和能力融入产品,向公有云客户开放,提升了更加丰富的功能和更加突出的稳定性,容器服务连续多年保持国内容器市场份额第一。 

3.jpg

图 3 - 阿里云容器服务产品家族

在应用管理领域,针对阿里的大规模实践和企业的丰富生产实践,阿里云进一步增强了可靠性、安全性,并且提供可赔付的 SLA 的 Kubernetes 集群 - ACK Pro 版。ACK Pro 版集群是在原 ACK 托管版集群的基础上发展而来的集群类型,继承了原托管版集群的所有优势,例如 Master 节点托管、Master 节点高可用等。同时,相比原托管版进一步提升了集群的可靠性、安全性和调度性能,并且支持赔付标准的 SLA,适合生产环境下有着大规模业务,对稳定性和安全性有高要求的企业客户。

在应用制品管理领域,面向安全及性能需求高的企业客户,阿里云推出容器镜像服务企业版 ACR EE,提供公共云首个独享实例的企业级服务。ACR EE 除了支持多架构容器镜像,还支持多版本 Helm Chart、Operator 等符合 OCI 规范制品的托管。在安全治理部分,ACR EE 提供了网络访问控制、安全扫描、镜像加签、安全审计等多维度安全保障,助力企业从 DevOps 到 DevSecOps 的升级。在全球分发加速场景,ACR EE 优化了网络链路及调度策略,保障稳定的跨海同步成功率。在大镜像规模化分发场景,ACR EE 支持按需加载,实现镜像数据免全量下载和在线解压,平均容器启动时间降低 60%。目前已有众多企业生产环境模使用 ACR EE,保障企业客户云原生应用制品的安全托管及多场景高效分发。

如果你在容器镜像的使用方面有什么问题,欢迎点击填写调查问卷,我们将随机挑选 10 位参与者,赠送阿里云容器镜像服务(企业版)ACR EE 优惠券

基于 GitHub Action + ACK 构建云原生 DevOps 实践

下面将基于 GitHub Action 演示,如何将一个简单 Nginx 应用打包成容器镜像,托管至阿里云容器镜像服务 ACR,再自动化部署至阿里云容器服务 ACK,快速便捷地实现 CI/CD 流程。GitHub Action Demo 地址参考:http://yli16.cn/LAZxC,您可以更新对应 Yaml 文件,实现自定义业务场景。

4.jpg

图 4 - 基于 GitHub Action 的 DevOps 流程

1. 前期准备

  • 开通阿里云容器镜像服务 ACR,创建命名空间及镜像仓库,参考文档。如果您有强安全及高性能分发需求,建议使用 ACR EE 企业版实例,参考文档。
  • 开通阿里云容器服务 ACK,在 ACK 上创建一个集群,参考文档。如果您有强安全及高性能需求,建议使用 ACK PRO,参考文档。
  • 开通 GitHub 并创建仓库,代码仓库中有业务代码也包含应用部署的模板 Yaml,可参考代码示例。

2. 实践过程

1)创建 Workflow

在 GitHub 代码仓库中,点击 Actions 的 Tab 页面,会有基于当前 GitHub 项目内容推荐的 Workflow,选择部署至阿里云 ACK 的 Workflow 模板。

5.jpg

图 5 - GitHub 仓库内置 Actions

6.jpg

图 6 - 选择部署至阿里云 ACK 的 Workflow 

GitHub Action 默认会在代码仓库 .github/workflows目录下创建 alibabacloud.yml 文件。在 YAML 文件中定义监听代码发布 Release 事件,一旦事件发生就会自动触发后续集成部署的流程。您也可以搜索右侧市场中相关的 Action,自定义 Job 中的 Action 步骤。

2)更新 Workflow 中变量信息

在 Workflow 中定义了 env 环境变量,需要按照实际情况更新对应的地域、容器镜像服务、容器服务集群等信息。ACCESS_KEY_ID 和 ACCESS_KEY_SECRET 定义了阿里云账号 AK 信息,需要以密文形式设置在仓库对应的 Secrets 中。

7.jpg

图 7 - 更新 Worflow 中对应的环境变量

8.jpg

图 8 - 更新 Secrets 信息

3)自动部署

配置完成后,默认当有一个 Release 发布后,会自动触发 GitHub Action 执行任务。点击 Actions 按钮,可以看到对应的任务执行历史和详情。整个工作流是顺序执行的,一旦其中某个任务执行失败后,整个工作流都将终止执行。可实现容器镜像推送至 ACR 后,发现有高危安全漏洞,立即取消后续容器部署至 ACK 流程。当构建、安全扫描及部署流程顺利完成,则在 ACK 上会基于新的容器镜像生成一个 nginx 服务。将安全风险识别及决策内置全链路中,实践安全高效的 DevSecOps 流程。

9.jpg

图 9 - Workflow 执行历史

4)扩展

您可以在 GitHub Action Marketplace 上寻找需要的 Action 任务模板,来实现自定义的 Workflow 流程。目前,GitHub Action 上已经有丰富的 Action 模板,覆盖了多种语言的代码依赖、代码集成、代码质量等多种场景。可以基于模板快速构建出一个支持多操作系统及多语言框架下的 Workflow 矩阵,并行测试项目的多个版本。

10.jpg

图 10 - GitHub Action Marketplace

指引云原生时代落地 DevOps 的新路径

相较于传统的 Jenkins 工具,GitHub Action 是 SaaS 化托管服务,无需部署及插件运维。只需简单定义或复用官方 Workflow,即可实现便捷的 CI/CD 场景。相较于 Travis CI /Circle CI,GitHub Action 是 GitHub 推出的原生工具,集成体验及灵活性更佳,并且有更丰富的 Action Marketplace 生态支持,让用户可以更便捷复用及自定义 Workflow。

如今 GitHub Action 也内置支持了自动构建推送阿里云容器镜像服务 ACR,自动部署阿里云容器服务 ACK 的 Workflow,指引云原生时代落地 DevOps 的新路径。希望可以帮助更多企业在享受云原生技术红利同时,加速完成企业级的数字化转型和架构升级。

原文链接

本文伟阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7硬盘安装工具_如何重装电脑安装Win7 系统?最简单,最便捷的办法,值得收藏...

没有U盘、没有光盘怎么安装Win7系统?最简单、最方便的就是用硬盘安装了。在保证能进入系统的前提下,本地硬盘安装Win7系统,能够让你快速体验新的Win7系统。一、安装前准备保证能够正常进入系统;下载Win7系统:64位&…

网络架构优化--云企业网典型场景分析for客户

简介: 网络架构优化--云企业网典型场景分析for客户1. 背景描述 客户从传统的高速通道迁移到云企业网,加入云企业网的VPC,VBR默认全通,但是实际业务场景需要更严格的策略做选择性放通。此外,由于测试账号没有实际专线和…

五个问题,三大策略,手把手教你定制App性能监控方案

作者:友盟U-APM团队 Why? 为什么要做应用性能监控? 首先,我们要知道应用性能监控具体指什么?以及目的: 监控是一套完整的“监视报警”的系统。对于像我们这样的App开发者来说,应用性能监控是衡量App的第…

c++ 打印条码_金蝶盘点机PDA仓库条码管理之——外购入库扫码开单操作

优势点:收到供应商送货后,仓管员手持盘点机PDA现场将需要入库的商品按顺序扫描一遍,即可自动生成电脑软件金蝶里的【外购入库单】,避免仓管员往返电脑费时费事,和人工手工电脑录单效率低容易出错的问题,从而…

我在架构设计和代码开发中的一些常用原则

简介: 在日常的开发和设计过程中,大家对技术设计上的一些问题往往会面临很多的选择,不同的人会有不同的选择。本文介绍的就是我在工作中遇到的一些问题而总结和使用到的一些常用原则。 不管我一生中取得了多大的成功,其主要原因都…

坚持自主创新,凌波微步完成数千万A轮融资,加速半导体产业

随着5G、互联网、大数据、人工智能以及汽车电子等新技术、新产品的广泛应用,半导体产业已成为国民经济的基础性支撑产业。它是支撑经济社会发展,保障国家安全的战略性、基础性和先导性产业,其发展程度是衡量一个国家科技发展水平的核心指标之…

当程序员具备了抽象思维

简介: 若想捉大鱼,就得潜入深渊。深渊里的鱼更有力,也更纯净。硕大而抽象,且非常美丽。 作者:张建飞 若想捉大鱼,就得潜入深渊。深渊里的鱼更有力,也更纯净。硕大而抽象,且非常美丽…

平板电脑连接投影仪_交互式触控幼教白板如何与平板进行连接-微幼科技

现代智慧教学中离不开智能产品的辅助,电脑、平板就是其中之一。然而这两种电子产品的显示屏尺寸太小,并不能用于多人教学中。而55寸甚至上百寸幼教白板的出现,则可以解决多人互动教学的问题。那么,交互式触控幼教白板如何与平板进…

搭载了HarmonyOS 2的华为nova9,有哪些眼前一亮的功能?

9月23日,华为正式发布了nova9系列手机。作为年轻人的鸿蒙影像旗舰,nova9系列搭载了面向万物互联时代的HarmonyOS 2,沿袭nova品牌的年轻潮美基因,聚焦年轻人群的影像社交需求,在外观、影像、快充等多方面带来了创新突破…

谈AK管理之进阶篇 - 如何有效控制云上[最后一把密钥]的风险?

简介: 上一期“谈AK管理之基础篇”,我们讲了如何规范的进行访问密钥生命周期管理。通过分出不同权限的阿里云RAM子账号,将不同的权限分给不同的用户,这样一旦子账号泄露也不会造成全局的信息泄露。但是,由于子账号在一…

备案域名绑定服务器后 提示需要备案_小程序开发需要多少钱?

现在越来越多的企业想通过微信小程序来宣传产品,为什么小程序那么火爆呢?奥晶科技为您解答,其优点不言而喻:1. 小程序建设的成本比APP建设成本低;2. 小程序能紧跟市场发展潮流,随时更新功能;3. …

Nacos配置安全最佳实践

简介: 本文讨论了自建Nacos和阿里云MSE的配置安全原理。并提出配置安全最佳实践。 作者:鲁严波 前言 配置管理作为软件开发中重要的一环,肩负着连接代码和环境的职责,能很好的分离开发人员和维护人员的关注点。 Nacos的配置管理…

云原生之上,亚马逊云科技发布多项容器与Serverless服务,持续发力现代化应用

亚马逊云科技持续发力现代化应用领域,在中国区域新推多项容器与Serverless服务及功能 在中国区域推出Amazon ECS Anywhere、Amazon Lambda容器镜像功能以及Amazon EMR on EKS等 2021年至今已发布近50个现代化应用领域全新服务与功能 编辑 | 宋 慧 出品 | CSDN云计…

2B 领域下低代码的探索之路

简介: 低代码将成为B端服务领域的基础设施,必将颠覆传统开发方式,未来可期。 作者:天晟 前言 大家好,我是钉钉宜搭前端一个小团队的负责人天晟,在阿里做了五年的低代码。今天的分享我们不讲技术细节&…

启动延时缩短 50%-80%,函数计算发布镜像加速功能

简介: 容器镜像因其颠覆式创新成为云原生时代应用部署格式的事实标准。头部云厂商 FaaS (Function-as-a-Service) 服务如阿里云函数计算、AWS Lambda 也相继在 2020 年支持使用容器镜像部署函数,全面拥抱容器生态。 作者 | Shuai Chang 阿里云云原生 Se…

易点云在京发布璇玑调度系统 中小企业办公IT升级步伐加快

中小企业是中国经济的基本细胞。数据显示,中小企业数量占我国企业总数的90%以上,对全国GDP的贡献达65%、税收贡献超过50%、解决了75%以上的城镇就业。 这些规模庞大的中小微企业的IT基础设施水平远远低于大型企业,“得过且过”是中国中小企业…

MaxCompute作业日常监控与运维实践

简介: MaxCompute作业日常监控与运维实践 监控项目作业超时运行 案例一 专用于业务团队取数的project_A ,基本都是手动跑SQL查询,每个作业执行基本不会很长时间,由于目前使用的是包年包月计算资源,为了防止单个作业…

resttemplate post提交json_SEO工具脚本,Python百度普通收录API提交工具

百度收录问题一直是不少渣渣头痛的问题,而官方其实提供了普通收录和快速收录这样的接口,直接调用官方api接口,大力出奇迹,你需要相信,你尽管seo,有排名算我输,不收录,怎么会呢&#…

OpenKruise 如何实现 K8s 社区首个规模化镜像预热能力

简介: OpenKruise 是阿里云开源的云原生应用自动化管理套件,也是当前托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目。它来自阿里巴巴多年来容器化、云原生的技术沉淀,是阿里内部生产环境大规模应用的基于 Kubernetes 之…

云原生时代,底层性能如何调优?

作者 | 宋慧出品 | CSDN云计算(ID:CSDNcloud)现在,当企业提及数字化转型,上云用云的话题时,言必谈及云原生。在云原生吞噬一切的口号下,云原生被频繁、高热度的讨论之后,其真正的价值…