PCon全球产品创新大会即将开幕,抢占最后的交流席位! 了解详情
写点什么

使用 mu 轻松建造容器应用程序的管道

  • 2019 年 10 月 30 日
  • 本文字数:2307 字

    阅读完需:约 8 分钟

使用mu轻松建造容器应用程序的管道

Amazon Elastic Container Service (ECS) 是部署容器化微服务的绝佳方法。mu 是 Stelligent 推出的一款开源工具,利用 CLI 简化了 ECS 集群所需 AWS 资源的声明和管理,让开发人员能够更轻松地开始在 ECS 上部署微服务。此外,它还利用 AWS CodeBuildAWS CodePipeline 创建了部署管道。在这篇客座文章中,来自 Stelligent 的 Casey Lee 说明了如何使用 mu 轻松创建这样的管道。


Arun




Amazon Elastic Container Service 支持大规模运行容器工作负载。此外,开发人员可以利用 AWS CodeBuild 和 AWS CodePipeline 等服务来编排其容器应用程序的构建和部署。所有构建块均可用于创建持续交付管道,从而快速持续地为用户创造价值。但是,如果开发人员需要高效配置各种 AWS 服务,让其协同工作,则需要经历漫长的学习过程。


在这篇文章中,我们将介绍 mu,这款开源工具可以简化为容器工作负载创建持续交付管道过程中必不可少的 AWS 资源声明和管理工作。它根据多方意见整理最佳实践,将其编纂为默认配置,让您可以在几分钟内为应用程序建立可靠的管道。我们直接通过实例演示该工具。


mu 管理三个主要组件:


  • 环境 – 环境包括容器运行必需的网络 (VPC) 和主机集群 (ECS 容器实例)。 环境具有根据部署到其中的所有微服务的资源需求自动扩展或缩减的能力。环境有很多 (例如,开发、试运行、生产)。

  • 服务 – 容器应用程序,将作为一组容器部署到一个或多个给定环境中。

  • 管道 – 持续交付管道,将管理一项服务在各种环境内的构建、测试和部署。


通过实例演示了解 mu

为了便于演示,我们将使用一款简单的 NGINX 应用程序。可以通过 https://github.com/cplee/hello-nginx 获取该应用程序的源代码,代码由以下 Dockerfile 组成:



```FROM nginx:stable-alpine COPY health /usr/share/nginx/html/health mu.yml 文件包含创建必需的最低配置: ### # Define 2 environments ### environments: - name: acceptance - name: production ### # Configure the service with a route for paths /* # from the ALB to port 80 in the container ### service: port: 80 pathPatterns: - /* ```

复制代码


安装过程十分简单,只需下载编译后的 mu 二进制文件并将其添加到路径中即可:


curl -s https://getmu.io/install.sh | sh
复制代码


运行以下命令创建管道。系统将提示您输入 GitHub 个人访问令牌,CodePipeline 需要使用此令牌配置提交挂钩。


mu pipeline up
复制代码






管道创建之后,您可以通过 mu 监控管道进程:



还可以通过 mu 监控 CodeBuild 项目的 CloudWatch 日志输出:



可以通过 mu 查看 ECS 服务的 CloudWatch 日志,以监控应用程序:



通过 mu 可以查看 ECS 集群的详细信息。此外,您还可以确定 ELB 的 URL,以便随后测试应用程序:




为什么要开放源代码?

Stelligent 致力于帮助客户在 AWS 上构建持续交付管道。我们的核心价值观之一就是“分享”。我们希望以开放的态度面对客户,让客户能够访问我们在与其合作时使用的工具。通过开放 mu 的源代码,我们可以强化客户对我们在其账户中使用的工具的所有权意识。


创建 mu 和开放其源代码的另一个目标是:与社区分享我们的经验所得和想法,共同探寻实施这些管道的最佳方法。我们希望社区能使用这款工具,根据自己的使用情况促进这款工具的发展演变,并积极提供反馈意见,探索如何以更好的方式处理我们尝试解决的问题。


关于 mu 开放性的最后一点:mu 开发的一个指导原则是提供一种配置 AWS 资源的轻量级方法。因此,mu 在 AWS 中创建资源后,绝不会给您造成任何阻碍。 您可以在创建管道后继续使用它,也可以放弃它,改用传统的 AWS 工具 (控制台或 CLI)。下图展示了 mu 的工作方式,它会读入 mu.yml,并生成以各方意见为依据的 CloudFormation 模板,该模板将在 AWS 账户中运行:



为 mu 贡献您的力量!

