ครั้งที่แล้วพาเล่น Docker Machine ทั่งบน Digital Ocean, Azure และ Rackspace ครั้งนี้จะมาแนะนำ Docker Swarm ตัว Docker Swarm ทำหน้าที่คล้ายกับ etcd ใน CoreOS เพื่อใช้ในการผูก Cluster โดยใช้ Service เป็นหลัก ซึ่ง Docker Hub จะให้บริการ service discovery ให้ ซึ่งผู้ใช้สามารถเรียกใช้ Swarm ได้ผ่าน Docker Image หรือใช้งานร่วมกับ Docker Machine ได้เช่นเดียวกัน 8ครั้งนี้เราจะใช้ Machine กับ Digital Ocean ติดตั้งเครื่องมือที่ต้องใช้กันก่อน

ติดตั้ง Docker Machine ดังนี้

wget https://github.com/docker/machine/releases/download/v0.1.0/docker-machine_linux-amd64 -O /usr/local/bin/docker-machine

จากนั้นขอ UUID ของ Cluster ดังนี้

docker run swarm create


Continue reading

หากคุณใช้งาน Docker อยู่จะทราบว่าเราสามารถใช้ Docker CLI ในการควบคุมเครื่อง Docker Host ที่อยู่อีกเครื่องหนึ่งได้ ผ่านการกำหนดผ่าน ENV ชื่อ DOCKER_HOST ถ้าต้องการใช้เครื่องไหน ก็ต้องเปลี่ยนทุกครั้ง ถ้าคุณใช้ Docker Machine แล้วมีเครื่องอยู่หลายตัว Deploy อยู่บน Cloud Provider หลายค่าย แล้วจำ IP Address และ Port ไม่ได้ก็ยิ่งสร้างความลำบากให้กับชีวิตมากขึ้น

วิธีการง่ายๆ ในการเปลี่ยนเครื่องที่อยากจะใช้งานให้ได้อย่างรวดเร็วมี 2 ทางเลือก

  • ใช้ Swarm
  • ใช้ ENV ของ Docker Machine

Docker Machine มี option ชื่อ env เราสามารถใช้ความสามารถนี้กำหนด ENV ให้กับ Docker CLI ได้ ตอนนี้เรามีเครื่องอยู่ 5 เครื่อง


Continue reading

ใน How-To ครั้งที่แล้ว มาเล่น Golang บน Docker กัน หลังจากที่ได่ทำการสั่ง Build Docker Images แล้วจะพบว่ามีการดาวน์โหลด Base Images จำนวนมากใช้เวลานานและเมื่อทำการ Build เสร็จแล้ว Docker Images นั้นมีขนาดใหญ่เกินความจำเป็นใน How-To ครั้งนี้จะเป็นวิธีการสร้าง Docker Images ขนาดเล็กกันเพื่อให้ง่ายต่อการใช้งาน มาเริ่มกันเลย…
ดาวน์โหลดและติดตั้ง Golang ด้วยคำสั่ง

wget https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz

sudo tar -C /usr/local -xzf go1.1.2.linux-amd64.tar.gz

sudo echo 'PATH DEFAULT=${PATH}:/usr/local/go/bin' | sudo tee -a /etc/environment


Continue reading

สำหรับผู้ที่ต้องการใช้งานเทมเพลตใหม่ ๆ ที่ไม่มีให้ดาวน์โหลดบน หน้าดาวน์โหลด template เราสามารถสร้าง template เองได้ง่าย ๆ ดังนี้ สำหรับครั้งนี้เรามาลองสร้างเทมเพลต Ubuntu 14.10 Server ตัวใหม่ล่าสุดกัน ก่อนอื่นให้เราดาวน์โหลดและติดตัั้ง Ubuntu 14.10 Server แบบ KVM พร้อม update/upgrade ให้เรียบร้อยก่อน จากนั้นให้ติดตั้ง debootstrap

apt-get install -y debootstrap

1

