วันจันทร์ที่ 18 มีนาคม พ.ศ. 2562

รู้จักกับ Azure Virtual Machine Scale Set (VMSS)

     สวัสดีครับทุกท่าน สืบเนื่องจากเมื่อสัปดาห์ที่ผ่านมา ผมมีโอกาสจัด Workshop "Practical Microsoft Azure IaaS" ให้กับลูกค้าที่หนึ่ง และมีเนื้อหาของ Azure Virtual Machine หัวข้อหนึ่งที่เน้นหรือโฟกัสเรื่องของ High Availability และ Performance สำหรับ Applications ที่รันและทำงานอยู่ใน Azure Virtual Machines ว่าจะทำอย่างไรให้ Applications ที่รันอยู่ใน Azure Virtual Machines นั้นสามารถทำงานได้ดีมีประสิทธิภาพตลอดจนเรื่องของ High Availability เมื่อให้บริการผู้ใช้งานหรือลูกค้าจำนวนมากๆ  สำหรับ Challenges หรือความต้องการนี้สามารถใช้เซอร์วิสหนึ่งใน Microsoft Azure ที่ชื่อว่า "Azure Virtual Machine Scale Set" หรือเรียกสั้นๆ ว่า "VMSS" มาช่วยได้ครับ  และต้องบอกว่า VMSS ถือว่าเป็นเซอร์วิสที่ทำให้หลายๆ องค์กรอยากย้ายหรือสร้างระบบงานต่างๆ บน Cloud กันเลยล่ะครับ เพราะด้วยความสามารถของ VMSS นั้นทำให้องค์กรได้ประโยชนในเรื่องของ "Rapid Elasticity" ซึ่งถือเป็นคุณสมบัติข้อหนึ่งที่สำหรับของ Cloud (Cloud Characteristics) ครับ เพราะทำให้องค์กรหรือผู้ดูแลระบบที่ย้ายขึ้นไปทำงานบน Cloud นั้นสามารถขยายหรือลดทรัพยากร (Resources) ที่ใช้งานได้ตามความต้องการ (On-Demand) ครับ

ผมขอยกตัวอย่าง เช่น ถ้าท่านผู้อ่านมี Web Application รันใน Virtual Machine และอยู่ใน On-Premise Datacenter เพื่อรองรับการเข้ามาใช้บริการของผู้ใช้งานไม่ว่าจะอยู่ภายในหรือภายนอกออฟฟิศ ในเวลาต่อมาท่านผู้อ่านพบว่ามีผู้เข้ามาใช้งาน Web Application ดังกล่าวเยอะมาก ทำให้เกิดปัญหาในเรื่องของ Performance ดังนั้นสิ่งที่ท่านผู้อ่านจะต้องทำการวางแผนและพิจารณาคือ จะทำอย่างไรให้ Web Application ดังกล่าวสามารถมี Performance ที่ดีและรองรับ HA (High Availability)  ซึ่งแน่นอนในตลาดมีโซลูชั่นที่ตอบโจทย์ความต้องการข้างต้น แต่มีค่าใช้จ่ายเท่าไรล่ะครับ เพราะมีความเป็นไปได้ที่โซลูชั่นดังกล่าวนัั้นจะมาพร้อมกับ Hardware, Software, และค่า Services ต่างๆ เพื่อตอบโจทย์ความต้องการข้างต้นครับ  แต่ในทางกลับกันถ้า Web Application ดังกล่าวถูกสร้างและติดตั้งเป็น Virtual Machine บน Microsoft Azure ท่านผู้อ่านสามารถใช้ VMSS ได้เลยครับ โดยที่ไม่ต้องรอการจัดซื้อและมีค่าใช้จ่ายน้อยกว่าด้วยครับ และเพื่อไม่ให้เป็นการเสียเวลา ผมจะพาท่านผู้อ่านไปทำความรู้จักกับ VMSS กันเลยครับผม


Azure Virtual Machine Scale Set (VMSS)

