Cloud computing โดยสังเขป

Saracha Tongkumpunt
4 min readMay 10, 2021
Photo by Zeynep Sümer on Unsplash

บทความนี้จะพูดถึง

  • ระบบแบบ On-premises
  • ระบบแบบ Cloud computing
  • Cloud computing มีอะไรดี ?
  • ข้อเสียของ Cloud computing
  • บริการ Cloud มีอะไรบ้าง
  • Public, private, hybric cloud คืออะไร ?

ระบบแบบ On-premises

ก่อนอื่นเรามาพูดถึงระบบดั้งเดิม หรือ On-premises กันก่อน ซึ่งเราต้องซื้อหรือเช่าระยะยาวฮาร์ดแวร์มาดูแลจัดการเอง หรืออาจจะเอาท์ซอร์สให้ SI — System Integrator จัดการให้ก็ได้

แต่ก่อนถ้าเราอยากทำแอปพลิเคชั่นสักตัวนึง ให้ใช้งานผ่านอินเตอร์เน็ตได้ ก็ต้องมีเซิฟเวอร์อย่างน้อยหนึ่งเครื่อง จะตั้งไว้ที่บริษัทก็ได้ แต่มักจะนิยมนำไปฝากที่ datacentre มากกว่า เพราะไม่ต้องมาสร้างห้องเซิร์ฟเวอร์เอง แล้วมาจัดการเรื่องระบบทำความเย็น, ระบบสำรองไฟฟ้า, ระบบดับเพลิง, ระบบความปลอดภัย (คนเฝ้า, กล้องวงจรปิด, บันทึกการเข้า-ออก ฯลฯ) เอง
แต่เวลาเซิฟเวอร์มีปัญหา รีโมตเข้าไปดูไม่ได้ หรือต้องจัดการกับฮาร์ดแวร์ ก็ต้องเข้าไปจัดการเองในห้องหนาว ๆ ที่ datacentre

datacentre และห้อง monitor

ถ้าระบบซับซ้อนมากขึ้น ก็จะเริ่มมีเซิร์ฟเวอร์ Storage ไว้เก็บข้อมูล, เซิร์ฟเวอร์ฐานข้อมูลโดยเฉพาะ หรือเซิร์ฟเวอร์อื่น ๆ อีก

จากนั้นก็ต้องมีระบบเครือข่ายเช่นสวิสต์, เราท์เตอร์, แล้วก็ต้องมีไฟร์วอลล์ ถ้ามีงบขึ้นมาอีกก็จะมี IPS — intrusion prevention system, IDS — intrusion detection system

ถ้ามีเซิร์ฟเวอร์หลายตัว แล้วต้องการกระจายโหลด(ภาระ) ก็ต้องมีโหลดบาลานเซอร์ กับระบบแคช (cache) อีก

สถาปัตยกรรม datacentre แบบเก่า น่าจะ 15–20 ปีที่แล้ว

ระบบเหล่านี้ ถ้าต้องการให้ล่มยาก ก็ต้องทำ (HA — high availibility) อย่างเช่นระบบเครือข่ายก็ต้องซื้อเป็นคู่ แล้วตั้งค่าให้ทำงานแทนอีกตัวได้ทันทีถ้ามีปัญหา ก็ต้องเสียเงินคูณ 2
Storage ก็มีการติดตั้งดิสถ์เป็นกลุ่ม การสำรองข้อมูล ที่ต้องจ่ายเพิ่ม

ถ้าจะเชื่อมกับสาขา หรือออฟฟิศย่อยแบบส่วนตัว ไม่ออกอินเตอร์เน็ตก็ต้องมาทำระบบเครือข่าย WAN อีกด้วย

ทั้งหมดทั้งมวลก็มีค่าอุปกรณ์+license ที่ซื้อมาติดตั้งที่ datacentre ที่เราไปเช่าตู้ rack หรือเอาไว้ที่บริษัทเอง จะออกอินเตอร์เน็ตหรือเชื่อมเครื่อข่าย WAN ก็ต้องเช่าบริการจาก ISP (Internet service provider) ด้วย
นี่ยังไม่รวมว่าต้องคอยอัพเดทแพชให้ระบบปฎิบัติการของเซิร์ฟเวอร์ และอุปกรณ์เครือข่าย (อาจมี downtime) คอยเปลี่ยนฮาร์ดแวร์ที่ตกรุ่น ย้ายข้อมูลไปเครื่องใหม่ อยู่ตลอด เสียทั้งเงินและเวลา แล้วก็ต้องมีระบบคอยแจ้งความผิดปกติด้วย

