ปัจจุบันเราไม่สามารถปฏิเสธได้ว่าเทคโนโลยีเป็นส่วนสำคัญที่ทำให้หลายๆองค์กรเติบโต การเลือกใช้เทคโนโลยีต่างๆในการพัฒนา application จึงมีความสำคัญต่อการเติบโตของธุรกิจ เมื่อความต้องการของผู้ใช้งานและธุรกิจเปลี่ยนไป องค์กรจึงออกแผนกลยุทธ์เพื่อตอบโจทย์ความต้องการนั้นๆ องค์กรที่สามารถพัฒนา application ที่ตอบโจทย์ความต้องการของผู้ใช้ออกสู่ตลาดได้อย่างรวดเร็วด้วยกลยุทธ์การตลาดที่แก้ไขปัญหาอย่างถูกจุด จะทำให้ได้เปรียบองค์กรอื่นๆที่ไม่สามารถพัฒนา application ตามกลยุทธ์ที่วางไว้ออกสู่ตลาดได้อย่างทันท่วงที
Microservices คืออะไร

Microservices คือ สถาปัตยกรรมการออกแบบ application เป็น service ขนาดย่อย ซึ่งมีคุณสมบัติหลัก คือ Loosely coupled และ bounded contexts ซึ่งหมายความว่า แต่ละ service จะไม่ขึ้นกับ service อื่นๆรอบข้าง และ ประกอบไปด้วยการพัฒนา service ที่เป็นส่วนหนึ่งของ application ขนาดใหญ่ เมื่อมีการพัฒนา application ในรูปแบบของ microservices ทีมผู้พัฒนา application (developer) แต่ละทีมจะสามารถใช้เทคโนโลยี และ framework รวมถึงภาษาในการพัฒนา application ตามที่ตนเองถนัดได้ ขั้นตอนการทำงานต่างๆรวมไปถึงการหาจุดที่มีปัญหาจะสามารถทำได้ง่ายขึ้นและรวดเร็ว ดังนั้นการพัฒนา features ต่างๆเพื่อตอบโจทย์ความต้องการของลูกค้าและตลาด จะสามารถส่งมอบให้ผู้ใช้งานได้เข้ามาใช้งานได้อย่างรวดเร็วกว่าการพัฒนา application แบบ monolith
คุณสมบัติของ microservice มีดังนี้
- Stand alone
Service แยกออกจากกันทำให้สามารถ deploy และ scale เพื่อรองรับ user, workload จำนวนมากได้ง่าย
- ขนาดเล็ก
Application แบ่งออกเป็น service ขนาดเล็กที่แยกออกจากกัน
- มีที่เก็บข้อมูลของตัวเอง
แต่ละ service มี database เป็นของตัวเอง ทำให้ทำงานแยกกันได้อย่างแท้จริง
Why microservices?
1.) ทีมสามารถตอบโจทย์ความต้องการของลูกค้าได้อย่างรวดเร็ว
ไม่ติดปัญหาในเรื่องของการ release application ที่มีขนาดใหญ่ (monolith architecture)
2.) ทีมสามารถทำงานร่วมกันได้อย่างมีประสิทธิภาพ
มีการใช้หลักการของ Agile และ DevOps ทำให้พัฒนา application ร่วมกันได้อย่างดี
3.) Scalability and Reliability
Scale เพื่อรองรับ User และ Workload จำนวนมากได้ หาก service ใดมีปัญหาจะไม่ส่งผลกระทบต่ออีก service นึง
Microservices vs. Traditional Architecture
Microservices Architecture | Traditional Architecture (Monolith) |
Single focus Service ถูกสร้างขึ้นมาเพื่อจุดประสงค์เดียวในการทำงานนั้นๆ เช่น payment service, catalog service | Wide focus Software packaged ถูกรวมเข้าด้วยกันเพื่อทำงานที่มีจุดประสงค์ที่หลากหลาย ทำให้โค้ดมี dependencies ต่อกัน จัดการได้ยาก |
Continuously delivered มีการ deploy application ผ่าน CI/CD pipeline ได้แบบอัตโนมัติ ทำให้ deploy ได้รวดเร็ว ตอบโจทย์ business | Scheduled delivered Deploy application ตามกำหนดการที่ตั้งขึ้น ส่วนใหญ่จะ deploy เป็น quarterly หรือ annually |
Independent teams responsible for each service แต่ละทีมรับผิดชอบในการพัฒนา service ของตัวเอง | Has many teams ทีม dev พัฒนาในส่วนของ application เดียวกัน หลังจากนั้นส่งต่อให้ทีม operation ทำหน้าที่ในการ maintain |
Design patterns Microservice architecture มีการใช้ service discovery, network routing, failure detection และ logging | Siloed tools and processes Focused แต่ในส่วน development stages, QA และการ release ขึ้น production |
เมื่อไหร่ควรเปลี่ยนไปพัฒนา application แบบ microservices
- Application มีการเปลี่ยนแปลงบ่อย และต้องการที่จะ release ให้รวดเร็ว
- ต้องการ scale เพื่อรองรับ user/workload จำนวนมาก
- แต่ละทีมที่พัฒนา service ต้องการใช้ technology ที่แตกต่างกันในการพัฒนา application
References: https://tanzu.vmware.com/microservices
Learn more:
Build Apps and Microservices:
https://www.vmware.com/cloud-solutions/app-modernization/cloud-native-apps.html
Evolve Existing Apps:
https://www.vmware.com/cloud-solutions/app-modernization/existing-apps.html
Cloud Transformation – A Three-Part Story:
https://blogs.vmware.com/vsphere/2021/06/cloud-transformation-a-three-part-story.html
Author:
Chutima Kitcharoenpaisan
Associate Solution Engineer
VMware Thailand