วันพฤหัสบดีที่ 31 ตุลาคม พ.ศ. 2556

แหล่งความรู้ OpenStack ภาค Networking

หลังจาก blog เรื่องแหล่งความรู้ OpenStack ไป ก็นึกสนุกทำ OpenStack Cheat Sheet ไป 2 เวอร์ชั่น และมีปัญหาจุกจิกกับ Neutron (Quantum) ที่ Lab Cloud Specialist เนื่องจาก Network Architecture ของ Lab ผิดไปจากที่ OpenStack Guid แนะนำไว้ก็เลยทำให้เกิดอาการงงกับ Neutron และปัญหาหนึ่งที่พยายามจะ Debug ก็คือ OpenVSwitch ซึ่งมันก็ดีนะ แต่ Debug งงมาก ก็เลยไปค้นคำถามจาก RedHat OpenStack ได้ข้อมูลที่น่าสนใจดังนี้




  • PackStack All-in-One DIY Configuration อธิบายว่าเกิดอะไรขึ้นกับ OpenVSwitch ในแต่ละขั้นตอนและวิธีการ Debug

  • Networking in too much detail อันนี้อธิบายแต่ละจุดของ Network ในส่วน Instance, Compute Host และ Network Host

  • OpenStack Networking with Neutron on RDO อันนี้เป็น Video อธิบาย้กี่ยวกับ Neutron เครื่องมือในการตรวจสอบและ Debug OpenVSwitch


เก็บตก AWS Cloud Kata Bangkok 2013

วันนี้ลางานไปงานสัมนา AWS Cloud Kata for Start-ups and Developer งานนี้จัดขึ้นที่โรงแรม Centerpoint Hotel & Resident ติดกับ Terminal 21 สิ่งที่ผมสนใจในงานนี้มี 2 อย่าง อันแรกคือระบบลงทะเบียนผ่าน PeaTix ผมชอบมากๆ สะดวกและรวดเร็ว แค่ลงทะเบียนผ่านหน้าเว็บหรือผ่าน Mobile App คุณก็จะได้ QR Code มา 1 อันพร้อมหมายเลขที่นั่ง ทำให้ผมสงสัยว่าตอนเข้างานสัมนาเขาจะทำยังไง จะ Scan QR Code มั๊ยหรือยังไง สิ่งที่น่าสนใจอย่างที่ 2 คือเนื้อหาของสัมนาของ AWS Kata มักจะเน้นไปที่เปิดโอกาสให้ได้ลองเล่นและทดลองใช้งาน AWS และอย่างที่บอกงานนี้เหมาะสำหรับ Start-ups และ Developers ทำให้ยิ่งอยากรู้ว่า ทีม AWS APAC จะทำอย่างไรหรือมีแนวทางนำเสนออย่างไร นอกจากนี้ก็เป็นเรื่องเกี่ยวกับ Start-ups ล้วนๆ ในเรื่องของ Venture Capital, Funding และ Pitching



พอเข้าไปในงานเจอผู้นำแก๊ง Joe Ziegler ผมเคยฟัง Joe บรรยายในงาน AWS Summit ที่อินเดีย ก็รู้เลยว่างานนี้สนุกแน่ เปิดงานด้วยใครใช้ Amazon บ้าง เริ่มจากวิดีโอ NASA JLP และแคมเปนจ์ใหม่ชื่อ Activate เมื่อเช้าเพิ่งดูใน Youtube T_T เป็นแคมเปนจ์เพื่อช่วยเหลือ Start-up ในการเข้าถึงแหล่งข้อมูลและเครื่องไม้เครื่องมือต่างๆ ในการใช้งาน AWS หลังจากนั้นก็เข้าสู่ช่วง Customer Speaker มี Stamp มาเล่าเกี่ยวกับการเริ่มใช้ AWS ว่าเริ่มอย่างไร และ Wongnai มาเล่าเรื่องการใช้งาน Elastic Scaling ของ Wongnai และบริการอื่นๆ ที่ Wongnai เล็งไว้ว่าจะใช้งานในอนาคต หลังจากนั้นก็เข้าเนื้อหาของ Markku Lepistö มาอธิบายเกี่ยวกับ AWS ว่ามีบริการอะไรบ้าง จะใช้งานขั้นเริ่มต้นได้อย่างไร (MVP:Minimum Viable Product) แล้ว Lean Start-up กับ AWS ทำได้อย่างไร อ้อแนะนำหนังสือ Lean Start-up ลองหามาอ่านนะครับสนุกมาก ตบท้ายด้วย Joe Ziegler มา Live Demo เรื่องทำ App พร้อมรองรับ Elastic Scaling แบบไม่ต้องสนใจเรื่อง Infrastructure บลาๆ มากนัก ด้วย Elastic Beanstalk อันนี้ช่วยให้เข้าใจเกี่ยวกับ Benefit ของ Cloud และ AWS ได้ง่ายมากคุณมีหน้าที่แค่เขียน App เท่านั้นส่วนอื่นๆ Elastic Beanstalk จัดการให้ และ Live Demo ก็สนุกสไตล์ Joe Ziegler ล่ะครับ