การติดตั้งและดูแล ก็ต้องใช้ System engineer, Network engineer (บางที่จะมี Storage engineer ด้วย) มาจัดการ ถ้าระบบใหญ่ก็อาจจะมีทีม NOC — network operations centre มาเฝ้าดูความผิดปกติของระบบตลอด 24 ชั่วโมง แต่เรามักจะจ้างบริษัท SI มาทำให้แทน

นี่ยังไม่ได้รันแอพพลิเคชั่นเลยนะ ยังไม่รวมการติดตั้งระบบปฏิบัติการ การลงไลบรารี่และโปรแกรมที่จำเป็นที่ต่างกันไปอีกในแต่ละโปรแกรม แต่ละเวอร์ชั่น (ส่วนนี้เรียกว่าสภาพแวดล้อม — environment) บางทีเวอร์ชั่นไม่ตรง ก็รันโปรแกรมไม่ได้ หรือมีปัญหาอีก โดยส่วนนี้มักเป็นหน้าที่ของ Developer ที่จะกำหนดมา แต่คนติดตั้งก็อาจจะเป็น Developer เองหรือ System Engineer (มีระบบอัตโนมัติ แต่ก็ต้องเขียนสคริปต์หรือทำ Image ก่อน)

ภาคหลังมีเทคโนโลยีเครื่องเสมือน (VM — Virtual Machine) ที่ทำให้สร้างเครื่องเสมือนย่อย ๆ บนฮาร์ดแวร์จริงได้ แทนที่จะซื้อเครื่องมาทำงานได้งานเดียว เราก็เอาเครื่องแรง ๆ 1 เครื่อง หรือหลาย ๆ เครื่องมาทำคลัสเตอร์ (โดยเฉพาะเซิร์ฟเวอร์แบบ Chassis-blade) เพราะสามารถนำมารัน VM หลาย ๆ ตัว ที่มีระบบปฏิบัติการและสภาพแวดล้อมต่าง ๆ กันแทน
เวลาเราต้องการเซิร์ฟเวอร์เพิ่มก็สร้าง VM เพิ่มได้ เมื่อไม่ต้องการก็ลบทิ้ง ทำให้ประหยัดเงินและเวลาได้มากขึ้น

ระบบแบบ Cloud computing

อย่างย่อคือระบบขที่เราสามารถเช่าจาก datacentre คนอื่นมาใช้งานได้ โดยจ่ายตามเวลาใช้งานจริง อยากใช้เพิ่มก็จ่ายเพิ่ม พอไม่ใช้ก็ลบทิ้งไปไม่ต้องจ่ายต่อ ไม่มีของต้องมาดูแล

Cloud Strife ไม่เกี่ยวกับ Cloud computing แต่อย่างใด

ใ̶ห̶̶้น̶ึ̶ก̶ถ̶ึ̶ง̶ ̶C̶l̶o̶u̶d̶ ̶S̶t̶r̶i̶f̶e̶ ̶ท̶ห̶า̶ร̶ร̶ั̶บ̶จ̶̶้า̶ง̶ผ̶̶̶ู้ท̶ำ̶ง̶า̶น̶โ̶ด̶ย̶ร̶ั̶บ̶ค̶̶่า̶จ̶̶้า̶ง̶เ̶ป̶็̶น̶ร̶า̶ย̶ค̶ร̶ั̶̶้ง̶ ̶ผ̶̶̶ู้ว̶̶่า̶จ̶̶้า̶ง̶ไ̶ม̶̶่ต̶̶้อ̶ง̶ม̶า̶ฝ̶ึ̶ก̶,̶ ̶ใ̶ห̶̶้เ̶ง̶ิ̶น̶เ̶ด̶ื̶อ̶น̶ ̶แ̶ล̶ะ̶ห̶า̶อ̶า̶ว̶̶ุธ̶ใ̶ห̶̶้น̶ะ̶ค̶ร̶ั̶บ̶

