6 คะแนน โดย xguru 2020-04-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

Shopify ให้นิยามวัฒนธรรมการปล่อยซอฟต์แวร์ว่าเป็น "ผลรวมของความเชื่อและการกระทำของสมาชิกทุกคน"

"ทำให้การ Shipping ไม่ใช่งานที่ไม่อยากทำ แต่เป็นความรู้สึกของการเฉลิมฉลอง"

วิธีที่ Shopify ใช้วัดวัฒนธรรมการปล่อยซอฟต์แวร์

  • แบบรับข้อมูล: แบบสำรวจความสุขของนักพัฒนา (ทุก 2 ปี), ช่อง Slack

  • แบบเชิงรุก: dogfooding, ทีมสนับสนุนภายใน, UX research

กระบวนการปล่อยซอฟต์แวร์ของ Shopify

  • ไปป์ไลน์การปล่อย: PR → CI/Merge (Merge Queue) → Canary → Production
  • ไม่มี release manager นักพัฒนาที่รับผิดชอบ PR จะดูแลกระบวนการทั้งหมดจนถึง production

  • ไม่มีช่วงเวลาที่กำหนดไว้ตายตัว และดำเนินการได้ทุกเมื่อด้วยคำสั่ง /shipit

  • หากเกิด error/crash ให้ใช้ /shipit --emergency เพื่อปล่อยแบบ fast-track

  • ทำทุกอย่างที่ทำได้ให้เป็นอัตโนมัติ

1 ความคิดเห็น

 
xguru 2020-04-17

คิว Merge จะเข้าใจได้ง่ายขึ้นถ้าอ่านบทความที่เผยแพร่เมื่อปีที่แล้วก่อน

"Successfully Merging the Work of 1000+ Developers"

https://engineering.shopify.com/blogs/engineering/…

Shopify ใช้การพัฒนาแบบ trunk-based โดยมีการ merge คอมมิตประมาณ 400 ครั้งต่อวัน และมีการเปลี่ยนแปลงเว็บไซต์ราว 40 ครั้งต่อวัน

ดำเนินการ deploy ผ่าน Shipit engine ที่เปิดซอร์สไว้ที่ https://github.com/Shopify/shipit-engine

หลักการพื้นฐาน

  1. master branch ต้องเป็น Green อยู่เสมอ : ต้องผ่าน CI

  2. master ต้องใกล้เคียงกับ Production

  3. ต้องสามารถจัดการ merge แบบเร่งด่วนได้อย่างรวดเร็ว