Văn hóa phát hành phần mềm của Shopify
(engineering.shopify.com)Shopify định nghĩa văn hóa phát hành là "tổng hòa niềm tin và hành động của mọi thành viên"
"Biến việc shipping từ điều không muốn làm thành cảm giác đáng để ăn mừng"
Cách Shopify đo lường văn hóa phát hành
-
Thụ động: khảo sát mức độ hài lòng của lập trình viên (2 năm một lần), kênh Slack
-
Chủ động: dogfooding, đội hỗ trợ nội bộ, nghiên cứu UX
Quy trình phát hành của Shopify
- Pipeline phát hành: PR → CI/Merge (Merge Queue) → Canary → Production
-
Không có release manager. Lập trình viên phụ trách PR sẽ chịu trách nhiệm cho toàn bộ quy trình đến tận production
-
Không có khung giờ cố định, có thể thực hiện bất cứ lúc nào bằng lệnh
/shipit -
Khi phát sinh lỗi/xung đột, phát hành fast-track bằng
/shipit --emergency -
Tự động hóa mọi thứ có thể
1 bình luận
Merge Queue sẽ dễ hiểu hơn nếu đọc trước bài viết đã được công bố năm ngoái
"Successfully Merging the Work of 1000+ Developers"
https://engineering.shopify.com/blogs/engineering/…
Shopify áp dụng phát triển dựa trên trunk, mỗi ngày merge khoảng 400 commit và site thay đổi khoảng 40 lần mỗi ngày
Việc triển khai được thực hiện thông qua Shipit engine mã nguồn mở https://github.com/Shopify/shipit-engine mà họ đã công khai.
Nguyên tắc cơ bản
Nhánh master luôn phải Green: phải vượt qua CI
master phải gần với Production
Merge khẩn cấp phải có thể được xử lý nhanh