[Guest Post] รู้จักกับ Microservices โดย VMware

ปัจจุบันเราไม่สามารถปฏิเสธได้ว่าเทคโนโลยีเป็นส่วนสำคัญที่ทำให้หลายๆองค์กรเติบโต การเลือกใช้เทคโนโลยีต่างๆในการพัฒนา 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 ArchitectureTraditional Architecture (Monolith)
Single focus Service ถูกสร้างขึ้นมาเพื่อจุดประสงค์เดียวในการทำงานนั้นๆ เช่น payment service, catalog serviceWide 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

  1. Application มีการเปลี่ยนแปลงบ่อย และต้องการที่จะ release ให้รวดเร็ว
  2. ต้องการ scale เพื่อรองรับ user/workload จำนวนมาก
  3. แต่ละทีมที่พัฒนา 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


About nattakon

จบการศึกษา ปริญญาตรีและโท สาขาวิศวกรรมคอมพิวเตอร์ KMITL เคยทำงานด้าน Engineer/Presale ดูแลผลิตภัณฑ์ด้าน Network Security และ Public Cloud ในประเทศ ปัจจุบันเป็นนักเขียน Full-time ที่ TechTalkThai

Check Also

FTC เข้าสอบสวนการเข้าซื้อกิจการ ARM ของ NVIDIA

FTC เข้าสอบสวนการเข้าซื้อกิจการ ARM ของ NVIDIA เนื่องจากอาจผิดหลักการแข่งขันทางการค้า

AWS เปิดตัวบริการ AWS Cloud WAN

AWS Cloud WAN ได้เริ่มเปิดให้ผู้ใช้งานทดลองแล้ว โดยเพื่อยกระดับการบริหารจัดการเครือข่ายของผู้ใช้เข้าหา AWS ในรูปแบบต่างๆให้ทำได้ง่าย รวมถึงมีการจับมือกับผู้ให้บริการ SD-WAN รายอื่นด้วย