เนื่องจากเวลาสัมนาช้ากว่ากำหนดมากและเย็นมากแล้ว ผมก็เลยไม่ได้อยู่สัมนาต่อ ในหัวข้อ Getting to Profitability on AWS ที่จะพูดถึงเรื่อง Total Cost of Ownership (TCO), The six best practices for cost aware architecting ซึ่งเรื่อง Cost Aware Architecting เป็นหัวข้อที่เป็นคำตอบที่ว่าใช้ AWS อย่างไรไม่ให้เสียตังค์เยอะนั่นเอง เรื่องนี้เคยเข้า Live Webinar มาแล้วรอบนึงก็เลยกลับบ้านก่อน แฮะๆ



แปะ Slide AWS Cloud Kata ที่ฮ่องกงเอาไว้ให้ เพราะคล้ายๆ กันกับ AWS Cloud Kata ที่กรุงเทพ







Slide ของ Pieter Kemps มีเนื้อหาครอบคลุมแทบจะทุกเรื่อง รวมไปถึงเรื่อง Cost Aware Architecting ด้วย







ไหนๆ ก็จะ blog เรื่อง AWS แล้วก็เอาให้หมดเลยละกัน อันนี้เป็น Video + Webinar



A Walk through the AWS Cloud App Hosting on AWS





How to Reduce Your Spend on AWS





Total Cost of (Non) Ownership in the Cloud




วันเสาร์ที่ 19 ตุลาคม พ.ศ. 2556

มาคำนวณฮาร์ดแวร์สำหรับ OpenStack กัน

OpenStack เป็น Cloud Management ตัวนึงที่กำลังมาแรง ด้วยโครงสร้างการออกแบบที่ทำงานร่วมกันของแต่ละโมดูลทำให้ OpenStack แตกต่างจาก Cloud Management ตัวอื่นๆ อย่างชัดเจน โครงสร้างของ OpenStack จะต้องมีอย่างน้อย 2 ส่วนหลักๆ ได้แก่




  • Control Node

  • Compute Node



เครื่องมือช่วยคำนวณก็คือ BOM นั่นเอง สำหรับ BOM ตัวนี้พัฒนาจากบริษัทที่รับติดตั้งและพัฒนา OpenStack โดยตรงถือว่าเชื่อถือได้ครับ เครื่องมือใช้งานง่าย มีสิ่งที่ต้องกำหนด ได้แก่




  • อยากได้ Server ค่ายไหน DELL, HP, IBM, Super Micro

  • ระบบที่คุณจะทำสนับสนุน HA มั๊ย (3 Controllers)

  • อยากได้อุปกรณ์ Network ค่ายไหน DELL, Cisco, HP, Arista, Juniper, Brocade

  • ขนาดของ vCPU และ Memory โดยเฉลี่ยในระบบ

  • จำนวน VM ทั้งหมดที่คุณต้องการ

  • เลือกผลลัพท์ได้ว่าจะกรองตามจำนวนเซอร์ฟเวอร์หรือราคาที่ต้องจ่าย



มาดูผลลัพท์ของผมกันบ้าง สิ่งที่ผมต้องการคือ




  • ใช้อุปกรณ์ Server และ Network ของ DELL

  • ไม่มี HA

  • ขนาดของ VM โดยเฉลี่ยคือ 2 vCPU และ RAM ขนาด 1 GB

  • จำนวน VM ที่ต้องการ 4000 VMs



ดูราคากันก่อน (ผมเลือกตัวเลือกแรกเพราะราคาถูกที่สุด)











จากผลลัพธ์เราจะทราบข้อมูลเบื้องต้นในส่วนของฮาร์ดแวร์ทั้งจำนวนและราคา แต่น่าเสียดายที่ไม่มีการคำนวณในส่วน storage สำหรับ Glace, Cinder และ Swift และที่สำคัญไม่มีการคำนวณในส่วนของ Neutron ด้วย สำหรับท่านที่อยากทดลอง เข้าไปลองคำนวณกันได้ที่ Mirantis Hardware Bill of Materials Calculator for OpenStack


วันศุกร์ที่ 18 ตุลาคม พ.ศ. 2556

