GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Bản dịch của bài viết được chuẩn bị riêng cho các học viên của khóa học "Dịch vụ điện toán đám mây".

Quan tâm đến việc phát triển theo hướng này? Xem bản ghi âm của lớp học thạc sĩ chuyên nghiệp "Dịch vụ AWS EC2", được thực hiện bởi Egor Zuev - TeamLead tại InBit và là tác giả của chương trình giáo dục tại OTUS.

GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Google Cloud Platform (GCP) cung cấp nhiều dịch vụ và đặc biệt là hệ thống điện toán có chứa Google Computer Engine (GCE), Google Kubernetes Engine (trước đây là Container Engine) (GKE), Google App Engine (GAE) và Google Cloud Functions (GCF ) . Tất cả các dịch vụ này đều có những cái tên hay, nhưng có thể không hoàn toàn rõ ràng về chức năng của chúng và điều gì khiến chúng trở nên độc đáo với nhau. Bài viết này dành cho những người mới làm quen với khái niệm đám mây, đặc biệt là dịch vụ đám mây và GCP.

GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

1. Ngăn xếp tính toán

Một ngăn xếp máy tính có thể được coi là sự trừu tượng hóa theo lớp về những gì hệ thống máy tính có thể cung cấp. Ngăn xếp này tăng dần (di chuyển lên) từ "sắt trần" (kim loại trần), đề cập đến các thành phần phần cứng thực tế của máy tính, cho đến các chức năng (chức năng), đại diện cho đơn vị tính toán nhỏ nhất. Điều quan trọng cần lưu ý về ngăn xếp là các dịch vụ được tổng hợp khi bạn di chuyển lên ngăn xếp, chẳng hạn như phần "ứng dụng" (ứng dụng), được hiển thị trong Hình 1 bên dưới, phải chứa tất cả các thành phần vùng chứa cơ bản (container), máy ảo (máy ảo) và sắt. Tương tự như vậy, thành phần máy ảo phải chứa phần cứng bên trong để hoạt động.

GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Hình 1: Ngăn xếp tính toán | Hình ảnh có nguồn gốc từ Google Cloud

Mô hình này, được hiển thị trong Hình 1, là cơ sở để mô tả các dịch vụ từ các nhà cung cấp đám mây. Do đó, một số nhà cung cấp chỉ có thể cung cấp, chẳng hạn như các thùng chứa và dịch vụ có chất lượng thấp hơn dọc theo ngăn xếp, trong khi những nhà cung cấp khác có thể cung cấp mọi thứ được hiển thị trong Hình 1.

— Nếu bạn quen thuộc với các dịch vụ đám mây, hãy truy cập phần 3để xem GCP tương đương
— Nếu bạn chỉ muốn xem bản tóm tắt về các dịch vụ đám mây, hãy truy cập phần 2.4

2. Dịch vụ đám mây

Thế giới điện toán đám mây rất đa dạng. Các nhà cung cấp đám mây cung cấp nhiều dịch vụ phù hợp với các yêu cầu khác nhau của khách hàng. Bạn có thể đã nghe nói về các thuật ngữ như IaaS, PaaS, SaaS, FaaS, KaaS, v.v. với tất cả các chữ cái trong bảng chữ cái theo sau là "aaS". Bất chấp quy ước đặt tên kỳ lạ, chúng tạo thành một tập hợp các dịch vụ của nhà cung cấp đám mây. Tôi nói rõ rằng có 3 dịch vụ “dưới dạng dịch vụ” chính mà các nhà cung cấp đám mây hầu như luôn cung cấp.

Đó là IaaS, PaaS và SaaS, lần lượt là viết tắt của Cơ sở hạ tầng là Dịch vụ, Nền tảng là Dịch vụ và Phần mềm là Dịch vụ. Điều quan trọng là phải hình dung các dịch vụ đám mây như các lớp dịch vụ được cung cấp. Điều này có nghĩa là khi bạn chuyển lên hoặc xuống từ cấp này sang cấp khác, với tư cách là khách hàng, bạn sẽ được chuyển qua các tùy chọn dịch vụ khác nhau được thêm vào hoặc bớt đi khỏi dịch vụ cốt lõi. Tốt nhất hãy coi nó như một kim tự tháp, như trong Hình 2.
GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Hình 2: Kim tự tháp aaS | Hình ảnh có nguồn gốc từ Gara Ruby

2.1 Cơ sở hạ tầng dưới dạng dịch vụ (IaaS)

Đây là cấp thấp nhất mà nhà cung cấp đám mây có thể cung cấp và yêu cầu nhà cung cấp đám mây cung cấp cơ sở hạ tầng kim loại cơ bản, bao gồm phần mềm trung gian, cáp mạng, CPU, GPU, RAM, bộ nhớ ngoài, máy chủ và hình ảnh hệ điều hành cơ bản, ví dụ như Debian Linux, CentOS, Windows , vân vân.