Cloud มีอะไรดี ?

  • ความน่าเชื่อถือ จริง ๆ ตรงนี้ขึ้นกับ SLA — service-level agreement ที่เราเลือก ว่าคาดหวังให้ระบบต้องไม่ล่มเป็นกี่เปอร์เซ็นต์ อย่าง Azure จะให้ส่วนลดถ้าทำไม่ได้ตาม SLA
    เมื่อเทียบกับแบบ On-premises ที่เราต้องจัดการเองแล้ว บางครั้งเราจำเป็นต้องปิดระบบเพื่อเปลี่ยนอุปกรณ์ หรืออัพเดทระบบปฏิบัติการ หรืออัพเดทแพช ถ้าไม่มีระบบ HA ที่ดี ก็อาจทำให้ระบบล่มได้
  • การขยายสเกล
    - ขยายสเกลแนวตั้ง คือการอัพเกรดความเร็ว CPU เพิ่ม RAM ให้ VM ได้อย่างอัตโนมัติ
    - ขยายสเกลแนวนอน คือการเพิ่มจำนวน VM มาช่วยประมวลผล อย่างอัตโนมัติ
    On-premises ก็ขยายสเกล VM อัตโนมัติได้ แต่สเกลไปจุดหนึ่งก็อาจต้องซื้อฮาร์ดแวร์มาเพิ่ม แต่ถ้าหลังจากนั้นไม่ได้มีความต้องการใช้งาน ก็อาจจะต้องปิดไว้ ทำให้เสียเงินโดยใช่เหตุ
  • ยืดหยุ่น แอพพลิเคชั่นของเราที่รันบน Cloud สามารถกำหนดไว้ก่อนได้เลยว่าอยากได้ทรัพยากรเท่านั้นเท่านี้ ทางผู้ให้บริการ Cloud มีเครื่องให้บริการพอเพียงเสมอ
    กรณีเราจัดการทรัพยากรเองก็คงทำได้แต่อาจไม่คุ้มทุน หรือนานเกิน
  • ความรวดเร็ว ถ้าเราอยากได้ VM สัก 500 เครื่อง ถ้าดูแลเองแล้วทรัพยากรมีไม่พอ อาจจะต้องรอสั่งฮาร์ดแวร์มาเพิ่ม ติดตั้ง คอนฟิกเน็ตเวิร์ค คอนฟิกระบบปฏิบัติการ อาจจะนานเป็นเดือนด้วยซ้ำ (ประสบการณ์ตรงของผู้เขียน ฮา) แต่ถ้าเราใช้ Cloud เราสั่ง deploy ได้ทันที
  • มีอยู่ทั่วโลก ผู้ให้บริการ Cloud เจ้าใหญ่ก็จะมี datacentre ให้เลือกหลายที่ทั่วโลก ทำให้ลด latency ระหว่างระบบกับผู้ใช้ลง
    ถ้าเป็นระบบ On-premises ก็ต้องจ้างบริษัทท้องถิ่น หรือจ้างพนักงานท้องถิ่นเพื่อดูแลระบบที่ต่างประเทศด้วย
  • การกู้คืนจากเหตุไม่คาดฝัน (DR — disaster recovery) Cloud มีระบบสำรองข้อมูล, ทำซ้ำข้อมูล (data replication) และมีอยู่ทั่วโลก ทำให้ระบบยังทำงานได้อยู่ แม้ datacentre จะเกิดเหตุไม่คาดฝัน เช่น น้ำท่วม, ไฟไหม้, เหตุจลาจล, ฯลฯ
    ระบบ On-premises เราจะต้องจ่ายค่าอุปกรณ์ ค่า license เพิ่มเติม หากจะสร้างไซต์สำรองเพื่อรับมือกับ DR

ข้อเสียของ Cloud

พูดถึงข้อดีแล้วก็ต้องพูดถึงข้อเสียกันบ้าง

  • จัดการเองไม่ได้ ล่มยากก็จริง แต่ถ้าล่มมาก็ทำอะไรกับมันไม่ได้เลย
  • อยู่นอกประเทศ Datacentre อยู่นอกประเทศ ทำให้มีปัญหาด้านความเร็ว และปัญหาจากข้อกำหนดบางอย่าง เช่นราชการ หรือธนาคารที่ไม่อนุญาติให้เก็บไว้ในเซิร์ฟเวอร์นอกประเทศ
    (ขณะนี้เริ่มมีตัวแทนมาตั้ง datacentre ในประเทศบ้างแล้ว)
  • ความลับของข้อมูล ถึงผู้ให้บริการ Cloud จะมีมาตรฐานการเก็บความลับของข้อมูล แต่การเก็บข้อมูลไว้เองก็ดูจะอุ่นใจได้มากกว่าอยู่ดี (ถ้าไม่โดนเจาะระบบอะนะ)
  • สับสน บริการแต่ละเจ้ามีความแตกต่างกันไป โดยรวมก็คล้าย ๆ กัน แต่ที่สับสนที่สุดคือชื่อที่ตั้งไม่เหมือนกันสักเจ้านี่แหละ!
    การใช้งาน การตั้งค่าแต่ละเจ้าก็ต่างกัน
  • ไม่ได้ถูกกว่าเสมอไป สำหรับแอพพลิเคชั่นเล็ก ๆ การไปเช่า VPS — virtual private server อาจจะถูกกว่า แต่ก็ต้องแลกมาด้วยการสิ่งต่าง ๆ เอง ตั้งแต่ติดตั้งระบบปฏิบัติการเอง
    หรือบางทีระบบใหญ่ เราใช้ cloud แบบจัดเต็มมาก ต้องมาจ่ายค่าเช่าแพงกว่าลงทุนทำ on-premises เองอีกก็มี