Ubuntu 14.04 ได้ชื่อ Trusty Tahr

Mark Shuttleworth ประกาศโค้ดเนมของ Ubuntu รุ่นหน้า 14.04 LTS ที่จะออกเดือนเมษายน 2014 คือ Trusty Tahr



Tahr หรือ Himalayan Tahr เป็นสัตว์สายพันธุ์เดียวกันกับแพะป่าในสกุล Hemitragus ส่วนมากอาศัยอยู่ในพื้นที่เทือกเขาหิมาลัยในทางตอนใต้ของธิเบต, ทางภาคเหนือของอินเดีย และ เนปาล เป็นต้น โดยสัตว์ชนิดนี้ยังถูกใช้เป็นสัญลักษณ์แห่งความกล้าหาญอย่างแน่วแน่และมั่นคง นั่นเอง



ส่วน Ubuntu รุ่นถัดไปนั้นจะใช้โค้ดเนมที่ขึ้นด้วยตัวอักษร U โดยมีการคาดเดาว่าอาจใช้ชื่อ Unhorned Unicorn หรือว่า Umbrella Uniform (อันนี้เป็นความคิดเห็นของผู้เขียนเอง) ก็เป็นได้ โดยสามารถเข้าไปดูรายชื่อโค้ดเนมได้ที่เว็บ Ubuntu Wiki



ที่มา - Blognone


วันพฤหัสบดีที่ 10 ตุลาคม พ.ศ. 2556

ติดตั้ง OpenStack แบบง่ายๆ กัน

ผมได้มีโอกาสไปเรียน Cloud Computing Specialist ทำให้ผมพบว่า การติดตั้ง OpenStack มันยุ่งจัง ยิ่ง service ของ OpenStack ยิ่งมากขึ้น ก็ต้อง config มากขึ้น อืมมม จริงๆ ก็ไม่ใช่เรื่องแปลกอะไรอ่ะนะ แต่สำหรับคนที่ต้องการสนองความอยากรู้อย่างผม เจ้าหมี Grizzly ก็เล่นเอาถอดใจเหมือนกัน วันนี้็เลยอยากมาแนะนำวิธีการติดตั้งแบบง่ายๆ สำหรับคนที่อยากรู้ว่า OpenStack เป็นยังไงเพื่อจะได้ทดลองเล่นได้ ก่อนจะถึงขั้นตอนติดตั้ง ต้องแนะนำสักหน่อยว่า OpenStack เป็น Cloud Management Platform ประกอบไปด้วย service ที่ทำหน้าที่แตกต่างกัน ดังนี้




  1. Nova ทำหน้าที่จัดการส่วน Compute และ Orchestration อะไรที่ต้องยุ่งกับ VM ก็ดูตัวนี้

  2. Glance ทำหน้าที่เป็นตัวจัดการ Image Respository ของ VM ที่เราจะเอามาใช้งาน

  3. Cinder ทำหน้าที่เป็นตัวจัดการ Block Storage เอาไว้แปะกับ VM เพิ่ม Disk และเก็บข้อมูล

  4. Keystone ทำหน้าที่เป็น Identity Management และ Tenant ให้กับระบบ

  5. Swift ทำหน้าที่เป็น Object Storage เก็บไฟล์ หรือทำ Archive Block Storage ได้

  6. Neutron ทำหน้าที่เป็น Network Sevice จัดการเรื่อง Virtual Switch/Router/Network ได้

  7. Ceilometer ทำหน้าที่เป็น Meter วัดการใช้งาน resources ไม่ว่าจะเป็น CPU, Memory, Storage และ Network ได้

  8. Heat ทำหน้าที่เป็น Orchestration Tools โดยเตรียม Config ต่างๆ ไว้เป็น Template ใช้ในการ Deploy App ได้ง่ายๆ อันนี้ลอกมาจาก Cloud Formation ของ Amazon AWS

  9. Horizon เป็น Dashboard ทำงานผ่านเว็บ ช่วยให้เราไม่ต้องใช้ Command Line เยอะจนเกินไป



สำหรับผู้ที่อยากลองเล่น OpenStack มี 3 ช่องทางให้เลือก คือ




  1. ติดตั้งเอง

  2. ลองเล่นจาก TryStack

  3. ลองเล่นจาก Cloud Provider อย่าง Rackspace, HP Cloud เป็นต้น




