Public vs Private

ข้อดีหลักๆ ของ Cloud Platform คือ การเสริมประสิทธิภาพการ Compute, การจัดการระบบ Network, และการจัดการพื้นที่จัดเก็บ (Storage) ได้อย่างรวดเร็วเมื่อต้องการเรียกใช้ และยังสามารถยกเลิกการใช้ Resource เมื่อไม่ต้องการได้เร็วพอๆ กันอีกด้วย กลุ่มผู้ให้บริการ Public Cloud ตอนนี้ Amazon กำลังเป็นเจ้าตลาดนำ Google, Microsoft, และผู้ให้บริการรายอื่นๆ อยู่ ส่วนทาง Private Cloud ก็มี OpenStack เข้ามาเป็นอีกทางเลือกหนึ่งนอกเหนือจาก Microsoft และ VMware

 

นิยามของ OpenStack และ Amazon Web Service (AWS) EC2

OpenStack เป็นซอฟต์แวร์ควบคุมชุดคำสั่งคอมพิวเตอร์, Networking และพื้นที่จัดเก็บขนาดใหญ่ที่อยู่ใน Data Center โดยทำการควบคุมผ่านทาง Dashboard หรือ OpenStack API ซึ่ง OpenStack ได้รับความนิยมในหมู่ผู้ประกอบการและในกลุ่มเทคโนโลยี Open Source ด้วยกัน ทำให้ OpenStack กลายเป็นซอฟต์แวร์ในอุดมคติที่เหมาะกับ Infrastructure แบบผสมมากที่สุด

 

Amazon Elastic Compute Cloud (Amazon EC2) เป็น Web Service ที่ให้บริการปรับแต่งขอบเขตความสามารถของระบบ Compute ใน Cloud ถูกออกแบบมาเพื่อให้ Developer ทำ Web-scale ของ Cloud Computing ได้ง่ายขึ้น

 

เทียบคุณสมบัติทางเทคนิคระหว่าง OpenStack และ AWS EC2

Compute

การรัน Application จำเป็นต้องมี Server ซึ่งมาพร้อมกับ CPU, หน่วยความจำ (Memory), และพื้นที่จัดเก็บ (Storage) โดยอาจจะมีหรือไม่มี Operating System กับ Application ที่ติดตั้งมาอยู่ก่อนแล้วก็ได้

 

OpenStack AWS
Definition

Compute ก็คือ Virtual Machine หรือ Server

Instance Instance/VM
ขนาด

ขนาดของ Memory, CPU และพื้นที่จัดเก็บชั่วคราว สำหรับ Instance หรือ VM

Flavors: หลากหลายตามต้องการ : Micro, Small, Medium, Large ฯลฯ หลากหลายตามต้องการ : Micro, Small, Medium, Large ฯลฯ
ระบบปฏิบัติการที่มีให้

Cloud มี OS แบบไหนให้ End-user บ้าง?

ระบบ OS ใดๆ ก็ตามที่ Host อยู่บน OpenStack Cloud ซึ่งอาจจะเป็น Red Hat certifies, Microsoft Windows, RHEL, SUSE เป็นต้น AMIs (Amazon Machine Image) ที่มาจาก AWS marketplace
Template/image

การตั้งค่าพื้นฐานของ Virtual Machine ที่สามารถนำไปใช้สร้าง VM ตัวอี่นๆ

Catalog ของแต่ละ VM Image สามารถสร้างได้จาก VM ที่ User เป็นคนเลือก

Glance

Administrator ของ OpenStack จะ Upload Image และสร้าง Catalog สำหรับ User

User สามารถอัพโหลด Image ของตนได้

(AMI) Amazon Machine Image

AWS จะมี Online Marketplace ของ Image ที่ตั้งค่ามาแล้ว

User สามารถอัพโหลด Image ของตนได้

 

Networking

การทำ Network เพื่อเชื่อม Virtual Server เข้าหากัน จะต้องมีการควบคุมการเข้าถึงว่าใครสามารถเข้าถึง Server ได้บ้าง ต้องมีการป้องกัน หรือมี Firewall ให้กับ Server โดยเฉพาะเมื่ออยู่ใน Internet

 

OpenStack AWS
Definition

Networking จัดการการเชื่อมต่อระหว่าง User กับ VM รวมทั้งเชื่อมต่อระหว่าง VM ด้วยกันและเชื่อมต่อกับ Network ภายนอก (Internet)

Neutron Networking
Private IP Address

เป็น IP เฉพาะเครื่อง และสำหรับใช้งานภายในเท่านั้น ไม่สามารถใช้เชื่อมต่ออินเตอร์เน็ตได้

