ข้ามไปที่เนื้อหาหลัก

Kubernetes เทคโนโลยี Container การสร้างระบบยุคใหม่


วิวัฒนาการสถาปัตยกรรม Kubernetes

ตอนเริ่มต้นในการพัฒนาซอฟต์แวร์ในระยะแรกอยู่ในรูปแบบที่เรียกว่า Traditional Develoment ต่อมาเริ่มมีการพัฒนาเป็น Virtualized Development และจนมาถึง Container Development แต่ล่ะระยะมีดังนี้ 

- Tradition Development
- Virtualized Development
- Container Development

- Traditional Development 

ในระยะเริ่มแรกของการพัฒนาแอปพลิเคชันสำหรับการใช้งาน องค์กรและผู้ทำการพัฒนาจะนำแอปพลิเคชั่นไปทำงานบนเครื่องเซิร์ฟเวอร์จริง โดยยังไม่มีวิธีกำหนดการใช้ทรัพยากรต่างๆ บนเซิร์ฟเวอร์ ทำให้เกิดปัญหาการใช้งานมีประสิทธิภาพที่ต่ำลงเมื่อเซิรฟ์เวอร์นั้น มีการให้บริการหรือใช้งานงานแอพลิเคชั่นหลายบริการ กล่าวคือ แอปพลเคชั่นบางตัวใช้ทรัพยากร ram hd เป็นจำนวนมากจนมีผลต่อการทำงานของแอพลเคชั่นอื่นๆตามมาแต่สิ่งนี้ไม่ได้ปรับขนาดเนื่องจากมีการใช้ทรัพยากรน้อยเกินไป และมีค่าใช้จ่ายสูงสำหรับองค์กรในการบำรุงรักษาเซิร์ฟเวอร์จริงจำนวนมาก


- Virtualized Development

เป็นโซลูชันสำหรับการจำลองเครื่องเสมือน ซึ่งอนุญาตให้คุณรัน Virtual Machines (VM) หลายเครื่องบน CPU ของเซิร์ฟเวอร์จริงเครื่องเดียว ช่วยให้สามารถแยกการทำงานของแอปพลิเคชันระหว่าง VMs ให้มีระดับความปลอดภัย ทำให้ข้อมูลของแอปพลิเคชันหนึ่งไม่สามารถเข้าถึงได้โดยอิสระจากแอปพลิเคชันอื่น

การจำลองเครื่องเสมือนช่วยให้สามารถใช้ทรัพยากรในเซิร์ฟเวอร์จริงได้ดีขึ้นและช่วยให้สามารถปรับขนาดได้ดีขึ้น เนื่องจากเราสามารถเพิ่มหรืออัปเดตแอปพลิเคชันได้อย่างง่ายดาย ลดค่าใช้จ่ายด้านฮาร์ดแวร์ และอื่นๆ อีกมากมาย และคุณสามารถแนะแนวทางการใช้ชุดของทรัพยากรทางกายภาพเป็นคลัสเตอร์ของเครื่องเสมือนแบบใช้แล้วทิ้ง 



- Container Development

คอนเทนเนอร์นั้นมีลักษณะการทำงานคล้ายกับ VM แต่มีคุณสมบัติการเพื่อเติมสำหรับการแชร์ระบบปฏิบัติการ (OS) ระหว่างแอปพลิเคชัน ดังนั้นถือว่าตู้คอนเทนเนอร์ขนาดเล็ก เพราะเป็นการย่อส่วนของระบบขนาดใหญ่ให้เล็กลง โดยจำกัดการทำงาน ทรัพยกรต่างๆ ที่ใช้งานเฉพาะส่วนที่จำเป็นเท่านั้น คอนเทนเนอร์จะมีระบบไฟล์ ส่วนแบ่งของ CPU หน่วยความจำ พื้นที่ประมวลผล และอื่นๆ เนื่องจากแยกออกจากโครงสร้างพื้นฐานพื้นฐาน จึงพกพาได้บนคลาวด์และการกระจายระบบปฏิบัติการ


ความหมายของ Kubernetes 

