preloader
心得

重點整理 - AWS 協助客戶進行 DevOps 的經驗分享 | AWS summit Taipei 2019

重點整理 - AWS 協助客戶進行 DevOps 的經驗分享 | AWS summit Taipei 2019

Aws summit 協助客戶邁向 DevOps 流程經驗分享  

2019-06-13 13.14.42.jpg - AWS summit Taipei 2019

 

  1. 重點摘要

    • 聽客戶痛點,找出原因,做最少改動達成想要的效果。不一定照圖施工,就會保證成功。

    • 不一定要改上aws或改動現在正在使用或者導入中的工具

      • 因為團隊會抗拒
    • 人工最常失誤的地方,例如部署,退版。

    • 改善流程

      • 減少流程中,涉及人工的操作。手動做超過三次就要想辦法自動化。
    • 訂定衡量標準,檢視導入 DevOps 改善多少程度

    • 花最多時間是花在看 log ,其次是導入 CI/CD 方法  

  2. 客戶案例與改善方法

  客戶既存做法 AWS SA 建議做法
Plan CTO預期服務上 AWS 之後,開發團隊能夠更快交付新功能,但仍然緩慢 上 AWS 只是讓 infra 團隊更有效率做事,但對開發團隊幫助有限,需要從改善流程著手。
Code 每人固定維護自己的一條分支,不定期從上次release 版本 merge code ,或是從別人的分支某次穩定版 merge code,並基於 merge 後的程式碼,繼續往自己分到的票開發下去。很複雜的流程。 修改分支規則:a) 依照功能開分支,一功能一分支 b) 打 git tag 號
Test 跟Code一樣很複雜的流程,部署在測試環境上。 預計要測的程式碼一律合併要測試的其他功能分支在固定名稱的分支,有利於自動化打包和測試。若合併程式碼時遇到衝突時,在開發者本機解完衝突推上github後,再測試
Build 若測試過沒問題,每個測試版本各自打包成一個 AMI,所以會有很多個 AMI 測試過沒問題,只做一個AMI,並配合制定 ec2 tag 和 S3 bucket 路徑 tag 的設定,對 AMI 打不同 tag,程式碼依據不同 tag 做不同事情。制定EC2 tag 和 S3 bucket 路徑配合命名規則如下:$部門/$案子/$環境,用帶入變數的方式,讓不同環境的部署,使用同一套流程
Release 選擇一個看著適合的 AMI,每月release 一次,一次八小時。每個Sprint時,每人輪流當release manager 並且負責解程式碼衝突 兩週release 一次, 一次40分鐘
Package (沒講) (沒講)
Configuration 每次連進機器,手動git pull 程式碼 用git hook 呼叫powershell 腳本 驅動 jenkins 去包裝一個可以release 的版本,然後自動部署。
Deploy (沒講) 每天Deploy to dev 環境,全自動化部署在開發、測試、staging環境。因為客戶需求,在正視環境仍是手動按按鈕去觸發自動部署。部署到正式站之前,先備份環境和資料。
Validation 一個現在要上線的版本、一個要退版的版本 (沒講)
Operation (沒講) (沒講)
Feedback (沒講) (沒講)

 

 

採用AWS SA 建議做法後,效果如下圖:
  • 更常部署到環境上,從每月變成每天部署
  • 部署時間變短,從 8 小時變成 40分鐘
  • 退版時間變短,縮減為 10 分鐘 

 

2019-06-13 13.17.42.jpg - AWS summit Taipei 2019

AWS 上關於 DevOps 相關學習資源連結截圖:

2019-06-13 13.54.04.jpg - AWS summit Taipei 2019