จากนั้นใช้ debootstrap ดาวน์โหลดคอนฟิกไฟล์และแพ็คเกจทั้งหมดที่จำเป็นลง directory ที่ต้องการ ในที่นี้จะให้ลงใน /tmp/deb

Continue reading

Nginx คือแพ็คเกจที่เใช้ติดตั้งเพื่อที่จำทำให้เครื่อง Server สามารถทำงานเป็นเว็บเซิร์ฟเวอร์ที่กำลังได้รับความนิยมอยู่ในขณะนี้เป็นคู๋แข่งของ Apache ที่หลายคนรู้จักดี ความสามารถของ Nginx สามารถอ่านเพิ่มเติมได้ที่ http://nginx.org/en/ ใน How-To ครั้งนี้จะมาทำการเปิดใช้งานความสามรถหนึ่งของ Nginx กันนั่นก็คือ Nginx Load Balancing
Nginx Load Balancing เป็นวิธีการกระจายภาระการทำงานของเครื่อง Server ที่มีอยู่หลายเครื่องให้ช่วยกันรับภาระการทำงานใน How-To ครั้งนี้จะเป็นการทำงานแบบ Round Robin ซึ่งกำหนดให้มีเครื่อง Server 3 เครื่อง ดังนี้

  • backend1.example.com
  • backend2.example.com
  • backend3.example.com

ติดตั้ง Nginx ด้วยคำสั่ง

sudo apt-get install nginx

ทำการแก้ไขไฟล์ default ใน /etc/nginx/sites-available เพื่อเพิ่มความสามารถ Upstream Module (Load Balancing) ให้กับ Nginx ด้วยคำสั่ง

sudo nano /etc/nginx/sites-available/default


Continue reading

โดยทั่วไปเราอาจจะคุ้นเคยกับการดูแล และตรวจสอบระบบ (monitoring) ผ่านซอฟต์แวร์อย่าง Nagios (หรือซอฟต์แวร์อื่นๆ ที่อยู่ในกลุ่มเดียวกัน) ซึ่งนั่นก็แปลว่าคุณได้เข้าใจถึงความสำคัญของการตรวจสอบเป็นอย่างดี แต่ ณ ขณะนี้ทาง 10gen ได้ทำการ build บริการสำหรับ MongoDB ขึ้นมาที่ชื่อว่า Mongo Monitoring Service หรือเรียกสั้นๆ ว่า MMS โดยบริการตัวนี้ จะช่วยลดความยุ่งยากในการดูแล และตรวจสอบ MongoDB

MMS นั้นทำได้มากกว่าการบอกว่า MongoDB กำลังทำงานอยู่ ซึ่งตัว agent ที่อยู่บน MongoDB server จะทำการรายงานข้อมูลกลับมาอย่างเช่น ข้อมูล Memory, opcounters, จำนวน connection, network in/out, ขนาดของฐานข้อมูล ฯลฯ และที่สำคัญที่สุดข้อมูลที่แสดงกลับมาเหล่านี้ แสดงผลให้เราเห็นในรูปแบบของ chart ซึ่งเราสามารถ zoom และ expand ชุดข้อมูลที่เราต้องการจะดูได้โดยง่าย และที่จะไม่พูดถึงไม่ได้เลยคือขณะนี้ OpenShift ได้ประกาศการสนับสนุน MMS ซึ่งทำให้เราสามารถใช้งานบริการส่วนนี้ได้อย่างง่ายดาย

ขั้นตอนแรกให้เราเข้าไป sign up MMS ก่อน ที่ https://mms.10gen.com โดยคุณจะต้องระบุกลุ่ม สำหรับการจัดการสำหรับผู้ใช้หลายคนด้วย ถัดไปให้เราเข้าไปดาวน์โหลด Agent โดยลิงค์ดาวน์โหลดจะอยู่ในหน้า Host page โดยจะต้อง Log in ก่อน


Continue reading