“Kubernetes” หรือ “K8s” คือ “Container Orchestration”  คือ
- เป็นรูปสถาปัตยกรรมของระบบโครงสร้างพื้นฐานทางไอที (infrastructure) ในยุคใหม่ มีลักษณะเป็นซอฟต์แวร์ที่ใช้จัดการและควบคุม  โดยใช้เทคโนโลยีที่เรียกว่า "คอนเทนเนอร์(Container)" ซึ่งถูกสร้างและพัฒนาขึ้นมาเพื่อผู้พัฒนาสามารถจัดการแพ็กเกจซอฟต์แวร์ต่างๆ ที่จำเป็นในการใช้งาน และทำการขนย้ายมันไปใช้ตามที่ต่างๆ หรือ server ต่างๆ ได้ง่ายและเป็นอิสระต่อกัน และทำการ run แต่ละคอนเทนเนอร์ในเครื่องที่ได้ทำการติดตั้งคอนเทนเนอร์นั้นๆ 
- Kubernetest เป็นซอฟต์แวร์ OpenSource พัฒนาโดย Google ที่จะมาช่วยในการจัดการคอนเทนเนอร์ เช่น Docker LXC  ช่วยให้เราสามารถติดตั้ง (Deployment) จัดสรรทรัพยากร หรือเพิ่มลดทรัพยากรแบบอัตโนมัติได้ (Managing & Scaling) นอกจากนั้นยังช่วยให้ Application ที่ทำงานอยู่บนคอนเทนเนอร์สามารถทำงานได้อย่างต่อเนื่อง ด้วยระบบที่พร้อมใช้งานตลอดเวลา (Auto Self-Healing) 

ความเป็นมาของ Kubernetes 


ต้นกำเนิดของ K8s นั้นเกิดมาจากบริษัท Google ในเรื่องจัดการ Data Center เรียกระบบนี้ว่า “Borg” ปรับมาเป็น “Kubernetes” ขึ้นมา การใช้งานมายาวนานทำให้ google พบปัญหาในเรื่องการจัดการ Data Center หลายประการ เนื่องจากมีการขยายตัวของการใช้งานที่เพิ่มมากขึ้นทุกๆ ปี 



ประโยชน์ของ Kubernetes ที่ถูกพัฒนาขึ้นอย่างอัตโนมัติ

  1. Container Clustering :  ผู้ใช้สามารถ Configuration  เพื่อสั่งระบบให้ทำงานโดยอัตโนมัติ เพียงแค่กำหนดค่าต่างๆ ที่เกี่ยวข้อง
  2. Auto Scaling : รองรับการเพิ่มหรือลดทรัพยากรได้
  3. Auto Self-healing :  HA เพื่อช่วยให้ระบบสามารถทำงาน
  4. Auto Binpacking : จัดสรรทรัพยากรสำหรับคอนเทนเนอร์
  5. Load Balancing : แบ่งการทำงานระหว่างคอนเทนนอร์ได้อย่างเหมาะสมและมีประสิทธิภาพสูงสุด
  6. Zero Downtime : รองรับการอัปเดตระบบแบบไม่มี Downtime
  7. Dashboard : มีแดชบอร์ดสำหรับควบคุมและบริหารจัดการทรัพยากร
  8. Community :  มีผู้ใช้งานจากทั่วโลกช่วยพัฒนาและอัปเดตฟีเจอร์ใหม่ ๆ อยู่ตลอดเวลา

องค์ประกอบของ Kubernetes(K8s)

  1. คัสเตอร์ (Cluster)
  2. การพัฒนา (Developmet)
  3. โหนดและพอร์ด (Node and Pod)
  4. ชุดแบบจำลอง (ReplicaSet)
  5. การบริการ (Services)



อ้างอิงแหล่งข้อมูล : 

1. openlandscape. 2022. Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย. https://blog.openlandscape.cloud/what-is-kubernetes [online].
2. blognone. Kubernetes คืออะไร ทำไม Orchestration จึงเป็นหัวใจของ Infrastructure ยุคนี้. [online] https://www.blognone.com/node/106492.
3. skooldio. 5 ข้อดี Kubernetes ที่สาย Dev ต้องเหลียวมอง. [online]. https://blog.skooldio.com/why-use-kubernetes/. 







ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

อะไรคือ NPU (Neural Processing Unit) มีความสำคัญอย่างไร แนวคิดมาจากไหน

