GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

การแปลบทความจัดทำขึ้นเฉพาะสำหรับนักศึกษาของหลักสูตร “บริการคลาวด์”.

คุณสนใจที่จะพัฒนาในทิศทางนี้หรือไม่? ชมการบันทึกคลาสมาสเตอร์ระดับมืออาชีพ “บริการ AWS EC2”ซึ่งดำเนินการโดย Egor Zuev - TeamLead ที่ InBit และผู้เขียนโปรแกรมการศึกษาที่ OTUS

GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

Google Cloud Platform (GCP) ให้บริการมากมาย และโดยเฉพาะสแต็กการประมวลผลที่มี Google Compute Engine (GCE), Google Kubernetes Engine (เดิมคือ Container Engine) (GKE), Google App Engine (GAE) และ Google Cloud Functions (GCF) . บริการทั้งหมดเหล่านี้มีชื่อเก๋ๆ แต่อาจไม่ชัดเจนนักเกี่ยวกับฟังก์ชันต่างๆ และสิ่งที่ทำให้บริการเหล่านี้มีเอกลักษณ์เฉพาะตัว บทความนี้มีไว้สำหรับผู้ที่เพิ่งเริ่มใช้แนวคิดระบบคลาวด์ โดยเฉพาะบริการระบบคลาวด์และ GCP

GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

1. สแต็กการคำนวณ

สแต็คการคำนวณสามารถมองได้ว่าเป็นนามธรรมแบบหลายชั้นเหนือสิ่งที่ระบบคอมพิวเตอร์สามารถให้ได้ กองนี้ขึ้นไป (เลื่อนขึ้น) จาก "เหล็กเปลือย" (โลหะเปลือย) หมายถึงส่วนประกอบฮาร์ดแวร์ที่แท้จริงของคอมพิวเตอร์ จนถึงฟังก์ชันต่างๆ (ฟังก์ชั่น) ซึ่งเป็นหน่วยการคำนวณที่เล็กที่สุด สิ่งสำคัญที่ควรทราบเกี่ยวกับสแต็กคือบริการต่างๆ จะถูกรวบรวมเมื่อคุณเลื่อนสแต็กขึ้นไป เช่น ส่วน "แอปพลิเคชัน" (ปพลิเคชัน) ดังแสดงในรูปที่ 1 ด้านล่าง ควรมีส่วนประกอบพื้นฐานของคอนเทนเนอร์ทั้งหมด (ตู้คอนเทนเนอร์) เครื่องเสมือน (เครื่องเสมือน) และเหล็ก ในทำนองเดียวกัน ส่วนประกอบเครื่องเสมือนต้องมีฮาร์ดแวร์อยู่ภายในจึงจะทำงานได้

GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

รูปที่ 1: สแต็กการคำนวณ | ภาพที่มาจาก Google Cloud

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

— หากคุณคุ้นเคยกับบริการคลาวด์ ให้ไปที่ ส่วนที่ 3เพื่อดู GCP ที่เทียบเท่า
— หากคุณต้องการเพียงสรุปบริการคลาวด์ ให้ไปที่ ส่วนที่ 2.4

2. บริการคลาวด์

โลกของคลาวด์คอมพิวติ้งมีความหลากหลายมาก ผู้ให้บริการคลาวด์นำเสนอบริการที่หลากหลายซึ่งปรับให้เหมาะกับความต้องการของลูกค้าที่แตกต่างกัน คุณอาจเคยได้ยินคำศัพท์เช่น IaaS, PaaS, SaaS, FaaS, KaaS เป็นต้น โดยมีตัวอักษรทุกตัวตามด้วย "aaS" แม้จะมีรูปแบบการตั้งชื่อที่แปลก แต่ก็ก่อให้เกิดชุดบริการของผู้ให้บริการคลาวด์ ฉันระบุว่ามีข้อเสนอ “ในรูปแบบบริการ” หลัก 3 ประการที่ผู้ให้บริการคลาวด์มอบให้เกือบทุกครั้ง

