เปลืองเวลาเป็นวัน ๆ ไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ !

Patcharaporn Auerach/ June 13, 2018/ Application, Knowledge Base/ 0 comments

Docker คือ “Software Container”

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

 

ยกตัวอย่างง่าย ๆ … เช่น ตอนที่คุณเขียนเว็บไซต์ขึ้นมาบนเครื่องของคุณเอง คุณสามารถปรับเปลี่ยน Setting ค่าต่าง ๆ หรือดาวน์โหลดอะไรมาติดตั้งเพิ่มอีกมากมาย เมื่อต้องการนำไปขึ้น Production บน Server ต้องทำการโยกเอาก้อนทั้งหมดนั้นไป ทำให้ต้องเสียเวลาทำ Config ทุกอย่างบน Server ใหม่อีกครั้ง และบางทีระหว่างดำเนินการอาจเกิดข้อผิดพลาด ข้อมูลไม่ครบ ไฟล์หาย ข้อมูลตีกัน ทำให้เสียเวลากลับไปค้นหาว่าเกิดปัญหาตรงส่วนไหน รวมถึงต้องแก้ไขอะไรบ้าง เพียงเท่านี้ก็ทำให้คุณรู้สึกเหนื่อยแล้วใช้มั้ย ?

หยุด ! วงจรชีวิตยาก ๆ ด้วย Docker

การใช้ “Docker” เข้ามาช่วยในการแพ็ค Software เหล่านี้ เพื่อให้อยู่ในรูปแบบของ Container หลังจากนั้น คุณสามารถนำ Container ไปรันบนเครื่องไหนก็ได้ โดย Application ของคุณยังทำงานได้ปกติ ไม่ว่าจะนำไปรันบนเครื่อง Development หรือบน Production Server ไหนก็ตาม


 เสกงาน 1 วัน ให้เหลือแค่ 1 ชั่วโมงด้วย

 

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

 

ในปัจจุบันมีผู้ให้บริการ Software Container ให้เลือกใช้บริการมากมาย แต่ Docker ได้รับความนิยมมากที่สุด เพราะใช้งานได้ง่าย ด้วย 3 Steps Build, Ship and Run ที่มีประสิทธิภาพสูง แถมยังมี Community ใหญ่มาก ทำให้มี Q&A มากมายตามมาในภายหลัง เมื่อคุณพบปัญหาอะไรก็ไม่ต้องลอยเคว้งคว้างกลางทะเลอยู่คนเดียว

(Build) Dockerfile : คือการที่นำ Sourcecode + Config ที่รวบรวมคำสั่งทุกอย่าง ที่ใช้ในการ Run แอป และนำไปสร้างเป็นไฟล์ Docker Image 

(Ship) Docker Image : คือไฟล์ Image ของ Application ที่สร้างมาจาก Dockerfile โดยสามารถนำ Image ไปรันบนเครื่องไหนก็ได้ที่มี Docker

(Run) Docker Container : เป็น Container ที่มี Application ตาม Image ที่ติดตั้งไว้ และสามารถเรียกใช้งาน Application ได้โดยง่าย


 ประโยชน์ที่ได้จากการใช้ Docker

 

ภาพประกอบ 2 docker คือ

 

(1) Save Time : สามารถลงโปรแกรมเพื่อใช้งาน ได้ภายในไม่กี่วินาทีเท่านั้น
(2) Save Cost : ประหยัดค่าใช้จ่ายมากขึ้นเพราะใช้ทรัพยากรน้อยลง
(3) Save Data Storage : ประหยัดพื้นที่เก็บ และติดตั้งระบบได้รวดเร็วกว่าการทำ VM ถึง 90%
(4) Easy to Scale : สามารถขยายระบบได้ง่าย เพื่อรองรับจำนวนผู้ใช้งานที่มากขึ้น และยังสามารถดึง Resource ของเครื่องมาใช้ได้เต็มประสิทธิภาพ ซึ่งต่างกับ VM ที่มักจะติดขีดจำกัดของเครื่อง
(5) Environment Managing : ด้วยรูปแบบที่เป็น Image สำเร็จรูป  ทำให้เราสามารถติดตั้งโปรแกรม หรือตั้งค่าระบบ ได้ภายในเวลาไม่กี่วินาที และเพียงแค่ไม่กี่คำสั่งเท่านั้น
(6) Portability : ทำให้ย้ายไประบบ IT infrastructure อื่น ๆ ได้ง่าย  ไม่ต้องเสียเวลา Setup โปรแกรมใหม่ทีละเครื่อง และช่วยลด Error ที่อาจเกิดจาก การนำระบบขึ้น Production
(7) Reduce Time-to-Market : ช่วยลดเวลาการนำแอปพลิเคชันต่าง ๆ เข้าสู่ตลาด
(8) Community Hub : ด้รับการพัฒนาและอัปเดตฟีเจอร์ใหม่เรื่อย ๆ มี Community สำหรับแลกเปลี่ยนข้อมูลต่าง ๆ มากมาย


ใครที่เหมาะกับการใช้ Docker ?

เนื่องจากการใช้ Container Software ไม่ใช่เรื่องยากหรือไกลตัวอีกต่อไป การนำมาใช้ ล้วนมีแต่ข้อดีและเป็นประโยชน์ ดังนั้นจึงไม่ใช่แค่เรื่องของ Developer หรือ System Admin อีกต่อไป แต่องค์กรเองต้องเข้าใจและเห็นความสำคัญของเทคโนโลยีนี้เช่นกัน


เริ่มศึกษายังไงดี ?

การศึกษา Docker สามารถหาข้อมูลได้ทั่วไปตามอินเตอร์เน็ต แต่การศึกษาและนำมาใช้งานอย่างถูกต้องและปลอดภัยนั้น ต้องใช้เวลาทำความเข้าใจพอสมควร แต่หากใครยังสงสัย ว่าการใช้งาน Docker ต่างกับ VM แบบเดิม ๆ ที่ใช้งานอย่างไร แล้วอยากเริ่มต้นด้วยตนเองง่าย ๆ OpenLandscape Cloud ขอแนะนำวิธีศึกษาการใช้งานเบื้องต้นด้วยการดาวน์โหลด E-Book ที่ทาง Docker ได้จัดทำไว้ได้เลยที่นี่

โดยเนื้อหาใน E-Book จะประกอบไปด้วย

  • ทำไม Container ถึงไม่ใช่ VM
  • เราสามารถนำ Container และ VM มาใช้ร่วมกันได้อย่างไร
  • การใช้ Container บน Physical Server และ Virtual Machine นั้นแตกต่างกันอย่างไร
  • เริ่มต้นใช้งาน Docker และ Container

Source : [1] [2] [3] [4]

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

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

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

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*