แนวคิดพื้นฐานและคำศัพท์เฉพาะทาง
คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ
คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน แนวคิดพื้นฐานและคำศัพท์เฉพาะทาง บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
หัวข้อนี้จะแสดงถึงภาพรวมแนวคิดพื้นฐานของ Ruk-Com Cloud ว่าเราคือผู้ให้บริการ Public Cloud ที่ให้บริการในลักษณะ Platform as a Service โดยกลุ่มผู้ใช้งานที่จะเลือกใช้แพลตฟอร์มของเราจะเหมาะสำหรับผู้ดูแลระบบ (SysAdmin), นักพัฒนาซอฟแเวร์ (Developer) และ DevOps
โดยแพลตฟอร์มของทาง Ruk-Com Cloud ขับเคลื่อนด้วยเทคโนโลยีของJelastic แพลตฟอร์มมัลติคลาวด์ซึ่งประกอบไปด้วยส่วนต่างดังนี้
- คลาวด์เล็ต
- ตู้คอนเทนเนอร์
- เลเยอร์
- สิ่งแวดล้อม
- ใบสมัคร
- โฮสต์
- ภูมิภาคสิ่งแวดล้อม
- การติดตั้งมัลติคลาวด์ (แพลตฟอร์ม)
ในแต่ละส่วนจะมีการเชื่อมโยงและทำงานร่วมกันคุณจะสามารถออกแบบระบบที่มีความซับซ้อนได้หากทำความเข้าใจพื้นฐานเหล่านี้ทั้งหมด
คลาวด์เล็ต
Cloudlet คือหน่วยทรัพยากรที่เล็กที่สุดในระบบของเรา โดย 1 Cloudlet ประกอบด้วย:
- หน่วยความจำ (RAM) ขนาด 128MB
- พลังประมวลผล (CPU) ความเร็ว 400MHz
การออกแบบให้หน่วยทรัพยากรมีขนาดเล็กแบบนี้ ทำให้ระบบสามารถ จัดสรรทรัพยากรได้อย่างยืดหยุ่นและแม่นยำ เหมาะสำหรับทุกประเภทของ workload โดยเฉพาะในระบบ Cloud ที่ต้องการความคล่องตัว
จุดเด่นของ Cloudlet:
- ใช้งานคุ้มค่า: ช่วยให้สามารถเลือกใช้เฉพาะทรัพยากรที่จำเป็นในแต่ละ Environment ได้
- จ่ายตามการใช้งานจริง: ระบบคิดค่าบริการแบบ usage-based pricing ผู้ใช้งานจึงไม่ต้องจ่ายค่าทรัพยากรที่ไม่ได้ใช้งานจริง (ราคาตามการใช้งาน)
- ขยายได้ตามต้องการ: เมื่อต้องการเพิ่มพลังการประมวลผลหรือหน่วยความจำ สามารถเพิ่มจำนวน Cloudlet ได้ทันทีแบบอัตโนมัติ (Auto-scaling)
การใช้ Cloudlet ช่วยให้การบริหารต้นทุนของระบบ Cloud มีประสิทธิภาพสูงสุด เหมาะสำหรับทั้งผู้เริ่มต้นและองค์กรที่ต้องการควบคุมงบประมาณและประสิทธิภาพอย่างสมดุล

ในส่วนของ Cloudlet บน Ruk-Com Cloud จะแบ่งเป็น 2 ประเภท ดังนี้
- Cloudlets ที่สงวนไว้คือการจองทรัพยากรไว้ให้กับ Instance โดยคำนวนปริมาณทรัพยากรที่ใช้จากผู้ใช้งานเองและจ่ายค่าบริการแบบคงที่ โดยราคาในแต่ละ Cloudlet ถูกกว่าแบบ Dynamic เหมาะสำหรับงานที่มีการใช้ทรัพยากรแบบคงที่เช่น เว็ปไซต์ทั่วไปที่มีคนเข้าใช้งานปริมาณเท่าๆกันตลอดเวลา และ วิเคราะห์จาก Monitor แล้วว่าใช้ Memory ประมาณ 256Mb สามารถสร้าง Instance ที่มี 2 Cloudlet แบบ reserved ไว้ใช้งาน
- คลาวด์เล็ตแบบไดนามิกคือเพิ่มและลด Cloudlet อัตโนมัติตามการใช้งานจริงของแอปพลิเคชั่น (จะเพิ่มอัตโนมัติเมื่อมีปริมาณการใช้งานเยอะ และจะลดลงอัตโนมัติเมื่อปริมาณการใช้งานน้อย) แนะนำให้ใช้ Dynamic Cloudlets กับงานที่ไม่สามารถคาดเดาปริมาณการใช้งานล่วงหน้าได้ และจะมั่นใจได้ว่าราคาค่าใช้จ่ายจะถูกคิดตามการใช้งานจริงของทรัพยากร อีกทั้งเรายังตั้งค่าปริมาณสูงสุดที่จะให้ขยาย Cloudlet เพื่อควบคุมค่ายใช้จ่ายได้อีกด้วย (scale limit)

