มาเล่น HA WordPress บน Rancher กัน

ครั้งที่แล้วพาเล่น 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 กัน

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

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

มาใช้ Rancher จัดการ Docker Container กัน

ครั้งที่แล้วพาเล่น 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

มาทำ USB Boot สำหรับติดตั้ง OSX El Capitan กัน

OSX ตัวใหม่ออกมาแล้ว สำหรับท่านที่กำลังจะอัพเกรดอย่าเพิ่งรีบร้อน ดาวน์โหลดตัวติดตั้งมาแล้วทำ USB Boot กันก่อนครับ จะได้มี El Capitan ใน USB เอาไว้ใช้งานยามฉุกเฉิน หรือเอาไว้ไปติดตั้งที่เครื่องอื่นๆ ได้ :)

เมื่อดาวน์โหลดม่เรียบร้อยแล้วเปิด terminal ใช้คำสั่งดังนี้

cd /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/

สั่งสร้าง USB Boot ดังนี้

sudo ./createinstallmedia --volume /Volumes/ELCAPITAN --applicationpath "/Applications/Install OS X El Capitan.app"

รอจนคัดลอกไฟล์เสร็จ ก็สามารถเอาไปใช้งานได้ :)

มาเล่น Servo Motor ผ่าน 16-channel PWM/Servo Shield กัน

เนื่องจากมีโปรเจคทำหุ่นยนต์แมงมุม 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

มาเล่น Docker Compose พร้อม reconfig HAProxy ด้วย Interlock กัน

ครั้งที่แล้วพาเล่น 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.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

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

Continue reading

มาเล่น Docker Registry 2 กัน

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 ให้เรียบร้อยก่อน

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

ติดตั้ง Docker Compose ต่อ

curl -L https://github.com/docker/compose/releases/download/1.3.2/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 ด้วย Docker Compose กัน

ครั้งที่แล้วแนะนำ 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 Launch Service Application กัน

เมื่อครั้งที่แล้วพาเล่น 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

มาเล่น Auto Scaling MQTT Cluster บน AWS Cloud

ครั้งที่แล้วพาเล่น 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