ทุก Virtual Instance จะได้รับ IP โดยอัตโนมัติ โดยมักจะใช้ DHCP AWS จะจัด IP ให้อัตโนมัติ โดยใช้ DHCP
Public IP Address Floating IP คือ Public IP Address ซึ่งสามารถนำไปเพิ่มให้กับ Virtual Instance ทีกำลังทำงานอยู่ได้ AWS Public IP จะถูก Map ไปยัง Primary Private IP Address
Networking Service สามารถสร้าง Network และ Netwoking Function ได้ เช่น L3 Forwarding, NAT, edge firewall และ IPsec VPN Virtual Router หรือ Switch จะสามารถเสริมเข้ามาได้ ในกรณีที่ใช้งาน AWS VPC (Virtual Public Cloud)
Load Balance VM traffic OpenStack LBaaS (Load Balancing as a Service) จะ แจกจ่าย Traffic จาก 1 Network ไปยัง Application Service อย่างเท่าเทียม ELB (Elastic Load Balancing) จะแจกจ่าย Traffic ของ Application ที่เข้ามาไปทั่ว Amazon EC2 instance โดยอัตโนมัติ
DNS

จัดการ DNS ทั้งหมดสำหรับ Virtual Server และ Web Application

DNS Project (Designate) ของ OpenStack จะอยู่ใน “Incubation” และไม่นับเป็นส่วนหลักของ OpenStack Route 53 คือ DNS Service ของ AWS
SRIOV

วิธีที่อุปกรณ์ Virtualization เพิ่มประสิทธิภาพ I/O และลด CPU Utilization เมื่อเทียบกับการ Implementation แบบเก่า

SR-IOV แต่ละพอร์ตจะประสานกับ Virtual Function (VF) ซึ่งพอร์ตของ SR-IOV อาจมาจาก Virtual Ethernet Bridging ที่เป็น Hardware-based หรืออาจจะถูกเพิ่มไปยัง Upstream Physical Switch (IEEE 802.1br) AWS รองรับการเพิ่มประสิทธิภาพของ Network ด้วย SR-IOV โดยจะเพิ่มค่า Packet per Second (PPS), ลด Latency ของ Instance ภายใน, และลด Network Jitter

 

Monitoring

การ Mornitoring ทำให้เห็นรูปแบบและการใช้งานทรัพยากรทั้งในส่วนของ Physical และ Virtual ซึ่งอาจต้องตรวจสอบการใช้งานเป็นรายบุคคล และเลือกเก็บค่าบริการตามการใช้งาน

 

Topic OpenStack AWS
Definition

Monitoring จะแสดงปริมาณการใช้งาน Cloud

มี Ceilometer วัดการทำงาน มี Cloudwatch วัดการทำงาน
การวัดปริมาณการใช้งานแบบเหมารวมทั้งระบบ (System Wide) รวบรวมปริมาณการใช้งานทรัพยากรแบบ Physical และ Virtual ใน Cloud Monitor บริการในส่วนของ AWS Cloud Resource และ Application บน AWS
การส่งบิลเก็บเงินผู้ใช้ตามปริมาณการใช้งาน กักเก็บ Data เพื่อวิเคราะห์ และกู้คืนในภายหลัง โดยจะ Trigger การทำงานเมื่อใช้งานถึงเกณฑ์ที่ตั้งเอาไว้ มีการเก็บข้อมูลและติดตาม Metric, เก็บข้อมูลและ Monitor Log files, และตั้งการแจ้งเตือน

 

Security

จำเป็นต้องมีการเข้ารหัส Public Key สำหรับ SSH และมี Password Decryption นอกจากนี้ยังต้องมี Firewall สำหรับ Virtual Machine เพื่อจำกัดการเข้า-ออก (Ingress-Egress) ของข้อมูลอีกด้วย

 

OpenStack AWS
Definition

ควบคุมการเข้าถึง VM

Keypairs, Security Groups Keypairs, Security Groups
Key pairs

ต้องสร้าง Key pair ในการ Log in เข้าใช้ VM หรือ Instance เพื่อจัดการและควบคุมการเข้าถึง

Linux : ใช้ Key pair สำหรับ SSH

Windows : ใช้ Key pair สำหรับถอดรหัส Administrator

เมื่อเปิดการทำงานของ VM จะสามารถใส่ Key Pair ที่มี SSH เพื่อให้เข้าถึง Instance ได้ เมื่อต้องการ Log in เข้าใช้งาน Instance ต้องระบุชื่อ Key Pair ในตอนที่เปิดการใช้งาน Instance และต้องใส่ Private Key เมื่อจะเชื่อมต่อกับ Instance นั้นๆ
Security Group