สำหรับผู้ที่อยากติดตั้งเองมีอีก 3 ช่องทางให้เลือก




  1. ติดตั้งจาก Package ที่ Linux Distribution มีให้แล้ว Config ทีละ Service ไปเรื่อยๆ Config เหนื่อย ถ้าขยันก็อาจเลือกวิธีนี้ได้ :)

  2. ติดตั้งจากเครื่องมือ DevOps อย่าง เช่น Chef, Puppet, Juju, Crowbar, Foreman เป็นต้น

  3. ติดตั้งจากเครื่องมือสำหรับนักพัฒนาอย่าง DevStack วิธีนี้เหมาะสำหรับ คนที่อยากรู้เฉยๆ restart เครื่องแล้ว service หายนะจ๊ะ



เยอะไปหรือเปล่า T_T เอาเป็นว่าผมเลือกวิธีง่ายๆ และสามารถเอาไปลองเล่นได้นานๆ วิธีที่ว่าคือ การติดตั้งผ่านเครื่องมือ DevOps ซึ่ง RedHat ได้เลือกใช้ Puppet มาเป็นเครื่องมือสำหรับการติดตั้ง OpenStack บน RedHat Enterprise Linux, Fedora 19+ และ CentOS มาดูวิธีการติดตั้งกัน สิ่งที่ต้องมี ได้แก่




  1. RedHat Enterprise Linux 6 Mini หรือ CentOS 6.4 Mini ก็ได้

  2. เครื่องคอมพิวเตอร์ที่มี CPU 2 Cores, RAM 2GB, HDD 160GB เป็นอย่างต่ำ มีสัก 2 เครื่อง ต่อ LAN และออกเน็ตได้



โดย LAN เป็น Network 192.168.0/24 เครื่อง Controller มี IP เป็น 192.168.0.10 เครื่อง Node 1 มี IP เป็น 192.168.0.11



เริ่มจาก Cluster Controller (All in One)



ติดตั้ง CentOS 6.4 Mini ให้เรียบร้อย จากนั้นติดตั้ง RedHat OpenStack Repository ดังนี้



sudo yum install -y http://rdo.fedorapeople.org/openstack-grizzly/rdo-release-grizzly.rpm



จากนั้นติดตั้ง PackStack เครื่องมือที่ใช้ติดตั้ง OpenStack



sudo yum install -y openstack-packstack



เพื่อความแน่ใจ reboot เครื่อง 1 รอบ ให้ Kernel ใหม่ทำงาน จากนั้นก็ ติดตั้ง OpenStack ได้เลยโดยใช้คำสั่ง



packstack --allinone --os-quantum-install=n



รอจนกว่าการติดตั้งจะเสร็จ ตัวติดตั้งจะแจ้งว่าเข้าใช้งาน Dashboard ได้จาก URL อะไร และ Username, Password อะไร



สำหรับเครื่อง Node ทำแบบเครื่อง Controller ติดตั้ง packstack จากนั้น copy file packstack-answer-XXXXXX-XXXX.txt มาไว้ที่เครื่อง Node แก้ไขไฟล์นี้ในส่วน CONFIG_NOVA_COMPUTE_PRIVIF, CONFIG_NOVA_NETWORK_PRIVIF จาก lo เป็น eth0 , CONFIG_NOVA_COMPUTE_HOSTS เป็น IP ของเครื่อง Node คือ 192.168.0.11 แก้ CONFIG_NOVA_NETWORK_FLOATRANGE จาก 10.3.4.0/22 เป็น 192.168.0.128/26 จากนั้นสั่งติดตั้งตาม answer file ดังนี้



packstack --answer-file=packstack-answer-XXXXXX-XXXX.txt



หลังจากการติดตั้งเสร็จ มาลอง Service กันหน่อย ใช้คำสั่ง



source keystone_admin



เพื่อเปิด console และตั้งค่า Environment ให้เครื่องมือบน Command Line จากนั้นใช้คำสั่ง



nova-manage service list



เพื่อดูว่า service ทั้งหมดทำงาน หรือใครอยากจะทดสอบ เป็นราย service โดยการ list ข้อมูลออกมาก็ได้ เช่น nova list, glance index, cinder list เป็นต้น ถ้าลองแล้วไม่มี Error ก็ถือว่าใช้ได้ ลืมบอกไปว่าถ้าจะทำให้ VM ที่สร้างขึ้นมา ต่อกับโลกภายนอกได้ ต้องตั้ง Floating IP แต่ PackStack กำหนดค่าให้เราสำเร็จ ซึ่งเป็นค่าที่ผิด T_T ต้องมาแก้กันก่อน โดยลบของเก่าออกก่อน



nova floating-ip-bulk-delete 10.3.4.0/22



และเพิ่ม Floating IP ที่ถูกต้องลงไป



nova floating-ip-bulk-create 192.168.0.128/26



จากนั้นสร้าง SSH Key สำหรับใช้งานกัน :)



