ในปัจจุบันคนส่วนมากยอมรับว่าแอปพลิเคชั่นเป็นศูนย์กลางของธุรกิจทุกรูปแบบเช่น CBD (Central Business District)  เกิดการแข่งขันภายในตลาดเพื่อพัฒนาแอผพลิเคชั่นให้รองรับการอัพเดทตามความต้องการของลูกค้า นอกจากทีมนักพัฒนาที่ต้องพัฒนาแอปพลิเคชั่นเป็นจำนวนมากขึ้นกว่าเมื่อก่อน ทีมการปฏิบัติการก็มีระบบที่มีขนาดใหญ่และซับซ้อนกว่าเดิม เเต่ทุกคนต่างรู้ว่าด้วยทรัพยากรที่มีอยู่อย่างจำกัดนั้นจำเป็นต้องมีการจัดการทรัพยากรเหล่านั้นให้เกิดประสิทธิภาพสูงสุดตอบสนองต่อจำนวนผู้ใช้งานแอปพลิเคชั่นในทุกสถานการณ์ดังนั้นจึงมีการนำเทคโนโลยี Container เข้ามาช่วยในเเต่ละองค์กรให้ใช้งานภายในระบบเพื่อการทำงานที่มีมาตรฐาน

 

Containers คืออะไร

Containers คือการจัดเก็บแอพพลิเคชั่นให้อยู่ในรูปแบบที่ง่ายต่อการโยกย้ายและนำขึ้นระบบการปรับใช้โดยประกอบไปด้วยตัวแอปพลิเคชั่น library หรือ binary จำเป็นในการรันแอพพลิเคชั่นนั้นและการกำหนดค่าของแอปพลิเคชั่นนั้น ไม่ว่าจะย้ายตัวแอพพลิเคชั่นที่ถูกจัดเก็บเป็น container ไปรันที่ไหนจะสามารถทำงานได้เหมือนเดิมโดยไม่คำนึงถึงระบบปฏิบัติการ Container  เป็นเทคโนโลยีการจำลองเสมือนของระบบปฏิบัติการคอมพิวเตอร์เช่น CPU Memory แต่ละคอนเทนเนอร์ทำหน้าที่เป็นแพ็กเกจแยกต่างหากซึ่งสามารถเรียกใช้แอปพลิเคชันหรือบริการได้โดยไม่ต้องคำนึงถึงสภาพแวดล้อมการประมวลผลพื้นฐาน ภายในหนึ่ง container สามารถรันแอปพลิเคชั่นทั้งตัวหากเราแบ่งแบบ microservice ก็ได้แอพพลิเคชั่นในรูปแบบ container จะถูกรันผ่าน software ที่เรียกว่า container engine/runtime 

  • Containers จะมีชั้นของแอปพลิเคชันที่เก็บอยู่รวมกัน มีแพคเกจหรือชุดคำสั่งที่ใช้ทำงานร่วมกัน
  • Containers ตั้งแต่หนึ่งตัวขึ้นไปสามารถรันบนคอมพิวเตอร์เครื่องเดียวกันและใช้เคอร์เนล
    ของระบบปฏิบัติการร่วมกันกับ container ตัวอื่น ๆ
  • Containers แต่ละตัวทำงาน หรือประมวลผล แยกในพื้นที่ของตัวเอง
  • Containers ใช้พื้นที่น้อยกว่า Virtual Machine ไฟล์อิมเมจมีขนาดเล็ก หลัก เมกกะไบต์
  • Containers สามารถจัดการแอปพลิเคชันได้มากขึ้น ใช้จำนวน Virtual Machine และ
    จำนวนระบบปฏิบัติการน้อยลง

 

