Information gathering เอกสารต่าง ๆ ต้องเป็น version ล่าสุด หรือ update เสมอ มีข้อมูลต่าง ๆ ที่จำเป็น หาง่าย เช่น api doc และ example ต่าง ๆ รวมทั้งพวก technical solution ต่าง ๆ
Plan and Track work ต้องรู้ว่างานต่อไปที่จะทำคืออะไร ทำงานร่วมกันเพื่อนร่วมงานเสมอ ยิ่งข้ามทีมด้วยต้องมั่นใจว่า ยังทำงานไปในทิศทางเดียวกัน เอกสารการออกแบบต่าง ๆ ต้องถูก approve แล้ว
Develop, Test and commit code ต้องเขียน high quality code, code ที่เขียนต้องมีเพิ่มร่วมทีมมา contribute ด้วย เข้าใจพฤติกรรมการทำงานของ legacy/existing code สามารถ investigate ปัญหาบนเครื่องตัวเองได้ และ ต้องสามารถนำเครื่องมือและ technology ใหม่ ๆ เข้ามาใช้ หรือ ปรับปรุงในงานได้
Experiment and rollout การ rollout สิ่งต่าง ๆ บน production ต้องมีความปลอดภัย และสามารถ run experiment ต่าง ๆ ได้เสมอ เพื่อนำผลมาใช้ในการปรับปรุงต่อไป
พอดีได้คำถามเกี่ยวกับ Mock API Server ว่ามีเครื่องมืออะไรที่น่าสนใจบ้าง ? เนื่องจากเครื่องมือที่ใช้อยู่ใน mountebank ซึ่งตอนนี้ผู้ดูแลไม่ดูแลต่อแล้ว !! จึงอยากรู้ว่ามีเครื่องมืออะไรบ้าง ?
เลยทำการสรุปไว้นิดหน่อย ตามการใช้งานบ่อย ๆ ดีหรือไม่ดีกับคนอื่นก็ไม่แน่ใจ โดยเป็นเครื่องมือสำหรับการสร้าง Mock API server แบบแยกเครื่อง หรือ process ออกมาจากระบบงาน มาดูกัน
จากการอ่านบทความเรื่อง How we run migrations across 2,800 microservices ของทาง monzo ซึ่งเป็น online banking ที่ UK ทำการเขียนบทความเรื่องการ upgrade library จากเดิมที่ใช้งาน OpenTracing และ Jaeger ที่ deprecated ไปแล้ว มาใช้งาน OpenTelemetry บน service จำนนวน 2,800 service !! มาดูกันว่าทำอย่างไรบ้าง ?
Centrally driven migrations that are transparent to service owners ลด overhead ในการทำงานร่วมกัน และลดความเสี่ยงต่าง ๆ ด้วยการสร้างทีมจัดการโดยตรงมาเลย และยังต้องสร้างความชัดเจนไปยังเข้าของ service ต่าง ๆ ด้วย ว่าผลการ migrate/upgrade เป็นอย่างไร กระทบต่อ service หรือไม่
No downtime ชัดเจนมาก ๆ มิเช่นนั้นจะกระทบต่อ business แน่ ๆ
Gradual roll forward, quick roll back จะค่อย ๆ ทำการ rollout ออกไป แต่ถ้ามีปัญหาก็สามารถ rollback ได้อย่างรวดเร็ว เพื่อลดผลกระทบที่จะเกิดขึ้น
80/20 rule when it comes to automation ในการ migrate/upgrade จำนวนมาก ๆ บบนี้ มีการเปลี่ยนแปลงที่เยอะมาก ๆ ดังนั้นจะทำการสร้าง template ของการเปลี่ยนแปลงขึ้นมา เพื่อให้ง่ายต่อการ automated ซึ่งช่วยลดความเสี่ยงต่าง ๆ ลงไปได้เยอะ