如果您对容器工作负载的持续交付管道感兴趣,我们需要您的帮助!方法如下:


  • 试用 – 访问 mu wiki 上的快速入门,下载并安装工具。您还可以根据一段简短的教程创建您的第一项服务。

  • 分享反馈 – 在我们的 Gitter 聊天室内与我们聊天,提出问题,告诉我们您的想法。此外,如果您有任何功能需求,欢迎创建新问题

  • 提交拉取请求 – 欢迎提交任何拉取请求!访问贡献指南,了解更多详细信息。




Casey LeeStelligent 的首席架构师 – 他是一位具有 DevOps 资质的高级顾问合作伙伴,自 2009 年以来一直从事在 AWS 上实施持续交付解决方案的工作。他是 AWS 认证的 DevOps 工程师 – 专业级认证和解决方案架构师 – 专业级认证。 过去 20 年来,他为包括初创公司和《财富》杂志 500 强企业在内的各类组织提供软件系统架构设计、实施和支持。


本博文中的内容和观点均源自第三方作者,AWS 对本博文中的内容或准确性不承担任何责任。


!


Arun Gupta


作者介绍:


Arun Gupta


Arun Gupta 是 Amazon Web Services 的首席开源技术专家。他在 AWS 主要负责与容器和开源有关的所有事务。他还负责 AWS 内部的 CNCF 战略,积极参与 CNCF 董事和技术会议。他曾在 Sun、Oracle、Red Hat 和 Couchbase 组建和领导开发人员社区,在此方面拥有超过 12 年的经验。他有丰富的演讲经历,在 40 多个国家/地区就各种主题发表过演讲,并且连续四年荣膺 JavaOne Rock Star。Gupta 还在美国创立了 Devoxx4Kids 分会,并继续在儿童中推广技术教育。此外,Gupta 还是一位多产的博客作者并出版过多本书籍。他热爱跑步、喜欢环球旅行。这就是 Gupta,一位 Docker 队长、一个 Java 冠军、一名 JUG 领袖、一位 NetBeans 梦之队成员。您可以访问他的博客 @arungupta,了解更多信息。
复制代码


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/pipelines-for-container-applications-made-easy-with-mu/


2019 年 10 月 30 日 08:00507

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

Go- 字符串处理

HelloBug

Go 语言 字符串处理

闲话哲科思维与软件开发

Lin

计算机 经验总结

农业第一性原理

非著名程序员

个人成长 认知提升 思维 8月日更

上游思维:先天下之忧而忧

石云升

读书笔记 8月日更 上游思维

Vue进阶(五十五):vue-cli 脚手架 build.js 配置文件详解

No Silver Bullet

Vue 8月日更

架构实战训练营模块1 作业

Sonichen

CSS的设计模式(三)ITCSS

Augus

CSS 8月日更

Spring XML 原理

gin

xml spring 自定义标签

Go- 时间与日期

HelloBug

时间 Go 语言 日期

架构实战营 - 模块一作业

en

架构实战营

类加载机制

Geek_571bdf

Java 面试 JVM 类加载器 JVM类加载

JVM GC机制

Geek_571bdf

面试 JVM 垃圾回收 GC GC Root

Mybatis 常问问题总结(附答案)

村雨遥

Java mybatis 8月日更

你的项目真的适合微服务架构吗?微服务架构有哪些痛呢?(一)

我爱娃哈哈😍

微服务 后端 架构设计 架构设计实战

小A数仓之路:数仓现状与解决方案

水滴

数据仓库 数据架构 8月日更 数据架构体系 数据规范

JVM内存划分

Geek_571bdf

面试 JVM 方法区

Go- 指针

HelloBug

指针 Go 语言

模块一作业

TIEDPAG

架构训练营

网络攻防学习笔记 Day113

穿过生命散发芬芳

网络攻防 8月日更

MySQL 系列教程之(十一)Explain 与慢查询优化

若尘

MySQL 数据库 8月日更

理性创业,堵住失败的源头

boshi

创业

NodeJs深入浅出之旅:包与NPM 🌛

空城机

大前端 Node 8月日更

Flutter 绘制动机 VSYNC 流程源码全方位分析

工匠若水

flutter android 8月日更

架构实战营-模块一作业

Geek_de900a

Java web程序的运行时环境

Geek_571bdf

Java tomcat 面试 Web JVM

Vue进阶(五十六):vue-cli 脚手架 karma.conf.js 配置文件详解

No Silver Bullet

Vue 8月日更

从程序与机器码看低代码演进方向

Lin

编程 低代码

LeetCode刷题01-简单 两数之和

ベ布小禅

8月日更

回调模式

Geek_571bdf

面试 设计模式 回调函数

深入了解RocketMQ之客户端

邱学喆

在网页上直接运行Win11,5秒内用AI克隆自己的声音 | 蛮三刀酱的Github周刊第二期

Zhendong

GitHub AI Windows11

使用mu轻松建造容器应用程序的管道_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章