IaaS, PaaS และ SaaS ซึ่งย่อมาจาก Infrastructure as a Service, Platform as a Service และ Software as a Service ตามลำดับ สิ่งสำคัญคือต้องแสดงภาพบริการคลาวด์เป็นชั้นของบริการที่มีให้ ซึ่งหมายความว่าเมื่อคุณเลื่อนขึ้นหรือลงจากระดับหนึ่งไปอีกระดับหนึ่ง คุณในฐานะลูกค้าจะถูกสำรวจโดยตัวเลือกบริการต่างๆ ที่เพิ่มหรือลบออกจากข้อเสนอหลัก ทางที่ดีควรคิดว่ามันเป็นปิระมิด ดังแสดงในรูปที่ 2
GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

รูปที่ 2: พีระมิด aaS | ภาพที่มาจาก อู่ซ่อมรถทับทิม

2.1 โครงสร้างพื้นฐานเป็นบริการ (IaaS)

นี่คือระดับต่ำสุดที่ผู้ให้บริการคลาวด์สามารถนำเสนอได้ และเกี่ยวข้องกับผู้ให้บริการคลาวด์ในการส่งมอบโครงสร้างพื้นฐาน Bare Metal รวมถึงมิดเดิลแวร์ สายเคเบิลเครือข่าย CPU GPU RAM พื้นที่จัดเก็บข้อมูลภายนอก เซิร์ฟเวอร์ และอิมเมจระบบปฏิบัติการพื้นฐาน เช่น Debian Linux, CentOS, Windows ฯลฯ

หากคุณสั่งซื้อใบเสนอราคาจากผู้ให้บริการ Cloud IaaS นี่คือสิ่งที่คุณควรจะได้รับ มันขึ้นอยู่กับคุณซึ่งเป็นลูกค้าที่จะประกอบชิ้นส่วนเหล่านี้เพื่อดำเนินธุรกิจของคุณ ขอบเขตของสิ่งที่คุณต้องทำงานอาจแตกต่างกันไปในแต่ละผู้จำหน่าย แต่โดยทั่วไปแล้ว คุณเพียงแค่ได้รับฮาร์ดแวร์และระบบปฏิบัติการ ส่วนที่เหลือก็ขึ้นอยู่กับคุณ ตัวอย่างของ IaaS ได้แก่ AWS Elastic Compute, Microsoft Azure และ GCE

บางคนอาจไม่ชอบความจริงที่ว่าต้องติดตั้งอิมเมจ OS และจัดการกับระบบเครือข่าย โหลดบาลานซ์ หรือการกังวลว่าโปรเซสเซอร์ประเภทใดที่เหมาะกับปริมาณงานของตน นี่คือจุดที่เราเลื่อนขึ้นปิรามิดไปทาง PaaS

2.2 แพลตฟอร์มเป็นบริการ (PaaS)

PaaS เกี่ยวข้องกับผู้ให้บริการระบบคลาวด์ที่นำเสนอแพลตฟอร์มเฉพาะที่ผู้ใช้สามารถสร้างแอปพลิเคชันได้ นี่เป็นสิ่งที่เป็นนามธรรมของ IaaS ซึ่งหมายความว่าผู้ให้บริการระบบคลาวด์จะดูแลรายละเอียดทั้งหมดของประเภท CPU, หน่วยความจำ, RAM, พื้นที่เก็บข้อมูล, เครือข่าย ฯลฯ ดังที่แสดงในรูปที่ 2 คุณในฐานะลูกค้าจะควบคุมแพลตฟอร์มจริงได้เพียงเล็กน้อยเนื่องจาก คลาวด์ที่ผู้ให้บริการจัดการรายละเอียดโครงสร้างพื้นฐานทั้งหมดให้กับคุณ คุณร้องขอแพลตฟอร์มที่เลือกและสร้างโปรเจ็กต์บนนั้น ตัวอย่างของ PaaS คือ Heroku

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

2.3 ซอฟต์แวร์ในรูปแบบบริการ (SaaS)

SaaS แสดงถึงบริการทั่วไปที่ผู้ให้บริการระบบคลาวด์มอบให้ มุ่งเป้าไปที่ผู้ใช้ปลายทางและสามารถเข้าถึงได้ผ่านเว็บไซต์เป็นหลัก เช่น Gmail, Google Docs, Dropbox เป็นต้น สำหรับ Google Cloud มีข้อเสนอมากมายนอกเหนือจากกลุ่มการประมวลผลที่เป็น SaaS ซึ่งรวมถึง Data Studio, Big Query เป็นต้น

