用 AWS CodeDeploy 解決程式佈署

8327d09b0bd5ac97409aa10f927b3c30?s=47 Gea-Suan Lin
September 20, 2018

用 AWS CodeDeploy 解決程式佈署

8327d09b0bd5ac97409aa10f927b3c30?s=128

Gea-Suan Lin

September 20, 2018
Tweet

Transcript

  1. 用 AWS CodeDeploy 解決程式佈署 Gea-Suan Lin darkkiller@gmail.com

  2. CodeDeploy 是什麼? • https://aws.amazon.com/tw/codedeploy/ • 口語:「把程式丟到機器上」 • 目前支援三種情境: ◦ EC2

    instance ◦ On-premise instance ◦ Lambda
  3. CodeDeploy 的費用 • 沒有低消,用多少算多少。 • 佈署到 EC2 instance (同區?) 不用額外費用。

    • 佈署到 On-premise instance 目前為 USD$0.02/台/次。
  4. CodeDeploy 的好處 • 專注於 Deployment 的工具: ◦ Deployment Type ◦

    Rollback ◦ Notification • 與 AWS 的服務整合。
  5. CodeDeploy 的缺點 • 沒有 Incremental Deployment。 • 不是很穩定的速度。

  6. 其他常見的 Deploy 方案 • 使用 SSH 的方式: ◦ Capistrano •

    使用設定管理工具: ◦ Chef ◦ Puppet • 使用 Container 的方式: ◦ Docker
  7. Live Demo • 在 AWS 上的 EC2 instance。 • 非

    AWS 裡的 VPS。 • 小抄: ◦ https://wiki.gslin.org/wiki/AWS_CodeDeploy • 工具: ◦ https://github.com/gslin/codedeploy-makefile
  8. CodeDeploy 的已知問題 • Ubuntu 18.04 的安裝問題。 • 無法任意下載最新版本。 • 沒有

    Queue 的機制。
  9. Ubuntu 18.04 上的安裝 • https://github.com/aws/aws-codedeploy-agent/issues/158 ◦ 參考 2018/08/01 我寫的 workaround

    script。 • 兩個項目要繞過: ◦ 安裝程式的檢查。 ◦ codedeploiy-agent 的相依性。
  10. 在開機時下載最新版本 • 通常不會是太大的問題... • 但 race codition 很討厭。

  11. Queue 機制 • 用 AWS CodePipeline 解決。

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

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

  14. Live Demo Again • 串 GitHub 與 CodeDeploy。