Docker เปิดบริการ Docker Trusted Registry เป็นบริการแบบ Commercial สำหรับองค์กรที่ต้องการการ support จาก Docker โดยตรง ซึ่ง Docker Trusted Registry คุณสามารถใช้บริการผ่าน Cloud Service ต่างๆ ได้ เช่น Amazon Web Service, Azure เป็นต้น และรวมไปถึงการติดตั้ง Registry เองแบบ on-premise ด้วย การ support แบ่งเป็น Plan ต่างๆ ขึ้นอยู่กับความต้องการของคุณครับ

มาเริ่มกันเลย AWS ให้บริการ Docker Trusted Registry แล้วคุณสามารถติดตั้งผ่าน AWS Maketplace หรือจากหน้า Console ก็ได้ ในข่วงที่เขียนบทความนี้ AMI มีบริการเฉพาะใน Zone US East (N.Virginia) และ US West (Oregon, N.California) เท่านั้น

Continue reading

เมื่ออาทิตย์ที่แล้วได้ของเล่นใหม่จาก Deaware มา 1 อันเป็น Wifi Dev Kit ชื่อ Photon จากค่าย Particle (หรือชื่อ Spark เดิมนั่นเอง) ผมซื้อต่อจาก Deaware มาในราคาไม่แพงเท่าไรเน้นสนุกไว้ก่อน

คุณสมบัติของ Photon ก็ประมาณนี้

  • เสียบ breadboard ได้
  • ใช้งานได้เหมือนกับ Spark Core
  • ผ่านการรับรองจาก FCC/CE/IC certified
  • ใช้สถาปัตยกรรม STM32F205 ARM Cortex M3
  • ใช้ Broadcom BCM43362 Wi-Fi chip
  • เป็น Open source hardware


Continue reading

งาน DockerCon 2015 และงาน OSCON 2015 มีหัวข้อเกี่ยวกับ Container Pattern ด้วย ซึ่งน่าสนใจมาก ในงาน conference ทั้ง 2 งานเอาตัวอย่างการใช้งาน Container ในหลายแบบมาให้ดู ซึ่งเป็นแนวทางในการประยุกต์ใช้งาน Container ได้ดีเลยทีเดียว ลองมาดูในแต่ละแบบกัน


Continue reading

หลายคนใช้ Docker Container กันจนเป็นเรื่องปกติ กลายเป็นว่าใช้ Docker Container เป็นตัวติดตั้ง Service ที่ต้องการใช้งาน แบบ Package Manager ไปซะงั้น การใช้งาน Docker บน App Container ก็มีคนใช้เหมือนกัน นึกถึง OpenStack on OpenStack ก็กรณีคล้ายกัน DinD หรือ Docker in Docker ก็มีมานานละ ลองไปค้นใน Docker Hub ก็พบว่ามีเยอะมาก ส่วนใหญ่จะอยู่ในเครื่องมือประเภท CI เช่น Jenkins, Jenkins Slave อะไรประมาณนั้น

เนื่องจากใช้ Jenkins ที่เป็น Container เวลาสั่ง Build Container Image จำเป็นต้องใช้ Docker ซึ่งทำงานอยู่ใน Container อีกที ก็เลยต้องมี Docker ใน App Container ด้วย สำหรับการสร้าง DinD Image คุณสามารถใช้ Image ของ jpetazzo/dind ก็ได้ หรืออยากจะ Build เองตั้งแต่เริ่มต้นก็ดูได้จาก Git Repository โครงการ DinD ได้เช่นกัน

ครั้งที่แล้วพาเล่น HA MQTT Broker ด้วย Docker Compose ครั้งนี้มาแนะนำวิธีการ Reconfig HAProxy ในกรณีที่มีการ Scale In, Scale Out จากการใช้ Docker Compose Scale ขอเปลี่ยนตัวอย่างเป็น WebApp จะได้เข้าใจง่ายๆ WebApp ตัวนี้ expose port 8080 เราสามารถใช้ Interlock ช่วยในการ reconfig HAProxy ในกรณีที่มีการ Scale ไม่ว่าจะ Scale in หรือ Scale out ได้ ครั้งนี้เราจะใช้ Docker Machine, Docke Swarm, Docker Compose และ Interlock

มาลงมือติดตั้ง Docker กันก่อน

wget -qO- https://get.docker.com/ | sh

ตามด้วย Docker Compose

curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose


Continue reading

Docker ประกาศออกรุ่นใหม่ของ Docker Registry พร้อมเปลี่ยนชื่อโครงการเป็น Docker Distribution เพื่อไม่ให้สับสนขอเรียกเป็น Registry 2 ก็แล้วกันครับ สำหรับท่านที่ใช้ Docker 1.6+ จะรองรับ Registry 2 แล้วสำหรับรุ่นต่ำกว่านั้นใช้งานด้วยกันไม่ได้ครับ ในรุ่นใหม่นี้ออกแบบมาเพื่อรองรับ plugin สำหรับ storage แบบต่างๆ ซึ่งแต่ก่อนเน้นที่ Amazon S3 ในรุ่นใหม่นี้รองรับ storage หลายแบบ เช่น file system, Azure Blob Storage, AWS S3, Rados, Redis เป็นต้น ดู configuration เพิ่มเติมได้ครับ