2.4 สรุปบริการคลาวด์

ส่วนประกอบของ
IaaS
PaaS
SaaS

คุณจะได้อะไร
คุณได้รับโครงสร้างพื้นฐานและชำระเงินตามนั้น เสรีภาพในการใช้หรือติดตั้งซอฟต์แวร์ ระบบปฏิบัติการ หรือองค์ประกอบของซอฟต์แวร์ดังกล่าว
ที่นี่คุณจะได้รับสิ่งที่คุณขอ ซอฟต์แวร์ ฮาร์ดแวร์ ระบบปฏิบัติการ สภาพแวดล้อมบนเว็บ คุณจะได้รับแพลตฟอร์มที่พร้อมใช้งานและชำระเงินตามนั้น
ที่นี่คุณไม่จำเป็นต้องกังวลอะไรเลย คุณจะได้รับแพ็คเกจที่ติดตั้งล่วงหน้าซึ่งปรับแต่งตามความต้องการของคุณ และสิ่งที่คุณต้องทำคือชำระเงินตามนั้น

มูลค่า
คอมพิวเตอร์ขั้นพื้นฐาน
IaaS ยอดนิยม
นี่คือแพ็คเกจบริการที่สมบูรณ์

ปัญหาทางเทคนิค
จำเป็นต้องมีความรู้ทางเทคนิค
คุณได้รับการกำหนดค่าพื้นฐานแล้ว แต่คุณยังต้องการความรู้เกี่ยวกับโดเมน
ไม่จำเป็นต้องกังวลกับรายละเอียดทางเทคนิค ผู้ให้บริการ SaaS มอบทุกสิ่ง

มันทำงานร่วมกับอะไร?
เครื่องเสมือน พื้นที่เก็บข้อมูล เซิร์ฟเวอร์ เครือข่าย โหลดบาลานเซอร์ ฯลฯ
สภาพแวดล้อมรันไทม์ (เช่น รันไทม์ Java), ฐานข้อมูล (เช่น mySQL, Oracle), เว็บเซิร์ฟเวอร์ (เช่น Tomcat ฯลฯ)
แอปพลิเคชัน เช่น บริการอีเมล (Gmail, Yahoo Mail ฯลฯ) ไซต์ปฏิสัมพันธ์ทางสังคม (Facebook ฯลฯ)

กราฟความนิยม
เป็นที่นิยมในหมู่นักพัฒนา นักวิจัยที่มีทักษะสูง ที่ต้องการการปรับแต่งตามความต้องการหรือสาขาการวิจัย
ได้รับความนิยมมากที่สุดในหมู่นักพัฒนาเนื่องจากสามารถมุ่งเน้นการพัฒนาแอปพลิเคชันหรือสคริปต์ของตนได้ พวกเขาไม่ต้องกังวลกับปริมาณการรับส่งข้อมูลหรือการจัดการเซิร์ฟเวอร์ ฯลฯ
ได้รับความนิยมสูงสุดในหมู่ผู้บริโภคทั่วไปหรือบริษัทที่ใช้ซอฟต์แวร์ เช่น อีเมล การแชร์ไฟล์ โซเชียลเน็ตเวิร์ก โดยไม่ต้องกังวลกับรายละเอียดทางเทคนิค

รูปที่ 3: สรุปข้อเสนอคลาวด์ที่สำคัญ | มีรูปภาพให้ อาเมียร์ที่ Blog Specia

3. ชุดคอมพิวเตอร์แพลตฟอร์ม Google Cloud

เมื่อดูข้อเสนอของผู้ให้บริการระบบคลาวด์ทั่วไปในส่วนที่ 2 แล้ว เราก็สามารถเปรียบเทียบกับข้อเสนอของ Google Cloud ได้

3.1 Google Compute Engine (GCE) - IaaS

GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

รูปที่ 4: ไอคอน Google Compute Engine (GCE)

