ในปี 2022 ที่ผ่านมา พบว่ามีแนวคิดต่าง ๆ ออกมาเพียบเลย
หรืออาจจะเรียกว่า buzzword ก็ได้
มาดูหน่อยสิว่ามีคำว่าอะไรบ้าง ?
เริ่มจาก 2 ตัวแรกคือ Microservices และ Microfrontend
ซึ่งเป้นแนวคิดคล้าย ๆ กัน แต่ Microservices หลาย ๆ คน
จะเน้นไปที่ Backend มากกว่า
ส่วน Microfrontend จะเน้นไปที่ Product มาก ๆ
แต่หลาย ๆ คนไปเน้นที่ Frontend เป็นหลัก
ทำให้ทั้งสองแนวคิดแยกกันอย่างสิ้นเชิง !!
ทั้ง ๆ ที่สองแนวคิดมีแนวทาง หรือ เป้าหมายเดียวกัน
นั่นคือแยกส่วนการทำงานให้เป็นอิสระต่อกัน ทั้งพัฒนา ทดสอบ deploy และ scaling
แน่นอนว่า ในการออกแบบเพื่อที่จะแบ่งการทำงาน
จะมีการพูดถึง DDD (Domain-Driven Design) เป็นอย่างมาก
ปล. สิ่งที่น่าสนใจสำหรับ 3 สิ่งนี้ที่เหมือนกันคือ
คนที่ออกแบบจะเยอะ
คนพัฒนา ทดสอบ deploy และดูแล น้อยเช่นเดิม !!
มันแปลก ๆ ไหมนะ
ต่อมาในฝั่งของ Application structure ที่พูดถึงกัน
ถ้าแต่ก่อนเราจะรู้จักพวก MVC (Model-View-Controller) เป็นหลัก
แต่ถ้าปัจจุบัน เราต้องพูดถึง
- Clean Architecture
- Hexagonal Architecture
- Onion Architecture
ถ้าใครไม่รู้จัก หรือ ไม่เคยทำ ถือว่าเชย !!
แต่สิ่งหนึ่งที่ต้องเข้าใจก่อนคือ โครงสร้างเหล่านี้คิดมาเพื่อแก้ไขปัญหาอะไร
มีข้อดีข้อเสียอย่างไร
ที่สำคัญงานของเราควรต้องใช้ไหม
ทีมมี skill ไหม
มิเช่นนั้น แทนที่จะเข้ามาช่วย กลับมาซ้ำเติมให้แย่กว่าเก่านะ
ดังนั้น ควรรู้และเข้าใจก่อนเลือกใช้นะ
ไม่ใช่บอกว่า ที่ใช้งานเพราะว่า เขาบอกว่าดี (ใครกันนะ งงไหม)
ต่อมาเรื่องของ Service Mesh และ Data Mesh
เมื่อมีการแบ่ง service ออกมาเป็น service เล็ก ๆ จำนวนมาก
ไม่ว่าจะ micro, nano, mini service อะไรก็ตาม
ดังนั้นเราจะจัดการอย่างไร
ในเรื่องของ network ระหว่าง service เช่น routing, load balance และ service discovery เป็นต้น
ตลอดจนเรื่องของ observability, security และ deployment/scaling
ดังนั้นจึงเกิดเครื่องมือในการจัดการเข้ามาในโลกของ service
เรามักจะเรียกว่า Service Mesh นั่นเอง
แน่นอนว่ามีเครื่องมือ ให้ใช้งานแน่นอน
ทั้ง Istio, Linkerd, Kuma และ Consul เป็นต้น
ในฝั่งของ Data ก็ไม่ต่างกัน จึงเกิด Data Mesh ขึ้นมาอีก !!
ในฝั่ง Security ก็มีเรื่องของ Zero Trust มาอีก
หรือพวก Security by Design
เยอะดีมาก ๆ
หรือในสาย *Ops ก็ไม่น้อยหน้า
มีทั้ง
- DevOps
- DevSecOps
- DevTestOps
- DevPerfSecOps
- DevPerfSecFinCloudPlatformOps
- BizDevOps
- UxOps, UIOps
เป้าหมายของแนวคิดต่าง ๆ เหล่านี้คืออะไร ?
พยายามให้ทำงานร่วมกัน ไปข้างหน้าด้วยกัน
ไม่ใช่ต่างคนต่างทำงานของตนเองเท่านั้น (Silo)
ว่าแต่เราเอามาใช้กันอย่างไร
แก้ไขปัญหา หรือ สร้างปัญหา ตรงนี้น่าคิดนะ