Slide 1

Slide 1 text

用 AWS CodeDeploy 解決程式佈署 Gea-Suan Lin [email protected]

Slide 2

Slide 2 text

CodeDeploy 是什麼? ● https://aws.amazon.com/tw/codedeploy/ ● 口語:「把程式丟到機器上」 ● 目前支援三種情境: ○ EC2 instance ○ On-premise instance ○ Lambda

Slide 3

Slide 3 text

CodeDeploy 的費用 ● 沒有低消,用多少算多少。 ● 佈署到 EC2 instance (同區?) 不用額外費用。 ● 佈署到 On-premise instance 目前為 USD$0.02/台/次。

Slide 4

Slide 4 text

CodeDeploy 的好處 ● 專注於 Deployment 的工具: ○ Deployment Type ○ Rollback ○ Notification ● 與 AWS 的服務整合。

Slide 5

Slide 5 text

CodeDeploy 的缺點 ● 沒有 Incremental Deployment。 ● 不是很穩定的速度。

Slide 6

Slide 6 text

其他常見的 Deploy 方案 ● 使用 SSH 的方式: ○ Capistrano ● 使用設定管理工具: ○ Chef ○ Puppet ● 使用 Container 的方式: ○ Docker

Slide 7

Slide 7 text

Live Demo ● 在 AWS 上的 EC2 instance。 ● 非 AWS 裡的 VPS。 ● 小抄: ○ https://wiki.gslin.org/wiki/AWS_CodeDeploy ● 工具: ○ https://github.com/gslin/codedeploy-makefile

Slide 8

Slide 8 text

CodeDeploy 的已知問題 ● Ubuntu 18.04 的安裝問題。 ● 無法任意下載最新版本。 ● 沒有 Queue 的機制。

Slide 9

Slide 9 text

Ubuntu 18.04 上的安裝 ● https://github.com/aws/aws-codedeploy-agent/issues/158 ○ 參考 2018/08/01 我寫的 workaround script。 ● 兩個項目要繞過: ○ 安裝程式的檢查。 ○ codedeploiy-agent 的相依性。

Slide 10

Slide 10 text

在開機時下載最新版本 ● 通常不會是太大的問題... ● 但 race codition 很討厭。

Slide 11

Slide 11 text

Queue 機制 ● 用 AWS CodePipeline 解決。

Slide 12

Slide 12 text

CodePipeline 是什麼? ● 把整套機制串起來的服務:

Slide 13

Slide 13 text

CodePipeline 的費用 ● 沒有低消,用多少算多少。 ● 一個「活著」的 Pipeline 收 USD$1/month。

Slide 14

Slide 14 text

Live Demo Again ● 串 GitHub 與 CodeDeploy。