การคำนวนการใช้งานของ Cloudlet จะคำนวนจาก 2 ส่วนคือ Memory และ CPU และถ้ามีการใช้งานอย่างใดอย่างหนึ่งเกิน 1 หน่วย ระบบจะคิดรวมกันยกตัวอย่างเช่น ระบบของคุณใช้งาน CPU 2400 MHz (6 หน่วย Cloudlet) และใช้งาน Memory 1024Mb (8 หน่วย Cloudlet) ในชั่วโมงนี้คุณจะจ่ายค่าบริการ 8 Cloudlet
ทั้งในส่วนของ Dynamic และ Reserved Cloudlets จะมีระบบลดราคาอัตโนมัติหากมีการใช้งานจำนวนมากๆ
ตู้คอนเทนเนอร์
ตู้คอนเทนเนอร์หรือเราสามารถเรียกภายในแพลตฟอร์มว่า node คือการจำลองทรัพยากรเสมือนไว้ใช้สำหรับติดตั้ง Application Stack เช่น application servers, databases, load balancers ในแต่จะ Container จะอยู่ในhoเซนต์อีกทีหนึ่งซึ่งแต่ละ Container สามารถขยายขนาดและลดขนาดอัตโนมัติได้ทั้งแบบแนวตั้งและแนวนอนทำให้แอปพลิเคชั่นมีความยืดหยุ่นอย่างแท้จริง

ทาง Ruk-Com Cloud มีการตรวจสอบ Container ทุกๆตัวก่อนจะให้บริการแก่ลูกค้าทั้งในเรื่องของ Performance และ Security สำหรับ Java, PHP, Ruby, Node.js, Python, Go, .NET รวมถึงสามารถนำ Docker Container มาใช้งานได้บน Platform ในแต่ละ Container จะมี private IP และ DNS Record ให้กับทุกๆ Container โดยอัตโนมัติ กรณีที่ผู้ใช้งานต้องการใช้ Public IP สามารถเปิดใช้งานผ่านแดชบอร์ดหรือเอพีไอได้ด้วยตัวเองอีกด้วย
เลเยอร์
ในส่วนของ Layer หรือเรียกอีกอย่างว่า Node Group หรือกลุ่มของ Container ใน Env เดียวกันที่ทำงานเหมือนกัน เพื่อให้มองเห็นภาพในแต่ละ Layer แนะนำให้ดูผ่านตัวช่วยสร้างโทโพโลยีโดยจะแนกประเภทของแต่ละ Layer ดังนี้
- โหลดบาลานเซอร์ (LB)
- คำนวณ (ซีพี)
- ฐานข้อมูล (ดีบี)
- การจัดเก็บข้อมูล (ดีเอส)
- แคช
- วีพีเอส
- สร้างโหนด
- extra (สามารถออกแบบ Layer ได้เองโดยอ้างอิงจาการใช้งาน Env สำหรับอิงตามDocker)

ส่วนของ Layer ถูกออกแบบมาเพื่อจัดกลุ่มของงานที่เป็นประเภทเดียวกันเพื่อให้ง่ายต่อการขยายระบบ (แนวนอน) และการบริหารจัดการ เช่น หากต้องการ restart หรือ deploy ก็จะทำให้ไม่กระทบกับส่วนอื่นที่ไม่เกี่ยวข้อง นอกจากนี้ยังสามารถตรวจสอบสถานะการใช้งานในแต่ละ Layer, แก้ไขค่า Config ของระบบผ่าน file manager ได้พร้อมๆกันผ่าน Dashboard อีกด้วย
กรณีระบบที่ต้องการ HA (high availability) เพื่อเพิ่มความเสถียรของระบบ การขยายตัวแบบ horizontally ในแต่ละ Layer จะสร้าง Container ที่เก็บข้อมูลอยู่บนคนละ Physical Host แบบอัตโนมัติอีกด้วย
สิ่งแวดล้อม
Environment หรือในแพลตฟอร์มเราจะเรียกสั้นๆว่า Env คือการจัดกลุ่มของ Container เป็นโปรเจคเพื่อแยกสำหรับเรียกชื่อเป็น Service หรือชื่อ Project ซึ่งในแพลตฟอร์มของ Ruk-Com Cloud มีเครื่องมือที่อำนวยความสะดวกที่ช่วยให้คุณบริหารจัดการ Env ได้ง่ายๆยกตัวอย่างเช่น จัดการ Configuration, Monitoring, Troubleshooting และอื่นๆ
คุณสามารถดำเนินการต่างๆกับ Env ได้เช่น stop, start, clone, migrate ไปยัง Datacenter อื่น, แชร์ให้กับทีมเพื่อทำงานร่วมกัน (การทำงานร่วมกัน), เช็คการใช้งานทรัพยากรณ์จะแยกเป็นดูแบบทั้ง Env หรือดูทีละ Container สามารถทำได้เช่นกัน

