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

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

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

ทาง 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 สามารถเปิดใช้งานผ่านDashboardหรือเอพีไอได้ด้วยตัวเองอีกด้วย
Layer
ในส่วนของ Layer หรือเรียกอีกอย่างว่า Node Group หรือกลุ่มของ Container ใน Env เดียวกันที่ทำงานเหมือนกัน เพื่อให้มองเห็นภาพในแต่ละ Layer แนะนำให้ดูผ่านตัวช่วยสร้าง Topologyโดยจะแนกประเภทของแต่ละ Layer ดังนี้
- Load Balancer (LB)
- คำนวณ (ซีพี)
- Database (ดีบี)
- การจัดเก็บข้อมูล (ดีเอส)
- Cache
- วีพีเอส
- สร้าง Node
- extra (สามารถออกแบบ Layer ได้เองโดยอ้างอิงจาการใช้งาน Env สำหรับอิงตาม Docker)

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

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

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

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

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

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