OpenShiftเปิดตัวอย่างเป็นทางการแล้ว แต่ก็ยังไม่ได้เขียนบทความอะไรที่เป็นจริงจังมากนัก เอาเป็นว่าครั้งนี้มามัดรวมและสรุปการใช้งาน OpenShift Online กัน หลายท่านอาจสงสัยว่าทำไมถึงมีคำว่า Online ต่อท้าย ที่มีคำว่า Online ต่อท้ายก็เพราะว่า RedHat เปลี่ยนแนวทางของ OpenShift ครั้งใหม่ โดยแบ่งออกเป็น
- OpenShift Origin เป็นโครงการโอเพนซอร์สสามารถเอาซอร์สโค้ดไปพัฒนาต่อได้ หรือนำเอาไปใช้งานได้
- OpenShift Online เป็น OpenShift ที่ให้บริการที่อยู่ในรูปแบบ Public Cloud
- OpenShift Enterprise เป็นบริการเพิ่มจาก RedHat Enterprise สำหรับองค์กรที่ต้องการติดตั้งและใช้งาน OpenShift ในองค์กร
ครั้งนี้เราจะมาพูดถึง OpenShift Online กันครับ เนื่องจากจับต้องได้ง่ายกว่า สำหรับ OpenShift Online ท่านที่สนใจสามารถสมัครใช้บริการได้ฟรีไม่เสียค่าใช้จ่าย เริ่มแรก OpenShift จะให้ใช้งานฟรีอยู่ที่ 3 Gears ถ้าต้องการใช้งานเพิ่มหรือต้องการ Scale มากกว่า 3 Gears ต้องสมัคร Silver Plan คือจ่ายค่าส่วนกลางรายเดือน $20 และจ่ายค่าเช่าใช้แบบ Pay-per-Use ต่อ Gear อีกต่างหาก รายละเอียดในเรื่องของค่าใช้จ่ายดูได้ที่หน้า Pricing
มาเริ่มกันเลยได้ว่า สำหรับท่านที่สมัครสมาชิกไว้แล้วสามารถเลือกการใช้งาน OpenShift Online ได้ 3 ทาง คือ
- ผ่านหน้าเว็บ
- ผ่าน Command line
- ผ่าน IDE ที่รองรับ เช่น JBOSS IDE เป็นต้น
ขอแนะนำการใช้งานผ่าน Command line ก่อนก็แล้วกัน เพราะการใช้งานผ่านหน้าเว็บจะง่ายกว่า :P สำหรับการใช้งานผ่าน Command line สามารถใช้ได้กับทุกระบบปฏิบัติการ ขอให้มี 1. Ruby 1.8.7 ขึ้นไป 2. Git
หลังจากนั้นให้ติดตั้ง RedHat Cloud Client โดยใช้คำสั่ง
gem install rhc
เมื่อติดตั้ง RedHat Cloud Client เรียบร้อยแล้ว ตัวโปรแกรมจะให้เรา Login เข้าสู่ระบบของ OpenShift จากนั้นก็จะลงทะเบียน ssh public key เท่านี้ก็เป็นอันเสร็จเรียบร้อย จากนั้นก็มาสร้าง Application บน Cloud ได้เลย OpenShift ใช้คำว่า Programming Cartridge แทนภาษาที่คุณใช้ เช่น ถ้าคุณเขียนภาษา PHP คุณสามารถเลือก Cartridge ได้หลายแบบ เช่น PHP, ZendServer, CakePHP, cakeStrap, CodeIgniter เป็นต้น แต่ OpenShift จะมี Cartridge ที่เป็น Instante App ให้ด้วย เช่น Drupal, Wordpress, Dukuwiki เป็นต้น สำหรับการเลือก Cartridge ขึ้นอยู่กับว่าเราต้องการ Cartridge แบบใด บาง Cartridge ไม่สามารถ Scale ได้อัตโนมัติ บาง Cartridge สามารถ Scale ได้ต้องอ่านรายละเอียดของ Cartridge นั้นๆ ให้ดี มาสร้าง Application กันเลย ใช้คำสั่ง
rhc app create myfirstapp php-5.3
คำสั่งข้างต้นจะสร้าง App ที่ชื่อว่า myfirstapp ที่ใช้ภาษา PHP รุ่น 5.3 เป็นภาษาที่ใช้ในการพัฒนา หากต้องการให้ App สามารถ Scale ได้ ให้ใช้คำสั่ง
rhc app create -s myfirstapp php-5.3
หากต้องการฐานข้อมูลก็ให้เพิ่ม Cartridge เข้าไปเพิ่ม เช่น MySQL เป็นต้น
rhc cartridge add -a myfirstapp -c mysql-5.1
สำหรับการ Scale เราสามารถตั้งค่าจำนวน instance ต่ำสุดและสูงสุดที่จะเพิ่มได้ ยกตัวอย่างเช่น มีโควต้าทั้งหมด 16 Gears ใช้ไปแล้ว 3 Gears (PHP, MySQL, HA Proxy) ต้องการ Scale มากที่สุด 6 น้อยที่สุด 3 ใช้คำสั่งดังนี้
rhc cartridge scale php-5.3 -a myfirstapp --min 3 --max 6
เขียนมายาว ทั้งหมดนี้สามารถตั้งค่าได้จาก Web Console ได้เช่นเดียวกัน สำหรับเอา Application ขึ้น/ลง จะใช้ Git ทุกๆ App จะมี Git repository เป็นของตัวเอง และการใช้ Git คุณก็สามารถ merge code จาก repository อื่นๆ ได้ ไม่ว่าจะเป็น repository ของคุณเอง หรือจาก GitHub ก็ได้