มาช้าดีกว่าไม่มา สำหรับ Technology Radar Vol. 19 ซึ่งจะทำการ update ปีละ 2 ครั้ง
ที่บอกว่าช้าคือ ผมนี่แหละ ที่ทำการสรุปช้าหน่อย
โดยในครั้งนี้จะมีเรื่องสำคัญ ๆ 4 เรื่องคือ
- Sticky cloud
- Lingering Enterprise Antipatterns
- Enduring Engineering Practices
- Pace = Distance / Time
1. Sticky cloud
การผูกติดกับ Cloud provider ต่าง ๆ ไม่ว่าจะเป็น AWS, GCP และ Azure เมื่อเราใช้ไปเรื่อย ๆ จะพบว่ายิ่งผูกมัดมาก ๆ บ่อยครั้งจะกลับไปสู่จุดเดิมที่เคยเป็นคือ ย้ายไปไหนไม่ได้ แต่ถ้าเราได้ข้อเสนอจาก Cloud provider อื่น ๆ ที่น่าสนใจ เช่น ดีกว่าและถูกกว่า เราจะทำอย่างไร ? ดังนั้นในรายงานครั้งนี้จะเน้นเรื่องของการ portability ของระบบ เพื่อให้ระบบงานของเราย้ายไปยังที่อื่นได้ง่ายขึ้น เช่น- Run cost as architecture fitness function สำหรับดู operation cost vs สิ่งที่ส่งมอบ ว่าเป็นอย่างไรบ้าง
- การใช้งาน Kubernetes
- การใช้เครื่องมือพวก Infrastructure-as-code
2. Lingering Enterprise Antipatterns
ในองกรค์ขนาดใหญ่ที่เรามักเรียกว่า Enterprise นั้น ไม่ว่า technology จะเปลี่ยนแปลงไปอย่างไร หรือเร็วเพียงใด ก็มักจะสร้าง antipattern ขึ้นมาอย่างสม่ำเสมอ หรือจริง ๆ แล้ว มันคือการพยายามต่อต้านกับการเปลี่ยนแปลงนั้นเอง แต่ว่าจะไม่ทำก็ไม่ได้ ก็เลยต้องใช้ของใหม่ ๆ แต่ก็ยังคิดแแบบเดิม ๆ งงไหมละ ? ยกตัวอย่างของ Enterprise Antipatterns ที่เกิดขึ้น ซึ่งไม่แนะนำให้ทำ แต่ละเรื่องมันออกแนว Centralize และพวก Drag & Drop ทั้งนั้นเลย- Recreating ESB antipatterns with Kafka
- Layered microservices architecture
- Overambitious API gateways
- Low-code platforms
- Data-hungry packages
อย่าลืมว่า เราทำการออกแบบระบบใหม่ เพื่อแก้ไขปัญหาเดิมที่เกิดขึ้น ดังนั้นจำเป็นต้องเลือกเครื่องมือและวิธีการที่เหมาะสมกับปัญหา รวมทั้งต้องระวังกับการนำแนวคิดเดิม ๆ ที่สร้างปัญหามาใช้ในการแก้ปัญหาด้วยละ เพราะว่า ผลสุดท้ายก็จะได้ปัญหาแบบเดิม ๆ ในร่างใหม่ ๆ มาอีก !!
3. Enduring Engineering Practices
เมื่อเทคโนโลยีมีอัตราการเปลี่ยนแปลงที่สูงขึ้น ดังนั้นองค์กรก็ต้องมีคนที่มีความสามารถ ตลอดจนต้องมี engineering practice ที่ดี เพื่อช่วยทำให้สามารถนำเทคโนโลยีใหม่ ๆ เข้ามาใช้งานได้อย่างถูกต้องและเกิดประโยชน์สูงสุด ยกตัวอย่างเช่น พวก container, reactive frontend และ machine learning เป็นต้น แต่ถ้าองค์กรยังไม่แน่ใจในเทคโนโลยีใหม่ ๆ ก็จำเป็นต้องทำให้แน่ใจ เข้าใจมันก่อน ว่าจะใช้ได้หรือไม่ นั่นคือการทำ research นั่นเอง โดยองค์กรต่าง ๆ จำเป็นต้องลงมือในสองรูปแบบนี้อย่างต่อเนื่อง เพื่อทำการต่อยอดและปรับปรุงอยู่ตลอดเวลา การเรียนรู้ ไม่ใช่การนำมาใช้งาน แต่มันคือการทำความเข้าใจ รู้จักข้อดีข้อเสีย ประโยชน์ของมัน เมื่อเราเจอปัญหาจะได้เลือกนำมาใช้แก้ไขอย่างเหมาะสมและทันท่วงที4. Pace = Distance / Time
การพัฒนา software นั้นมีการเปลี่ยนแปลงอยู่ตลอดเวลา โดยที่เวลานั้นน่าจะเป็นค่าคงที่ไปแล้ว เพราะว่าจากการรายงานเรื่องของ technology จะคงที่ ไม่เปลี่ยนแปลงมากนัก แต่ในส่วนของ Distance ของการสร้าง เรียนรู้ศึกษา ใช้งาน technology ต่าง ๆ กลับเพิ่มมากขึ้น นั่นหมายความว่า ความเร็วในการเปลี่ยนแปลงของ technology มันสู'ขึ้นอย่างต่อเนื่อง ส่งผลทำให้การเลือกมาใช้งานต้องทำอย่างระมัดระวังและรอบคอบลองไปดูบางอย่างที่น่าสนใจในแต่ละกลุ่มกันหน่อย
- Techniques ที่น่าสนใจคือ Event Storming เป็นเทคนิคหนึ่งสำหรับการทำ domain modeling สำหรับ Microservices นั่นเอง
- Tools ที่น่าสนใจคือ UI dev environments ที่มาพร้อมกับคำว่า DesignOps ช่วยทำให้ UX/UI/Designer/Developer ทำงานร่วมกันได้ดีมากยิ่งขึ้น โดยเครื่องมือที่ใช้งานก็เช่น Storybook, React-styguidist, Compositor และ MDX เป็นต้น
- Languages and Frameworks ที่น่าสนใจคือ MMKV เป็น Key-value stage สำหรับ Mobile app ที่สร้างจาก WeChat