ประวัติเเละที่มาของ Containers

  • ปี ค.ศ.1970 มีแนวคิดของ FreeBSD Jails ที่มีความซับซ้อนและมีต้นทุนเริ่มต้นสูง

  • ปีค.ศ.2000 นำแนวคิด FreeBSD Jails มาพัฒนาต่อ เป็นจุดกำเนิดแนวคิด Containers บนระบบปฏิบัติการตระกูล UNIX

  • ปี ค.ศ. 2004 ระบบปฏิบัติการ Solaris ของบริษัท Sun Microsystems มีคุณลักษณะเดียวกัน ใช้ชื่อว่า Zones (หรือ Solaris
    Containers) กลุ่มระบบปฏิบัติการลินุกซ์น าแนวคิดนี้มาสืบสานต่อในโครงการ OpenVZ หรือ Linux Containers (LXC)

  • ปี ค.ศ. 2013 Containers แพร่หลายในวงกว้างจาก Docker ที่เป็นส่วนหนึ่งของโครงการพัฒนา LXC ต่อมา Docker มีการ
    พัฒนาส่วนต่างๆ ขึ้นมาเองจนสมบูรณ์พร้อมใช้งาน ทำให้แนวคิด Container ได้รับการยอมรับในวงการอย่างรวดเร็ว มีตัวอย่าง
    การใช้งานจากบริษัทใหญ่อย่าง Google ที่พัฒนาฟีเจอร์ของ Google Compute Engine ให้รองรับอย่างรวดเร็ว

  • ปี ค.ศ. 2014 จากผลตอบรับของผู้พัฒนาระบบ ทำให้ บ.ไมโครซอฟท์เข้ามาร่วมแนวคิด ทำให้ระบบปฏิบัติการฝั่งวินโดวส์ใช้งาน
    Docker ได้และพัฒนาสำเร็จใน Windows Server 2016

  • ปัจจุบันความสำเร็จของ Docker ทำให้เกิดคู่แข่งขึ้น เช่น Rocket หรือ rkt ของบริษัท CoreOS ของค่ายยักษ์ใหญ่ Red Hat ทำให้ Containers แยกออกเป็นสองสายแต่มีการออกมาตรฐานกลางภายใต้การดูแลขององค์กรชื่อ Open Container Initiative (OCI)

 

การเพิ่มประสิทธิภาพทรัพยากรและการดำเนินการ Containers

โดยปกติคอนเทนเนอร์จะใช้ทรัพยากรในการประมวลผล CPU และ RAM น้อยกว่ามากเมื่อเทียบกับ Virtual Machine ด้วยเหตนี้ทำให้คอนเทนเนอร์ ทำงานบนเซิร์ฟเวอร์หรืออินสแตนซ์เดียวกันมากกว่า Virtual Machine จึงเป็นการช่วยเพิ่มประสิทธิภาพในการใช้ทรัพยากรคอมพิวเตอร์ นอกจากนี้คอนเทนเนอร์ยังใช้เวลาบูท ปรับขนาดหรือยกเลิกแอปพลิเคชันที่เร็วกว่าเมื่อเทียบกับ Virtual Machine

 

ตัวอย่างการนำ Containers ไปใช้งาน

  1. การนำ Containers มาใช้ช่วยแก้ปัญหาเรื่อง infrastructure / system dependency ระหว่างแอปพลิเคชันแต่ละเวอร์ชัน หรือแต่ละสถานะ เช่น dev / test or UAT / production เนื่องจากส่วนประกอบที่จำเป็นของแต่ละแอปพลิเคชันได้ถูกรวมมาในอิมเมจแล้ว จึงเป็นข้อดีของกระบวนการเปลี่ยนโค้ดที่เขียนไว้ ไปสู่กระบวนการ deployment เพื่อการใช้งานจริงบน production หรือที่เราเรียกกันว่า CI/CD
  2. การใช้งาน Containers เพื่อแยกแอปพลิเคชันแบบเดิมที่เขียนมาเป็นชิ้นเดียวกัน (Monolithic) ให้กลายเป็นไมโครเซอร์วิส (Microservice) ที่มีขนาดเล็กลง จัดการได้สะดวกขึ้น สามารถสเกลเซอร์วิสบางตัวหากต้องการรับโหลดมากขึ้น
  3. การนำ Container ของแอปพลิเคชันที่ท าขึ้นหรือแยกออกเป็นไมโครเซอร์วิสแล้วนั้น ไปประมวลผลบนโครงสร้างพื้นฐานคลาวด์ที่มีความสามารถในการสเกลตัวเองได้ จะมีความซับซ้อนสูงตามไปด้วย ต้องใช้ความสามารถของซอฟต์แวร์ที่เรียกว่า orchestration เช่น Kubernetes หรือ Apache Mesos เข้ามาควบคุม

 

 

Containers มีระบบสามารถถูกอัพเดทเพิ่มและลดได้อย่างรวดเร็วและง่ายขั้นตอนการอัปเดตเองสามารถทำได้อย่างอัตโนมัติเมื่อมีความต้องการใหม่ๆ หรือการเพิ่มมาตรฐานความปลอดภัยของแอปพลิเคชั่น เราสามารถอัพเดทและสร้าง containers ขึ้นเป็น containerอ image และส่งขึ้นไปบน image registry เพื่อให้ผู้ดูแลนำขึ้นระบบ ข้อด้อยของ Containers คือมีความยืดหยุ่นน้อยกว่า Virtualization โดยเฉพาะการที่ไม่สามารถใช้ระบบปฏิบัติการที่แตกต่างกันระหว่าง Guest และ Host ได้ (ใช้ OS ตัวเดียวกัน) หรือคุณสามารถหาความรู้เพิ่มเติมได้เกี่ยวกับ Containers ได้ใน Google 

 

 

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

