$30 off During Our Annual Pro Sale. View Details »

用 AWS CodeDeploy 解決程式佈署

Gea-Suan Lin
September 20, 2018

用 AWS CodeDeploy 解決程式佈署

Gea-Suan Lin

September 20, 2018
Tweet

More Decks by Gea-Suan Lin

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. Live Demo Again
    ● 串 GitHub 與 CodeDeploy。

    View Slide