Networks Business Online Việt Nam & International VH2

Điều phối dịch vụ trên Google Cloud – DevSamurai Vietnam

Đăng ngày 09 March, 2023 bởi admin
Việc đổi khác từ kiến trúc nguyên khối ( monolithic ) sang microservices đem lại những quyền lợi vô cùng rõ ràng, gồm có năng lực tái sử dụng, năng lực lan rộng ra và khiến việc kiểm soát và điều chỉnh, đổi khác trở nên thuận tiện hơn. Trong hầu hết mọi trường hợp, những yếu tố kinh doanh thương mại đều được xử lý bằng cách phối hợp nhiều dịch vụ nhỏ. Sự phối hợp này dựa trên những kiến trúc hướng sự kiện, hoàn toàn có thể được triển khai trải qua hai cách tiếp cập : choreography – biên đạo và orchestration – điều phối .

Service Choreography và Service Orchestration

Theo hướng Service Choreography, mỗi dịch vụ hoạt động giải trí độc lập và tương tác với những dịch vụ khác bằng cách phối hợp lỏng lẻo qua những sự kiện. Các sự kiện được tích hợp lỏng lẻo này hoàn toàn có thể được biến hóa và lan rộng ra quy mô một cách độc lập, có nghĩa là sẽ không có một điểm lỗi duy nhất nào. Tuy nhiên, việc có quá nhiều sự kiện ở giữa những dịch vụ khiến việc theo dõi chúng trở nên khó khăn vất vả hơn. Logic nhiệm vụ được phân phối và trải dài trên nhiều dịch vụ, chính thế cho nên không hề tập trung chuyên sâu vào một nơi duy nhất nào để giải quyết và xử lý sự cố. Không có một “ TT thực sự ” nào phân phối hiểu biết về mạng lưới hệ thống. Tất cả việc hiểu, update và khắc phục sự cố đều có tính phân tán .
Theo hướng Service Orchestration, để giải quyết và xử lý những thử thách giám sát của Choreography, nhà tăng trưởng cần thiết kế xây dựng một cấu trúc cho luồng sự kiện, tuy nhiên vẫn giữ được thực chất phối hợp lỏng lẻo của những dịch vụ hướng sự kiện. Bằng cách điều phối dịch vụ, những dịch vụ tương tác với nhau trải qua một bộ điều phối TT – nơi điều khiển và tinh chỉnh tổng thể những tương tác giữa những dịch vụ. Bộ điều phối này phân phối chính sách xem cấp cao về những quá trình nhiệm vụ để theo dõi việc thực thi và khắc phục sự cố. Trong Google Cloud, Workflows giải quyết và xử lý việc làm điều phối dịch vụ này .

Khi đưa ra quyết định lựa chọn giữa hai cách tiếp cận này để sử dụng cho ứng dụng của mình, bạn cần cân nhắc đến đặc điểm của các dịch vụ và trường hợp sử dụng của mình. Bạn nên lựa chọn orchestration trong bối cảnh chỉ có một microservice, và lựa chọn choreography khi có bối cảnh sử dụng phức tạp. Có nghĩa là, bạn có thể sử dụng choreography ở mức độ cao cấp hơn, kết hợp với orchestration ở mức độ thấp hơn trong cùng một hệ thống.

Google Cloud cung ứng những dịch vụ tương hỗ cả hai giải pháp trên. Pub / Sub và Eventarc đều tương thích với việc điều bối những dịch vụ theo hướng choreography, còn Workflows thích hợp với những dịch vụ được điều phối tập trung chuyên sâu theo giải pháp orchestration .

Workflows

Workflows là một dịch vụ được sử dụng để sắp xếp và tự động hóa Google Cloud và những dịch vụ API dựa trên HTTP với những tiến trình thao tác không sever. Đây là một giải pháp được quản trị trọn vẹn ( fully managed ) bởi Google, hoàn toàn có thể lan rộng ra và hoàn toàn có thể được quan sát để xác lập một tiến trình kinh doanh thương mại và điều phối những lệnh gọi đến dịch vụ. Workflows gọi những dịch vụ đó là những API web đơn thuần. Sử dụng Workflows, bạn hoàn toàn có thể xác lập luồng logic nhiệm vụ của mình bằng ngôn từ định nghĩa workflow dựa trên YAML và sử dụng giao điện người dùng hoặc API để kích hoạt quy trình tiến độ thao tác. Bạn cũng hoàn toàn có thể sử dụng Workflows để tự động hóa những tiến trình phức tạp, gồm có những việc làm hướng sự kiện và hàng loạt, những logic giải quyết và xử lý lỗi, chuỗi hoạt động giải trí và hơn thế nữa. Workflows đặc biệt quan trọng có ích với những dịch vụ Google Cloud triển khai những hoạt động giải trí tốn nhiều thời hạn, vì Workflows sẽ đợi đến khi chúng được triển khai xong, ngay cả khi mất đến hàng giờ đồng hồ đeo tay. Bằng những lệnh gọi lại ( callbacks ), Workflows hoàn toàn có thể đợi những sự kiện bên ngoài trong nhiều ngày hoặc thậm chí còn là nhiều tháng .

