Reliable Service หมายถึงระบบที่ในขณะให้บริการ สามารถขยายขนาดให้รองรับการใช้งานได้ในปริมาณสูงได้ สามารถทำงานได้อย่างต่อเนื่องในระหว่างการอัพเกรดระบบ และสามารถพื้นฟูสภาพตัวเองได้ในช่วงเวลาที่มีปัญหา ซึ่งในบทความนี้จะแนะนำการพัฒนา Reliable Service ด้วย Azure Service Fabric ตั้งแต่เริ่มต้น
ทำไมต้อง Service Fabric
จากแนวคิดสถาปัตยกรรม Microservice ที่ต้องการแบ่งบริการออกเป็นบริการย่อยหลายๆ บริการ เพื่อให้การพัฒนาและอัพเดตทำได้อย่างแยกส่วน แต่พอเริ่มต้นพัฒนาจริงกลับกลายเป็นว่าต้องมาเสียเวลาจัดการกับ Service ย่อยๆเหล่านี้ เพื่อแก้ปัญหานี้ Microsoft จึงพัฒนา Azure Service Fabric เพื่อมาเป็นแพลทฟอร์มสำหรับพัฒนาระบบตามสถาปัตยกรรม Microservice และเปิดตัวพร้อมให้บริการใช้เชิงพาณิชย์บน Azure
บทความอธิบาย Service Fabric แบบละเอียดอ่านได้ที่ Microsoft Docs : Azure Service Fabric Documentation
การพัฒนา Service Fabric
การพัฒนาด้วย Service Fabric นั้นเราจะพัฒนาบริการให้เป็นลักษณะบริการย่อยๆหลายบริการ จากนั้นนำมันไปวิ่งบน Cluster ซึ่ง Cluster นี้ก็คือกลุ่มของโหนดหรือกลุ่มของ Server นี่แหละ และในการใช้งานจริงเราไม่ต้องสนใจว่าโค้ดจะทำงานบน Server ตัวไหน เราจัดการเฉพาะกับ Cluster ก็พอ
จากที่ศึกษาพบว่า Service Fabric นั้นมีเรื่องที่ต้องทำความเข้าใจเยอะมาก (Learning Curve สูงมาก) แต่เพื่อให้สามารถพัฒนา Reliable Service ได้โดยที่ใช้เวลาน้อยที่สุด จึงได้สรุปและรวบรวมเฉพาะสิ่งที่จำเป็นต่อการพัฒนามา 4 ประเด็นใหญ่ ดังนี้
- การสร้าง Gateway เพื่อเชื่อมโยงระหว่าง Client และ Fabric Cluster : Fabric Series 1/4
- “Hello World” with OWIN in Stateless Service Fabric Cluster
- “SignalR” with OWIN in Fabric Cluster
- “WCF” in Fabric Cluster
- การสร้าง Service ใน Fabric Cluster : Fabric Series 2/4
- Stateless and Stateful Service
- Service Communication
- Inversion of Service
- การเก็บข้อมูลใน Fabric Cluster : Fabric Series 3/4
- Actor Service
- Reliable Collections
- Blob Storage
- ตัวอย่างแนวทางออกแบบบริการบน Service Fabric : Fabric Series 4/4
สี่ประเด็นนี้จะถูกเขียนเป็น 4 บทความ พร้อมกับโค้ด แต่ในบทความนี้ขอจบไว้ก่อนเท่านี้
ทิ้งท้ายสิ่งที่ต้องเตรียมตัวก่อนพัฒนา Service Fabric
- ติดตั้ง Visual Studio
- ติดตั้ง Microsoft Azure Service Fabric SDK – เวอร์ชั่นของ SDK จะส่งผลต่อ เวอร์ชั่นของ Cluster ที่อยู่ในเครื่อง และจะต้องสอดคล้องกับเวอร์ชั่น Library ที่ใช้ในโค้ดด้วย
- เรียนรู้คำสั่ง Azure PowerShell