รู้จัก Container มันคืออะไร แตกต่างจาก Virtualization อย่างไร? ,[ออนไลน์], เข้าถึงได้จาก https://www.blognone.com/node/105928

Container คืออะไร? ,[ออนไลน์], เข้าถึงได้จาก https://www.ecloudvalley.com/th/th-solutions/th-containers/

Containers vs. Virtual Machines ต่างกันอย่างไร ,[ออนไลน์], เข้าถึงได้จาก https://monsterconnect.co.th/containers-vs-virtual-machines/

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - ให้ PDF แสดงรูปภาพที่มาจากมีเดียของ joomla ได้อย่างไร
โดย eange08 อ 29 เม.ย. 2025 4:28 pm บอร์ด Joomla Dev
1
9
อ 29 เม.ย. 2025 5:43 pm โดย tsukasaz View Topic Q - ให้ PDF แสดงรูปภาพที่มาจากมีเดียของ joomla ได้อย่างไร
สอบถามกดลิงค์เปิดแท๊บใหม่ แต่อยู่หน้าเว็บเดิมเหมือนกด Ctrl + click
โดย eange08 จ 28 เม.ย. 2025 1:25 pm บอร์ด JavaScript & jQuery Ajax & Node.JS
2
28
จ 28 เม.ย. 2025 2:13 pm โดย eange08 View Topic สอบถามกดลิงค์เปิดแท๊บใหม่ แต่อยู่หน้าเว็บเดิมเหมือนกด Ctrl + click
Encrypt ไฟล์ ด้วย PGP คืออะไร
โดย noncup302 ศ 25 เม.ย. 2025 9:41 am บอร์ด Programming - C/C++ & java & Python
0
169
ศ 25 เม.ย. 2025 9:41 am โดย noncup302 View Topic Encrypt ไฟล์ ด้วย PGP คืออะไร
สร้างไฟล์ excel ด้วย python มีการเรียกใช้งาน และบรรทัดสุเท้ายใช้คำสั่ลบไฟล์แต่ลบไม่ได้ แก้ยังไงคะ
โดย MBMoo พฤ 24 เม.ย. 2025 5:33 pm บอร์ด Programming - C/C++ & java & Python
6
168
ศ 25 เม.ย. 2025 5:51 pm โดย veras View Topic สร้างไฟล์ excel ด้วย python มีการเรียกใช้งาน และบรรทัดสุเท้ายใช้คำสั่ลบไฟล์แต่ลบไม่ได้ แก้ยังไงคะ
วิธีการเข้ารหัสไฟล์ ด้วย Python ใช้ PUBLIC KEY และ PGP แล้ว อัพโหลดไฟล์ด้วย sftp ไปยัง Server ปลายทาง
โดย mindphp พ 23 เม.ย. 2025 11:07 am บอร์ด Python Knowledge
1
148
จ 28 เม.ย. 2025 4:41 pm โดย MBMoo View Topic วิธีการเข้ารหัสไฟล์ ด้วย Python ใช้ PUBLIC KEY และ PGP แล้ว อัพโหลดไฟล์ด้วย sftp ไปยัง Server ปลายทาง
สอบถามทำเชื่อมการชำระเงินด้วย Kbank ของ joomla 3
โดย eange08 พ 23 เม.ย. 2025 10:05 am บอร์ด Joomla Development
2
191
ศ 25 เม.ย. 2025 6:13 pm โดย veras View Topic สอบถามทำเชื่อมการชำระเงินด้วย Kbank ของ joomla 3
สารละลาย คืออะไร เรื่องน่ารู้พื้นฐานของคนเรียนเคมีสายวิทย์
โดย Tontong อ 22 เม.ย. 2025 11:04 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
128
อ 22 เม.ย. 2025 11:04 am โดย Tontong View Topic สารละลาย คืออะไร เรื่องน่ารู้พื้นฐานของคนเรียนเคมีสายวิทย์
Vendor lock-in การหากินขอ vendor ที่ไม่แฟร์กับลุกค้า vendor หลายเจ้าที่ให้บริการ ERP license SAP, Oracle, MS Dynamic
โดย mindphp อ 22 เม.ย. 2025 10:28 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
1
456
พ 23 เม.ย. 2025 7:52 pm โดย mindphp View Topic Vendor lock-in การหากินขอ vendor ที่ไม่แฟร์กับลุกค้า vendor หลายเจ้าที่ให้บริการ ERP license  SAP, Oracle, MS Dynamic