Pub/Sub

Pub/Sub cho phép các dịch vụ giao tiếp không đồng bộ với nhau, với độ trễ khoảng 100 mili giây. Pub/Sub được sử dụng cho phần mềm trung gian hướng thông điệp (messaging-oriented middleware) để tích hợp các dịch vụ hoặc như một hàng đợi để song song hóa các tác vụ. Nhà xuất bản (publisher) có thể gửi sự kiện đến dịch vụ Pub/Sub mà không cần quan tâm đến cách thực hoặc thời gian các sự kiện này được xử lý. Sau đó, Pub/Sub sẽ cung cấp sự kiện cho tất cả các dịch vụ cần phản hồi với chúng (subcribers). Pub/Sub cũng được sử dụng để phân tích các luồng phát trực tuyến và đường ống tích hợp dữ liệu để nhập và phân phối dữ liệu.

Eventarc

Eventarc cho phép bạn thiết kế xây dựng những kiến ​ ​ trúc hướng sự kiện mà không cần phải tiến hành, tùy chỉnh hoặc duy trì hạ tầng bên dưới. Nó phân phối một giải pháp được tiêu chuẩn hóa để quản trị luồng biến hóa trạng thái – hay còn được gọi là những sự kiện – giữa những microservice tách rời nhau. Eventarc định tuyến những sự kiện này đến Cloud Run, đồng thời quản trị phân phối, bảo mật thông tin, ủy quyền, năng lực quan sát và giải quyết và xử lý lỗi cho bạn. Nó cũng cung ứng một cách thuận tiện để nhận những sự kiện, không riêng gì từ Pub / Sub topic mà còn từ 1 số ít nguồn Google Cloud nhờ tích hợp Audit Log và Pub / Sub. Bất kỳ dịch vụ nào có tích hợp Audit Log hoặc bất kể ứng dụng nào hoàn toàn có thể gửi thông điệp đến Pub / Sub topic đều hoàn toàn có thể là một nguồn sự kiện cho Eventarc .

Các dịch vụ bổ sung hỗ trợ cả choreography và orchestration

Cloud Tasks

Cloud Tasks cho phép bạn phân tách các phần công việc có thể thực hiện độc lập bên ngoài luồng ứng dụng chính và gửi chúng đi để xử lý không đồng bộ bằng các trình xử lý bạn tạo ra. Những phần công việc độc lập này được gọi là các tác vụ (tasks). Cloud Tasks hỗ trợ tăng tốc thời gian phản hồi người dùng bằng cách ủy quyền các hoạt động nền có khả năng làm chậm dịch vụ như cập nhật cơ sở dữ liệu cho nhân viên. Bên cạnh đó, nó cũng có thể giúp giảm thiểu lưu lượng truy cập tăng đột biến bằng cách loại bỏ các tác vụ không phải của người dùng trực tiếp ra khoải luồng người dùng chính.

Phân biệt Pub/Sub và Cloud Tasks: Mục đích của Pub/Sub là hỗ trợ lệnh gọi ngầm – một nhà xuất bản (publisher) ngầm khiến người đăng ký (subscribers) thực thi hành động bằng cách xuất bản một sự kiện. Còn mục đích của Cloud Tasks là gọi hàm một cách rõ ràng – nhà xuất bản giữ toàn quyền kiểm soát công đoạn thực thi, bao gồm việc chỉ định điểm cuối nơi mỗi thông điệp được gửi. Không giống như Pub/Sub, Cloud Tasks cung cấp các công cụ để quản lý hàng đợi và tác vụ, bao gồm lập lịch phân phối cụ thể, kiểm soát tốc độ, thử lại và loại bỏ trùng lắp.

Cloud Scheduler

Với Cloud Scheduler, bạn hoàn toàn có thể thiết lập để những đơn vị chức năng việc làm đã được lên lịch triển khai vào những thời gian nhất định hoặc những khoảng chừng thời hạn đều đặn, thường được gọi là cron jobs. Cloud Scheduler hoàn toàn có thể kích hoạt một workflow ( orchestration ) hoặc tạo ra một thông điệp Pub / Sub ( choreography ). Các trường hợp sử dụng nổi bật của Cloud Scheduler gồm có gửi email báo cáo giải trình hằng ngày, update một số ít tài liệu đã lưu trong bộ nhớ cache sau mỗi X phút, hoặc update thông tin tóm tắt mỗi giờ một lần .

Theo Google Cloud Blog

Source: https://vh2.com.vn
Category : Công Cộng