คลังเก็บป้ายกำกับ: ผลิตภัณฑ์ Cloud

รู้จัก OpenStack

คุณรู้จัก OpenStack มากน้อยแค่ไหน แล้วรู้สึกไหมว่า ในยุค 4.0 นี้ เราเห็นคำว่า OpenStack ผ่านตามากมายจากหลายที่ นั่นเพราะเป็นเทคโนโลยี ที่กำลังมาแรงในขณะนี้ สำหรับใครที่ยังไม่มีความรู้ในเรื่องของ OpenStack เลยว่ามันคืออะไร วันนี้เราจะพาไปทำความรู้จัก เพื่อเป็นประโยชน์ในธุรกิจของตัวคุณเอง

ปัจจุบัน OpenStack ได้รับความนิยมมากขึ้นเรื่อยๆ อย่างกว้างขวางจากกว่า 250 องค์กรใน 130 ประเทศทั่วโลก ในฐานะ Open Source สำหรับ Private Cloud แต่อะไรทำให้ OpenStack มีความโดดเด่นเกินหน้าเกินตาคู่แข่งรายอื่นอย่าง Amazon EC2 กันล่ะ? บทความนี้จะพาคุณไปทำความรู้จักกับ OpenStack และเปิดเผยองค์ประกอบเด่นๆ ของมันกัน

OpenStack ในฐานะแพลตฟอร์มแบบ Open source

NASA และ Rackspace เป็นผู้เริ่มต้นพัฒนา OpenStack ก่อนจะเปิดเป็น Open source ให้เหล่าโปรแกรมเมอร์สามารถนำไปพัฒนาต่อได้ตามต้องการ โดยตรวจสอบ Source code ได้ทาง GitHub ทั้งนี้พวกโปรแกรมเมอร์ผู้พัฒนาระบบ OpenStack เองก็ทำงานให้กับองค์กรใหญ่ที่นำ OpenStack ไปใช้ด้วยเหมือนกัน เช่น Rackspace และ PayPal เป็นต้น

นอกจากนี้ ยังมีโปรเจ็คเกี่ยวกับ OpenStack อีกหลายโครงการ ซึ่งส่วนมากก็เป็นโปรเจ็คเฉพาะด้าน เช่น การติดตั้งแบบ bare-metal ผู้ที่สนใจจะเรียนรู้เกี่ยวกับการใช้งาน OpenStack หรือจะทดลองใช้ ทาง OpenStack ก็มี Development Version ให้ลองเล่นกันได้โดยนำไปติดตั้งบน Ubuntu Linux หรือจะใช้ OpenStack Autopilot wizard ในการสั่ง Deploy ก็ได้ ส่วน Source code ก็ไม่จำเป็น เพราะ OpenStack สามารถหาได้จาก Python package โดยใช้ Tools ชื่อ apt-get ในการติดตั้ง

รู้จัก Ecosystem ของ OpenStack

สิ่งที่เหมือนกันของ OpenStack กับ Amazon EC2 คือ ผู้ใช้สามารถ Provision VM จาก dashboard หรือ API ได้ แต่ข้อแตกต่างหลักๆ นอกจากเรื่องที่ OpenStack เป็นบริการฟรี คือ Amazon EC2 เป็นบริการ Public Cloud เท่านั้น ส่วน OpenStack ผู้ใช้สามารถเลือกได้ว่าจะใช้เป็นบริการ Private Cloud ของ OpenStack เอง หรือจะสมัครไปใช้ Public Cloud จากตัวแทนผู้ให้บริการของ OpenStack ก็ได้

OpenStack ในความจริงไม่ใช่ Hypervisor แต่ OpenStack เป็นโครงสร้างที่ถูกสร้างขึ้นมาเพื่อทำงานร่วมกับ Hypervisor ที่แตกต่างกันหลายๆ เครื่อง โดย User สามารถเลือกได้ว่าจะ Deploy Hypervisor บนตัวเครื่อง (machine) หรือบน OS ที่ built-in มากับ Hypervisor เช่น Linux KVM เป็นต้น นอกจากนี้ OpenStack ยังทำให้ User สามารถนำ VM ไปติดตั้งบน Bare-Metal Server (เซิร์ฟเวอร์สำหรับผู้ใช้คนเดียว) ได้อีกด้วย