Nếu bạn đặt báo giá từ nhà cung cấp IaaS trên nền tảng đám mây, đây là những gì bạn mong đợi nhận được. Việc lắp ráp những phần này để điều hành hoạt động kinh doanh của bạn là tùy thuộc vào bạn, khách hàng. Mức độ những gì bạn sẽ phải làm việc có thể khác nhau tùy theo nhà cung cấp, nhưng nhìn chung bạn chỉ cần nhận phần cứng và hệ điều hành và phần còn lại tùy thuộc vào bạn. Ví dụ về IaaS là ​​AWS Elastic Computing, Microsoft Azure và GCE.

Một số người có thể không thích việc họ phải cài đặt image hệ điều hành và xử lý các vấn đề về mạng, cân bằng tải hoặc lo lắng về loại bộ xử lý nào lý tưởng cho khối lượng công việc của họ. Đây là nơi chúng tôi di chuyển lên kim tự tháp hướng tới PaaS.

2.2 Nền tảng là dịch vụ (PaaS)

PaaS chỉ liên quan đến nhà cung cấp dịch vụ đám mây cung cấp một nền tảng cụ thể để người dùng có thể xây dựng ứng dụng. Đây là một sự trừu tượng hóa đối với IaaS, nghĩa là nhà cung cấp đám mây xử lý tất cả các chi tiết về loại CPU, bộ nhớ, RAM, bộ lưu trữ, mạng, v.v. Như được hiển thị trong Hình 2, với tư cách là khách hàng, bạn có rất ít quyền kiểm soát đối với nền tảng thực tế bởi vì đám mây mà nhà cung cấp xử lý tất cả các chi tiết về cơ sở hạ tầng cho bạn. Bạn yêu cầu nền tảng đã chọn và xây dựng dự án trên đó. Ví dụ về PaaS là ​​Heroku.

Đây có thể là mức quá cao đối với một số người, vì họ không nhất thiết muốn xây dựng dự án trên một nền tảng cụ thể mà cần một bộ dịch vụ trực tiếp từ nhà cung cấp đám mây. Đây là lúc SaaS phát huy tác dụng.

2.3 Phần mềm dưới dạng dịch vụ (SaaS)

SaaS đại diện cho các dịch vụ phổ biến nhất được cung cấp bởi các nhà cung cấp dịch vụ đám mây. Chúng nhắm đến người dùng cuối và có thể truy cập chủ yếu thông qua các trang web như Gmail, Google Docs, Dropbox, v.v. Đối với Google Cloud, có một số dịch vụ bên ngoài ngăn xếp máy tính của họ là SaaS. Chúng bao gồm Data Studio, Big Query, v.v.

2.4 Tóm tắt dịch vụ đám mây

Thành phần
IaaS
PaaS
SaaS

Bạn đang nhận được gì
Bạn nhận được cơ sở hạ tầng và trả tiền tương ứng. Tự do sử dụng hoặc cài đặt bất kỳ phần mềm, hệ điều hành hoặc thành phần nào của chúng.
Ở đây bạn nhận được những gì bạn yêu cầu. Phần mềm, phần cứng, hệ điều hành, môi trường web. Bạn nhận được một nền tảng sẵn sàng để sử dụng và trả tiền tương ứng.
Ở đây bạn không cần phải lo lắng về bất cứ điều gì. Bạn được cung cấp một gói cài đặt sẵn được tùy chỉnh theo yêu cầu của bạn và tất cả những gì bạn phải làm là thanh toán tương ứng.

Giá trị
Máy tính cơ bản
IaaS hàng đầu
Đây thực chất là một gói dịch vụ hoàn chỉnh

Những khó khăn về mặt kỹ thuật
Kiến thức kỹ thuật cần thiết
Bạn được cung cấp cấu hình cơ bản nhưng bạn vẫn cần có kiến ​​thức về miền.
Không cần phải bận tâm với các chi tiết kỹ thuật. Nhà cung cấp SaaS cung cấp mọi thứ.

Nó hoạt động với cái gì?
Máy ảo, bộ lưu trữ, máy chủ, mạng, bộ cân bằng tải, v.v.
Môi trường thời gian chạy (như thời gian chạy java), cơ sở dữ liệu (như mySQL, Oracle), máy chủ web (như tomcat, v.v.)
Các ứng dụng như dịch vụ email (Gmail, Yahoo mail, v.v.), các trang tương tác xã hội (Facebook, v.v.)

