หากคุณไม่ได้ใช้บริการ Support Plan ของ CoreOS ทางออกเดียวที่คุณมีคือใช้บริการ Monitoring System ของรายอื่น เช่น cAdvisor ของ Google, nrpe ของ Nagios หรือใช้ toolbox ของ CoreOS เอง ซึ่งไม่ได้ช่วยให้การทำงานคล่องตัวมากขึ้น DataDog มีบริการ Monitoring สำหรับ CoreOS เช่นเดียวกันกับ Docker และใช้วิธีการเดียวกันได้ ดังนี้

ติดตั้ง Container ของ DataDog Agent ดังนี้่

docker run -d --privileged --name dd-agent -h HOSTNAME \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /proc/mounts:/host/proc/mounts:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e API_KEY=YOUR-API-KEY datadog/docker-dd-agent

เปลี่ยน HOSTNAME และ YOUR-API-KEY ให้เป็นของคุณเอง จากนั้นกลับไปที่ Dashboard คลิกที่ Infrastructure เราจะพบว่ามีชื่อ host อยู่ใน Infrastructure ดังนี้


Continue reading

หากใครที่ไม่ชอบ cAdvisor ของ Google ซึ่งดูหยาบไป ดูย้อนหลังไม่ได้ อยากได้ Dashboard ที่ปรับแต่งได้ตามแบบที่ชอบ แนะนำให้ใช้ DataDog ครับ DataDog เป็นบริการ Monitoring น้องใหม่ที่สามารถจับข้อมูลได้หลายระบบปฏิบัติการ รวมไปถึง Docker, CoreOS, Cloud Service อย่าง Amazon Web Service, OpenShift ได้อีกด้วย นอกจากนี้ยังมีส่วนเสริมที่เชื่อม DataDock กับ Service หรือ Application ต่างๆ เพื่อ Monitor ในระดับ Service ได้ เช่น Apache, PHP, MongoDB, NGinX เป็นต้น DataDog เปิดให้ทดลองใช้งานฟรี 14 วัน หากทดลองแล้วติดใจซื้อบริการต่อได้

ก่อนอื่นสมัครสมาชิก DataDog กันก่อน จากนั้นเพิ่ม DataDog Agent ซึ่งวิธี Monitor Docker นั้นง่ายมากๆ เราสามารถใช้ DataDog Agent Container มาใช้งานได้ ดังนี้


Continue reading

ถ้าคุณต้องการใช้ CoreOS เป็น Infrastructure หลักในการจัดการ Docker Container ในหลายๆ Host การสร้าง CoreOS Cluster ขึ้นมาใช้งานก็จะเป็นทางเลือกที่ดีที่สุด CoreOS ออกแบบ Cluster ขึ้นมาไม่เหมือนใคร การทำงานจะทำงานผ่าน service หลายตัวประกอบเข้าด้วยกัน เช่น etcd, fleet เป็นต้น CoreOS จะใช้การอ่านข้อมูล Node ของ Cluster จาก etcd เป็นหลัก ไม่ได้เกิดจากการเอาสายเชื่อมต่อกันแต่เกิด Cluster จากการทำงานซอฟต์แวร์เป็นหลัก

มาลองสร้าง CoreOS Cluster บน DigitalOcean กัน สำหรับท่านที่ติดตั้ง CoreOS เองก็สามรถใช้ How-To นี้อ้างอิงได้ CoreOS จะต้องใช้ etcd ซึ่งเป็น Discovery URL เพื่อเก็บข้อมูลของ Node ใน Cluster ซึ่งคุณใช้ etcd service ของคุณเองก็ได้ หรือจะใช้ service กลางจาก discovery.etcd.io ได้เช่นกัน การขอ Discovery URL ทำได้ง่ายๆ ผ่าน cURL ดังนี้

curl -w "\n" https://discovery.etcd.io/new

คุณจะได้รหัส token มาพร้อมกับ Discovery URL ดังนี้

https://discovery.etcd.io/2ff216654df841f09b76715109594100


Continue reading

