Image Layers เป็นบริการของ CenturyLink ช่วยให้คุณสามารถดูโครงสร้างของ Docker Image ได้ง่ายๆ จาก Docker Hub หรือการอัพโหลด Image ขึ้นไปตรวจสอบ การแสดงผลจะอยู่ในรูปแบบของ Graph แสดงข้อมูล Image แต่ละ Layer ขนาดที่ใช้ในแต่ละ Layer ด้วย นอกจากนี้ยังแสดงคำสั่งต่างๆ ใน Dockerfile อีกด้วย วิธีการใช้งานก็ง่ายมากๆ เข้าไปที่เว็บไซต์ imagelayers.io

จากนั้นกำหนด Docker Image ที่ตรงการดู ตัวอย่างผมอยากดู Image ชื่อ ibuildthecloud/jenkins-swarm

Continue reading

CenturyLink Lab มีเครื่องมือหลายตัวที่ใช้งานร่วมกับ Docker ซึ่งก็มีเครื่องมือเล็กๆ ชื่อ Docker Image Graph ที่ทำหน้าที่อ่านโครงสร้างของ Docker Image แล้วแสดงผลออกมาเป็นภาพกราฟิก ทำให้เราเข้าใจถึงความสัมพันธ์และการขึ้นต่อกันของ Image แต่ละตัว ทำให้เข้าใจโครงสร้างของ Image นั้นๆ ได้ง่ายมากขึ้น

การใช้งานก็ง่ายมากเพียงแค่สั่งผ่าน Docker ดังนี้่

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock centurylink/image-graph > docker_images.png

เราจะได้ผลลัพท์เป็นไฟล์ภาพ docker_images.png ดังนี้



Continue reading

เนื่องจากมีคนถามมาเรื่อง Ultrasonic Sensor กับ NodeMCU Dev Kit ว่าใช้งานได้หรือไม่ ก็เลยไปหา Ultrasonic Sensor HC-SR04 มาทดลองเล่นดู การต่อกับ NodeMCU Dev Kit เราจะจ่ายไฟเข้า USB Port แล้วใช้ Vin และ GND จ่ายไฟให้ตัว Ultrasonic Sensor ดังภาพ

เขียนโค้ดพร้อม Upload Sketch ไปยัง Dev Kit

Continue reading

Rancher Compose เป็น Orchestration Tool คล้ายกับ Docker Compose แต่การทำงานจะเป็นการเชื่อมต่อกับ Racher ไม่ได้เชื่อมต่อกับ Swarm ดังนั้นการใช้งาน Rancher Compose จะต้องใช้คู่กับ Rancher ด้วย Rancher Compose จะใช้ไฟล์ config อยู่ 2 ไฟล์คือ docker-compose.yml สำหรับกำหนด stack ที่ต้องการ deploy และ rancher-compose.yml สำหรับกำหนดค่า Load Balance หรือการ Scale หากใช้ไฟล์ docker-compose.yml อย่างเดียว Rancher จะไปสร้าง config rancher-compose ให้ พร้อมกำหนดจำนวน Scale เท่ากับ 1 ไว้ ดังนั้นในแต่ละ Service สามารถสั่ง Scale ได้โดยอัตโนมัติ

ตัวอย่าง Jenkins CI จะเห็นภาพมากที่สุด เพราะโครงสร้างของ Jenkins ออกแบบมาให้ Scale ในส่วน Jenkins Slave ได้เรื่อยๆ ดังนั้นหากมีการเพิ่ม Host ของ Jenkins Slave เมื่อ Container เริ่มทำงานจะต้อง Link กลับมาที่ Jinkins Master เพื่อ config slave เพิ่ม เราจะใช้ image ชื่อ ibuildthecloud/jenkins-swarm และ ibuildthecloud/jenkins-swarm-slave กัน Rancher Compose สามารถใช้งานได้บน UI, API และ CLI ครั้งนี้มาลองใช้ CLI กันบ้าง ให้ดาวน์โหลด Rancher Compose CLI มาจากหน้า Stack และติดตั้งให้เรียบร้อย

Continue reading

ครั้งที่แล้วพาเล่น Load Balance บน Rancher แบบง่ายๆ ไปแล้ว ครั้งนี้ก็เลยมายกตัวอย่าง HA WordPress กันบ้าง WordPress เป็น CMS เก็บข้อมูลบน Storage 2 ส่วน คือ บน MySQL และบน File System หากต้องการทำ HA สำหรับ WordPress จะต้องกระจายโหลดจาก Load Balance ไปยัง WordPress และการเก็บข้อมูลจะต้องเก็บข้อมูลบน Storage เดียวกันโดยใช้ Distributed Storage เข้ามาช่วย และใช้ MySQL Cluster สำหรับเก็บข้อมูลด้วย เครื่องมือที่ใช้ได้แก่ Gluster,
Percona XtraDB Cluster และ WordPress มาลงมือกันเลย ให้คุณเพิ่ม Docker Host เข้าไปใน Rancher 3 Host ดังนี้