Component หลักของ OpenStack

  • Horizon (Dashboard) : เป็น User Interface (UI) แบบ Web-based
  • Nova (Compute) : ประกอบด้วย Controller และ Compute Nodes ที่ดึง VM image มาจาก OpenStack image service และสร้าง VM บนเซิร์ฟเวอร์ที่เราต้องการ โดยมี APIs ที่แตกต่างกันตามแต่ Platforms เช่น XenAPI, VMwareAPI, libvirt for Linux KVM (QEMU), Amazon EC2, และ Microsoft Hyper-V เป็นต้น
  • Neutron (Networking) : สำหรับสร้าง Virtual Network และ Network Interface อีกทั้งยังทำหน้าที่เชื่อมต่อกับ Networking Products จากตัวแทนผู้ให้บริการอื่นๆ
  • Swift (Object storage) : มีหลักการทำงานเหมือน Amazon S3 โดยจะบันทึกข้อมูลแบบเดี่ยว อย่าง Image เก็บไว้โดยใช้ระบบ REST Web service
  • Cinder (Block storage) : คล้ายกับ Swift โดยจะเก็บ disk file ต่างๆ เช่น Log และเปิดให้เราสามารถเพิ่มเติมข้อมูลเข้าไปได้ ในขณะที่ Swift จะให้เก็บแทนที่ของเดิมเท่านั้น
  • Keystone (identity storage) : เป็นตัวคำสั่งที่เปิดให้ User และ Process สามารถเข้าถึง Tools ต่างๆ ของ OpenStack ได้โดยสร้าง Autentication Token ขึ้นมา
  • Glance (Image service) : เป็นตัวหลักของ OpenStack ในฐานะ Cloud Operating System คือ การสร้าง VM image ขึ้นมา โดย Glance คือแคตตาล็อครวม VM ที่เราอัพโหลดเอาไว้และเปิดให้ใช้กันภายในองค์กร
  • Trove (database server) : เป็นตัวสนับสนุนการทำงานของ Database ที่ต่างกัน

นอกจากนี้ Component พวกนี้ของ OpenStack ยังใช้ MySQL database ที่หลากหลาย สามารถทำงานร่วมกับ Python รวมทั้งใช้ Command line interface ของ Python ได้อีกด้วย ตัวอย่างเช่น

คำสั่งดาวน์โหลด Keystone จากเซิร์ฟเวอร์ Linux ที่เก็บข้อมูลเอาไว้แบบ Public

apt-get install keystone python-keystoneclient

คำสั่งสร้าง User บน Keystone

keystone user-create –name Sam –description “Sam”

คำสั่งลิสต์ชื่อ VM images ด้วย Nova

nova image-list

คำสั่งเปิด Python Shell ก็ทำได้ง่ายๆ แค่พิมพ์ Python แล้วตามด้วย

from keystoneclient.v2_0 import client

หรือถ้าใครไม่คล่อง Python CLI (Command Line Interface) จะสลับไปใช้ Dashboard แบบคลิกก็ได้เหมือนกัน

นิยามใหม่ OpenStack Cloud

ถ้าพูดถึง Public Cloud เราก็คงนึกถึง Amazon Web Service (AWS) เพราะเป็นอันดับต้นๆ ของตลาด แต่ถ้าพูดถึง OpenStack เราก็จะนึกถึง Private Cloud ที่รองรับการทำงาน Private Cloud ได้ดีที่สุดในเวลานี้

โดยอาจกล่าวได้เลยว่าไม่มี Cloud Technology Platform ใดๆ ที่จะได้รับการสนับสนุนได้มากเท่า OpenStack ซึ่ง OpenStack นั้นเกิดมาจากการร่วมมือกันของ NASA และ Rackspace ในปี 2010 ก่อนที่จะมีการเติบโตขึ้นในฐานะ Open source ซึ่งมีผู้ให้การสนับสนุนมากมาย ทั้ง HP, IBM, Intel, Cisco, Dell, EMC, VMware, Symantec, Huawei, และ Yahoo

ใครใช้ OpenStack บ้าง?

          ผู้ให้การสนับสนุนจำนวนมากเหล่านี้ เป็นเพียงแค่ครึ่งหนึ่งของจำนวนผู้ใช้งาน OpenStack เท่านั้น ซึ่งภายในงาน OpenStack Summit ที่ Vancouver ที่ผ่านมา ผู้ค้าระดับโลกอย่าง Walmart ได้ออกมาพูดถึงการใช้งาน OpenStack กับระบบการจัดการ Ecommerce ว่าสามารถสร้างความสำเร็จมหาศาลได้อย่างไร นอกจากนี้ OpenStack ยังเป็นเบื้องหลังความสำเร็จของทั้ง eBay, Paypal, Comcast, Time Warner Cable และ Bestbuy ส่วนทาง NASA เองก็ถือว่าเป็นอีกหนึ่งสาวกผู้ที่กำลังใช้ OpenStack เป็นรากฐานพัฒนาเทคโนโลยีพามนุษย์ไปสู่ดาวอังคารนั่นเอง