Biểu đồ mức độ phổ biến
Phổ biến trong số các nhà phát triển, nhà nghiên cứu có tay nghề cao, những người yêu cầu tùy chỉnh theo yêu cầu hoặc lĩnh vực nghiên cứu của họ
Phổ biến nhất trong số các nhà phát triển vì họ có thể tập trung vào phát triển ứng dụng hoặc tập lệnh của mình. Họ không phải lo lắng về tải lưu lượng hoặc quản lý máy chủ, v.v.
Phổ biến nhất đối với người tiêu dùng bình thường hoặc các công ty sử dụng phần mềm như email, chia sẻ tệp, mạng xã hội vì họ không cần phải lo lắng về các chi tiết kỹ thuật

Hình 3: Tóm tắt các dịch vụ đám mây chính | Hình ảnh được cung cấp Amir tại Blog Specia

3. Bộ công cụ điện toán nền tảng đám mây của Google

Sau khi xem xét các dịch vụ của nhà cung cấp đám mây điển hình ở Phần 2, chúng ta có thể so sánh chúng với các dịch vụ của Google Cloud.

3.1 Công cụ điện toán của Google (GCE) - IaaS

GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Hình 4: Biểu tượng Google Computer Engine (GCE)

GCE là một sản phẩm IaaS của Google. Với GCE, bạn có thể thoải mái tạo máy ảo, phân bổ tài nguyên CPU và bộ nhớ, chọn loại lưu trữ như SSD hoặc HDD và dung lượng bộ nhớ. Nó gần giống như việc bạn xây dựng một máy tính/máy trạm của riêng mình và xử lý tất cả các chi tiết về cách thức hoạt động của nó.

Trong GCE, bạn có thể chọn từ các phiên bản vi mô có bộ xử lý 0,3 lõi và RAM 1 GB đến quái vật 96 lõi với RAM trên 300 GB. Bạn cũng có thể tạo các máy ảo có kích thước tùy chỉnh cho khối lượng công việc của mình. Đối với những người quan tâm, đây là những máy ảo mà bạn có thể xây dựng.

Các loại máy | Tài liệu về động cơ điện toán | Đám mây của Google

3.2. Công cụ Kubernetes của Google (GKE) - (Caas / Kaas)

GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Hình 5: Biểu tượng Google Kubernetes Engine (GKE)

GKE là một sản phẩm điện toán độc đáo của GCP, là một sản phẩm trừu tượng dựa trên Công cụ Điện toán. Tổng quát hơn, GKE có thể được phân loại là Container dưới dạng Dịch vụ (CaaS), đôi khi được gọi là Kubernetes dưới dạng Dịch vụ (KaaS), cho phép khách hàng dễ dàng chạy các container Docker của họ trong môi trường Kubernetes được quản lý hoàn toàn. Đối với những người không quen với vùng chứa, vùng chứa giúp mô-đun hóa các dịch vụ/ứng dụng, do đó, các vùng chứa khác nhau có thể chứa các dịch vụ khác nhau, ví dụ: một vùng chứa có thể lưu trữ phần giao diện người dùng của ứng dụng web của bạn và một vùng chứa khác có thể chứa phần cuối của ứng dụng đó. Kubernetes tự động hóa, điều phối, quản lý và triển khai các vùng chứa của bạn. Thêm thông tin ở đây.

Công cụ Kubernetes của Google | Đám mây của Google

3.3 Máy ứng dụng Google (GAE) - (PaaS)

GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Hình 6: Biểu tượng Google App Engine (GAE)

Như đã đề cập trong Phần 2.2, PaaS nằm trên IaaS và trong trường hợp GCP, nó cũng có thể được coi là một sản phẩm nằm trên GKE. GAE là PaaS tùy chỉnh của Google và cách họ mô tả chính xác nhất về bản thân là "mang mã của bạn đến và chúng tôi sẽ lo phần còn lại".

Điều này đảm bảo rằng khách hàng sử dụng GAE không phải đối mặt với phần cứng/phần mềm trung gian cơ bản và có thể sẵn sàng sử dụng nền tảng được định cấu hình sẵn; tất cả những gì họ phải làm là cung cấp mã cần thiết để chạy nó.

GAE tự động xử lý việc mở rộng quy mô để đáp ứng tải và nhu cầu của người dùng, nghĩa là nếu trang web bán hoa của bạn đột nhiên đạt đỉnh vì Ngày lễ tình nhân đang đến gần, GAE sẽ xử lý việc mở rộng cơ sở hạ tầng cơ bản để đáp ứng nhu cầu và đảm bảo rằng trang web của bạn sẽ không gặp sự cố do nhu cầu tăng. Điều này có nghĩa là bạn trả tiền cho chính xác các tài nguyên mà ứng dụng của bạn yêu cầu tại thời điểm đó.