GCE เป็นข้อเสนอ IaaS จาก Google GCE ช่วยให้คุณสร้างเครื่องเสมือนได้อย่างอิสระ จัดสรรทรัพยากร CPU และหน่วยความจำ เลือกประเภทพื้นที่จัดเก็บข้อมูล เช่น SSD หรือ HDD และจำนวนหน่วยความจำ เกือบจะเหมือนกับว่าคุณสร้างคอมพิวเตอร์/เวิร์กสเตชันของคุณเองและจัดการรายละเอียดทั้งหมดเกี่ยวกับวิธีการทำงาน

ใน GCE คุณสามารถเลือกได้ตั้งแต่อินสแตนซ์ไมโครที่มีโปรเซสเซอร์ 0,3 คอร์และ RAM ขนาด 1 GB ไปจนถึงมอนสเตอร์ 96 คอร์ที่มี RAM มากกว่า 300 GB คุณยังสามารถสร้างเครื่องเสมือนขนาดกำหนดเองสำหรับปริมาณงานของคุณได้ สำหรับผู้ที่สนใจ นี่คือ Virtual Machine ที่คุณสามารถสร้างได้

ประเภทเครื่อง | เอกสารประกอบของ Compute Engine | กูเกิลคลาวด์

3.2. Google Kubernetes Engine (GKE) - (Caas / Kaas)

GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

รูปที่ 5: ไอคอน Google Kubernetes Engine (GKE)

GKE คือข้อเสนอการประมวลผลที่ไม่เหมือนใครจาก GCP ซึ่งเป็นสิ่งที่เป็นนามธรรมนอกเหนือจาก Compute Engine โดยทั่วไปแล้ว GKE สามารถจัดหมวดหมู่เป็น Container as a Service (CaaS) ซึ่งบางครั้งเรียกว่า Kubernetes as a Service (KaaS) ซึ่งช่วยให้ลูกค้าเรียกใช้คอนเทนเนอร์ Docker ในสภาพแวดล้อม Kubernetes ที่มีการจัดการเต็มรูปแบบได้อย่างง่ายดาย สำหรับผู้ที่ไม่คุ้นเคยกับคอนเทนเนอร์ คอนเทนเนอร์จะช่วยในการให้บริการ/แอปพลิเคชันแบบโมดูลาร์ ดังนั้นคอนเทนเนอร์ที่แตกต่างกันจึงสามารถมีบริการที่แตกต่างกันได้ ตัวอย่างเช่น คอนเทนเนอร์หนึ่งสามารถโฮสต์ส่วนหน้าของเว็บแอปพลิเคชันของคุณได้ และอีกคอนเทนเนอร์หนึ่งสามารถมีส่วนหลังของมันได้ Kubernetes ดำเนินการ จัดระเบียบ จัดการ และปรับใช้คอนเทนเนอร์ของคุณโดยอัตโนมัติ ข้อมูลเพิ่มเติมที่นี่

เครื่องมือ Google Kubernetes | กูเกิลคลาวด์

3.3 Google App Engine (GAE) - (PaaS)

GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

รูปที่ 6: ไอคอน Google App Engine (GAE)

ตามที่กล่าวไว้ในส่วน 2.2 PaaS อยู่เหนือ IaaS และในกรณีของ GCP ก็ถือเป็นข้อเสนอที่อยู่เหนือ GKE ได้เช่นกัน GAE คือ PaaS ที่กำหนดเองของ Google และวิธีที่อธิบายตัวเองได้ดีที่สุดคือ "นำโค้ดของคุณมา แล้วเราจะจัดการส่วนที่เหลือ"

สิ่งนี้ทำให้มั่นใจได้ว่าลูกค้าที่ใช้ GAE ไม่จำเป็นต้องจัดการกับฮาร์ดแวร์/มิดเดิลแวร์พื้นฐาน และสามารถมีแพลตฟอร์มที่กำหนดค่าไว้ล่วงหน้าพร้อมใช้งานอยู่แล้ว สิ่งที่พวกเขาต้องทำคือระบุรหัสที่จำเป็นในการเรียกใช้งาน

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

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