Golang นั้นเป็นภาษาที่ใช้การเขียนโปรแกรมที่พัฒนาขึ้นจากทีมพัฒนาของ Google และกำลังเป็นที่นิยมใช้งานกันมากขึ้นในปัจจุบัน วิธีการเขียนโปรแกรมโดยใช้ Golang สามารถอ่านเพิ่มเติมได้ที่ https://golang.org/doc/code.html มาเริ่มต้นใช้งาน Golang บน Docker กัน เริ่มด้วยการติดตั้ง Docker ผ่าน curl กันก่อน

ติดตั้ง curl ด้วยคำสั่ง

sudo apt-get install curl

ติดตั้ง Docker ด้วยคำสั่ง

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

ดาวน์โหลดและติดตั้ง Golang ด้วยคำสั่ง

wget https://storage.googleapis.com/golang/go1.4.2.linux-386.tar.gz


Continue reading

sysdig คือ เครื่องมือสำหรับใช้ค้นหาปัญหาในระดับ system ซึ่งได้รวม tool ทุกอย่างไว้ใน application เดียวเช่น tcpdump, strace, lsof เป็นต้น เท่านั้นยังไม่พอ sysdig สามารถที่จะ save system activity เป็น file เพื่อใช้วิเคราะห์ปัญหาในภายหลังได้ ในบทความนี้จะลองใช้ sysdig มาทำ audit LAMP Server และดูว่าผลจะเป็นอย่างไร ในตัวอย่างจะติดตั้ง LAMP บน Centos 7 แล้ว และมี ip address 192.168.56.100

การติดตั้ง sysdig มีขั้นตอนดังนี้

ทำการ Import key ของ Draios เพื่อให้สามารถเพิ่ม Draios repository ได้

rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public

แล้ว download Draios repository และทำการ config yum ให้สามารถใช้ repo นี้ได้

curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo

ทำการ Enable EPEL Repository โดย EPEL คือ Extra Packages for Enterprise Linux ซึ่งต้องใช้เพื่อ download Dynamic Kernel Module Support (DKMS) package ซึ่ง sysdig ต้องใช้ และยัง download dependency อื่นๆ อีกด้วย


Continue reading

InfluxDB คือ time series, metrics และ analytics database ซึ่งเขียนด้วยภาษา Go ซึ่งไม่ต้องการ external dependency ใดๆ อีกแล้ว ในตอนนี้ InfluxDB ได้ออกมาล่าสุด version 0.8.8 ซึ่งยังเป็น alpha version อยู่ หรือยังอยู่ในระหว่างการพัฒนานั้นเอง InfluxDB มี feature ที่สำคัญได้แก่ ใช้ภาษา SQL, มี HTTP(S) API, สามารถเก็บ data ได้เป็นหลัก billions เลยทีเดียว, Built in management interface และอื่นๆ สามารถอ่านเพิ่มเติมได้ที่ website InfluxDB การติดตั้งนั้นก็ง่ายๆ โดยการ download package มาติดตั้งโดยใช้ dpkg หรือ rpm ในตัวอย่างใช้ OS Ubuntu server 14.04 ติดตั้ง InfluxDB มี ip address 192.168.56.118
เริ่มด้วยการ download package และติดตั้ง

wget http://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb; sudo dpkg -i influxdb_latest_amd64.deb

แล้วสั่ง start service InfluxDB

sudo service influxdb start

ที่นี้เรามาลองใช้งาน InfluxDB ผ่าน User interface ดูโดยใช้ Web browser เข้าไปที่ URL: http://192.168.56.118:8083


Continue reading

Monitoring and Analytics Add-on คือส่วนเสรืมที่มีว้สำหรับตรวจสอบการทำงานของแอปพลิเคชันบน Bluemix
เริ่มด้วยการเพิ่ม Add-on กันก่อน เข้าใช้งาน Bluemix แล้วเลือกที่ CATALOG เลือก Monitoring and Analytics ในส่วนของ DevOps ทำการเลือกชื่อแอปพลิเคชันที่ต้องการเพิ่ม Add-on แล้วกดปุ่ม CREATE เมื่อกลับมาที่แอปพลิเคชันจะพบกับชื่อ Monitoring and Analytics ปรากฏอยู่


Continue reading