ความหมาของคำว่า NPU (Neural Processing Unit)  NPU (Neural Processing Unit) คือ หน่วยประมวลผลโครงข่ายประสาทที่สร้างมาเพื่อใช้งานด้านปัญญาประดิษฐ์ เป็นหน่วยประมวลผลพิเศษที่ออกแบบมาเพื่อใช้ในแนวคิดของการเรียนรู้ของเครื่อง (Machine Learning) ของคอมพิวเตอร์โดยเฉพาะ ทำให้การประมวลผล AI ทรงประสิทธิภาพเพิ่มขึ้นจากเดิมของ TPU GPU และ CPU เช่น การจดจำภาพ, วิเคราะห์เสียง, หรือการแปลภาษา ทำได้รวดเร็วและประหยัดพลังงานกว่า CPU/GPU ทั่วไป โดยทำงานคล้ายโครงข่ายประสาทของมนุษย์ และพบได้ทั้งในสมาร์ตโฟน, คอมพิวเตอร์ (PC), และอุปกรณ์ AI อื่นๆ ในอนาคต เพื่อเร่งความเร็วของการทำงานของ AI สามารถจัดการงานและปัญหาที่ซับซ้อนได้อย่างมีประสิทธิภาพ  ประวัติความเป็นมาของ NPU (Neural Processing Unit)  ตั้งแต่ปี 1970 เป็นต้นมาเราได้ใช้เริ่มมีการใช้หน่วยการประมวลผลแบบดั้งเดิม คือ หน่วยประมวลผลกลาง (CPU) ถือเป็น "สมอง" และเป็นกลไกการทำงานของคอมพิวเตอร์ ดังนั้นซีพียู CPU ประมวลผลงานคำนวณแบบดั้งเดิมส่วนใหญ่มีหน้าที่รับผิดชอบการทำงานของแอปพลิเคชันให้มีศักยภาพหลากหลายเพิ่มมาเรื่อย แม้ว่าจะมีหลายประเภท แต่โดยทั่...

Micro SaaS "ขนาดพอดีคำ" สร้างธุรกิจเริ่มต้นอย่างง่ายด่าย จากไอเดียสู่สร้างรายได้ โดยใช้ AI Agent ตอบสนองความต้องการซอฟต์แวร์ที่เล็ก ง่าย และทรงพลัง

ผลิตภัณฑ์ Micro SaaS กำลังได้รับความนิยมมากขึ้นกว่าที่เคย เป็นผลมาจากความต้องการซอฟต์แวร์เฉพาะทางที่เพิ่มสูงขึ้น ผู้ประกอบการกำลังสร้างเครื่องมือน้ำหนักเบาที่ตอบโจทย์ความต้องการเฉพาะด้าน ตั้งแต่เครื่องมือสร้างเนื้อหาที่ขับเคลื่อนด้วย AI และ CRM เฉพาะกลุ่ม ไปจนถึงแอปพลิเคชันการออกใบแจ้งหนี้และแพลตฟอร์มการจัดการโครงการที่ใช้งานง่าย โซลูชันที่มุ่งเน้นเฉพาะด้านเหล่านี้กำลังได้รับความนิยมในอุตสาหกรรมต่างๆ เช่น การศึกษา ฟิตเนส บริการ และการตลาด ไม่ว่าจะเป็นการช่วยให้ธุรกิจขนาดเล็กปรับปรุงกระบวนการทำงาน หรือการนำเสนอเครื่องมือที่ชาญฉลาดยิ่งขึ้นให้กับผู้สร้างสรรค์ แนวคิด SaaS ขนาดเล็กกำลังเปิดโอกาสใหม่ๆ ให้กับผลิตภัณฑ์ที่ทำกำไรได้และดูแลรักษาง่าย Micro SaaS คืออะไร? Micro SaaS (ไมโครซาส) เป็นรูปแบบซอฟต์แวร์ออนไลน์ที่ให้บริการผ่านเว็บ (Software as a Service) แต่มี ขนาดเล็ก, เน้นแก้ปัญหาเฉพาะด้าน (Niche), ทีมพัฒนาเล็กมากถึงขั้น ผู้พัฒนาคนเดียวก็ทำได้, ต้นทุนต่ำ และมักสร้างรายได้แบบ Subscription รายเดือน/รายปี วิเคราห์ตลาดของ Micro SaaS  Micro SaaS มีการเติบโตอย่างมีนัยสำคัญภายในตลาดเทคโทนโลย...

TomCat สำหรับติดตั้ง แก้ไข คอนฟิก ใช้งาน JSP

Apache Tomcat เป็น  HTTP Server ที่มีความสามารถนำภาษาจาวามาใช้งานได้  สามารถใช้เทคโนโลยีของภาษาจาวาที่เรียกว่า Java Servlet  และ Java Server Page (JSP)  Tomcat เป็นโปรแกรม Open-Source  อยู่ภายใต้การดูแลของ Apache Software Foundation  (ซึ่งเป็นผู้สร้าง Apache HTTP Server ที่เป็นที่นิยมใช้กันอย่างแพร่หลาย)  สามารถอ่านรายละเอียดของ Tomcat ได้ที่  http://tomcat.apache.org  โดยเลือกหัวข้อ “ Documentation”  และเลือก “Tomcat 7.0” ขั้นตอนการติดตั้ง Tomcat เรียงลำดับดังนี้