用 AWS CodeDeploy解決程式佈署Gea-Suan Lin[email protected]
View Slide
CodeDeploy 是什麼?● https://aws.amazon.com/tw/codedeploy/● 口語:「把程式丟到機器上」● 目前支援三種情境:○ EC2 instance○ On-premise instance○ Lambda
CodeDeploy 的費用● 沒有低消,用多少算多少。● 佈署到 EC2 instance (同區?) 不用額外費用。● 佈署到 On-premise instance 目前為 USD$0.02/台/次。
CodeDeploy 的好處● 專注於 Deployment 的工具:○ Deployment Type○ Rollback○ Notification● 與 AWS 的服務整合。
CodeDeploy 的缺點● 沒有 Incremental Deployment。● 不是很穩定的速度。
其他常見的 Deploy 方案● 使用 SSH 的方式:○ Capistrano● 使用設定管理工具:○ Chef○ Puppet● 使用 Container 的方式:○ Docker
Live Demo● 在 AWS 上的 EC2 instance。● 非 AWS 裡的 VPS。● 小抄:○ https://wiki.gslin.org/wiki/AWS_CodeDeploy● 工具:○ https://github.com/gslin/codedeploy-makefile
CodeDeploy 的已知問題● Ubuntu 18.04 的安裝問題。● 無法任意下載最新版本。● 沒有 Queue 的機制。
Ubuntu 18.04 上的安裝● https://github.com/aws/aws-codedeploy-agent/issues/158○ 參考 2018/08/01 我寫的 workaround script。● 兩個項目要繞過:○ 安裝程式的檢查。○ codedeploiy-agent 的相依性。
在開機時下載最新版本● 通常不會是太大的問題...● 但 race codition 很討厭。
Queue 機制● 用 AWS CodePipeline 解決。
CodePipeline 是什麼?● 把整套機制串起來的服務:
CodePipeline 的費用● 沒有低消,用多少算多少。● 一個「活著」的 Pipeline 收 USD$1/month。
Live Demo Again● 串 GitHub 與 CodeDeploy。