เมื่อเราพอจะมองเห็นภาพกว้างๆ แล้วว่า OpenStack ถูกใช้โดยใครและใช้ทำอะไรบ้างแล้วนั้น ต่อมาก็จะต้องมาทำความเข้าใจกันหน่อยว่าแท้จริงแล้ว OpenStack ไม่ใช่ Homogeneous Cloud Product หรือผลิตภัณฑ์ Cloud ที่อยู่ภายใต้ผู้ให้บริการรายเดียวแบบเสร็จสรรพ ตั้งแต่ Hypervisor ยัน Management Layer (* อ้างอิงจาก http://www.bmc.com/blogs/what-price-homogeneity/) และ OpenStack ก็ไม่ใช่ผลิตภัณฑ์ Virtualization Hypervisor แต่อย่างใด

OpenStack นั้นเป็นเพียงแพลตฟอร์มผสานการทำงาน หรือ Integration Platform เท่านั้น โดย OpenStack จะเป็น Framework ที่มาพร้อมกับ API และ Tool สำหรับ Cloud Service พวก Product และ Technology ต่างๆ จะถูก Integrate และ Deploy ภายใน Framework นี้ เพื่อสร้าง OpenStack Cloud ขึ้นมา

ผู้ให้บริการบิดเบือนความหมายของ Cloud

ความหมายที่แท้จริงของ Cloud ได้ถูกบิดเบือนไปโดยเหล่าผู้ให้บริการ เพื่อให้เข้ากับจุดประสงค์การขายสินค้าของตน และสำหรับ Cloud ของ OpenStack นั้น จะขอยึดเอาตามคำจำกัดความจาก Amandeep Singh Juneja ผู้เป็น Senior Director ด้าน Cloud Engineering ที่ Walmart Labs คือ “Cloud นำมาซึ่งความยืนหยุ่นและการทำงานอย่างต่อเนื่องของระบบ Infrastructure”

ทั้งนี้ทั้งนั้นทาง OpenStack เองก็ได้นำเสนอ Framework ที่จะทำให้ ระบบ Infrastructure ทำงานได้อย่างต่อเนื่องและยืดหยุ่นเช่นเดียวกัน

นิยามใหม่ของ OpenStack Cloud

แรกเริ่มเดิมที OpenStack มีอยู่ 2 โปรเจ็กต์ได้แก่ Nova Compute Project และ Swift Storage ซึ่ง Nova จะทำให้ Cloud Operator สามารถเลือกการ Deploy ได้จาก Hypervisor และ Virtualization Technology หลายๆ แบบ ไม่ว่าจะ ESX ของ VMware, Open Source อย่าง KVM และ Xen Hypervisor หรือกระทั้ง Hyper-V ของ Microsoft ก็สามารถนำมา Deploy ใน Nova ได้เช่นกัน

หลังจากนั้น OpenStack ก็ได้ขยาย Project โดยการเพิ่มโปรเจ็กต์ใหม่ๆ เข้าไปภายใต้สิ่งที่รู้จักกันในชื่อ OpenStack Integrated Release สำหรับ OpenStack Kilo ที่ปล่อยออกมาไม่นานนี้ มีการผสานรวมหลายๆ โปรเจ็กต์เข้าด้วยกัน ซึ่งได้แก่ Nova compute, Swift object storage, Cinder block storage, Keystone identity, Horizon dashboard, Glance image, Neutron networking, Trove database, Sahara Big Data, Heat orchestration, Ceilometer monitoring และ Ironic Bare Metal projects

ความท้าทายของ Integrated Release ก็คือ ในการใช้งาน OpenStack Cloud เราไม่ได้ใช้สิ่งที่อยู่ใน Integrated Release ครบทั้งหมด เริ่มด้วย Liberty Release ที่จะทำให้เกิดนิยามใหม่ขึ้นสำหรับ OpenStack แล้วไหนจะ DefCore Project ส่วนสำคัญที่ต้องเข้าไปอยู่ใน Cloud เพื่อให้สามารถเรียกได้ว่าเป็น OpenStack Cloud นอกจากนี้ยังมี Big Tent ซึ่งเต็มไปด้วยสารพัดโปรเจ็กต์ให้ผู้ใช้หรือผู้ให้บริการ Cloud ได้เลือกสรร

ทั้งนี้ Big Tent ได้เปลี่ยนคำนิยามของ OpenStack Cloud ไปเสียหมด ทั้งเรื่องที่ OpenStack Cloud คืออะไร และสามารถทำอะไรได้บ้าง นั่นหมายความว่า Liberty ที่ปล่อยออกมาก็จะสร้างความแตกต่างมหาศาลให้กับ OpenStack เช่นเดียวกัน อย่างไรก็ตาม DefCore ยังคงเป็นส่วนที่ขาดไม่ได้ ทั้ง Keystone Identity service และ API เพราะ Keystone คือตัวเปิดการทำงานของ Federated Identity หรือ การพิสูจน์ตัวตนแบบรวมศูนย์ ใน OpenStack Cloud ด้วยไอเดียที่จะให้ OpenStack Foundation กลายมาเป็น OpenStack Powered Planet คือ ให้เกิดศูนย์กลางการใช้งาน OpenStack ทั่วโลกนั่นเอง