Tutum เป็น Container Platform สำหรับนักพัฒนาและผู้ดูแลระบบ Tutum ให้ความสามารถของ Container อย่าง Docker ซึ่งช่วยใช้คุณ Build Container, Depoly ตลอดจนจัดการ Application ของคุณบน Cloud Infrastructure ใดๆ ก็ได้ โดยใช้ Tutum ซึ่ง ตอนนี้ Tutum สามารถเชื่อมต่อกับ Cloud Infrastructure ได้ 3 ค่าย ได้แก่ Microft Azure, Amazon Web Service และ DigitalOcean นอกจากนี้ Tutum ยังสามารถเชื่อมต่อเครื่องเซิร์ฟเวอร์ ของคุณเป็น Cluster เดียวกันกับ Tutum ได้อีกด้วย

Tutum ใช้บริการได้ฟรีไม่เสียค่าใช้จ่าย เพราะ Tutum ทำหน้าที่เป็น Platform สำหรับเชื่อมต่อไปยัง Cloud Infra ที่เราใช้บริการอยู่ ดังนั้นการสั่ง Deploy Container อะไรก็ตาม จะสั่งผ่าน Tutum เป็นหลัก


Continue reading

เนื่องจากอยากทดลอง Icinga2 ว่าเป็นอย่างไร แต่พอดูวิธีการติดตั้งแล้วรู้สึกว่าขั้นตอนเยอะเกินไปหรือเปล่า ก็เลยได้ไปค้นที่ Docker Hub ว่ามีนักพัฒนาท่านใดทำ Docker Image ไว้ให้ใช้บ้าง พบว่ามีหลายคน จนเลือกไม่ถูก T_T ผมก็เลยเลือก Image ของ jordan/icinga2 มาลองดู เนื่องจากเข้าใจง่ายดีไม่มีขั้นตอนซับซ้อนมากนัก

วิธีการก็ง่ายๆ สั่ง Pull Image มาจาก Docker Hub

docker pull jordan/icinga2

จากนั้นสั่ง run แบบ expose port 443 และ 80 ที่เครื่อง host

ID=$(docker run -p 80:80 -p 443:443 -d jordan/icinga2:latest)


Continue reading

หลายท่านที่ใช้ Docker Container มักจะสร้าง Dockerfile ของตัวเองที่ติดตั้ง OpenSSH Server แล้วสั่ง expose port 22 เอาไว้เพื่อสั่ง ssh เข้าไปใน Container ซึ่งวิธีการแบบนี้ทางผู้พัฒนา Docker ไม่แนะนำให้ใช้ เนื่องจากจะเป็นการเปิด port ไว้ให้โจมตีได้ถึงตัว Container และ Docker Host วิธีการที่ทาง Docker แนะนำให้ใช้คือใช้ nsenter เรียกใช้ shell ผ่าน namespace โดยที่ Container ไม่ต้องมี OpenSSH ติดตั้งอยู่

วิธีการใช้งาน nsenter ก็ง่ายมาก เรียกใช้ผ่าน Docker Hub ได้เลยดังนี้

docker run -v /usr/local/bin:/target jpetazzo/nsenter

nsenter จะติดตั้งอยู่ใน /usr/local/bin ของเราจากนั้นก็ใช้งานได้เลย หากต้องการติดตั้งก็ติดตั้งลงในเครื่องจริงๆ ก็ติดตั้งได้จากแพคเกจ util-linux ได้เช่นกัน

วิธีการใช้งาน เราต้องทราบ PID ของ Container ที่ทำงานอยู่ก่อน โดยใช้คำสั่ง

PID=$(docker inspect --format {{.State.Pid}} )

จากนั้นเราถึงจะเรียก shell ของ container นั้นได้ดังนี้

nsenter --target $PID --mount --uts --ipc --net --pid

การใช้งาน nsenter จะคล้ายกับการ chroot นั่นเอง