คือเซอร์วิสหนี่งใน Microsoft Azure ที่ให้เราสามารถทำการสร้างและจัดการกลุ่มของ Azure Virtual Machine ที่เป็น Identical คือ เป็น Azure Virtual Machine ที่มีทุกอย่างเหมือนกันหมด ไม่ว่าจะเป็น Series, Sizes, OS Disks, Configuration, และอื่นๆ รวมถึงการทำ Load Balancing ด้วยครับ โดยท่านผู้อ่านสามารถกำหนดเงื่อนไขใน VMSS เพื่อทำการเพิ่มหรือลด Instances (Azure VM ที่ถูกสร้างขึ้นมาจาก Azure VM ตัวแรกใน VMSS โดยจะมีทุกอย่างเหมือนกัน) ได้ตามความต้องการ (On-Demand) หรือกำหนดเป็น Schedule ครับ เพื่อทำให้ประสิทธิภาพของ Application ที่ให้บริการนั้นดีและมีความยืดหยุ่นขึ้นครับ เพราะ ณ ขณะใดขณะหนึ่งมี Azure Virtual Machines มากกว่าหนึ่งตัว (Instances) ช่วยกันทำงานครับ ในแง่ของการใช้จ่ายสำหรับ VMSS นั้นทาง Microsoft Azure จะคิดค่าใช้จ่ายเฉพาะ Azure VMs หรือ Instances ที่รันและทำงานอยู่เท่านั้นครับ ดังนั้นทำให้ผู้ใช้บริการอย่างเราๆ สามารถใช้งาน VMSS ได้ โดยมีค่าใช้จ่ายในส่วนของ Compute ไม่มากเท่าไร เนื่องจาก Microsoft Azure คิดค่าใช้จ่ายในส่วนของ Compute (Azure VM หรือ Instance) ใน VMSS ที่รันและทำงานเท่านั้น ทำให้องค์กรสามารถประหยัดค่าใช้จ่ายได้ครับ






ทำไมต้องใช้และประโยชน์ของ Azure Virtual Machine Set (VMSS)

จากตัวอย่างที่ผมได้เล่าไปในข้างต้นว่า องค์กรนั้นจะวางแผนและจัดการในเรื่องของ Redundancy และ Performance ของ Web Application ตัวนั้นๆ อย่างไร ในกรณีที่ Web Application ดังกล่าวรันและทำงานอยู่ใน On-Premise Datacenter และประสบกับปัญหาข้างต้น แน่นอนครับ องค์กรนั้นๆ ก็จะต้องทำการวางแผนเพื่อจัดซื้อโซลูชั่นเพื่อมาจัดการกับปัญหาดังกล่าว แต่สิ่งสำคัญคือ โซลูชั่นนั้นๆ มีค่าใช้จ่ายเท่าไร และจะต้องใช้เวลาเท่าไรในการติดตั้งใช้งาน รวมถึงการดูแลรักษา (Maintainance) ครับ และในทางกลับกันถ้า Web Application ดังกล่าวติดตั้งและทำงานอยู่ใน Azure Virtual Machine องค์กรนั้นๆ สามารถใช้งาน VMSS ได้เลยครับและมีค่าใช้จ่ายถูกกว่าด้วยครับ จากจุดนี้ถือว่าเป็นประโยชน์ที่องค์กรนั้นๆ จะได้รับจากการนำเอาระบบงานต่างๆ ขึ้นไปทำงานอยู่บน Cloud (Microsoft Azure) ครับผม  และนอกเหนือจากที่ VMSS จะเข้าช่วยในเรื่องของการจัดการ Performance และ High Availability แล้ว ในส่วนของผู้พัฒนา Web Application จะสามารถทำการแก้ไขหรืออัพเดทได้อย่างสะดวกและง่ายมากขึ้นครับ

ในแง่เทคนิคสำหรับ Infrastructure นั้น, VMSS ยังสามารถทำงานร่วมกับ Azure Load Balancer และ Azure Application Gateway ด้วยครับ รวมถึงการทำ Availability Zones เพื่อรองรับการทำ High Availability อีกด้วยครับผม  VMSS สามารถรองรับจำนวน Instances (Azure VMs) ได้มากถึง 1,000 VM Instances ครับ ถ้า Azure VM ที่ถูกสร้างขึ้นใน VMSS ท่านผู้อ่านเลือกจาก Azure Marketplace ครับ แต่ถ้าท่านผู้อ่านใช้ Custom Images, VMSS จะรองรับจำนวน Instances ได้ 600 VM Instances ครับผม

*ข้อมูลตัวเลขตลอดจนความสามารถต่างๆ ของ VMSS อาจมีการเปลี่ยนแปลงนะครับ ข้อมูลตัวเลขตลอดจนข้อมูลอื่นๆ ของ VMSS ที่อยู่ในบทความนี้ อ้างอิงจาก Microsoft ณ วันที่ผมเขียนบทความนะครับ


การสร้าง Azure Virtual Machine Scale Set (VMSS)

เริ่มจากให้ท่านผู้อ่านเปิดและ Sign-In Azure Portal ขึ้นมาครับ จากนั้นให้ไปที่ Azure Marketplace ดังรูปครับ




จากนั้นในช่อง Search ให้พิมพ์คำว่า Virtual Machine Scale Set แล้วกด Enter ครับ จะได้ผลลัพธ์ตามรูปด้านล่างครับ