ในความคิดของฉัน GAE เป็นจุดเริ่มต้นที่ดีที่สุดหากคุณเป็นนักพัฒนาที่มีแนวคิดดีๆ แต่ไม่ต้องการจัดการกับความยุ่งยากในการตั้งค่าเซิร์ฟเวอร์ การปรับสมดุลโหลด และงาน Devop/SRE ที่ใช้เวลานานอื่นๆ ทั้งหมด . เมื่อเวลาผ่านไป คุณสามารถลองใช้ GKE และ GCE ได้ แต่นั่นเป็นเพียงความคิดเห็นของฉัน

ข้อจำกัดความรับผิดชอบ: AppEngine ใช้สำหรับแอปพลิเคชันบนเว็บ ไม่ใช่แอปพลิเคชันบนมือถือ

สำหรับข้อมูล: App Engine - สร้างแบ็กเอนด์เว็บและมือถือที่ปรับขนาดได้ในทุกภาษา | กูเกิลคลาวด์

3.4 ฟังก์ชั่น Google Cloud - (FaaS)

GCP: การแยกวิเคราะห์กองประมวลผลแพลตฟอร์ม Google Cloud

รูปที่ 7: ไอคอนฟังก์ชัน Google Cloud (GCF)

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

GCF เป็นข้อเสนอ GCP ที่ค่อนข้างใหม่ซึ่งยังอยู่ในช่วงเบต้า (ณ เวลาที่เขียนบทความนี้) ฟังก์ชั่นคลาวด์อนุญาตให้ฟังก์ชั่นบางอย่างที่นักพัฒนาเขียนถูกเรียกใช้โดยเหตุการณ์

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

ในโรงงาน เมื่อเซ็นเซอร์บางตัวถึงค่าที่กำหนด เซ็นเซอร์จะสามารถกระตุ้นฟังก์ชันคลาวด์ที่ประมวลผลข้อมูลบางอย่าง หรือแจ้งเจ้าหน้าที่ซ่อมบำรุงบางคน เป็นต้น

ฟังก์ชันคลาวด์ - คอมพิวเตอร์เซิร์ฟเวอร์ที่ขับเคลื่อนด้วยเหตุการณ์ | กูเกิลคลาวด์

ข้อสรุป

ในบทความนี้ เราได้พูดคุยเกี่ยวกับข้อเสนอระบบคลาวด์ต่างๆ เช่น IaaS, PaaS ฯลฯ และวิธีที่สแตกการประมวลผลของ Google นำเลเยอร์ต่างๆ เหล่านี้ไปใช้ เราพบว่าชั้นนามธรรมเมื่อย้ายจากหมวดหมู่บริการหนึ่งไปยังอีกหมวดหมู่หนึ่ง เช่น IaaS ใน Paas นั้นต้องการความรู้พื้นฐานน้อยลง

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

Compute Engine - ช่วยให้คุณสร้างเครื่องเสมือนของคุณเองโดยการจัดสรรทรัพยากรฮาร์ดแวร์บางอย่าง เช่น RAM, โปรเซสเซอร์, หน่วยความจำ นอกจากนี้ยังใช้งานได้จริงและอยู่ในระดับต่ำอีกด้วย

เครื่องยนต์ Kubernetes เป็นการก้าวขึ้นมาจาก Compute Engine และช่วยให้คุณใช้ Kubernetes และคอนเทนเนอร์เพื่อจัดการแอปพลิเคชันของคุณ ซึ่งช่วยให้คุณขยายขนาดได้ตามต้องการ

แอพเอ็นจิ้น เป็นการก้าวขึ้นมาจาก Kubernetes Engine ซึ่งช่วยให้คุณมุ่งความสนใจไปที่โค้ดของคุณเท่านั้น ในขณะที่ Google จะดูแลข้อกำหนดของแพลตฟอร์มพื้นฐานทั้งหมด

ฟังก์ชั่นคลาวด์ เป็นจุดสูงสุดของปิรามิดการคำนวณ ช่วยให้คุณสามารถเขียนฟังก์ชันง่ายๆ ที่เมื่อรัน จะใช้โครงสร้างพื้นฐานพื้นฐานทั้งหมดเพื่อคำนวณและส่งคืนผลลัพธ์

ขอบคุณ!

Twitter: @martinomburajr

ที่มา: will.com

เพิ่มความคิดเห็น