Basic Concepts and Terminology

ในหัวข้อนี้จะแสดงถึงภาพรวมแนวคิดพื้นฐานของ Ruk-Com Cloud ว่าเราคือผู้ให้บริการ Public Cloud ที่ให้บริการในลักษณะ Platform as a Service โดยกลุ่มผู้ใช้งานที่จะเลือกใช้แพลตฟอร์มของเราจะเหมาะสำหรับผู้ดูแลระบบ (SysAdmin), นักพัฒนาซอฟแเวร์ (Developer) และ DevOps 

โดยแพลตฟอร์มของทาง Ruk-Com Cloud ขับเคลื่อนด้วยเทคโนโลยีของ Jelastic Multi Cloud Platform ซึ่งประกอบไปด้วยส่วนต่างดังนี้

  • Cloudlet
  • Container
  • Layer
  • Environment
  • Application
  • Host
  • Environment Region
  • Multi-Cloud Installation (Platform)

ในแต่ละส่วนจะมีการเชื่อมโยงและทำงานร่วมกันคุณจะสามารถออกแบบระบบที่มีความซับซ้อนได้หากทำความเข้าใจพื้นฐานเหล่านี้ทั้งหมด

Cloudlet

Cloudet คือส่วนประกอบที่เล็กที่สุดกล่าวง่ายๆคือใน 1 หน่วยจะมีแรม 128Mb และ หน่วยประมวลผล (CPU) 400Mhz การแบ่งแต่ละหน่วยให้เล็กในลักษณะนี้จะทำให้ระบบสามารถจัดสรรทรัพยากรได้อย่างมีประสิทธิภาพและใช้งานทรัพยากรอย่างคุ้มค่าที่สุดในการสร้าง instance ในแต่ละ Environment อีกทั้งยังทำให้ผู้ใช้งานจ่ายค่าบริการตามการใช้งานจริงเท่านั้น ไม่จำเป็นต้องจ่ายค่าทรัพยากรทิ้งโดยที่ไม่จำเป็น (usage-based pricing)

ในส่วนของ Cloudlet บน Ruk-Com Cloud จะแบ่งเป็น 2 ประเภท ดังนี้

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

  • Dynamic Cloudlets คือเพิ่มและลด 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 จะมีระบบลดราคาอัตโนมัติหากมีการใช้งานจำนวนมากๆ

Container

Container หรือเราสามารถเรียกภายในแพลตฟอร์มว่า node คือการจำลองทรัพยากรเสมือนไว้ใช้สำหรับติดตั้ง Application Stack เช่น application servers, databases, load balancers ในแต่จะ Container จะอยู่ใน host อีกทีหนึ่งซึ่งแต่ละ Container สามารถขยายขนาดและลดขนาดอัตโนมัติได้ทั้งแบบ vertical และ horizontal ทำให้แอปพลิเคชั่นมีความยืดหยุ่นอย่างแท้จริง

ทาง 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 หรือ API ได้ด้วยตัวเองอีกด้วย

Layer

ในส่วนของ Layer หรือเรียกอีกอย่างว่า Node Group หรือกลุ่มของ Container ใน Env เดียวกันที่ทำงานเหมือนกัน เพื่อให้มองเห็นภาพในแต่ละ Layer แนะนำให้ดูผ่าน topology wizard  โดยจะแนกประเภทของแต่ละ Layer ดังนี้

  • load balancer (LB)
  • compute (CP)
  • database (DB)
  • data storage (DS)
  • сache
  • VPS
  • build node
  • extra (สามารถออกแบบ Layer ได้เองโดยอ้างอิงจาการใช้งาน Env สำหรับ  Docker-based)

ส่วนของ Layer ถูกออกแบบมาเพื่อจัดกลุ่มของงานที่เป็นประเภทเดียวกันเพื่อให้ง่ายต่อการขยายระบบ (horizontal) และการบริหารจัดการ เช่น หากต้องการ restart หรือ deploy ก็จะทำให้ไม่กระทบกับส่วนอื่นที่ไม่เกี่ยวข้อง นอกจากนี้ยังสามารถตรวจสอบสถานะการใช้งานในแต่ละ Layer , แก้ไขค่า Config ของระบบผ่าน file manager ได้พร้อมๆกันผ่าน Dashboard อีกด้วย

กรณีระบบที่ต้องการ HA (high availability) เพื่อเพิ่มความเสถียรของระบบ การขยายตัวแบบ horizontally ในแต่ละ Layer จะทำการสร้าง Container ที่เก็บข้อมูลอยู่บนคนละ Physical Host แบบอัตโนมัติอีกด้วย

Environment

Environment หรือในแพลตฟอร์มเราจะเรียกสั้นๆว่า Env คือการจัดกลุ่มของ Container เป็นโปรเจคเพื่อแยกสำหรับเรียกชื่อเป็น Service หรือชื่อ Project ซึ่งในแพลตฟอร์มของ Ruk-Com Cloud มีเครื่องมือที่อำนวยความสะดวกที่ช่วยให้คุณบริหารจัดการ Env ได้ง่ายๆยกตัวอย่างเช่น จัดการ Configuration , Monitoring, Troubleshooting และอื่นๆ

คุณสามารถดำเนินการต่างๆกับ Env ได้เช่น stop, start, clone, migrate ไปยัง Datacenter อื่น, แชร์ให้กับทีมเพื่อทำงานร่วมกัน (collaborative work), เช็คการใช้งานทรัพยากรณ์จะแยกเป็นดูแบบทั้ง Env หรือดูทีละ Container ก็สามารถทำได้เช่นกัน

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

Application

คือการทำงานร่วมกันของ 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 ในบทต่อๆไป

Host

กลุ่มของเครื่องเซิฟเวอร์ในรูปแบบ Physical หรือ Virtual Machine ขนาดใหญ่ที่ทาง Ruk-Com Cloud เป็นผู้ดูแล ใช้สำหรับนำ Container มารัน Application ต่างๆ

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

Environment Region

กลุ่มของ Host ที่ถูกเชื่อมต่อกันในรูปแบบ Cluster ของแต่ละ Network

แต่ละ Environment Region จะมี Datacenter เป็นของตัวเองโดยท่านจะเป็นคำเลือกก่อนสร้าง Env ซึ่งแต่ละ Region จะมี Public IP, Private IP และราคาของทรัพยากรที่แตกต่างกันยิ่งไปกว่านั้นคุณยังสามารถย้าย Env ข้าม Region ได้ด้วยตัวเองผ่านเมนู migration อีกด้วย

Multi-Cloud Installation

คือกลุ่มของ 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