Tag: kubernetes

  • 5 เทรนด์ คลาวด์คอมพิวติ้ง ที่น่าสนใจในปี 2023

    5 เทรนด์ คลาวด์คอมพิวติ้ง ที่น่าสนใจในปี 2023

    คลาวด์คอมพิวติ้ง หรือ Cloud Computing เป็นหนึ่งในเทคโนโลยีที่เติบโตเร็วที่สุดในอุตสาหกรรมไอที ถึงแม้คลาวด์คอมพิวติ้งจะเกิดขึ้นมานานแล้ว แต่จำนวนการใช้งานยังคงเพิ่มขึ้นอย่างต่อเนื่องและเติบโตอย่างก้าวกระโดดในช่วงไม่กี่ปีที่ผ่านมา อีกทั้งยังเป็นอีกหนึ่งเทคโนโลยีที่ถูกพูดถึงมากที่สุดในช่วงปีนี้ OpenLandscape จึงได้รวบรวมข้อมูล 5 เทรนด์ที่น่าสนใจเกี่ยวกับ คลาวด์คอมพิวติ้ง ในปี ค.ศ. 2023 มาให้คุณแล้วที่บทความนี้

    ภาพประกอบ 1 รูป 5 เทรนด์ คลาวด์คอมพิวติ้ง

    1. ขยับจาก Private Cloud สู่ Hybrid Cloud รองรับการเติบโตของธุรกิจ

    มีการคาดการณ์ว่าในปี ค.ศ. 2570 Hybrid Cloud อาจมีมูลค่าสูงถึง 260 พันล้านดอลลาร์สหรัฐ โดย 70 % ขององค์กรทั่วโลกจะประสบความสำเร็จจากการใช้ Hybrid Cloud และจากผลสำรวจโดย Red Hat Global Customer Tech Outlook ระบุว่า 30% ขององค์กรที่สำรวจมีกลยุทธ์ในการใช้ Hybrid Cloud และ 45% ได้มีการนำคลาวด์แพลตฟอร์มตั้งแต่ 2 แพลตฟอร์มหรือมากกว่านั้นมาใช้งานร่วมกันตั้งแต่ปี ค.ศ. 2019

    Hybrid Cloud คืออะไร? 

    Hybrid Cloud คือ การใช้งานร่วมกันระหว่าง Public Cloud และ Private Cloud ซึ่งเป็นการนำข้อดีของทั้ง 2 รูปแบบมาใช้ให้เกิดประโยชน์มากขึ้น เช่น การนำ Private Cloud เก็บเฉพาะข้อมูลภายในองค์กร และใช้ Public Cloud เพื่อการ Scale Out ให้ระบบรองรับผู้ใช้งานได้มากขึ้น สำหรับการประมวลผลในช่วงที่เกิด Workload Peak Time เป็นต้น

    โดย Hybrid Cloud สามารถเชื่อมต่อ Public Cloud และ Private Cloud ด้วย VPN หรือ Private Link ที่สามารถจัดการได้ง่าย ซึ่งต่างจาก Multi Cloud ที่ผู้ดูแลระบบต้องจัดการเรื่องการใช้งานด้วย Console ควบคุมที่ต่างกัน

    Hybrid Cloud เหมาะสำหรับธุรกิจที่เปิดรับเทคโนโลยีใหม่ ๆ ด้วยการนำ Digital Transformation หรือเทคโนโลยีและกลยุทธ์ทางดิจิทัลเข้ามาใช้ในการวางรากฐานและดำเนินงานในองค์กรให้มีประสิทธิภาพมากที่สุด โดยบางองค์กรอาจใช้เพียง Private Cloud มาก่อนและขยายสู่ Public Cloud เพื่อนำมาปรับใช้กับทุกส่วนของธุรกิจ เพื่อรองรับการเติบโตของธุรกิจ แต่รายละเอียดของ Cloud ทั้ง 2 แบบนั้นมีความต่างกันมาก ควรมีผู้เชี่ยวชาญช่วยปรับระบบให้ทำงานร่วมกันได้อย่างราบรื่น รวมถึงควรมีการทดสอบระบบบ่อย ๆ เพื่อให้เกิดความเสถียรในการใช้งาน 

    นอกจากนี้ Hybrid Cloud ยังรักษาความสามารถในการควบคุมระบบภายใน (Internal Control) โดย On-Premises หรือ Private Cloud ซึ่งเป็นระบบ IT Infrastructure ที่มีการติดตั้งใช้งานเองภายในองค์กร อีกทั้งยังได้ประโยชน์จากการใช้ Public Cloud สำหรับการลดต้นทุน รองรับการเติบโตของธุรกิจได้ดีกว่า พร้อมทั้งยังเป็นลดความเสี่ยงในการดูแลรักษาความปลอดภัยจากผู้เชี่ยวชาญ รวมถึงความยืดหยุ่นสูงในการจัดการและปรับขนาดได้ตามต้องการ 

    Public Cloud คืออะไร ?

    Public Cloud คือ คลาวด์ที่สร้างขึ้นเพื่อให้ทุกคนสามารถใช้งานได้ทุกที่ ทุกเวลา โดยมีผู้ให้บริการระบบคลาวด์เป็นผู้ตั้งระบบ Hardware และ Software เพื่อให้แต่ละองค์กรสามารถเช่าใช้บริการคลาวด์ โดยไม่ต้องลงทุนติดตั้ง Cloud Data Center ด้วยตนเอง ช่วยให้องค์กรสามารถลดค่าใช้จ่ายในเรื่องการดูแลและค่าบำรุงรักษาอุปกรณ์ทางเทคนิคอื่น ๆ อีกมากมาย รวมถึงใช้งานง่ายและมีเจ้าหน้าที่คอยให้ความช่วยเหลือตลอดการใช้บริการ 

    4 ประโยชน์ของการใช้ Public Cloud

    • ลดต้นทุนเรื่องค่าใช้จ่ายและช่วยประหยัดเงินได้มากขึ้น
    • ปรับเพิ่มหรือลดทรัพยากรได้ตามสะดวกตามแนวโน้มของธุรกิจ
    • ดูแลและจัดการระบบคลาวด์ด้วยทีมงานผู้เชี่ยวชาญ
    • มีระบบ Backup เพื่อรักษาความปลอดภัยของข้อมูล

    4 เหตุผลที่คุณควรหันมาใช้ Hybrid Cloud จากการใช้ Private Cloud

    • รวมข้อดีของ Private Cloud และ Public Cloud มาพัฒนาธุรกิจให้มีประสิทธิภาพดียิ่งขึ้น
    • ได้ผลลัพธ์ที่คุ้มค่าและใช้ทรัพยากรอย่างมีประสิทธิภาพสูง
    • รองรับการปรับเพิ่มขนาดทรัพยากรได้ตามที่ต้องการ
    • มีความยืดหยุ่นสูง

    ภาพประกอบ 2 รูป 5 เทรนด์ คลาวด์คอมพิวติ้ง

    2. เพิ่มโอกาสสู่ความสำเร็จด้วยการนำ Kubernetes และ Docker บน คลาวด์คอมพิวติ้ง

    การนำ Kubernetes และ Docker มาปรับใช้บนคลาวด์จะช่วยในเรื่องของการจัดสรรทรัพยากรข้อมูลขนาดใหญ่ให้เป็นเรื่องง่าย เพราะ Kubernetes และ Docker มีแพลตฟอร์มสำหรับย้ายซอฟต์แวร์ในรูปแบบของแพ็กเกจ (Package) ที่เรียกว่าคอนเทนเนอร์ (Containers) ช่วยเพิ่มความสะดวก รวดเร็วและมีประสิทธิภาพในการทำงานได้มากยิ่งขึ้น !

    Kubernetes คืออะไร ? 

    Kubernetes หรือ K8s เป็น Open Source ที่ช่วยจัดการคอนเทนเนอร์ให้ทำงานได้อย่างมีประสิทธิภาพสูง สามารถจัดสรรทรัพยากรได้แบบอัตโนมัติ อีกทั้งยังช่วยให้แอปพลิเคชัน (Application) ที่ทำงานบนคอนเทนเนอร์สามารถทำงานได้อย่างต่อเนื่องด้วยระบบ Auto Self-Healing

    Docker คืออะไร ?

    Docker คือ Software Container ที่ช่วยสร้างสภาพแวดล้อมเฉพาะ เพื่อทำให้ซอฟต์แวร์สามารถทำงานได้ โดยไม่ไปรบกวนซอฟต์แวร์อื่น ๆ ในระบบปฏิบัติการเดียวกัน และยังสามารถจัดการและติดตั้งคอนเทนเนอร์บนคอมพิวเตอร์หรือเซิร์ฟเวอร์เครื่องอื่น ๆ และบนคลาวด์ได้เลยทันที โดยที่โปรแกรมยังทำงานได้ตามปกติ ไม่มีปัญหาอะไรมารบกวน 

    5 ประโยชน์การนำ Kubernetes และ Docker มาปรับใช้บนคลาวด์มีอะไรบ้าง ?

    • มีประสิทธิภาพสูง
    • รองรับการเพิ่มทรัพยากรที่มีความยืดหยุ่นสูง
    • การปรับใช้ระบบอัตโนมัติบนคลาวด์
    • การแบ่งปันทรัพยากรที่ยืดหยุ่น
    • การปรับใช้ที่รวดเร็วและมีต้นทุนต่ำ

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

    • Docker เพิ่มความสะดวกในการปรับขนาดและใช้งานได้อย่างรวดเร็ว ส่วน Kubernetes ให้ความยืดหยุ่นและควบคุมการใช้งานทั้งหมดได้ง่ายมากขึ้น
    • Docker ทำงานบน Single Server และ Kubernetes ถูกสร้างขึ้นเพื่อจัดการ Server Clusters หรือ การนำคอมพิวเตอร์ Server หลาย ๆ เครื่องมาเชื่อมโยงกันและให้ทำงานพร้อมกันโดยไม่มีปัญหา ซึ่งวิธีนี้ช่วยปรับปรุง Server ได้โดยไม่ต้องหยุดการทำงาน  
    • Docker สามารถใช้งานในรูปแบบ Client-Server และรองรับรูปแบบ Image ของตนเอง ส่วน Kubernetes ใช้ประโยชน์จากรูปแบบ Master-Slave และรองรับ Image หลายรูปแบบ 
    • Docker สามารถดำเนินการอินสแตนซ์เดียว (Single Instance) ของโปรแกรมสำเร็จ (Application Package) ส่วน Kubernetes สามารถทำงานได้หลายอินสแตนซ์ (Multiple Instances) ของโปรแกรมสำเร็จ
    • Docker สามารถทำงานร่วมกับการปรับใช้อัตโนมัติ (Auto-Deploy) และเรียกใช้แอปพลิเคชันภายในคอนเทนเนอร์ได้ ส่วน Kubernetes จะปรับใช้อัตโนมัติขณะที่จัดการแอปพลิเคชันคอนเทนเนอร์ทั้งหมดที่ข้าม Nodes
    • Docker สามารถบรรจุโปรแกรมสำเร็จทั้งหมดเป็นคอนเทนเนอร์ได้ง่ายและสะดวกต่อการเคลื่อนย้าย รวมถึงได้รับการช่วยเหลือจาก Kubernetes ในการปรับใช้แบบอัตโนมัติและการปรับขนาดได้ตามต้องการ
    • Docker มาพร้อมกับระบบปฏิบัติการ (Operating System) ในการควบคุมการทำงานให้มีประสิทธิภาพ ส่วน Kubernetes เป็นระบบการปรับใช้รูปแบบ Parallel Deployment System ที่มีความสามารถในการจัดการคอนเทนเนอร์หลายตัวในเครื่องจำนวนมาก ให้ทำงานพร้อมกันได้อย่างต่อเนื่องและเต็มประสิทธิภาพ 

    ภาพประกอบ 3 รูป 5 เทรนด์ คลาวด์คอมพิวติ้ง

    3. ก้าวหน้าไปอีกขั้นด้วยการประมวลผล AI และ ML บน คลาวด์คอมพิวติ้ง

    เทคโนโลยี AI (Artificial Intelligence) และ ML (Machine Learning) เป็นอีกเทคโนโลยีที่กำลังมาแรงที่สุดในยุคนี้ รวมถึงเทคโนโลยีคลาวด์คอมพิวติ้งที่มีแนวโน้มการใช้งานเพิ่มมากขึ้นเรื่อย ๆ ด้วยเช่นกัน ดังนั้นในปี ค.ศ. 2023 เทรนด์ที่น่าจับตามองมากที่สุดคงหนีไม่พ้นการรวมเทคโนโลยี AI และ ML มาใช้บน Cloud Computing 

    ผู้เชี่ยวชาญส่วนใหญ่ยกย่อง AI และ ML เป็นเทคโนโลยีสําคัญ ในการช่วยพัฒนาให้องค์กรก้าวหน้าไปสู่ความสำเร็จในอนาคต แต่ทั้งนี้การรับส่งข้อมูลของ AI ในรูปแบบเดิม ๆ อาจใช้ Bandwidth ค่อนข้างสูง ซึ่งธุรกิจส่วนใหญ่ยังไม่มีทรัพยากรที่พร้อมรองรับ AI และ ML ได้อย่างเต็มประสิทธิภาพ ทำให้คลาวด์คอมพิวติ้งเข้ามามีบทบาทสำคัญในการช่วยพัฒนาการประมวลผลข้อมูล เพื่อสร้างแพลตฟอร์ม (Platform) การเรียนรู้ข้อมูลของ Machine ให้มีประสิทธิภาพมากยิ่งขึ้น ทำให้การรวม AI และ ML เข้ากับคลาวด์คอมพิวติ้งจึงมีความสำคัญมาก อีกทั้งยังช่วยประหยัดค่าใช้จ่าย ซึ่งเป็นอีกหนึ่งประโยชน์ที่สำคัญของการรวม AI และ ML มาทํางานบนแพลตฟอร์มคลาวด์นั่นเอง 

    AI คืออะไร ? 

    AI (Artificial Intelligence) หรือ ปัญญาประดิษฐ์ เป็นเครื่องจักร (Machine) ที่มีความสามารถในการทำความเข้าใจและเรียนรู้ข้อมูลต่าง ๆ เช่น การรับรู้, การเรียนรู้, การให้เหตุผล และการแก้ปัญหาต่าง ๆ เป็นต้น ซึ่งการเติบโตของธุรกิจ AI ต้องอาศัยความก้าวหน้าของ Chip, CPU (Central Processing Unit) และการพัฒนาอัลกอริทึม (Algorithm) รวมถึงกระบวนการแก้ปัญหาต่าง ๆ ที่พบเจอระหว่างการพัฒนา AI

    นอกจากนี้เทคโนโลยี AI เช่น Deep Learning, Natural Language Processing และอื่น ๆ ถูกนำไปใช้ในอุตสาหกรรมมากมาย เช่น ด้านการแพทย์ ที่ใช้ในการตรวจวินิจฉัยและการดูแลสุขภาพ เพื่อเพิ่มความแม่นยำในการรักษาที่มากขึ้น หรือทางด้านธุรกิจ ที่ใช้ในการวางแผนเรื่องการขายสินค้า เพื่อเพิ่มรายได้และเพิ่มโอกาสในการประสบความสำเร็จ เป็นต้น นอกจากนี้การใช้ AI และ Data Analytics ร่วมกันจะยิ่งช่วยเพิ่มระดับการวิเคราะห์เชิงคาดการณ์ (Predictive Analytics) และการวิเคราะห์เชิงให้คำแนะนำ (Prescriptive Analytics) ได้อย่างมีประสิทธิภาพมากขึ้น 

    ML คืออะไร ?

    ML (Machine Learning) เป็นการสอนให้ระบบคอมพิวเตอร์สามารถเรียนรู้ได้ด้วยตนเอง โดยใช้ข้อมูลหรือการสอนอัลกอริทึม (Algorithm) ให้เรียนรู้, ทำความเข้าใจ และตัดสินใจได้ด้วยตัวเองจากข้อมูลที่ป้อนให้

    โดยการเรียนรู้ของ Machine มี 3 รูปแบบ คือ 

    • Supervised Learning หรือ การเรียนรู้โดยมี Data สอน ซึ่งสามารถเรียนรู้และทำนายผลลัพธ์จากการสอนของผู้ให้ข้อมูล (Data Scientist) 
    • Unsupervised Learning หรือ การเรียนรู้โดยไม่มี Data สอน เป็นการเรียนรู้และทำนายผลลัพธ์ ผ่านการจำแนกและสร้างรูปแบบจากข้อมูลที่เคยได้รับและนำมาเรียนรู้เอง ซึ่งหาก Machine สามารถทำนายผลลัพธ์จากชุดข้อมูลได้เป็นจำนวนมาก จะยิ่งเพิ่มความสามารถในการเรียนรู้เชิงลึก (Deep Learning) ได้มากยิ่งขึ้น
    • Reinforcement Learning หรือ เรียนรู้ตามสภาพแวดล้อม เป็นแนวทางการเรียนรู้ของ AI ซึ่งมีลักษณะที่เหมือนการเรียนรู้ของมนุษย์ หรือการเรียนรู้จากการลองผิดลองถูก เพื่อค้นหาแนวทางการรับมือปัญหาให้ดีที่สุด ซึ่งนำไปสู่ผลลัพธ์ที่มีประสิทธิภาพ

    นอกจากนี้ ธุรกิจ AI & Cloud Computing จะมีมูลค่าสูงถึง 13.1 พันล้านดอลลาร์สหรัฐ ภายในปี ค.ศ. 2026 โดยมีอัตราการเติบโตเฉลี่ยต่อปีที่ 20.3% ระหว่างปี ค.ศ. 2021 – 2026 ซึ่งมีอัตราการเติบโตเพิ่มขึ้นเป็นอย่างสูงจาก 5.2 พันล้านดอลลาร์สหรัฐ ในปี ค.ศ. 2020 โดยองค์กรสามารถใช้ AI และ ML ร่วมกับคลาวด์คอมพิวติ้งในแอปพลิเคชันต่าง ๆ เช่น การจัดการสินทรัพย์ดิจิทัล (Digital Asset Management), การให้บริการงานธุรการทั่วไปหรืองานด้านเทคนิค รวมไปถึงงานสร้างสรรค์ต่าง ๆ แบบมืออาชีพให้แก่ลูกค้า (Virtual Assistants), บริการ Reality-as-a-service และ ความปลอดภัยของแอปพลิเคชันบนคลาวด์ (Cloud-based Security for Applications) เป็นต้น


    ภาพประกอบ 4 รูป 5 เทรนด์ คลาวด์คอมพิวติ้ง

    4. ยกระดับความปลอดภัยของข้อมูลบนคลาวด์

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

    ดังนั้น การเพิ่มวิธีการรักษาความปลอดภัยทางไซเบอร์และพร้อมรับมือกับความเสี่ยงที่ทำให้เกิดความเสียหายต่อธุรกิจจึงมีความสำคัญมากยิ่งขึ้น แต่เนื่องจากหลายองค์กรอาจต้องการควบคุมค่าใช้จ่าย จึงหันมามองหาการรักษาความปลอดภัยทางไซเบอร์ที่ประหยัดต้นทุนมากที่สุด แต่ได้ผลตอบแทนที่คุ้มค่าที่สุด เช่น การใช้ AI และเทคโนโลยีที่สามารถตรวจจับภัยคุกคามได้ก่อนเกิดปัญหา รวมไปถึงการใช้บริการ Security as a Service (SECaaS) หรือ บริการสำหรับการจัดการความปลอดภัยที่มีเพิ่มมากขึ้น ในปี ค.ศ. 2023 เช่น

    • Web Application Firewall (WAF) คือ บริการเพิ่มเกราะป้องกันให้ธุรกิจอย่างที่เหนือกว่าการใช้ Firewall โดยสามารถตรวจจับทุกกิจกรรมการใช้งานและป้องกันภัยคุกคามและไม่ทำให้การใช้งานระบบช้าลง
    • Log คือ บริการจัดเก็บ Log ตามการปฏิบัติตาม พ.ร.บ. ความผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. 2560 ช่วยให้องค์กรสามารถจัดเก็บและรวบรวมข้อมูลจราจรทางคอมพิวเตอร์ของอุปกรณ์ต่าง ๆ ภายในระบบเครือข่าย โดยไม่ต้องลงทุนจัดซื้อระบบเพื่อจัดเก็บ Log File
    • Vulnerability Assesement (VA) คือ บริการตรวจสอบและค้นหาช่องโหว่ทางด้านความปลอดภัยของระบบ เพื่อทำการแก้ไขก่อนเกิดความเสียหายร้ายแรงจากผู้ไม่ประสงค์ดี
    • Security Operations Center (SOC) คือ บริการเฝ้าระวังและรักษาความปลอดภัยขององค์กร ตรวจสอบการเข้าถึงเครือข่ายและระบบสารสนเทศต่าง ๆ ได้ตลอด 24*7
    • Penetration Test Black-Box/Grey-Box คือ บริการทดสอบการเจาะระบบ เพื่อค้นหาจุดอ่อนและประเมินความเสี่ยงในการเข้าถึงระบบต่าง ๆ ภายในองค์กรได้อย่างตรงจุด เพิ่มประสิทธิภาพด้านความปลอดภัยให้มากขึ้นโดยผู้เชี่ยวชาญ

    ภาพประกอบ 5 รูป 5 เทรนด์ คลาวด์คอมพิวติ้ง

    5. Cloud Gaming คลาวด์สำหรับสายเกมที่กำลังมาแรง  !

    Cloud Gaming เป็นการเล่นเกมผ่าน Remote Server บน Cloud Server ซึ่งผู้เล่นสามารถสตรีม (Streams) เกมบนอุปกรณ์ของตนเอง ผ่านอินเทอร์เน็ตได้โดยไม่ต้องดาวน์โหลดเกมลงในอุปกรณ์ให้เปลืองพื้นที่ ต่างจากในรูปแบบเดิมที่เป็นการเล่นเกมบนอุปกรณ์สำหรับเกมนั้นโดยเฉพาะ เช่น PC, Console และ Mobile เป็นต้น 

    โดยผลสำรวจจาก Exploding Topics เว็บไซต์รวมผลสรุปการค้นหาระบุว่า “Cloud Gaming” มีการค้นหาเพิ่มขึ้นถึง 1800% ในช่วง 6 ปีที่ผ่านมา ตั้งแต่ปี ค.ศ. 2018 – 2023 และผลสำรวจ Global Cloud Gaming จากเว็บไซต์ NEWZOO ผู้ให้ข้อมูลและการวิจัยผู้เล่นและการคาดการณ์ธุรกิจเกม ระบุว่าในปี ค.ศ. 2021 มีจำนวนผู้ใช้ประมาณ 21.7 ล้านคนที่ชำระเงินสำหรับการเล่นเกมบนคลาวด์ รวมเป็นมูลค่าประมาณ 1.5 พันล้านดอลลาร์สหรัฐ และในปี ค.ศ. 2024 รายได้ต่อปีของ Cloud Gaming คาดการณ์เพิ่มขึ้นเป็น 4 เท่า รวมเป็นมูลค่าถึง 6.3 พันล้านดอลลาร์สหรัฐ และจำนวนผู้ใช้ที่ชำระเงินคาดว่าจะเพิ่มขึ้นสูงถึง 58.6 ล้านคน ซึ่งแสดงให้เห็นถึงการเติบโตขึ้นอย่างรวดเร็วของธุรกิจ Cloud Gaming โดยเหตุผลสำคัญมาจากการขาดแคลน Chip ที่มีประสิทธิภาพรองรับกับคุณภาพเกมที่ทันสมัยมากยิ่งขึ้น ซึ่งส่งผลกระทบต่อการผลิต Console สำหรับการเล่นเกมรูปแบบเดิมเป็นอย่างมาก ทำให้การเล่นเกมโดยไม่ต้องใช้ฮาร์ดแวร์เฉพาะ (Hardware) จึงเกิดขึ้นมาในรูปแบบการเล่นเกมบนคลาวด์ ที่สามารถเล่นบนอุปกรณ์ต่าง ๆ ได้หลากหลายมากยิ่งขึ้น เช่น สมาร์ตทีวี (Smart TVs), กล่องรับสัญญาณทีวี (TV Set-Top Boxes) และแท็บเล็ต (Tablets) เป็นต้น 

    เมื่อความต้องการจากผู้ใช้ Cloud Gaming มีมากขึ้นเท่าไหร่ ยิ่งเป็นการช่วยเร่งให้ใช้เทคโนโลยีนี้มากขึ้นไปอีกในอนาคต และในงาน Consumer Electronics Show (CES) ในปี ค.ศ. 2022 หรืองานแสดงสินค้าอิเล็กทรอนิกส์เพื่อผู้บริโภค ซึ่งรวมบริษัทชื่อดังเกี่ยวกับอิเล็กทรอนิกส์ทั่วโลกมากมายมาแสดงนวัตกรรมใหม่ ๆ โดยภายในงานมีการเปิดตัวผลิตภัณฑ์และบริการที่รองรับการเล่นเกมบนคลาวด์ เช่น Samsung และ LG ประกาศรองรับ Google Stadia แพลตฟอร์มเกมบนคลาวด์ของ Google ที่สามารถเล่นบนสมาร์ตทีวีได้ เป็นต้น


    คุณพร้อมนำ 5 เทรนด์คลาวด์คอมพิวติ้งในปี 2023 ไปใช้กับธุรกิจของคุณแล้วหรือยัง ?

    การให้บริการคลาวด์คอมพิวติ้งมีหลายรูปแบบ รวมถึงมีข้อดีและข้อเสียที่แตกต่างกัน เพื่อประโยชน์สูงสุดในการพัฒนาธุรกิจขององค์กร ควรเลือกรูปแบบคลาวด์ที่ตรงตามต้องการและมีความเหมาะสมกับธุรกิจ เพื่อการเติบโตอย่างมีประสิทธิภาพและมีความมั่นคงในยุคดิจิทัลที่ทุกอย่างเกิดการเปลี่ยนแปลงอย่างรวดเร็ว 


    ข้อมูลอ้างอิง

    https://explodingtopics.com/blog/cloud-computing-trends

    https://explodingtopics.com/topic/cloud-gaming-1

    https://www.forbes.com/sites/bernardmarr/2022/10/17/the-top-5-cloud-computing-trends-in-2023

    https://www.itpro.co.uk/hybrid-cloud/29668/what-is-hybrid-cloud

    https://medium.com

    https://www.mindphp.com/

    https://www.salika.co/2019

    https://suyati.com/blog/watch-out-for-these-5-cloud-computing-trends-in-2023/

    https://techsauce.co/tech-and-biz/ai-machine-learning-deep-learning-differences

    https://www.thaiprogrammer.org/2018

    https://www.turing.com

  • Rancher จากโปรเจกต์ Open Source สู่ซอฟต์แวร์ Kubernetes Clusters ระดับแนวหน้า

    Rancher จากโปรเจกต์ Open Source สู่ซอฟต์แวร์ Kubernetes Clusters ระดับแนวหน้า

    ทำความรู้จัก Rancher : จากโปรเจกต์ Open Source สู่ซอฟต์แวร์ Kubernetes Clusters ระดับแนวหน้า

    ในปัจจุบันมีเทคโนโลยีมากมายหลายประเภทที่ถูกพัฒนาขึ้นมาเพื่อใช้เป็นเครื่องมือในการพัฒนาระบบ แต่หนึ่งในเทคโนโลยีที่กำลังเป็นกระแสมาแรงมากที่สุดในตอนนี้คือ เทคโนโลยี “Kubernetes” (คูเบอเนเตส) หรือที่ใครหลาย ๆ คนเรียกว่า K8S นั่นเอง

    วันนี้ OpenLandscape เลยขอพาทุกคนมาทำความรู้จักกับ “Rancher” ซอฟต์แวร์ Kubernetes Clusters ว่าคืออะไรและอะไรที่เป็นปัจจัยสำคัญที่ทำให้โปรเจกต์ Open Source เล็ก ๆ สามารถเติบโตสู่เเพลตฟอร์มระดับแนวหน้าได้ภายในระยะเวลาเพียงไม่กี่ปี


    บทความนี้มีหัวข้ออะไรบ้าง ?

    เทคโนโลยี “Kubernetes” (คูเบอเนเตส) คืออะไร ?

    Rancher คืออะไร ?

    Rancher ทำอะไรได้บ้าง ?

    Rancher มีโครงสร้างในการทำงานอย่างไร ?

    Rancher มีฟีเจอร์ API Server อะไรบ้างที่น่าสนใจ ?

    คุณเหมาะที่ใช้ Rancher หรือเปล่า ?


    ทำความรู้จักกับเทคโนโลยี “Kubernetes” (คูเบอเนเตส)

    ก่อนที่เราจะไปรู้จักกับ “Rancher” อันดับแรก เรามาทำความรู้จักกับเทคโนโลยี “Kubernetes” (คูเบอเนเตส) กันก่อนว่าคืออะไร และเอาไว้ใช้ทำอะไรกันแน่

    เทคโนโลยี “Kubernetes” (คูเบอเนเตส) หรือ K8S คือ ซอฟต์แวร์ที่ใช้ในการจัดการ Containers โดยถือกำเนิดมาจากโปรเจกต์ Open Source ของ Google เพื่อใช้เป็นเครื่องมือการจัดการคอนเทนเนอร์ให้สามารถทำงานได้ด้วยตนเองอย่างอัตโนมัติตามที่ Config ไว้

    K8S จึงเป็นเทคโนโลยีที่ช่วยลดภาระให้กับนักพัฒนาและผู้ดูแลระบบได้เป็นอย่างดี สำหรับใครที่อยากศึกษาและทำความรู้จักกับเทคโนโลยี “Kubernetes” เพิ่มเติมสามารถเข้าไปอ่านบทความของเราได้ที่ : Kubernetes หนทางสู่การทำระบบให้แกร่งกว่าที่เคย!


    Rancher คืออะไร ?

    Rancher คือ โปรเจกต์ Open Source ที่ได้รับจำนวนกดโหวตบน GitHub มากกว่า 2 หมื่นครั้ง  โดยพัฒนามาจาก “Kubernetes” เวอร์ชันคอมมูนิตี้ ทำให้มีความสามารถในการสร้างและจัดการ Container ได้เช่นเดียวกัน มาถึงตรงนี้ดูเผิน ๆ แล้วทั้งสองตัวนี้มีความคล้าย ๆ กันใช่มั้ยคะ ซึ่งหลาย ๆ คนอาจจะเกิดคำถามขึ้นมาว่า “เอ้…แล้วแบบนี้ทั้งสองต่างกันยังไงนะ ?” เดี๋ยวลองมาดูกันค่ะว่าความสามารถอะไรที่ทำให้ Rancher แตกต่างจาก Kubernetes เวอร์ชันคอมมูนิตี้

    Video : What is Rancher?


    Rancher ทำอะไรได้บ้าง ?

    1. สามารถรัน Kubernetes ที่ไหนก็ได้

    อย่างที่เราทราบกันดีว่าโดยพื้นฐานแล้ว Kubernetes ดั้งเดิมนั้นใช้สำหรับการจัดการ Containers แต่สำหรับ Rancher นั้นต่างออกไปค่ะ เพราะว่านอกจากจะมีความสามารถพื้นฐานของ Kubernetes ที่เป็นเวอร์คอมมูนิตี้ดั้งเดิมแล้ว ยังสามารถสร้างและจัดการได้ถึงระดับ Kubernetes ได้ด้วย หรือที่เรียกว่าการทำ Kubernetes Clusters นั่นเอง โดยใช้ซอฟต์แวร์ที่มีชื่อว่า Rancher Kubernetes Engine (RKE) ผู้ใช้งานจึงสามารถเชื่อมต่อและจัดการ Clusters ที่สร้างไว้ ได้ทุก Clusters ไม่ว่า Cluster นั้น ๆ จะอยู่ที่ไหนหรือใช้ Kubernetes Distributions ใดก็ตาม

    2. เป็นเครื่องมือช่วยให้นักพัฒนาจัดการระบบได้อย่างง่ายได้มากยิ่งขึ้น

    ซอฟต์แวร์ของ Rancher ถูกพัฒนาขึ้นให้สามารถใช้เป็นศูนย์รวมในการจัดการ Kubernetes Cluster  ทั้งหมดที่คุณมีอยู่ โดยที่คุณไม่ต้องเข้าออกหลายเเพลตฟอร์มให้ยุ่งยากและเสียเวลา เพราะ Rancher สามารถทำได้ทั้งการพิสูจน์ตัวตน (Authentication) , การควบคุมการเข้าถึง (Access control) หรือการรายงานผล (Monitoring) เช่น 

    • คุณสามารถทำการ Active Directory เพื่อเข้าถึง Kubernetes Clusters ของคุณที่อยู่บนผู้ให้บริการคลาวด์แบรนด์ใดก็ได้ 
    • คุณสามารถตั้งค่าและกำหนดสิทธิ์ ที่ใช้ในการควบคุมหรือเข้าถึงความปลอดภัยของระบบระหว่างผู้ใช้งาน, กลุ่มผู้ใช้งาน, โปรเจกต์, Clusters ไปจนถึง ระบบคลาวด์ได้
    • คุณสามารถตรวจสอบประสิทธิภาพในการทำงาน Kubernetes Clusters  ของคุณได้อย่างง่ายดายในหน้าแดชบอร์ด (Dashboard) เดียว

    3. ช่วยเพื่มประสิทธิภาพการทำงานของทีมนักพัฒนาให้ดียิ่งขึ้น

    นอกจาก Rancher จะช่วยในจัดการ Kubernetes Clusters แล้ว ยังมีฟีเจอร์ที่ให้ผู้ใช้งานสามารถจัดการระบบต่าง ๆ ผ่าน UI ได้โดยไม่ต้องสั่งการผ่านหน้า Command Line รวมไปถึง Rancher Catalog ที่ทาง Rancher คัดเลือกมาแล้วว่าเป็นเครื่องมือที่ปลอดภัยและมีประโยชน์ต่อการพัฒนาระบบ

    Rancher ยังได้รับการยอมรับและนำไปใช้ในระบบ Ecosystem ของผู้ให้บริการ Cloud Native หลาย ๆ แบรนด์ เช่น ใช้เป็นเครื่องมือรักษาความปลอดภัย (Security Tools), ทำระบบรายงานผล (Monitoring Systems), ใช้ในการลง Container, ใช้ในการจัดเก็บ Storage หรือใช้ซอฟต์แวร์ Networking Drivers ในการเชื่อมเครือข่ายคอมพิวเตอร์เข้าด้วยกัน เป็นต้น


    Rancher มีโครงสร้างในการทำงานอย่างไร ?

    จากภาพประกอบทางด้านล่างเราจะเห็นได้ว่า Rancher มีบทบาทในการเชื่อมความสัมพันธ์ในการทำงานร่วมกันระหว่างทีม DevOps และ IT Admin โดย DevOps แต่ละทีมสามารถเลือก Deploy แอปพลิเคชันของตัวเองขึ้นบนคลาวด์ที่แต่ละทีมเลือกใช้ได้ ในขณะที่ IT Admin สามารถดูแลและจำกัดสิทธิ์การเข้าถึงของผู้ใช้งานทั้งหมด (Users) รวมไปถึงจัดการ Clusters และระบบคลาวด์ที่มีอยู่ในระบบทั้งหมดได้ด้วย

    Rancher มีโครงสร้างในการทำงานอย่างไร ?

    โครงสร้างการทำงานของ Rancher 


    Rancher มีฟีเจอร์ API Server อะไรบ้างที่น่าสนใจ ?

    Rancher มีฟีเจอร์ API Server อะไรบ้างที่น่าสนใจ ?

    อีกหนึ่งจุดเด่นที่ทำให้ Rancher มีความน่าสนใจและน่าใช้งานเลยก็คือ Rancher API Server ที่สามารถทำงานเชื่อมต่อกับ Kubernetes API Server และ etcd database ช่วยเพิ่มประสิทธิภาพในการทำงานและพัฒนาระบบไปอีกขั้น โดยรายละเอียดของ Rancher API server มีฟังก์ชันในการทำงานดังนี้

    API Server ที่ช่วยในการจำกัดสิทธิ์ในการเข้าถึงและ Role ของผู้ใช้งาน

    API Server ที่ช่วยในการจัดการ Kubernetes

    • Provisioning Kubernetes clusters: API ที่ช่วยในการ Provisioning Kubernetes ในกรณีที่มี Node อยู่แล้ว หรือ Kubernetes มีการอัปเกรด
    • Catalog management: สามารถ Deploy แอปพลิเคชันในรูปแบบเดิมซ้ำ ๆ ได้อย่างง่ายดายด้วย Catalog แหล่งรวมแอปพลิเคชันพร้อมใช้งาน และมี Helm charts คอลเลคชันไฟล์ที่ช่วยในการเซ็ต Resources ของ Kubernetes ที่มีหลากหลาย Chart ให้เลือกใช้
    • Managing projects: โปรเจกต์ที่รวบรวบกลุ่มของ เนมสเปซ (namespace) ไว้อย่างหลากหลาย รวมไปถึงการเข้าถึงสิทธิ์ในการควบคุม Cluster โดยโปรเจกต์ดังกล่าวนี้มีความแตกต่างจาก Kubernetes เวอร์ชันคอมมูนิตี้ตรงที่คุณสามารถจัดการเนมสเปซ (namespace) ที่มีอยู่ของคุณในรูปแบบกลุ่ม (Group) ได้ และสามารถรัน Kubernetes ภายในเนมสเปซ (namespace) ที่คุณจัดกลุ่มไว้ ผ่านหน้า UI ของ Rancher โดยฟีเจอร์นี้ช่วยอำนวยความสะดวก Project administration และสามารถใช้ในการจัดการแอปพลิเคชันภายในโปรเจกต์ได้ด้วย
    • Pipelines: สำหรับ Developer แล้วการทำ Pipeline เป็นสิ่งที่สำคัญ เพราะสามารถช่วยให้การพัฒนาซอฟต์แวร์ หรือแอปพลิเคชันใหม่ ๆ ออกมามีประสิทธิภาพและรวดเร็วมายิ่งขึ้น ซึ่ง Rancher ก็มีฟีเจอร์ที่ช่วยในการ Config สำหรับ  Pipeline ในแต่ละโปรเจกต์
    • Istio: : ซอฟต์แวร์ของ Rancher มีการ Integrate กับ Istio ซอฟต์แวร์ Service Mesh ที่เป็นโปรเจกต์ Open Source เช่นเดียวกัน โดยออกแบบระบบให้ Administrator และ Cluster owner ที่อยู่ในระบบของ Rancher สามารถส่ง Istio ไปยัง Developer ได้  Developer เองก็สามารถใช้ Istio ดังกล่าวในการเข้าถึงระบบความปลอดภัย เข้าไปแก้ไข หรือจัดการ Traffic สำหรับการ Deployment ในแบบรูปแบบ Blue-Green deployment หรือ Canary Release รวมไปถึงการทำ A/B testing ด้วย

    API Server ที่ช่วยในการใช้งานบนคลาวด์

    • Tracking nodes: API ที่ช่วยในการ Track ทุก Node ที่มีอยู่ใน Cluster
    • Setting up infrastructure: เวลา Config เพื่อใช้งานคลาวด์ Rancher จะช่วยในการ Provision เพิ่ม Node และขยายพื้นที่ Storage บนคลาวด์

    API Server ที่ช่วยในการตรวจสอบ Cluster

    • Logging: ซอฟต์แวร์ของ Rancher มีการ Integrate กับ Logging services ยอดนิยมหลากหลายเซอร์วิส เพื่อให้คุณสามารถเข้าถึง Kubernetes Clusters จากภายนอกได้ 
    • Monitoring: Rancher มีระบบ Monitoring ที่แสดงให้เห็นการทำงานของ Cluster แต่ละ Nodes การทำงานภายใน Kubernetes และ ตรวจสอบการ Deploy ซอฟต์แวร์ขึ้นระบบ ผ่าน Prometheus โปรเจกต์ Open source ที่โด่งดังในด้านการ Monitoring
    • Alerting: มีระบบของแจ้งเตือนเมื่อ Clusters หรือ แอปพลิเคชัน มีปัญหาเพื่อให้ทีมของคุณสามารถเข้าไปจัดการและแก้ไขได้ทันท่วงที

    Demo: Intro to Rancher container management


    คุณเหมาะที่ใช้ Rancher หรือเปล่า ?

    คุณเหมาะที่ใช้ Rancher หรือเปล่า ?

    มาถึงจุดนี้คุณอาจจะกำลังคิดว่า “ทีม” หรือ “องค์กร” ของคุณเหมาะที่จะใช้ Rancher หรือไม่ เดี๋ยวลองมาดูดีกว่าค่ะ ว่าปัจจัยเหล่านี้เป็นสิ่งที่คุณกำลังมองหาอยู่หรือไม่

    1. ต้องการทำระบบที่มีหลาย Kubernetes Cluster หรือมี Cluster กระจายอยู่หลายที่  

    แน่นนอนว่าการจัดการย่อมเป็นไปได้ยาก หาก Cluster ที่มีอยู่ของคุณ ทำงานแยกออกจากกัน Rancher ช่วยคุณจัดการปัญหาเหล่านี้ได้ด้วยเป็นศูนย์รวมในการจัดการ Cluster รองรับการทำระบบแบบ Kubernetes Clusters เพื่อให้คุณสามารถจัดการทุก Cluster ที่มีอยู่ของทั้งหมดได้ในที่เดียวโดยไม่ต้องเสียเวลาจัดการทีละ Cluster 

    2. ต้องการซอฟต์แวร์ที่มีความยืดหยุ่น สามารถรันได้ทุกที่ 

    ปัจจุบันมีซอฟต์แวร์ที่ใช้ในการจัดทำ Container หลายตัวที่ถูกพัฒนาและผลิตสู่ท้องตลาด ซึ่งบางเเพลตฟอร์มที่มีข้อจำกัดในการใช้งานและการติดตั้ง ด้วยข้อได้เปรียบจากการเป็นโปรเจกต์ Open source ของ Rancher จึงทำให้คุณสามารถรันซอฟตแวร์ของ Rancher ที่ใดก็ได้แบบไม่มีขีดจำกัด

    3. ต้องการรซอฟต์แวร์ที่ใช้งานง่าย 

    Rancher มี UI ที่ทำให้ทีมนักพัฒนาที่ถึงแม้ว่าจะมีความรู้ไม่ลึกมาก ก็สามารถจัดการระบบ Kubernetes ได้ ขอเพียงเข้าใจโครงสร้างและคอนเซปต์ในการทำงานของ Kubernetes Cluster เพียงเท่านั้นพอ

    4. ต้องการระบบที่มี Tools, APIs และ App Catalog ให้เลือกใช้งานหลากหลาย 

    Rancher มีการพัฒนารวมไปถึง integrate กับซอฟต์แวร์และโปรเจกต์ Open Souce ชั้นนำหลากหลายเซอร์วิสด้วย จึงทำให้มีฟีเจอร์ที่ครอบคลุมและตอบโจทย์ทั้งในฝั่งของทีม IT Admin, ทีม DevOps และ Developer

    5. ต้องการใช้ฟีเจอร์ เซอร์วิส หรือเทคโนโนโลยีใหม่ ๆ อยู่เสมอ 

    Rancher สนับสนุนโปรเจกต์ Open Source ด้วยการ Integrate โปรเจกต์ใหม่ ๆ ที่มีคุณภาพและความนิยมเข้ากับซอฟต์แวร์ของ Rancher อยู่เสมอ นอกจากนี้หากซอฟต์แวร์หรือเซอร์วิสที่คุณใช้งานมี API ที่สามารถเชื่อมต่อกับ Rancher ได้ คุณสามารถใช้งานซอฟต์แวร์หรือเซอร์วิสนั้น ๆ ได้เช่นเดียวกัน

    6. ต้องการประหยัดต้นทุน 

    อีกหนึ่งจุดเด่นของ Rancher เลยคือการมีต้นทุนน้อย เพราะเป็นโปรเจกต์ Open Source ที่เปิดให้คุณใช้งานฟรี 100% ทำให้คุณหมดห่วงเรื่อง Eco-system ของผู้ให้บริการแต่ละ Vendor เพื่อที่จะหันมาโฟกัสกับการออกแบบ Solution ให้ตอบโจทย์กับการใช้งานและเหมาะสมกับต้นทุนที่คุณตั้งไว้แทน


    Final Thoughts !

    ในยุคที่เทคโนโลยีเติบโตอย่างรวดเร็วและมีการแข็งขันสูงแบบนี้ หลาย ๆ บริษัทเริ่มนำเทคโนโลยี Kubernetes ไปปรับใช้กับองค์กรของตัวเองมากขึ้น เพื่อพัฒนาองค์กรตัวเองให้สามารถแข่งขันกับคู่แข่งในตลาดได้ ฟังก์ชันการทำงานของ Rancher จึงตอบโจทย์ทั้งในแง่ของการช่วยประหยัดต้นทุน ใช้งานง่ายและมีความยืดหยุ่นสูง  อีกทั้งยังช่วยลดภาระให้ทีมพัฒนาของคุณทำงานได้อย่างรวดเร็วและมีประสิทธิภาพมากยิ่งขึ้น Rancher จึงกลายเป็นอีกหนึ่งโปรเจกต์ Open Source เล็ก ๆ ที่เติบโต สู่เเพลตฟอร์มระดับแนวหน้าได้ในระยะเวลาสั้น ๆ โดยไม่ต้องสงสัย !

    OpenLancdscape มองเห็นถึงความสำคัญของเทคโนโลยีนี้ เราจึงสนับสนุนให้คุณสามารถใช้งาน Rancher บนคลาวด์ของเราได้อย่างง่ายดาย เพียงสมัครใช้บริการและทำตามคู่มือ วิธีการติดตั้ง Rancher ใน OS Ubuntu 18.04 คุณก็สามารถใช้เทคโนโลยี Rancher ได้แล้ว 


    อ้างอิงจาก : 

    Rancher : https://rancher.com/docs/rancher/v2.x/en/overview/

    Kubernetes : https://kubernetes.io/

    Kubernetes หนทางสู่การทำระบบที่ไม่มีวันล่ม : https://blog.openlandscape.cloud/what-is-kubernetes

    เปลืองเวลาเป็นวันๆไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ ! : https://blog.openlandscape.cloud/docker

  • วิธีการติดตั้ง Rancher ใน OS Ubuntu 18.04

    วิธีการติดตั้ง Rancher ใน OS Ubuntu 18.04

    Rancher คืออะไร ?

    Rancher คือ Complete container management platform หรือ ซอฟต์แวร์ที่ใช้ในการจัดการ Kubernestes ภายใน Cluster โดยความพิเศษของตัว Rancher นอกจากจะสามารถรอบรับระบบ Operating system และ Hypervisor ได้หลากหลายแล้ว ยังสามารถจัดการ Cluster ได้หลาย ๆ Cluster ผ่าน WebUI ได้อย่างง่ายดายโดยที่ไม่ต้องใช้ Command line 

    สนใจสมัครใช้บริการได้ที่ : สมัครใช้บริการ OpenLandscape Cloud


    บทความนี้มีหัวข้ออะไรบ้าง

    ข้อมูลพื้นฐานก่อนการติดตั้ง

    วิธีการติดตั้ง Rancher

    วิธีการตั้งค่า Rancher ผ่านหน้า Web Browser 

    วิธีการสร้าง Cluster บน Rancher

    วิธีการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes

    วิธีการกำหนด Role และเชื่อมต่อแต่ละ Node ของ Kubernetes เข้าไปยัง Cluster


    ข้อมูลพื้นฐานก่อนการติดตั้ง

    1.1.ส่วนประกอบ Environment ภายใน Cluster Rancher

    • Rancher-server  คือเครื่องที่ใช้ในการจัดการ Cluster Kubernetes สำหรับ Rancher
    • K8s-master        คือเครื่อง Master Node ของ Kubernetes ใช้สำหรับ Control และเก็บ etcd ของ Cluster kubernetes นั้น ๆ
    • K8s-worker1     คือเครื่อง Work Node ของ Kubernetes สำหรับ Run application ที่ทำการสร้างใน Cluster Kubernetes นั้น ๆ

    หมายเหตุ : สำหรับ Security group ในส่วนของ Port ที่ต้องเปิดจะมีรายการดังนี้ 80, 443, 6443, 2379

    1.2.ความต้องการของระบบ Rancher และ Kubernetes Cluster

    Requirements VM ของ rancher 

    Deployment SizeClustersNodesCPUsRAMs
    Small (Package D)Up to 3Up to 4024 GB
    Medium (Package E)Up to 12Up to 18048 GB

    Requirements VM ของ Kubernetes master node

    Deployment SizeCPUsRAMs
    POC Size(Package C)22 GB
    Production Size(Package E)48 GB

    Requirements VM ของ Kubernetes worker node

    Deployment SizeCPUsRAMs
    POC Size(Package C)22 GB
    Production Size(Package E)48 GB

    Requirements VM ของ Kubernetes All in one

    Deployment SizeCPUsRAMs
    minimum(Package E)48 GB
    Recommend(Package G)816 GB

    *** ในส่วนนี้ไม่แนะนำสำหรับใช้งานจริง เพราะอาจจะทำให้ App แย่งทรัพยากรกันได้


    วิธีการติดตั้ง Rancher

    1.อันดับแรกให้คุณทำการสร้าง Instance สำหรับใช้ในการติดตั้ง Rancher 

    [ตัวอย่างการเลือก Spec ของ Instance]

    • OS: Ubuntu 18.04
    • Package D
    • Networks Private: Enable
    • External IP: Yes
    • Instance Name: rancher-server
    วิธีการติดตั้ง Rancher

    2.เมื่อทำการสร้าง Instance แล้ว ให้ทำการ Update และ Upgrade ให้เรียบร้อย จากนั้นทำการติดตั้ง Docker ภายในเครื่อง Rancher โดยใช้คำสั่งดังนี้

    2.1.คำสั่ง Update

     # apt-get update

    2.2.คำสั่ง Upgrade

    # apt-get upgrade -y

    2.3.คำสั่งติดตั้ง Docker

    # curl https://releases.rancher.com/install-docker/19.03.sh | sh

    # usermod -aG docker root

    3.ต่อมาให้ทำการติดตั้ง Rancher โดยสามารถแบบได้เป็น 2 กรณีดังนี้

    3.1.คำสั่งติดตั้ง Rancher ในกรณีที่ไม่ต้องการจด Domain 

    # docker run -d –restart=unless-stopped –name rancher -p 80:80 -p 443:443 rancher/rancher:v2.4.8

    3.2.คำสั่งติดตั้ง Rancher  กรณีที่ต้องการใช้ domain

    # docker run -d –restart=unless-stopped –name rancher \

      -p 80:80 -p 443:443 \

      -v /opt/rancher:/var/lib/rancher \

      -v /var/log/rancher/auditlog:/var/log/auditlog \

      -v <ทำการใส่ path ของ cert ที่จด domain>:/etc/rancher/ssl/cert.pem \

      -v <ทำการใส่ path ของ private-key ของ domain>:/etc/rancher/ssl/key.pem \

      -v /etc/localtime:/etc/localtime:ro \

      -e AUDIT_LEVEL=1 \

      rancher/rancher:v2.4.8 \

      –no-cacerts

    *** คุณสามารถดูวิธีการจด Domain ได้ที่ : https://blog.openlandscape.cloud/domain-name-registration

    ติดตั้ง Docker ภายในเครื่อง Rancher

    หลังจากใช้คำสั่ง Docker จะทำการดึง Image Rancher ออกมา เพื่อทำการสร้าง Container Docker


    วิธีการตั้งค่า Rancher ผ่านหน้า Web Browser 

    1.หลังจากดำเนินการติดตั้ง Rancher เรียบร้อยแล้ว ให้เข้าไปที่ https://<domain || ippublic> เพื่อทำการตั้งค่า Rancher ผ่านหน้า Web Browser

    1.1.ทำการตั้ง Password สำหรับเข้าหน้า Dashboard ของ Rancher

    1.2.ทำเครื่องหมายถูกในช่อง “I agree” และกดที่ปุ่ม “Continue”

    วิธีการตั้งค่า Rancher ผ่านหน้า Web Browser

    1.3.ทำการตรวจสอบ Url ของ Rancher อีกครั้ง

    Url ของ Rancher

    วิธีการสร้าง Cluster บน Rancher

    เมื่อทำการกรอกข้อมูลเสร็จเรียบร้อยแล้ว ก็จะสามารถเข้าสู่หน้า Dashboard ของ Rancher ได้ โดยเมื่อเข้าไปแล้วจะสังเกตได้ว่าระบบยังไม่มี Cluster ของ Kubernetes สร้างไว้ ให้คุณทำการสร้าง Cluster โดยมีรายละเอียดวิธีการดังนี้

    1.ให้เข้าไปที่หน้า Dashborad ของ Rancher จากนั้นกดที่ปุ่ม “Add Cluster” 

    Dashborad ของ Rancher

    2.เลือกประเภท Cluster เป็น “From existing nodes (Custom)” 

    From existing nodes (Custom)

    3.ทำการตั้งค่า Cluster โดยตั้งชื่อให้เรียบร้อย จากนั้นตั้งค่าส่วนต่าง ๆ หรือจะเลือกเป็นค่า Defalut ของ Rancher ก็ได้เช่นเดียวกัน

    Defalut ของ Rancher

    วิธีการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes

    หลังจากทำการสร้าง Cluster ของ Kubernetes เรียบร้อยแล้ว ต่อมาให้ทำการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes โดยมีรายละเอียดวิธีการดังนี้

    1.ทำการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes

    1.1.สเปคแนะนำของ Instance สำหรับใช้งานทั่วไป

    • OS : Ubuntu 18.04
    • Package C หรือ E ตามความต้องการของ application
    • Networks Private : Enable
    • External IP : Yes

     โดยสร้างเครื่องทั้งหมด 5 เครื่องได้แก่

    • k8s-master-1
    • k8s-master-2
    • k8s-master-3
    • k8s-worker-1
    • k8s-worker-2

    1.2.สเปคแนะนำของ Instance สำหรับการสร้างแบบ All in one 

    • OS : Ubuntu 18.04
    • Package C หรือ E ตามความต้องการของ Application
    • Networks Private : Enable
    • External IP : Yes

    โดยสร้างเครื่องทั้งหมด 3 เครื่องได้แก่

    • k8s-node-1
    • k8s-node-2
    • k8s-node-3

    *** Cluster all in one  เป็น Cluster ที่เหมาะสำหรับทดสอบการทำงานของ App ต่างๆ ไม่แนะนำให้ใช้งานกับโปรดักส์ชันจริง

    2.เมื่อทำการสร้าง Instance แล้วให้ทำการติดตั้ง Docker ลงใน Node ของ Kubernetes ทุกเครื่องที่เราได้ทำการสร้างไว้โดยใช้คำสั่ง

    2.1.คำสั่ง update

    # apt-get update

    2.2.คำสั่ง upgrade

    # apt-get upgrade -y

    2.3.คำสั่ง install docker

    # curl https://releases.rancher.com/install-docker/19.03.sh | sh

    # usermod -aG docker root


    วิธีการกำหนด Role และเชื่อมต่อแต่ละ Node ของ Kubernetes เข้าไปยัง Cluster

    ขั้นตอนต่อมาหลังจากสร้าง Instance กำหนด Role สำหรับใช้เป็น Node ของ Kubernetes เรียบร้อยแล้วให้ทำการกำหนด Role และเชื่อมต่อแต่ละ Node ของ Kubernetes เข้าไปยัง Cluster ที่เราสร้างไว้ โดยมีรายละเอียดวิธีการดังนี้

    1.อันดับแรกให้ทำการกำหนด Role ให้กัตบ Instance แต่ละตัวโดยมีรายละเอียดดังนี้

    1.1.Instance สำหรับ k8s-master จะต้องเลือก Role ดังนี้

    • etcd
    • Control Plane

    ทำเครื่องหมายถูกเรียบร้อยแล้ว ให้ทำการ Copy คำสั่ง Docker เพื่อทำการ Run บนเครื่อง k8s-master ทุกเครื่อง

    Copy คำสั่ง Docker

    6.2.Instance สำหรับ k8s-worker จะต้องเลือก Role ดังนี้

    • Worker

    เทำเครื่องหมายถูกเรียบร้อยแล้ว ให้ทำการ Copy คำสั่ง Docker ทำการ run เพื่อทำการ Run บนเครื่อง k8s-worker ทุกเครื่อง

    k8s-worker

    หากเป็นเครื่อง All in one ให้ทำการทำเครื่องหมายถูกทั้งหมด และทำการ Run Docker ที่ k8s-node ทุกเครื่อง

    Run Docker

    หลังจากนั้นเข้าไปยัง Cluster แล้วเข้าที่ Node จะเห็นว่าระบบกำลังลง Kubernetes ให้อยู่

    Kubernetes
  • Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย !

    Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย !

    Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย !

    Kubernetes คือ อะไร ?

    “Kubernetes” หรือ “K8s” คือ “Container Orchestration” เป็น OpenSource จาก Google ที่จะมาช่วยในการจัดการคอนเทนเนอร์ (เช่น Docker, LXC)  ซึ่ง K8s ไม่ได้เป็นเทคโนโลยีเดียวที่ใช้ในการจัดการคอนเทนเนอร์ เพราะยังมี Docker Swarm ที่ใช้จัดการคอนเทนเนอร์ได้เช่นกัน ซึ่งหน้าที่หลัก ๆ คือ ช่วยให้เราสามารถติดตั้ง (Deployment) จัดสรรทรัพยากร หรือเพิ่มลดทรัพยากรแบบอัตโนมัติได้ (Managing & Scaling) นอกจากนั้นยังช่วยให้ Application ที่ทำงานอยู่บนคอนเทนเนอร์สามารถทำงานได้อย่างต่อเนื่อง ด้วยระบบที่พร้อมใช้งานตลอดเวลา (Auto Self-Healing) พูดง่าย ๆ คือ สามารถทำระบบที่ฆ่ายังไงก็ไม่ตายนั่นเอง ! (โกงกว่านี้มีอีกมั้ย?)

    ภาพประกอบ 1 Kubernetes คือ

    จากภาพข้างต้นจะเห็นว่า Kubenetes เป็นการต่อยอดหลังจากที่เราสร้าง Container ให้กับ App แล้ว โดยสามารถอ่านเพิ่มเติมเกี่ยวกับ Docker ได้ที่บทความเปลืองเวลาเป็นวัน ๆ ไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ ! ซึ่งเมื่อมี Container แล้วสามารถ Manage ยังไงให้ได้ประสิทธิภาพสูงสุด จึงเป็นที่มาของการนำ Kubernetes เข้ามาเพื่อควบคุม Container ทั้งหมดอีกที ด้วยวิธีการง่าย ๆ คือ สร้าง Config สั่งไว้แผ่นหนึ่ง (เป็นไฟล์ .yaml) เขียนคำสั่งให้ทำตามที่ต้องการ แล้วปล่อยให้ระบบควบคุมให้เราเองได้เลย ดังนั้นจึง Centralized มากขึ้น ลดการทำงานที่ซับซ้อนได้ แถมยังเป็นไปแบบ Automatic อีกด้วย ส่วนมันออโต้ได้ขนาดไหน ? เลื่อนลงไปอ่านกันต่อได้เลย

    ภาพประกอบ 2 Kubernetes คือ ภาพรวมการทำงานของ Kubernetes

    ยากไป ? งั้นมาดูเคสตัวอย่างกันเลยดีกว่า

    เคสแรก หากต้องการเพิ่มเครื่อง ต่อให้เรามี Container แล้ว เรายังต้องเปิดทีละเครื่องใหม่ แล้วเอา Container ไปวางเพื่อ Run ใหม่อีกที หากมีสักสิบเครื่อง ร้อยเครื่องยังต้องทำวนไปทีละเครื่องจนครบจำนวน แต่ถ้าหากนำ Kubernetes มาใช้ จะสามารถกระจายงานให้เครื่องในระบบได้เองอัตโนมัติ เพียงแค่เราเขียนคำสั่งบอกให้ทำอะไรเพียงแค่นั้นเอง

    อีกสักเคส… คือ เราสามารถสั่งให้ Auto Scaling ได้ด้วย เช่น กำหนดไว้ว่าหาก CPU Usage เกิน 80% ให้ Auto Scale Up ขยายทรัพยากรให้ได้ทันที ดังนั้น Kubernetes ช่วยให้การจัดการของเราเป็นไปอย่าง Automatic มากขึ้น ช่วยประหยัดเวลาให้มีอิสระไปทำอย่างอื่นได้เพิ่มมากขึ้น


     The History Of Kubernetes

    ต้นกำเนิดของ K8s นั้นเกิดมาจาก Pain ที่บริษัท Google เจอมาตลอด ในการพยายามจะจัดการ Data Center ของตัวเองมานานกว่า 15 ปี (แต่ก็ยังไม่ยาวเท่าที่เรารอตอนจบโคนัน) เดิมเรียกระบบนี้ว่า “Borg” และจากความผิดพลาด ปัญหาต่าง ๆ ที่เคยเจอและแก้ไขมาตลอดระยะเวลายาวนาน ทุกอย่างกลายเป็น Lesson  Learned จนเกิดเป็น “Kubernetes” ขึ้นมา อีกทั้ง Google ไม่หยุดโชว์ความยิ่งใหญ่ด้วยการเปิดให้เป็น Opensource ที่ทุกคนสามารถนำไปใช้งานได้อีกด้วย


    จุดเด่นของ Kubernetes

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

     องค์ประกอบของ Kubernetes

    Cluster 

    ให้นึกภาพตามว่า K8s จะเข้ามาครอบมวลมหาประชา Server เอาไว้ ให้เสมือนว่ามันมีแค่ Server ใหญ่ ๆ เพียงเครื่องเดียว หากใช้ Cloud ต้องดูด้วยว่า Platform ของ Cloud นั้นรองรับไหม โดยหลักการ Cluster ของ K8s คือ สามารถจัดการให้เองว่าอะไรควร Run ไว้ที่ไหน โดย Node มีอยู่ 2 ประเภท คือ Master Node และ Worker Node ส่วนวิธีการทำงานร่วมกันของแต่ละส่วนนั้น จะขอกล่าวถึงในหัวข้อลำดับต่อไป

    ภากประกอบ 3 Kubernetes คือ
    What is Kubernetes to Datacenter
    (source : Mesosphere)
    ภากประกอบ 4 Kubernetes คือK8s Cluster Diagram
    (source : kubernetes.io)


    Deployment 

    k8s นั้นมีตัวละครหนึ่งที่เป็นพระเอกของเรื่องเลย คือ ตัว Kubernetes Deployment Controller ซึ่งคอยช่วยจัดการ Instance ต่าง ๆ ของแต่ละ Node ดังนั้นการนำ App ของเราไป Run ใน K8s จะต้องสร้างสิ่งที่เรียกว่า Deployment ก่อน เพื่อเป็นการกำหนด Configuration (การทำ Desired State เพื่อระบุว่าเวลาที่ทุกอย่างปกติดี ควรจะมีอะไร ทำงานยังไงบ้าง) โดยที่ K8s จะช่วยดูแลให้เป็นไปตาม Config ให้ตลอดเวลา หากเกิดความผิดพลาดสามารถ Auto Self-healing ตัวเองโดยอัตโนมัติ

    โดยการ Config ทำในไฟล์  .yaml


    Node and Pod

    “Container -> Pod  -> Worker Node -> Master Node ”

    Part l : Pod

    Pod เป็นหน่วยที่เล็กที่สุดของ K8s ซึ่งภายในแต่ละ Pod จะประกอบไปด้วย

    • Container หรือ อาจเป็นกลุ่มของ Container ก็ได้ ในบางกรณีที่ต้องการทำ Load-Balance ของข้อมูล
    • Resource ของ Container นั้น ๆ ยกตัวอย่างก็เช่น Storage, Network และ IP
    • Config ต่าง ๆ ของ Container แต่ละอัน Run ยังไง ให้คุยผ่าน Pod ตัวไหน เป็นต้น
    ภากประกอบ 5 Kubernetes คือ
    What object can be included in pod
    (source : kubernetes.io)

     Part ll : Worker Node or Minion

    Worker Node or Minion เป็นเหมือนสำนักงานย่อย โดยแต่ละ Node มี Process ชื่อ Kubelet ไว้สื่อสารกับ Master Node และมี Docker ในตัว เพื่อ Run Container และเนื่องจาก Pod จะ  Run อยู่บน Node เสมอ นั่นหมายความว่า ในแต่ละ Worker Node นั้นสามารถประกอบไปด้วย Pod หลาย ๆ ตัวได้

    ภากประกอบ 6 Kubernetes คือ
    Many pods can be included in the same worker node
    (source : kubernetes.io)

    Part lll : Master Node

    Master Node เป็นเหมือนศูนย์บัญชาการ คอยสั่งการ Node ลูกต่าง ๆ (Worker Node & Minion) ว่าต้องทำอะไรบ้าง ดังนั้นเวลาทำการแก้ไขหรือ Deploy ติดตั้งอะไร จะสั่งการผ่าน Node นี้เท่านั้น

    ภากประกอบ 7 Kubernetes คือ

    จากรูปด้านบนจะเห็นการทำงานของ Master Node ชัดเจนมาก ว่าทำหน้าที่อะไรบ้าง ทั้งในส่วนของการติดต่อกับ API, การ Controller Node ต่าง ๆ ให้ทำงานตาม Config (ที่เรากำหนด Desired State ตอนไป Deployment) ของเราโดยอัตโนมัติ, การทำ Scheduler เพื่อควบคุม Workload ของแต่ละ Node และเป็นตัวที่จะควบคุมการติดต่อสื่อสารของ Node ทั้งหมดด้วย

    Anatomy of Kubernetes Node

    ถ้าเปรียบเทียบองค์ประกอบของ K8s อยากให้จินตนาการง่าย ๆ ประมาณว่า
    Pod = เซลล์, Worker Node = อวัยวะต่าง ๆ ในร่างกาย, Master Node = สมอง ประมาณว่าเซลล์หลาย ๆ เซลล์ (Pod) ประกอบขึ้นมาเป็นอวัยวะต่าง ๆ (Worker Node) โดยแต่ละอวัยวะทำหน้าที่ของตัวเองซึ่งแตกต่างกันไป และอวัยวะต่าง ๆ ในร่างกายนั้นสามารถที่จะทำงานร่วมกันได้ โดยมีสมอง (Master Node) เป็นตัวควบคุมสั่งการทุกอย่าง


    ReplicaSet

    มีหน้าที่หลักคือทำให้  Pod มีจำนวนเท่ากับตอนที่เราสั่ง สามารถควบคุมดูแลตาม Config ที่ทำ Deployment ให้เป็นไปอย่าง Automatic คือ หากมีจำนวนมากไปจากที่กำหนดให้ทำลายทิ้ง หรือหากน้อยไปให้สร้างเพิ่ม (Self- Healing) อีกทั้งยังสามารถใช้ในการทำ Auto-Scale เพื่อใช้ประโยชน์ได้ เช่น กำหนดลงไปใน Config ว่า หาก CPU Usage Over 80% ให้สร้าง Pod เพิ่มขึ้นมาอีก เป็นต้น  

    ภากประกอบ 8 Kubernetes คือ

     Services

    เนื่องจากการทำงานของ k8s นั้นต้องมีการ Self-Healing อยู่ตลอดเวลา ดังนั้น k8s จึงมี Service ที่ทำหน้าที่กระจาย Load Balance ไปยังแต่ละ Pod สามารถทำหน้าที่เป็น API Gateway ในตัว นั่นทำให้เวลาเกิดการ เพิ่ม/ลด ของ Pod ตัวที่ทำการเรียกมายัง Pod ดังกล่าว จะไม่รู้สึกเลยว่าหลังบ้านของ Pod มีการเปลี่ยนแปลง เพราะ มี Service เป็นกลไกการทำงานและเป็นตัวกลางสื่อสารให้เอง (ตัวกลางแบบ Client to Pod และ Pod to Pod )

    Services มีส่วนสำคัญในการทำให้การอัปเดตระบบไม่มี  Down Time (Zero Down Time)


    โดยใน Service มีการใช้ Labels
    ซึ่งตั้งค่าเอาไว้ที่ Config File (.yaml)  โดย Set Label ไว้ที่แต่ละ Pod และไป Set ที่ Service อีกทีว่าถ้าเรียก Service นี้ จะให้เชื่อมต่อไปยัง Pod ที่มี Label อะไรบ้าง ดังตัวอย่างในภาพด้านล่าง

    ภากประกอบ 9 Kubernetes คือ

    โดยจากภาพตัวอย่าง คือ ผู้ใช้สามารถที่จะใส่ Label ไว้ที่แต่ละ Pod ได้ หลังจากนั้นนำไปบอก Service ว่าใน Service นี้จะให้กระจายโหลดไปยัง Pod อะไรก็ตามที่มี Label = Prod และ Label = Be หลังจากนั้นจะกระจายโหลดไปตาม Pod ที่ Label เป็น Prod และ Be ให้เองได้เลย ถึงแม้ Pod นั้นมี Label ของเวอร์ชันอยู่ด้วยก็ตาม ทำให้เหมาะในเรื่องของการอัปเดตเวอร์ชันแอปพลิเคชัน

    แต่ถ้าต้องการใช้ Service เรียกแบบระบุเวอร์ชันจริง ๆ ให้ Set Label และระบุ Version ที่ตัว Pod ที่ตัวการ แล้วบอก Service ให้กระจายโหลดไปเฉพาะ Pod ที่มี Label เป็นเวอร์ชันที่กำหนดไว้เท่านั้น

     พร้อมลุยหรือยัง!

    หากศึกษาและพร้อมที่จะลุยกันแล้ว สามารถเลือกศึกษาข้อมูลเพิ่มเติมได้ตามลิงก์ด้านล่างนี้ได้เลย

    source [1] [2] [3]

    ติดตามข่าวสารใหม่ๆ หรือข้อมูลน่ารู้อีกมากมายได้ที่

      OpenLandscape Fanpage | https://www.facebook.com/openlandscapecloud/
      OpenLandscape Twitter | https://www.twitter.com/olscloud/
      OpenLandscape Cloud | https://openlandscape.cloud/