LoginSignup
0

More than 5 years have passed since last update.

[CI/CD] brief talk about Netflix challenges

Posted at

from How We Build Code at Netflix
pasted image 0.png

to be better, faster, and easier

Binary Dependencies

Netflix開發了名為Nebula的Gradle plugins集合
並且使用Gradle做為build system的工具

其中Nebula dependency-lock plugin可針對特定版本來lock dynamic dependency
Nebula resolution rules plugin可訂定rule來規範解析dependency

Bake Time

當jenkins收到git commit異動trigger job後
會執行Spinnaker pipeline

Nebula ospackage plugin會將application打包Debian or RPM package
Spinnaker取得package後會call Bakery API to trigger a bake
執行install package然後產生image至Amazon Machine Image(AMI)
配合snapshot進行客製化AMI處理
6a00d8341c534853ef01a5118edb3c970c.png

3 layers of volumes

  • the foundation image(OS image)
  • the base AMI(the vast majority of customization happens)
  • application's AMI

Immutable Server

至於為什麼要產生他們簡稱的operating system package
因為Netflix deployment是採用Immutable Server pattern
Immutable Infrastructure or Immutable Delivery

與其費時設定可讓application作業且生命週期短暫的infrastructure環境
不如製做可重覆使用的AMI
利用AMI launch instance來跑測試驗證完成CD
可減少infrastructure跑完測試後要回覆原狀的不確定性
簡單的說就是要實現Stateless

Container

如果能提供local container-based的cloud環境
container deployed locally不需做多餘修改
相信有機會解決dependency和bake時間過長等以上兩大課題

另外有關Immutable Container可參考這篇心得筆記

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0