nova keypair-add mykey > mykey.pem



ดาวน์โหลด VM Image สมมติว่าเป็น Ubuntu ละกัน



wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img



และลงทะเบียนเข้าไปใน Glance ดังนี้



glance image-create --name 'precise' --disk-format qcow2 --container-format bare --is-public true < precise-server-cloudimg-amd64-disk1.img



กำหนด security group ให้ ssh และ ping ได้



nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0



nova secgroup-add-rule default tcp 22 22 0.0.0.0/0



เมื่อมีของครบแล้วก็เริ่ม start vm กันได้ โดยใช้คำสั่ง



nova image-list



ดูว่า precise image id เป็นเท่าไร จากนั้นสั่ง boot ด้วยคำสั่ง



nova boot --image <image-id> --key-name mykey --flavor m1.small --security-groups default myprecise



ใช้คำสั่ง nova list ก็จะพบว่า vm ชื่อ myprecise กำลังเริ่ม start แล้ว เมื่อเข้าสู่สถานะ running ก็สามารถ ssh เข้าไปได้ อ้อ ก่อนอื่นกำหนด Floating IP ให้ VM เสียก่อน โดยใช้คำสั่ง



nova add-floating-ip myprecise 192.168.0.129



ใช้คำสั่ง nova list ดูว่า floating ip ไปเกาะกับ vm ของเราหรือยัง ถ้าเกาะเรียบร้อยแล้วก็สามารถ ssh เข้าไปได้โดยใช้คำสั่ง



ssh -i mykey.pem ubuntu@192.168.0.129



เอาแค่นี้ก่อน คุณสามารถใช้งาน OpenStack จาก Dashboard ได้นะครับ



สำหรับใครที่อยากใช้ OpenStack แบบจริงๆ จังๆ หรือต้องการทำ Private Cloud ใช้ในองค์กร แนะนำให้ไปเรียนกับ ClusterKit หรือ อ.อาณัติ หรือ ซื้อบริการ RedHat OpenStack, Ubuntu OpenStack ได้จากตัวแทนจำหน่ายใกล้บ้านท่านครับ :)


วันอาทิตย์ที่ 6 ตุลาคม พ.ศ. 2556

Hot Deploy PHP App บน OpenShift

หลายคนอาจเจอปัญหาอาการ 503 Service Unavailable บน OpenShift หลังจาก Deploy PHP App ทุกครั้งที่มีการ Deploy app ผ่าน git push OpenShift จะเอาไฟล์ที่ push ไปวางแทนที่ revision เดิมและเริ่มกระบวนการ Deploy และจะทะยอย Stop และ Start Service ต่างๆ ใน Cartridge ที่เรามี เช่น Web Server, MySQL เป็นต้น เนื่องจาก OpenShift จะต้องรอ Service ในแต่ Cartridge เริ่มทำงานก่อน ทำให้เราเจอหน้า 503 Service Unavailable ในการ Deploy PHP App ไม่จำเป็นต้อง Stop และ Start Service ใน Cartridge ต่างๆ ก็ได้เพราะภาษา PHP เป็นภาษา Script เราสามารถแก้ปัญหานี้ได้ง่ายๆ โดยใช้วิธีที่เรียกว่า Hot Deploy



การทำ Hot Deploy จะเป็นการสั่งให้ OpenShift ไม่ต้องสนใจเรื่อง Start/Stop Cartridge มีวิธีการง่ายๆ คือ สร้างไฟล์ hot_deploy ใน markers



$ touch YourAppName/.openshift/markers/hot_deploy



$ git commit -am "Adding hot deploy marker"



$ git push


วันพุธที่ 2 ตุลาคม พ.ศ. 2556

OpenStack Cheat Sheet

ผมได้กลับมาใช้ OpenStack อีกรอบ หลังจากที่เคยใช้รุ่น Essex เป็นรุ่นที่ Horizon เพิ่งเสร็จใหม่ๆ ก่อนหน้านี้ก็ใช้ command line มาตลอดจำได้เพราะใช้บ่อย ผ่านไปเกือบ 2 ปีกลับมาใช้รุ่น Grizzly ที่เคยใช้คำสั่งใน command line ได้ก็ลืมหมด ก็เลยคิดว่าทำ Cheat Sheet ไว้สักหน่อยน่าจะดี ผมก็เลยถือโอกาส แชร์เอาไว้ให้ได้ดาวน์โหลดไปแปะข้างฝาละกันนะครับ สำหรับท่านที่สนใจร่วมทำ Cheat Sheet ก็ขอ Share เอกสารผ่าน Google Drive ได้ครับ