Docker swarm เป็น Native Clustering ของ Docker คือเป็นเครื่องมือช่วยจัดการเครื่อง server ที่รัน Docker หลายๆเครื่องให้อยู่ในสภาพแวดล้อมเดียวกัน พูดง่ายๆก็คือ การนําเอาเครื่อง server หลายๆเครื่อง (Worker) มาช่วยกันทํางาน โดยจะถูกควบคุมการทํางานโดย Manager และยังมีระบบ IPVS ที่เป็น Load-balance ซึ่งจะทําให้เราสามารถเข้าถึง Website หรือ Application ต่างๆ ที่เรารันอยู่ได้จากเครื่องไหนก็ได้ใน Swarm โดย IPVS จะช่วยจัดการให้เราเองโดยอัตโนมัติ ศัพท์ที่เกี่ยวกับ Docker swarm ที่ควรรู้มีดังนี้
จากรูปจะเห็นว่า Manager จะเป็นตัวจัดการ และกระจายงานต่างๆไปให้กับ Worker ทํางาน โดยปกติแล้ว Manager ควรมีมากกว่า 1 เครื่อง และควรมีเป็นจํานวนเลขคี่ เหตุผลก็คือ เมื่อ Manager เครื่องใดเครื่องหนึ่งเกิดปัญหาขึ้นมา Manager เครื่องอื่นจะขึ้นมาทํางานแทนทันที เราสามารถกําหนดให้ Manager ทําหน้าที่กระจายงานอย่างเดียว หรือทั้งกระจายงานและ ร่วมทํางานด้วยก็ได้ ถ้าในกรณีที่ Worker เครื่องใดหยุดทํางาน Manager จะย้าย Task ของเครื่องที่หยุดทํางาน ไปกระจายให้กับ Worker เครื่องอื่นๆโดยอัตโนมัติ มีการยืนยันตัวตน, กำหนดสิทธิ์ และเข้ารหัส Traffic ที่มีการพูดคุยกันระหว่าง Node ภายใน Swarm พร้อมระบบจัดการ TLS Certificate ภายในตัว
เนื่องจากคุณสมบัติของ Docker swarm ทําให้เราสามารถ Scale และ Load-balance service ได้ง่ายๆ จึงเหมาะกับงานที่ต้องการ Scale ระบบ ยกตัวอย่างเช่น ระบบลงทะเบียนนักศึกษา ซึ่งในช่วงลงทะเบียน จะมีนักศึกษาเข้าใช้งานพร้อมกันจํานวนมากทําให้ต้อง Scale ระบบเพื่อให้รองรับจํานวนนักศึกษาที่เข้าใช้งาน Docker swarm จึงช่วยให้การ Scale ระบบเป็นเรื่องง่ายและรวดเร็ว
ในบนความนี้ผมจะอธิบาย step การใช้งานในแบบคร่าวๆนะครับ เพื่อให้เห็นภาพโดยรวมทั้งระบบก่อน และในบทความหน้าผมจะทดลองใช้งาน Docker swarm กันจริงๆให้ดูครับ การใช้งานจะเริ่มต้นด้วยกําหนดเครื่อง Manager เมื่อเรากําหนดเครื่องใดเครื่องหนึ่งเป็น manager แล้ว เราจะได้ token มาสองอันดังนี้
เราจะนํา server ที่รัน docker เครื่องอื่นๆ เค้าไป join โดยใช้ token และ ip ของเครื่อง Manager ที่เรากําหนดไว้ตอนต้น เมื่อเรานําเครื่องมา join กันเรียบร้อยแล้ว ขั้นตอนต่อไปคือต้อง create service เพื่อสั่งให้ Docker swarm ทํางาน Application ตามที่เราต้องการ และเรายังสามารถ Scale เพิ่ม-ลดจํานวน task (Container) ได้ตามต้องการ ตอนต่อไปเรื่อง เริ่มต้นใช้ Docker Swarm
ในบทความนี้ผมจะอธิบายถึงวิธีการทําให้ ESP8266 เป็น Access point ให้อุปกรณ์อุปกรณ์อื่นๆ ที่เชื่อมต่อ wifi ได้ เช่น computer, smart phone ฯลฯ มาเชื่อมต่อกับ SEP8266 แล้วควบคุม i/o ปิด/เปิด LED ผ่านเว็บ ด้วยวิธีส่งข้อมูลผ่าน HTTP_GET เช่น
ไฟฉาย Olight sMini limited edition เป็นรุ่นที่มีขนาดเล็ก ใส่แบตเตอรี่ CR123 ยาวเพียง 5.45 ซม มาดูคุณสมบัติกันครับ
Docker เป็น engine ที่รันบน Linux ตัวนึงที่จะจําลองสภาพแวดล้อมของเครื่อง server ขึ้นมา คล้ายๆกับพวก VirtualBox, VMWare หรือ Virtual Machine ซึ่ง Docker จะแตกต่างจาก VM ตัวอื่นๆคือ **จะทําการจําลองสภาพแวดล้อมของ server ขึ้นมาบน OS เดิม **แต่ VM อื่นๆ จะจําลองระบบขึ้นมาทั้ง OS เลย ดังรูป