Security Group เป็นชื่อของของ Network Access Rules ที่จำกัด Traffic การเข้าถึง Instance

เมื่อเปิดการทำงาน Instance แล้ว จะสามารถตั้ง Security Group สำหรับ Instance ได้ตั้งแต่ 1 กลุ่มขึ้นไป

รองรับ รองรับ

 

Identity

จำเป็นต้องมีการควบคุมสิทธิ์ว่าใครสามารถเข้าถึง Cloud ได้บ้าง ซึ่งอาจจะต้องการการยืนยันตัวหลายๆ แบบเพื่อการรักษาความปลอดภัยที่ดีขึ้น

 

Topic OpenStack AWS
Definition

การยืนยันตัวและวิธีการยืนยันตัวเพื่อควบคุมการเข้าถึง Virtual Server, พื้นจัดเก็บข้อมูล, และ Resource อื่นๆ ใน Cloud

ทำงานร่วมกับ External Provider เช่น LDAP หรือ AD

Keystone มี I AM เป็นระบบยืนยันตัวและจัดการการเข้าถึง

 

Storage

Block storage

  • จัดการ Virtual Drive/Volume สำหรับ Virtual Server เพื่อเพิ่มความจุของพื้นที่จัดเก็บข้อมูล นอกเหนือจาก Boot Volume
  • Snapshot และ Backup ของ Virtual Server

 

Object storage

  • เก็บข้อมูล เช่น File, Media, และ Image ต่างๆ
OpenStack AWS
Object Storage

เก็บไฟล์ เช่น Media, Document, Image และอื่นๆ

Swift S3 – Simple Storage Service
Block Storage

สร้าง Virtual Disk Drives (Volumes)

Cinder EBS – Elastic Block Storage

 

Database

ผู้ใช้งาน Cloud สามารถเข้าใช้ Database Service ได้โดยไม่ต้องติดตั้งและตั้งค่า Database ของตัวเอง

 

OpenStack AWS
Definition Trove RDS
Relational Database My SQL, PostgresSQL ผู้ใช้จะได้ Instance ของ MySQL หรือ Oracle 11g
Non Relational Database Cassandra, Couchbase, MongoDB ผู้ใช้ Amazon SimpleDB จะเก็บ Data Pairs ใน Simple Database ซึ่งเหมาะกับ Application ที่มีค่า Read สูง

 

Orchestration

สร้าง Copy ซ้ำๆ ของ Application ได้

 

OpenStack AWS
Definition

Developer สามารถบันทึก Requirement ของ Cloud Application ไว้ในรูปแบบของ File หรือ Template ซึ่งระบุ Resource ที่จำเป็นต่อการทำงานของ Application เช่น VM, Network, Storage, Security, Templates, Images ฯลฯ

Heat Cloud Formation

 

Bigdata / Parallel Processing

ระบบ Cloud จะให้บริการ Infrastructure ที่สามารถประมวลผลข้อมูลขนาดใหญ่ได้

 

OpenStack AWS
Definition

สามารถทำ Parallel Processing ของข้อมูลขนาดใหญ่ เช่น Hadoop ได้

Sahara EMR – (Elastic Map Reduce)

 

Messaging

 

OpenStack AWS
Definition

Cloud สามารถเสริมและย้ายข้อมูลระหว่าง Application กับ VM / Instance บน Hosted Queue ได้

Zaqar (ยังไม่เปิดตัว) SQS – (Simple Queue Service)

 

Graphic User Interface (GUI) dashboard

สามารถจัดการดูแล Cloud ในฐานะ Administrator หรือจะใช้งานปรับแต่งด้วยตัวเองในฐานะ User ก็ทำได้ตามต้องการผ่าน Web Browser

 

OpenStack AWS
Definition

ใช้ Browser เพื่อจัดการในส่วนของระบบ Compute, Networking, และ Storage ด้วยตัวเองได้

Horizon Console

 

Command Line Interface (CLI)

สามารถทำ Automate และ Script ของระบบการจัดการ รวมทั้งใช้งาน   ผ่าน Command line ได้

OpenStack AWS
Definition

Command Line Interface ทำให้ Aministrator สามารถใช้ Command Line จัดหาและยกเลิกการใช้ทรัพยากร Cloud เช่น  Virtual Machine, Storage, และ Networking

รองรับ รองรับ

 

Business level component: เทียบคุณสมบัติเชิงธุรกิจ

 

รองรับผู้ใช้หลายคน