ให้ท่านผู้อ่านคลิ๊กที่ Virtual Machine Scale Set จากรูปด้านบนครับ แล้วคลิ๊ก Create ครับ จากนั้นก็จะเข้าสู่ขั้นตอนการสร้างและการกำหนดค่าต่างๆ (Create virtual machine scale set) ซึ่งจะมีหลายส่วนนะครับ สำหรับ VMSS ดังรูปด้านล่างครับ





ในการทำงานจริงหรือเพื่อทดสอบ, ท่านผู้อ่านสามารถกำหนดค่าต่างๆ ใน VMSS ได้ตามความต้องการเลยครับ สำหรับในบทความนี้ในส่วนแรก คือ ส่วนของ BASIC ครับ  *VMSS รองรับ Azure VM ที่ติดตั้ง OS เป็น Open Source ด้วยนะครับ




ในส่วนของ BASIC สำหรับท่านผู้อ่านที่คุ้นเคยและใช้งาน Microsoft Azure อยู่แล้ว ผมเชื่อว่าสามารถกำหนดค่าต่างๆ จากรูปข้างต้นได้เองเลยครับ  จากนั้นในส่วนต่อมาที่จะต้องกำหนดค่าต่างๆ คือ ส่วนของ INSTANCES ครับ ซึ่งจะเป็นส่วนที่ท่านผู้อ่านจะต้องกำหนดค่าของ Instances Count (จำนวนของ Azure VM ใน VMSS) และกำหนด Image ของ Azure VM ที่จะใช้ใน VMSS ครับ สำหรับบทความนี้ผมกำหนดในส่วนของ INSTANCES ดังรูปด้านล่างครับผม




ในส่วนต่อมาคือ ส่วนของ AUTOSCALE  ให้ทำการ Enable ครับ สำหรับในส่วนนี้ถือว่าเป็นส่วนสำคัญในการกำหนดเงื่อนไขสำหรับการทำ Auto Scaling ครับ โดยจะมีค่าต่างๆ ให้กำหนด เช่น Scale Out และ In สำหรับ Azure VM ที่อยู่ใน VMSS นั้นๆ ครับ  ดังรูป





จากรูปข้างต้น ผมได้กำหนดค่า Minimum และ Maximum ของจำนวน Azure VMs ใน VMSS นี้ครับ สำหรับในส่วนของ Scale Out และ Scale In คือ ค่าที่กำหนดว่าจะให้เพิ่มหรือลด Instances (Azure VMs) เมื่อไรและจะให้เพิ่มหรือลดทีละเท่าไรครับ โดยในบทความนี้ผมใช้ค่า Default ทั้งหมดครับ

สำหรับในส่วนต่อมาคือส่วนของ NETWORKING จะเป็นส่วนของค่ากำหนดต่างๆ ที่เกี่ยวข้องกับเรื่องของ Network ครับ เช่น จะเลือกใช้อะไรระหว่าง Azure Load Balancer กับ Azure Application Gateway รวมถึงจะเชื่อมต่อกับ Azure Virtual Network ใดครับ  ดังรูป




สำหรับค่ากำหนดต่างๆ ในส่วนของ NETWORKING นั้น สำหรับในการใช้งานจริง จะต้องมีการออกแบบมาก่อนนะครับ ว่า VMSS ของเรา จะใช้ Azure Load Balancer หรือ Azure Application Gateway ตลอดจนในส่วนของ Azure Virtual Network ครับ เมื่อเลือกและกำหนดค่าต่างๆ แล้วให้ท่านผู้อ่านทำการคลิ๊ก Create ได้เลยครับ ซึ่งจะใช้เวลาพอสมควรสำหรับการสร้าง VMSS ครับ

สำหรับการใช้งานจริงในองค์กร ผมแนะนำว่าก่อนที่จะมาทำการสร้างและกำหนดค่าต่างๆ ของ VMSS นั้น จะต้องมีการออกแแบบและเลือกค่ากำหนดต่างๆ มาให้เรียบร้อยเสียก่อนครับ เพื่อที่จะได้ทำการประเมินได้ว่า VMSS ที่ต้องการใช้งานนั้นมีค่าใช้จ่ายทั้งหมดเท่าไรต่อเดือนครับ  ก่อนที่จะเริ่มสร้างและใช้งานจริงครับผม  รายละเอียดเพิ่มเติมสำหรับ VMSS นั้น ท่านผู้อ่านสามารถไปหาข้อมูลเพิ่มเติมได้จาก Link นี้ครับ

https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview




และทั้งหมดนี้คือเรื่องราวของ Azure Virtual Machine Scale Set (VMSS) ครับผม…..



ไม่มีความคิดเห็น:

แสดงความคิดเห็น