ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

ในปัจจุบันคนส่วนมากยอมรับว่าแอปพลิเคชั่นเป็นศูนย์กลางของธุรกิจทุกรูปแบบเช่น 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/

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เพิ่มประสิทธิภาพเว็บไซต์ ด้วยหน้าเว็บพอดีหน้าจอหลายขนาด รองรับหลายอุปกรณ์
โดย [email protected] พ 07 มิ.ย. 2023 5:32 pm บอร์ด Mindphp Videoman
0
13
พ 07 มิ.ย. 2023 5:32 pm โดย [email protected]
10 โอกาสทางธุรกิจที่ดูไบ ในปี 2023 สำหรับคนที่สนใจ
โดย articleheros พ 07 มิ.ย. 2023 4:21 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
11
พ 07 มิ.ย. 2023 4:21 pm โดย articleheros
ฺB - หน้าภาษาไทยขึ้น Error
โดย Thanapoom1514 พ 07 มิ.ย. 2023 12:59 pm บอร์ด วัฒนาทูล คอมเมิร์ซ - Tester
1
5
พ 07 มิ.ย. 2023 1:01 pm โดย Thanapoom1514
สอบถามวิธีการใช้งาน grid ของ html
โดย fonfonn พ 07 มิ.ย. 2023 10:12 am บอร์ด HTML CSS
0
37
พ 07 มิ.ย. 2023 10:12 am โดย fonfonn
สอบถาม core ที่เกี่ยวข้องกับการสมัครสมาชิก ของ phpBB และ ไฟล์ email ส่ง
โดย flook พ 07 มิ.ย. 2023 9:36 am บอร์ด Programming - PHP
1
47
พ 07 มิ.ย. 2023 10:06 am โดย eange08
รับเต็มจำนวนตามความคุ้มครองและเงื่อนไข ประกันชีวิต ลดหย่อนภาษี
โดย Ellache อ 06 มิ.ย. 2023 11:08 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
17
อ 06 มิ.ย. 2023 11:08 pm โดย Ellache
สอบถามวิธีการเปลี่ยนรูปไอคอนเว็บใน Joomla 3 ยังไงครับ
โดย Thanapoom1514 อ 06 มิ.ย. 2023 1:56 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
24
อ 06 มิ.ย. 2023 2:07 pm โดย tsukasaz
เขียน custom page ส่งเมลด้วย messenger ผ่าน SMTP หรือ ฟังก์ชั่นเมลตามแบบ phpBB
โดย mindphp ส 03 มิ.ย. 2023 2:22 am บอร์ด PHP Knowledge
2
64
ส 03 มิ.ย. 2023 2:33 am โดย mindphp