ทุกๆ Env จะมีชื่อ Domain เป็นของตัวเองซึ่งจะเป็น Sub Domain ของทาง Ruk-Com Cloud อีกทีหนึ่งเพื่อใช้สำหรับอ้างอิง และใช้สำหรับทดสอบการทำงาน กรณีที่ต้องการเปลี่ยนชื่อ Domain เป็นของท่านเองสามารถทำได้ง่ายๆเพียงแค่ตั้งค่าCNAME หรือ A recordยิ่งไปกว่านั้นคุณสั่งสามารถสลับ Domain ให้กับ Env ได้ด้วยเมนูสลับเพียงแค่นี้ทราฟฟิกที่เข้ามาผ่านชื่อ Domain ก็จะถูกส่งไปในแต่ละ Env ได้อย่างอิสระ
ใบสมัคร
คือการทำงานร่วมกันของ Env เพื่อทำงานใน 1 โปรเจคโดย Application นั้นจะทำงานอยู่ใน Env เดียวกันหรือแยกกันในรูปแบบ Micro Service ก็ได้ เช่น Web Server + Database Server ทั้ง 2 ส่วนประกอบนี้เราสร้างไว้ใน Env เดียวกันหรือแยกกันก็ได้จะเรียกกลุ่มของ Env นี้ว่า 1 Application
แอปพลิเคชั่นที่มีความซับซ้อนมากๆควรจะแยกกันคนละ Env และคนละ Topology เพื่อความง่ายต่อการจัดการและการดูแลรักษา เช่นระบบที่ออกแบบเป็น Micro Service เป็นต้น

แพลตฟอร์มรองรับทั้งแอปพลิเคชั่นที่เป็นแบบ Source code เช่นภาษา PHP, NodeJS, Ruby และรูปแบบ Binary file เช่น Java, Golang คุณจะได้ศึกษาเกี่ยวกับการ Deploy ในแต่ละภาษาและประเภทของการ Deploy ในบทต่อๆไป
โฮสต์
กลุ่มของเครื่องเซิฟเวอร์ในรูปแบบ Physical หรือ Virtual Machine ขนาดใหญ่ที่ทาง Ruk-Com Cloud เป็นผู้ดูแล ใช้สำหรับนำ Container มารัน Application ต่างๆ

ทาง Ruk-Com Cloud มีระบบจัดการทรัพยากรและระบบการกระจาย Container ไปยัง Host ต่างๆอย่างเหมาะสมมั่นใจได้ว่างานที่ถูกรันบน Ruk-Com Cloud จะได้ทรัพยากรตามการการันตีในแต่ละ Cloudlet อย่างถูกต้องแม่นยำ
ภูมิภาคสิ่งแวดล้อม
กลุ่มของ Host ที่ถูกเชื่อมต่อกันในรูปแบบ Cluster ของแต่ละ Network

แต่ละ Environment Region จะมี Datacenter เป็นของตัวเองโดยท่านจะเป็นคำเลือกก่อนสร้าง Env ซึ่งแต่ละ Region จะมี Public IP, Private IP และราคาของทรัพยากรที่แตกต่างกันยิ่งไปกว่านั้นคุณยังสามารถย้าย Env ข้าม Region ได้ด้วยตัวเองผ่านเมนูการโยกย้ายอีกด้วย
การติดตั้งมัลติคลาวด์
คือกลุ่มของ Environment Region ที่อยู่คนละ Network Cluster หรือคนละ Datacenter ซึ่งสามารถจัดการผ่านหน้า Dashboard ของ Ruk-Com Cloud โดยคุณสามารถเลือก Region และ Datacenter ที่ต้องการได้ด้วยตัวท่านเองซึ่งราคาของแต่ละ Region ก็แต่งต่างกันออกไปตามความต้องการที่จะใช้งาน

ปัจุบันทาง Ruk-Com Cloud สามารถ Deploy แอปพลิเคชั่นได้หลากหลายประเทศเช่น ประเทศไทย, สิงคโปร์, ญี่ปุ่น, ฝรั่งเศษ และยังสามารถเลือก Datacenter ได้อย่างอิสระเช่น CSLoxinfo, CAT Telecom, Bangmod, Proen, Google Cloud, Amazon Aws ซึ่งแต่ละคือคือแต่ละ Network Provider ปราศจาก Vendor lock-in สามารถย้ายข้ามไปมาได้อย่างอิสระกรณีที่ต้องการย้าย Datacenter