แบ่งกลุ่มผู้ใช้ตาม Business Unit เป็นองค์กรหรือหน่วยงานต่างๆ เพื่อให้สามารถตั้งค่าการใช้งานทรัพยากรได้ตอบโจทย์ความต้องการของแต่ละกลุ่ม

Topic OpenStack AWS
Definition

ผู้เช่าใช้ คือ กลุ่มของผู้ใช้ที่แชร์การเข้าถึง Infrastructure (Cloud Platform) ร่วมกับผู้ใช้ท่านอื่นๆ ซึ่งผู้ใช้พวกนี้จะถูกแบ่งออกจากกันชัดเจน

Project / ผู้เช่าใช้ (Tenant)

สามารถกำหนดโควต้าการใช้งานทรัพยากรสำหรับแต่ละ Project และผู้เช่าใช้ได้

แบ่งผู้ใช้ออกจากกันด้วย AWS VPC (Virtual Private Cloud)

 

SLA (Service Legal Agreement)

SLA จำเป็นต่อการรัน Application สำคัญระดับ Mission Critical ให้มี  Downtime ต่ำที่สุด

 

Topic OpenStack AWS
Definition

SLA เป็นการรับประกันความพร้อมใช้งานของระบบ Cloud

SLA ขึ้นอยู่กับการตกลงกันระหว่างผู้ให้บริการ OpenStack Private Cloud (รวมไปถึงฝ่าย IT ภายใน และผู้ให้บริการการจัดการ) กับผู้ใช้บริการ มี AWS SLA ที่เป็นมาตรฐาน สามารถศึกษาได้จากหน้าเว็บไซต์

 

Ownership และ Control of data

ผู้ใช้บริการควรทราบว่าใครสามารถเข้าถึงฐานข้อมูลในระบบ Cloud ได้บ้าง ข้อบังคับทางกฎหมายสำหรับกลุ่มอุตสาหกรรมจำพวกการดูแลสุขภาพ, บริการด้านการเงิน, หน่วยงานราชการ ฯลฯ ระบุให้มีการกำหนดสิทธิ์ผู้ที่สามารถเข้าถึง Application และฐานข้อมูลได้

 

Topic OpenStack AWS
Definition

เมื่อติดตั้ง Application และ Data ไว้ใน Cloud แล้ว ใครจะเป็นเจ้าของ Data และมีใครสามารถเข้าถึงมันได้บ้าง

ผู้ใช้ของ OpenStack Cloud เท่านั้น ผู้ใช้จะเป็นเจ้าของข้อมูลนั้นๆ โดยสามารถศึกษาสิทธิ์ได้จาก AWS Agreement (Section 8)

 

Ecosystem

การใช้งาน Private Cloud หรือ Public Cloud อาจต้องมีที่ปรึกษาหรือสมาคมผู้ใช้งาน ซึ่งถ้าเลือกใช้ Private OpenStack Cloud ก็จะมีกลุ่มสมาคมของผู้จัดจำหน่าย Software และ Hardware ที่ได้รับการรับรองจาก OpenStack ทำให้ผู้ใช้สามารถมั่นใจได้ว่าปัญหาที่อาจเกิดขึ้นจากการใช้งานจะได้รับการแก้ไขแน่นอน

 

OpenStack AWS
Definition

ระบบนิเวศ (Ecosystem) ประกอบด้วย ผู้จัดจำหน่าย Software และ Hardware, สมาคมผู้ใช้ (Developer, User, Administrator), และที่ปรึกษาสำหรับการใช้งาน Cloud

OpenStack Ecosystem: ประกอบด้วย ผู้ให้บริการ Software และ Hardware รวมไปถึงตัวแทนผู้ให้บริการ และ End User

Code ของ OpenStack ที่ใช้รัน Cloud เป็น Open Source เปิดให้ผู้ใช้นำมาใช้และพัฒนาต่อได้อย่างอิสระ

Amazon Ecosystem: ประกอบด้วยผู้ให้คำปรึกษา และ ISV (ตัวแทนจำหน่ายซอฟต์แวร์อิสระ) คอยให้ความช่วยเหลือผู้ใช้งาน AWS

Code ของ AWS ที่ใช้รัน Cloud เป็น Close Source ไม่เปิดให้คนนอกนำไปพัฒนา

 

High availability

หากว่าระบบ Cloud มีความพร้อมต่อการใช้งานสูง และมีการเตรียมการ Fail Over ป้องกันข้อผิดพลาดของ Application ที่ Host อยู่บน Cloud แล้ว จะทำให้เกิดการขัดกันของ Service น้อยลง

 

Topic OpenStack AWS
Definition

ขอบเขตพื้นที่การให้บริการ

