GitHub Action + ACK:云原生 DevOps 落地利器,mongodb实战买书

图 2 - GitHub Action 首页

GitHub Action

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 开源分享

是 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: push

jobs:

my-job:

name: My Job

runs-on: ubuntu-latest

steps:

  • name: Checkout

uses: actions/checkout@v2

  • name: Greeting

run: |

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 中对应的环境变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DevOps 五大理念及其落地实践 研发运维一体化(DevOps)成熟度模型 中国DevOps现状调查报告及解读 构建企业DevOps的度量体系 DevOps实践指南精要 分布式敏捷和DevOps实践案例 AWS DevOps 助力爱乐奇大规模业务扩展 AWS 云上的 DevOps 实践简介 多云环境下的 DevOps 实践 DevOps中如何系统开展微服务性能测试 “神兵”天降 - 揭秘平安 DevOps 的核心实践 大型Scrum实践银行产品敏捷转型与DevOps实践经验分享 如何基于 Jenkins 支撑腾讯上千产品的CICD SecDevOps工具链 券商DevOps转型—平安证券容器化实践之路 招行如何基于 K8S 容器技术打造 DevOps 流水线 民生银行的DevOps实践之旅 以自动化先行的 DevOps 落地实践经验 东方明珠集团基于 AWS 的 DevOps 实战分享 中小银行的DevOps 实践之路 让DevOps生产线加速的敏捷之道 云原生时代的 DevOps 新实践 新场景高效能快交付腾讯敏捷研发平台 DevOps 解决方案 中小金融企业如何开心玩DevOps DevOps 变革的剖析与实践 猎豹移动基于 AWS 构建 DevOps 实践分享 DevOps在联通IT系统的落地实施 DevOpsMadeByGoogle 流水线3.0打造DevOps落地工具链 混合云下的DevOps在vivo互联网的探索落地 大型企业实施 DevOps 的三个阶段 DevOps最佳实践之海量资源技术运营 诺基亚 DevOps 演进-大数据推动流程优化与高效执行 苏宁 AIOps 实践之路 金融云业务网络 智能采集与一体化分析实战 如何构建新一代智能运维平台 CMDB - 企业一体化运维平台的基石 用友方法+之-YSDP 研发交付平台实践之路 顺丰云计算和运维自动化团队从0到1的DevOps之旅 诺基亚的转身:数字化时代的 DevOps 转型之路 大型主机核心银行系统的 DevOps 践行之路 DevOps标准认证评估权威指南及案例解读. 浙江移动的DevOps实践 携程持续交付与构建系统实践 每天万次触发的持续交付工具链实践 Android 超大型代码的快速集成之路 基于猪齿鱼构建企业研发体系 大型制造业实践DevOps团队之路等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值