โครงการ Docker ซึ่งเป็น app container สำหรับเซิร์ฟเวอร์ กำลังมาแรงมากในโลกไอทีองค์กร แนวคิดนี้แตกต่างจากการรัน virtual machine ตรงระดับชั้นของระบบปฏิบัติการ โดยแนวคิด VM แบบเดิมจะพ่วงระบบปฏิบัติการไปด้วย (แต่ละ VM มีระบบปฏิบัติการแยกกัน) ในขณะที่ container แยกเฉพาะแอพ และแชร์ระบบปฏิบัติการร่วมกัน (ดูภาพประกอบ)
ความร้อนแรงของ Docker ท้าทายโลก virtualization โดยเฉพาะเจ้าตลาดอย่าง VMware พอสมควร แต่ล่าสุด VMware เลือกไม่แข่งกับ Docker ตรงๆ และประกาศความร่วมมือกับฝั่ง Docker แล้ว
VMware บอกว่า container เป็นส่วนต่อขยายโดยธรรมชาติของแนวคิด Software-defined Data Center ที่ VMware ผลักดันอยู่ วิสัยทัศน์ของ VMware คือ container ควรทำงานได้อย่างไม่มีข้อจำกัดใดๆ ("Containers without Compromise") และทำงานร่วมกับระดับชั้นของ VM ได้เป็นอย่างดี (ตามภาพ)
ดังนั้น VMware จึงจะเข้าร่วมพัฒนาเทคโนโลยี container อย่างเต็มที่ สิ่งที่ VMware จะร่วมมือกับโลกของ Docker มีดังนี้
Comments
ในกรณ๊ที่ => ในกรณีที่
ความคิดดีมาก คือแทนที่จะชนกัน สู้เอามาเติมเต็มกันจะดีกว่า สงสัยเคยอ่านความผิดพลาดของ nokia มา
ไม่ทราบว่ามีคนเคยลอง Docker หรือยัง อยากถามว่ากรณีที่เป็นโปรแกรมที่ต้องคอมไพล์ (สมมติ J2EE Servlet) เนี่ยกรณีที่เราเป็น Dev เราจะทำงานกับมันยังไงดี ? ระหว่างวางโค๊ดในคอนเทนเนอร์แล้วคอมไพล์ในนั้น หรือ remote deploy ตัว binary เข้าไป
ผมใช้อยู่ แต่ผมใช้ OpenResty (Nginx + Lua)
กรณีนี้ ถ้า J2EE จะ ssh เข้า container ไปเขียนโค้ด ก็แลจะดูลำบากไปน่ะครับ (ผมเขียน Lua ก็ ssh เข้าไป แล้วใช้ vim)
เอาป็น แบบ remote deploy ตัว binary เข้าไป น่ะจะดีกว่า
ที่เคยใช้จะเป็นลักษณะนี้ครับ
Git Push -> Hook -> Jenkins -> Maven Build & Deploy
ใช้ Git Hook ในการ เรียก Build บน Jenkins ซึ่งก็จะไปรัน maven อีกทีหนึ่ง แล้วก็ค่อย deploy ขึ้น App server ต่อไป
ขอบคุณทั้งสองท่านครับ