ครั้งที่แล้วเราได้ติดตั้ง Proxmox VE 3.2 กันไปเรียบร้อยแล้ว ครั้งนี้เรามาลองสร้าง Virtual Machine กันบ้าง วิธีการสร้าง Virtual Machine ก็ง่ายมาก เราสามารถใช้ Proxmox Web UI ในการสร้าง Virtual Machine Instance ได้เลย ซึ่งสามารถสร้าง Virtual Machine Instance ได้หลายแบบ ขึ้นอยู่กับว่าเราต้องการ Virtual Machine แบบใด ใช้ระบบปฏิบัติการอะไร ทรัพยากรที่ต้องใช้มีอะไรบ้าง ครั้งนี้จะเป็นตัวอย่างการสร้าง Instance ของ CentOS 6.5 วิธีการสร้าง Virtual Machine Instance มีดังนี้
เปิด Promox Web UI ขึ้นมาในที่นี้คือ https://192.168.56.101:8006  เมื่อเชื่อมต่อ Proxmox ผ่าน web browser ได้แล้ว Proxmox ให้ให้ใส่ข้อมูล Username และ Password ดังนี้


Continue reading

ในการแสดงผลของ web นั้นในอดีตแสดงให้แก่หน้าจอน้อยประเภท ส่วนใหญ่คือหน้าจอ pc หรือไม่ก็ notebook ไม่ได้หลากหลายเท่าปัจจุบัน ในปัจจุบันมีขนาดหน้าจอเพิ่มขึ้น ไม่ว่าจะเป็น tablet หรือ smart phone ทำให้ web ที่ได้ทำการพัฒนาขึ้นต้องรองรับในความหลากหลายนี้ให้ได้ Bootstrap ก็เช่นกัน เนื่องจาก Bootstrap เป็นเครื่องมือในการสร้าง web แบบ responsive ด้วย ทำให้ขาดคุณสมบัติเกี่ยวกับการแสดงผลในหน้าจอที่มีขนาดที่หลากหลายไปไม่ได้ และต้องรองรับความแตกต่างของหน้าจอให้ได้

Bootstrap ได้ใช้หลักการซอยย่อยหน้าจอเป็นส่วนๆ โดยแต่ละส่วนนั้นเป็นแนวตั้ง หรือที่เรียกว่า คอลัมภ์ โดยมี 12 กล่อง ขนาดเท่าๆกัน ดังรูป

grids
Continue reading

Panamax เป็นระบบจัดการ Docker ผ่าน Web Interface ช่วยให้คุณจัดการ Docker Container ได้ง่ายมากขึ้น Panamax ใช้ CoreOS และ Fleet เป็นตัวจัดการ Container ทำให้คุณสามารถสร้างและ deploy container ใดๆ ก็ได้ Panamax ทำงานบน Laptop หรือทำงานบน Cloud Infra ใดๆ ก็ได้ที่ใช้งาน CoreOS เช่น CenturyLink Cloud, Amazon, Rackspace เป็นต้น นอกจากนี้คุณยังสามารถใช้ Panamax บน bare metal server ได้ด้วย

การติดตั้ง Panamax สามารถติดตั้งผ่าน vagrant ซึ่งสามารถใช้ deploy container บน local และ Cloud Provider ปลายทางได้

ท่านที่ใช้ OSX ติดตั้ง Panamax ดังนี้

brew install http://download.panamax.io/installer/brew/panamax.rb

panamax init


Continue reading

Elastic Beanstalk เป็นเครื่องมือช่วยในการ Deploy Application​ บน Amazon Web Service โดยที่เราไม่ต้องกังวลเรื่อง Instance, OS, Auto Scaling Group, Monitoring ฯลฯ เพราะ Elastic Beanstalk จะเป็นคนจัดการให้ทั้งหมด คุณมีหน้าที่แค่พัฒนา Application แล้วสั่ง deploy เท่านั้น ซึ่ง Application ที่สามารถ deploy ผ่าน Elastic Beanstalk ได้หลายภาษา ทั้ง .NET, Python, PHP, Node.js, Ruby, Tomcat และ Docker

การใช้งาน Docker บน Elastic Beanstalk คุณสามารถสั่ง deploy Dockerfile เปล่าๆ หรือใช้ชุดของ Dockerfile และไฟล์ประกอบต่างๆ ที่บีบอัดในรูปแบบไฟล์ zip ได้เช่นกัน เราจะใช้ Dockerfile ของเกม 2048 กัน


Continue reading