มาลองเล่นกันอันดับแรกติดตั้ง Docker, Docker Compose ให้เรียบร้อยก่อน

wget -qO- https://get.docker.com/ | sh

curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

มาลองติดตั้งแบบใช้ Docker กันก่อน ใช้คำสั่งดังนี้

docker run -d -p 5000:5000 --restart=always --name registry registry:2


Continue reading

ครั้งที่แล้วแนะนำ High Availability MQTT Cluster แบบ Back to Basic ไว้เนื่องจากจะได้เข้าใจว่าหลักการเป็นอย่างไร ได้ลองติดตั้ง Ponte ตั้งค่า HA Proxy ฯลฯ ครั้งนี้เราจะใช้ Docker Compose ในการสร้าง Container ในส่วน MQTT Broker, HAProxy และ MongoDB สั่งงานครั้งเดียวจบ ตัวอย่างนี้เหมาะสำหรับศึกษาเท่านั้น หากต้องการเอาไปใช้งานควรแยก data volume ของ mongodb ออกมาด้วยครับ

จากภาพเดิมเราจะใช้ Docker Compose สร้าง Container ทั้งหมดขึ้นมาซึ่งประกอบไปด้วย

  • HA Proxy
  • MQTT Broker 1
  • MQTT Broker 2
  • MongoDB


Continue reading

เมื่อครั้งที่แล้วพาเล่น OpenShift Hub ซึ่งคุณสามารถสั่ง Lauch Application จากหน้าเว็บของ OpenShift Hub ได้เลย ซึ่งใช้ควมสามารถของ Web-Based App Creation Workflow URL อารมณ์เดียวกับ AWS Marketplace ที่เรากดแล้วได้ Application มาใช้งานได้เลย มีนักพัฒนาเว็บสร้างปุ่ม Launch Service สำหรับ Application ต่างๆ เอาไว้ทดสอบโดยที่ไม่จำเป็นต้องใส่ลง OpenShift Hub

เมื่อกรอกรายละเอียด Cartridge, Git Repository ของ Application ที่ต้องการ Deploy เราจะได้ Code HTML กับ Markdown เอาไปแปะหน้าเว็บได้ :)

Continue reading

ครั้งที่แล้วพาเล่น MQTT Cluster กันไปบ้างแล้ว ครั้งนี้เรามาลองวิธีง่ายๆ โดยใช้บริการของ AWS กันบ้าง AWS เครื่องมือพร้อมสำหรับการทำ Load Balance และการทำ Auto Scaling มาให้ด้วย เพราะฉนั้นการทำ Horizontal Scaling จะทำได้ง่ายมากๆ เพียงแค่คลิกเท่านั้นเอง จากภาพเดิมเราจะ Scale MQTT Broker โดยใช้ Elastic Scaling ของ AWS กัน

เนื้อหาไม่รวม Authentication, Secure Connection สำหรับ Persistance Storage คุณอาจเลือกใช้ DynamoDB หรือ RDS ได้ หากต้องการใช้ MongoDB Cluster อ่าน Reference Guide เพิ่มเติมได้ที่ MongoDB บน AWS Cloud

ขั้นตอนมีดังนี้

  • สร้าง instance พร้อม private network 2 เครื่อง
  • ติดตั้ง MongoDB ไปยังเครื่องที่ 1 เพื่อใช้เป็น Persistent Storage
  • ติดตั้ง Ponte ไปยังเครื่องที่ 2 ตั้งค่าเก็บข้อมูลมายังเครื่องที่ 1
  • สร้าง Snapshot ของเครื่องที่ 2
  • สร้าง Scaling Groups กำหนดขนาดของและเงื่อนไขในการ Scale
  • สร้าง Load Balancer และเพิ่ม instance ที่ Scaling Groups สร้างมาให้
  • กำหนด Load Balancer ให้ Scaling Groups ใช้เป็น Elastic Scaling


Continue reading

เนื่องจากจำไม่ได้ว่าใครถามเรื่อง High Availability MQTT Cluster แต่ที่จำได้ผมบอกไปว่า Mosca + Haproxy น่าจะจบก็ไม่ได้ทำอะไรต่อเพราะน่าจะเข้าใจแล้ว แต่ก็คิดไปคิดมาก็เลยลองดูสักหน่อยว่าใช้ได้หรือเปล่า T_T จาก Blog ของ Lelylan อธิบายเรื่อง High Availability MQTT Cluster ไว้ได้ดีในเรื่องของการประยุกต์ใช้ Docker และ MQTT Broker ซึ่งถือว่าเป็น Micro Service ถ้าสนใจก็ลองไปอ่านได้ครับ

กลับมา Back to Basic เราจะไม่ใช้ Docker เพื่อให้เกิดความเข้าใจเรื่อง HA กับ MQTT Broker ในเบื้องต้นก่อนครั้งหน้า (ถ้าไม่ลืม) เราจะมาเล่น Docker Machine + Swarm + Compose ทำ High Availability MQTT Cluster กันอีกรอบ

Continue reading