Continue reading

Load Balance Service เป็นบริการที่มีใน Rancher คุณสามารถสร้าง Web Application พร้อม Load Balance ได้ง่าย โดยไม่ต้องตั้งค่าให้ยุ่งยาก ไม่ต้องใช้ plugin เสริม ไม่ต้องติดตั้งอะไรเพิ่มเติม Load Balance Service มีให้ใช้งานในส่วน Stack มาลองสร้าง Load Balance ให้ Web Application เล็กๆ กันครับ อันดับแรกให้คุณเพิ่ม Docker Host เข้ามาใน Rancher ดังนี้

จากนั้นสร้าง App Stack ขึ้นมาใหม่

Continue reading

ครั้งที่แล้วพาเล่น RancherOS และได้แนะนำ Rancher ไปแล้วนิดหน่อย ครั้งนี้เราจะมาลองเล่น Rancher กันให้มากขึ้น Rancher เป็นเครื่องมือจัดการ Docker Container รองรับการเพิ่ม Docker Host ในรูปแบบ Bootstrap บน Cloud Platform ต่างๆ เช่น AWS, Digital Ocean, Rackspace, Azure เป็นต้น นอกจากนี้ยังสามารถใช้งานร่วมกับ Docker Host ปกติได้ เช่นกัน

การติดตั้ง Rancher ทำได้หลายวิธี แต่วิธีที่ง่ายและสะดวกที่สุดคือติดตั้งโดยใช้ Docker ดังนี้

docker run -d --restart=always -p 8080:8080 rancher/server

เมื่อติดตั้งเสร็จ ก็ใช้งานได้เลย เปิดเบราเซอร์ไปที่ http://your-host:8080 คุณจะพบว่า Rancher ทำงานแล้ว

Continue reading

เนื่องจากมีโปรเจคทำหุ่นยนต์แมงมุม 4 ขาค้างไว้ แต่ไม่ค่อยได้เขียนวิธีการทำในส่วนต่างๆ ก็เลยกลับมาเขียนย้อนหลังกันสักหน่อย จะได้เป็นแนวทางให้ท่านที่สนใจเผื่ออยากลองทำหุ่นยนต์เล่นกันบ้้าง การใช้งาน Servo ใน Arduino UNO เราสามารถใช้งานผ่าน Servo Library โดยส่งค่า PWM และหน่วงเวลาให้ Servo ทำงาน แต่หากต้องการควบคุม Servo จำนวนมากๆ จะต้องใช้ Servo Driver หรือ Servo Shield เข้ามาช่วย ครั้งนี้มาแนะนำ Adafruit 16-channel PWM/Servo Shield ครับ หน้าตาเป็นแบบนี้

สำหรับท่านที่อยากหาซื้อ Shield ก็สั่งซื้อได้จาก Arduino All กันได้ สำหรับ Servo Shield ตัวนี้ทำงานผ่าน I2C แต่การใช้งานไม่ต้องเขียนโค้ดผ่าน I2C นะครับ ทาง Adafruit มี Library ให้ใช้งานชื่อ Adafruit PWM Servo Driver Library การติดตั้ง Library ก็ง่ายมากๆ ติดตั้งผ่าน Library Manager ได้เลย

Continue reading

RancherOS เป็นระบบปฏิบัติการ Linux ขนาดเล็กเพียง 20MB พัฒนามาเพื่อใช้งานกับ Cloud โดยเฉพาะ ผนวกความสามารถด้าน container เข้ามาด้วย สิ่งที่แตกต่างจากระบบปฏิบัติการ Linux ขนากเล็กเจ้าอื่นๆ อย่าง Atomic, CoreOS, Snappy คือมี Docker ทำงานอยู่ 2 ระดับคือ System Docker และ User Docker ซึ่ง PID 1 เป็น System Docker นอกจากระบบปฏิบัติการแล้วยังมีเครื่องมือช่วยจัดการ Docker Container ในชื่อ Rancher อีกด้วย

ครั้งนี้เรามาลองดูระบบปฏิบัติการ RancherOS กันก่อน RancherOS สามารถใช้งานได้บน Docker Machine, Vagrant, Boot จาก ISO, Bare metal หรือจะใช้งานบน Cloud Service เช่น Amazon Web Service และ Google Cloud Platform ได้เช่นกัน

Continue reading