ตัวอย่างชื่อบริการที่ต่างกัน (จาก https://www.cloudhealthtech.com/blog/cloud-comparison-guide-glossary-aws-azure-gcp)

บริการ Cloud มีอะไรบ้าง

หลัก ๆ จะมี IaaS, PaaS และ SaaS อีกสองตัวแตกออกมาจาก PaaS
คิดว่าในอนาคตน่าจะมีเพิ่มขึ้นมากกว่านี้อีก

  • IaaS — infrastructure as a service ผู้ให้บริการ Cloud จะจัดการฮาร์ดแวร์ให้ทั้งหมด ถ้าเราเช่าเซิฟเวอร์ (อาจจะเป็น VM หรือทั้งเครื่อง) เราจะต้องลงระบบปฎิบัติการ + สภาพแวดล้อม + โปรแกรมเอง แต่ไม่ต้องมาจัดการระบบเครื่องข่าย, ความปลอดภัยเอง เช่น Azure virtual machines, AWS EC2 หรือการเช่า VPS
  • PaaS — platform as a service ผู้ให้บริการ Cloud จะจัดการระบบปฏิบัติการ + สภาพแวดล้อม รวมถึง IaaS ให้เรา เราเอาแอพพลิเคชั่นหรือโปรแกรมไปรันได้เลย เช่น Azure App Services, Google App Engine
  • BaaS — backend as a service ตัวนี้จะนับเป็น PaaS ก็ได้ แต่จะต่างกันนิดหน่อยที่ BaaS จะมีระบบหลังบ้านให้ใช้ด้วย Developer ไม่ต้องมาทำเองหมด เช่น email notification, authentication, push-notifications, social login ฯลฯ Developer เอาเวลาทำไประบบหน้าบ้านแทน ตัวอย่างของ BaaS เช่น Google Firebase
  • FaaS — function as a service จะนับเป็น PaaS ก็ได้เช่นกัน แต่เราไม่ต้องตั้งค่า VM เอง แค่เอาโค้ดขึ้นไปรัน ระบบจะสเกลให้อัตโนมัติ หรือเรียกอีกอย่างว่า Serverless (จริง ๆ มันรันบน VM แต่เราไม่ต้องรับรู้ถึงมัน)
    โดยสามารถตั้งให้รันโค้ดเมื่อมีเหตุการณ์ได้ (event-driving) ตัวอย่างก็เช่น Azure Functions, AWS Lambda
  • SaaS — software as a service ผู้ให้บริการ Cloud จะมีแอพพลิเคชั่นให้เราใช้ เราใช้งาน หรือเอาข้อมูลของเราไปใส่ก็พอ เช่น Office365, Google Firebase, Youtube, Facebook และ Medium
บริการ Cloud แบบต่าง ๆ
สิ่งที่ต้องจัดการเอง (เขียว) vs สิ่งที่ผู้ให้บริการ Cloud จัดการให้ (ฟ้า)

Public, Private, Hybrid Cloud คืออะไร ?

  • Public เข้าถึงได้จากอินเตอร์เน็ต, ใช้ฮาร์ดแวร์ร่วมกับผู้อื่น โดยอุปกรณ์ทั้งหมดอยู่ที่ datacentre ของผู้ให้บริการ cloud
  • Private เข้าถึงได้จากอินเตอร์เน็ตหรือจากเครือข่ายภายในเท่านั้น, องค์กรณ์เช่าฮาร์ดแวร์เป็นของตัวเองเท่านั้น โดยอุปกรณ์จะอยู่ที่ datacenter ของผู้เช่าหรือผู้ให้บริการ Cloud ก็ได้
  • Hybrid บางส่วนเป็น public บางส่วนเป็น private โดยอาจมีการแชร์ข้อมูลหรือแอพพลิเคชั่นระหว่างกัน

--

--