Docker is not VMs

ก่อนที่จะพูดถึง Docker ขอพูดถึง Life cycle ของการพัฒนา Software ก่อน คือ

  1. พัฒนาโค้ด บน local
  2. ทดสอบใน local
  3. นำไปติดตั้งบน staging server
  4. ทดสอบใน staging server
  5. นำไปติดตั้งบน production server
  6. ทดสอบบน production server
จะเห็นได้ว่าเราเจอปัญหา และเสียเวลาอยู่เสมอกับงานเหล่านี้ ตั้งแต่ environment ที่ต่างกัน,​ การอัพเกรดเวอร์ชั่นของ SDK หรือ เวอร์ชั่นของ Software เช่น MongoDB, Redis Server, PHP, NodeJS

Docker คืออะไร?

หลายๆ ครั้ง Docker ถูกอธิบายหรือสื่อสารไปในมุมที่ว่า เป็น “Lightweight VMs” ซึ่งแท้จริงแล้ว Docker เป็นมากกว่านั้น

Docker เป็น Platform ที่ตั้งใจมาแก้เรื่องเวลาที่เสียไป และปัญหาต่างๆ ที่เกิดจากสิ่งต่างๆ ที่กล่าวไว้ข้างต้น โดย Key concept คือ Build, Ship and Run โดยเราสามารถสร้าง application โดยไม่ต้องคำนึงถึงความไม่ลงรอยกัน (inconsistency) ของ development environment และ production environment

ทั้งนี้ยังเน้นไปในเรื่อง ความเร็วในการ Build, Ship, Run และประหยัดทรัพยากรมากกว่าแบบ VM เพราะไม่ต้องติดตั้ง OS ซ้อนเข้าไปอีกชั้น ลดปริมาณการใช้ CPU, Ram รวมถึง Harddisk

Docker คือ Workflow

ของการทำ application ที่ครอบคลุมตั้งแต่ต้นจนจบ ตั้งแต่เริ่มพัฒนาที่เครื่องนักพัฒนา, การอัพเดท application ขึ้น production ไปจนถึง run application บน production ที่รองรับการ Scale Infrastructure ให้รองรับกับจำนวนผู้ใช้ application ไม่ว่าจะโตขึ้น หรือว่าเล็กลง

เพื่อให้ทันยุคทันสมัย กับโลกของการพัฒนา,​ดูแล application ที่เปลี่ยนไป ขอแนะนำให้ทุกๆ คนในวงการ software หันมาเรียนรู้ Docker หรือ Container กัน ชีวิตจะดีขึ้นอีกเยอะ และเหลือเวลาไปทำสิ่งอื่น ที่อยากทำอีกมากมายได้คับ

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.