ข้อมูลและ Instance ทั้งหลาย สามารถบันทึกเก็บไว้ในเขตพื้นที่ที่แตกต่างกันได้ เพื่อสำรองการใช้ ตอบสนองความล่าช้า หรือเพื่อให้เป็นไปตามข้อระบุของกฎหมาย Amazon EC2 ถูก Host อยู่ในหลากหลายพื้นที่ทั่วโลก และในแต่ละท้องที่ก็จะมีพื้นที่รองรับอีกหลายแห่ง เรียกว่า Availability Zone

 

Cost

ค่าใช้จ่ายสำหรับ Server และ Application ใน Cloud เป็นได้ทั้งแบบ Operational (OPEX) และ Capital (CAPEX)

 

Topic OpenStack AWS
Definition

ค่าใช้จ่ายสำหรับการใช้งานระบบ Cloud

ใช้งาน Manage Service Offering หรือ ซื้อ Hardware เพื่อรัน OpenStack Cloud และ ดาวน์โหลด OpenStack ได้ฟรีก่อนจ้างทีมวิศวกรมาติดตั้ง ดูแลรักษา และทำการอัพเกรดระบบ ค่าใช้จ่ายส่วนนี้ค่อนข้างประมาณการณ์ได้ยาก ขึ้นอยู่กับจำนวนวิศวกรที่ว่าจ้าง หรือ จดทะเบียนสิทธิ์การจัดการจากผู้ให้บริการ โดยเสียค่า License Cost ก่อนการใช้งาน, ค่าบำรุงรักษารายปี, รวมถึงค่าต่ออายุ License หรืออีกวิธีหนึ่ง คือ ซื้อบริการจาก Red Hat และรับบริการหลังการขาย ทั้งด้านให้คำปรึกษา การซ่อมบำรุง ตลอดจนการอัพเกรด คิดเงินตามนาที/ชั่วโมง ที่ใช้งานจริง จึงไม่สามารถประเมินค่าใช้จ่ายล่วงหน้าได้

ส่วนการชำระเงินล่วงหน้าซื้อ Block สำหรับใช้งาน จะอยู่ในเรทราคาอื่น เช่น ราคาของ Instance ที่จองไว้ หรือ Spot Pricing เป็นต้น

 

ควรเลือกใช้แบบไหน?

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

 

Gartner แนะนำให้ใช้ OpenStack สำหรับ :

  • การพัฒนา Software ตามสไตล์ของ DevOps ซึ่ง Developer สามารถเข้าถึง OpenStack API และทำงานกับ Infrastructure ในรูปแบบ Code ได้
  • สนับสนุนการพัฒนาและทดสอบระบบ ในสภาพแวดล้อม IaaS แบบดั้งเดิม ที่มาพร้อม Portal แบบ Self-Service สำหรับ Developer และกลุ่มผู้ทดสอบ
  • ระบบ Computing ประสิทธิภาพสูง / Grid Computing เป็นกรณีการใช้งานที่เหมาะสมสำหรับ OpenStack เพราะสภาพแวดล้อมแบบนี้มักจะถูก Implement เข้ากับองค์ประกอบเเบบ Open Source เป็นส่วนใหญ่ และ OpenStack ก็ยังรองรับการจัดหาทรัพยากร Infrastructure ที่มีความยืดหยุ่นได้ดีอีกด้วย
  • การ Scale-out ในส่วนของ Infrastructure เพื่อรองรับ Big Data Technology เช่น Hadoop, Apache Spark และ Apache Cassandra เป็นต้น
  • ธุรกิจสาย Application Hosting ที่เน้นผลักดัน Cloud-Native Application มากว่าจะปรับแต่งความเข้ากันได้กับโปรแกรมรุ่นก่อน นับว่าเป็นรูปแบบ IaaS ที่ถูกใช้งานกันมากในบริการ Private Cloud

 

ใช้งาน AWS และ OpenStack ร่วมกันได้อย่างไร?

Hybrid Cloud เป็นการผสานการทำงานระหว่าง Private Cloud และ Public Cloud โดยใน Cloud Management Platform จะมีเครื่องมือที่รองรับการจัดการในสภาพแวดล้อมของ Cloud ทั้ง 2 แบบ ซึ่งทาง Red Hat เองก็มีบริการ Open Hybrid Cloud “รูปแบบบริการที่ให้ผู้ใช้สามารถสร้างและจัดการ IaaS Cloud ได้ทั้งแบบ Open และ Private ใช้ความสามารถการ Scale ระดับสูงได้เหมือน Infrastructure ของ Public Cloud บนแพลตฟอร์ม OpenStack