Packer与CloudFormation的简单介绍

前言:

最近学到了用Docker、AWS(CloudFormation)、Bitbucket、Buildkite、Packer来创建EC2实例来跑代码的一套流程,在这里主要对Packer进行介绍,之后有机会再补上CloudFormation的内容。

文章内容如下

1.什么是CloudFormation?

2.什么是AMI?

3.什么是Packer?

4.了解了以上的一些信息之后,我们来看一下从代码提交开始是怎么一步步执行的。

5.为什么是Packer?别的技术不行吗?

6.我该怎么快速了解这个Packer并投入使用?

在介绍Packer之前,我们先来介绍一下前置知识。

1.什么是CloudFormation?

A CloudFormation template describes your desired resources and their dependencies so you can launch and configure them together as a stack. You can use a template to create, update, and delete an entire stack as a single unit, as often as you need to, instead of managing resources individually.

上文是摘自AWS官网的描述,CloudFormation stack 可以理解成要创建的AWS服务和一些参数的集合

2.什么是AMI?

AMI 全称是 Amazon Machine Image,AWS 官方提供了很多现成的 AMI, 就跟 Docker Registry 提供了很多 Base Image 一样, 为了一些定制的需求,就是启动 EC2 节点时指定的操作系统的镜像。
截屏2020-11-29 上午1.46.15

3.什么是Packer?

自动化打包镜像的轻量级开源工具,可凭借单一配置文件,高效并行的为多云平台创建一致性的镜像

同样上文可能仍然会有一些疑惑,在这里我介绍一下我所了解到的AWS和Packer的整合方式:

1.Packer会从AWS提供的AMI中选择一个来deploy,使其成为一个EC2实例(这里以EC2来举例,它还可以包括其他实例的AMI,下同)

2.使用所有自定义配置来配置这个EC2实例,然后从这个EC2实例中创建一个AMI

3.一旦创建好了一个AMI,那么一开始部署的这个EC2就会被销毁。

一开始我并不是很能区分Packer和CloudFormation之间的区别,事实上,Packer专注于对EC2的配置,而CloudFormation则更高一级,他里面不仅有EC2、还包含着S3、LoadBalance、SNS、环境变量等一些配置。

4.了解了以上的一些信息之后,我们来看一下从代码提交开始是怎么一步步执行的。

截屏2020-11-29 下午10.38.26

以下是对上图的简单文字介绍:

1.首先本地push代码到Bitbucket之后,由于Pipeline的配置会触发Pileline的build流程,Fetch在Bitbucket中新的代码

2.在我们的Pipeline的配置文件中,第一步我们执行一些对Template的验证、跑一下测试方法(在图中并没有画出)

3.Create AMI

3.1验证Packer 和CloudFormation的Template没有问题后,就Packer出场,通过Packer Template,在AWS商店中找到相应的 AMI
3.2 将这个AMI部署成EC2后,在此EC2上根据Template配置SSH、添加一些文件(比如传一些脚本上去),你可以在官网上找到这 配置的意义https://www.packer.io/docs/builders/amazon-ebs.html
3.3 将这个EC2变成我们自定义的AMI,会在下面的CloudFormation中用到

4.Deploy(这里本来还应该有部署到测试环境,此处省略了)
4.1 通过CloudFormation配置的AWS服务之间的关系、参数来创建我们的AWS堆栈(这里举个例子:比如一个博客网站,他可能需要一个S3、ALB(一种LoadBalance)、EC2(当然这里还要配置一下,使用我们刚才Packer创建的AMI来部署这个EC2)、SNS)

读到此相信你对Packer和CloudFormation已经有简单的了解了,那么我们再来回头看这个Packer。

5.为什么是Packer?别的技术不行吗?

在回答此问题前,我们先来看看传统的可变基础架构:

在传统的可变服务器基础架构中,服务器会不断更新和修改。使用此类基础架构的工程师和管理员可以通过SSH连接到他们的服务器,手动升级或降级软件包,逐个服务器地调整配置文件,以及将新代码直接部署到现有服务器上。

这样会造成一个问题: 配置漂移,即当构建好的服务被部署在服务器上后,由于有人登陆该服务器并修改了一个东西,导致该服务的配置被更改,从而使机器上的实际配置与源代码管理的配置不一致

不可变基础架构:

一个不变的基础设施是另一个基础设施范例,他们部署了服务器之后决不会被修改。如果需要以任何方式更新,修复或修改某些内容,则会根据具有相应更改的公共映像构建新服务器以替换旧服务器。经过验证后,它们就会投入使用,而旧的则会退役。

不可变基础架构的好处包括基础架构中更高的一致性和可靠性,以及更简单,更可预测的部署过程。

Packer正是一个不可变基础架构的解决方案(当然还需要借助其他工具一起完成不可变服务器的搭建)。

他可以将Develop->Deploy->Configure的步骤变成Develop->Configure->Deploy

6.我该怎么快速了解这个Packer并投入使用?

1.首先推荐一个我在学习过程中看的介绍视频:https://www.youtube.com/channel/UC2sYgV-NV6S5_-pqLGChoNQ

可以在下面的频道上看到Packer的介绍和简单入门使用。

2.Packer官网:https://www.packer.io/docs/builders/amazon/ebs

这个链接导向的是Packer与AWS整合部分。

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • 前面的两部分介绍基础设施即代码以及部署的方式。和虚拟机相比,Docker作为操作系统级别的虚拟化技术,特别适用微服...
    iambowen阅读 7,776评论 0 15
  • 背景 如果只是在一台主机或者虚拟机上面运行一个容器,那么Docker命令行就足够了,e.g: docker run...
    魔镜的技术心经阅读 1,095评论 1 8
  • You are designing Internet connectivity for your VPC. The...
    TR老于阅读 711评论 0 0
  • Docker工具分类列表 编排和调度 持续集成/持续部署(CI / CD) 监控 记录 安全 存储/卷管理 联网 ...
    Anoyi阅读 3,723评论 1 44
  • 容器生态系统正以前所未有的速度不断增长和扩大,并且拥有这么多的Docker工具和服务,仅仅了解这些工具有用的选项,...
    运维前线阅读 896评论 0 5