GAE sử dụng Kubernetes hoặc phiên bản gốc của nó để xử lý tất cả những điều này nên bạn không phải lo lắng về điều đó. GAE phù hợp nhất cho các công ty không quan tâm đến cơ sở hạ tầng cơ bản và chỉ quan tâm đến việc đảm bảo ứng dụng của họ có thể truy cập được theo cách tốt nhất có thể.

Theo ý kiến ​​​​của tôi, GAE là nơi tốt nhất để bắt đầu nếu bạn là nhà phát triển có ý tưởng tuyệt vời nhưng không muốn giải quyết công việc thiết lập máy chủ, cân bằng tải và tất cả các công việc devops/SRE tốn thời gian khác . Theo thời gian, bạn có thể thử GKE và GCE, nhưng đó chỉ là ý kiến ​​​​của tôi.

Tuyên bố từ chối trách nhiệm: AppEngine được sử dụng cho các ứng dụng web, không phải ứng dụng di động.

Để biết thông tin: App Engine - Xây dựng phần phụ trợ di động và web có thể mở rộng bằng bất kỳ ngôn ngữ nào | Đám mây của Google

3.4 Chức năng đám mây của Google - (FaaS)

GCP: Phân tích ngăn xếp điện toán nền tảng đám mây của Google

Hình 7: Biểu tượng Google Cloud Functions (GCF)

Hy vọng rằng bạn đã nhận thấy xu hướng bằng cách xem xét các dịch vụ trước đó. Bạn leo lên bậc thang giải pháp điện toán GCP càng cao thì bạn càng ít phải lo lắng về công nghệ cơ bản. Kim tự tháp này kết thúc bằng đơn vị tính toán nhỏ nhất có thể, một hàm, như được trình bày trong Phần 1.

GCF là một sản phẩm GCP tương đối mới vẫn đang trong giai đoạn thử nghiệm (tại thời điểm viết bài này). Các chức năng đám mây cho phép một số chức năng nhất định do nhà phát triển viết được kích hoạt bởi một sự kiện.

Họ hướng tới sự kiện và là trọng tâm của từ thông dụng “không có máy chủ”, nghĩa là họ không biết máy chủ. Các chức năng của đám mây rất đơn giản và có nhiều cách sử dụng khác nhau đòi hỏi phải có tư duy sự kiện. Ví dụ: mỗi khi người dùng mới đăng ký, chức năng đám mây có thể được kích hoạt để cảnh báo cho các nhà phát triển.

Trong nhà máy, khi một cảm biến nhất định đạt đến một giá trị nhất định, nó có thể kích hoạt chức năng đám mây thực hiện một số xử lý thông tin hoặc thông báo cho một số nhân viên bảo trì, v.v.

Chức năng đám mây - Điện toán máy chủ theo sự kiện | Đám mây của Google

Kết luận

Trong bài viết này, chúng tôi đã nói về các dịch vụ đám mây khác nhau như IaaS, PaaS, v.v. và cách hệ thống điện toán của Google triển khai các lớp khác nhau này. Chúng tôi đã thấy rằng các lớp trừu tượng khi chuyển từ danh mục dịch vụ này sang danh mục dịch vụ khác, chẳng hạn như IaaS trong Paas, đòi hỏi ít kiến ​​thức hơn về cơ bản.

Đối với một doanh nghiệp, điều này mang lại sự linh hoạt quan trọng, không chỉ đáp ứng các mục tiêu hoạt động mà còn đáp ứng các lĩnh vực quan trọng khác như bảo mật và chi phí. Để tóm tắt:

Công cụ tính toán - cho phép bạn tạo máy ảo của riêng mình bằng cách phân bổ một số tài nguyên phần cứng nhất định, ví dụ: RAM, bộ xử lý, bộ nhớ. Nó cũng khá thực tế và ở mức độ thấp.

Động cơ Kubernetes là một bước tiến so với Công cụ tính toán và cho phép bạn sử dụng Kubernetes và vùng chứa để quản lý ứng dụng của mình, cho phép bạn mở rộng quy mô khi cần.

Ứng dụng động cơ là một bước tiến so với Kubernetes Engine, cho phép bạn chỉ tập trung vào mã của mình trong khi Google xử lý tất cả các yêu cầu nền tảng cơ bản.

Chức năng đám mây là đỉnh cao của kim tự tháp điện toán, cho phép bạn viết một hàm đơn giản mà khi chạy sẽ sử dụng toàn bộ cơ sở hạ tầng cơ bản để tính toán và trả về kết quả.

Cảm ơn bạn!

Twitter: @martinomburajr

Nguồn: www.habr.com

Thêm một lời nhận xét