Tại sao chúng tôi tạo Lưới dịch vụ doanh nghiệp?

Service Mesh là một mẫu kiến ​​trúc nổi tiếng để tích hợp các dịch vụ vi mô và di chuyển sang cơ sở hạ tầng đám mây. Ngày nay, trong thế giới container đám mây, việc thực hiện nếu không có nó là khá khó khăn. Một số triển khai lưới dịch vụ nguồn mở đã có sẵn trên thị trường, nhưng chức năng, độ tin cậy và bảo mật của chúng không phải lúc nào cũng đủ, đặc biệt là khi đáp ứng yêu cầu của các công ty tài chính lớn trên cả nước. Đó là lý do tại sao tại Sbertech, chúng tôi quyết định tùy chỉnh Service Mesh và muốn nói về những điều thú vị về Service Mesh, điều gì không thú vị và những gì chúng tôi sẽ làm với nó.

Tại sao chúng tôi tạo Lưới dịch vụ doanh nghiệp?

Sự phổ biến của mẫu Service Mesh ngày càng tăng cùng với sự phổ biến của công nghệ đám mây. Đây là lớp cơ sở hạ tầng chuyên dụng giúp đơn giản hóa sự tương tác giữa các dịch vụ mạng khác nhau. Các ứng dụng đám mây hiện đại bao gồm hàng trăm hoặc thậm chí hàng nghìn dịch vụ như vậy, mỗi dịch vụ có thể có hàng nghìn bản sao.

Tại sao chúng tôi tạo Lưới dịch vụ doanh nghiệp?

Sự tương tác giữa và quản lý các dịch vụ này là nhiệm vụ chính của Lưới dịch vụ. Trên thực tế, đây là mô hình mạng gồm nhiều proxy, được quản lý tập trung và thực hiện một tập hợp các chức năng rất hữu ích.

Ở cấp độ proxy (mặt phẳng dữ liệu):

  • Phân bổ và phân phối các chính sách định tuyến và cân bằng lưu lượng
  • Phân phối khóa, chứng chỉ, mã thông báo
  • Thu thập dữ liệu từ xa, tạo số liệu giám sát
  • Tích hợp với cơ sở hạ tầng giám sát và bảo mật

Ở cấp độ mặt phẳng điều khiển:

  • Áp dụng chính sách định tuyến và cân bằng lưu lượng
  • Quản lý số lần thử lại và hết thời gian chờ, phát hiện các nút “chết” (ngắt mạch), quản lý lỗi chèn và đảm bảo khả năng phục hồi dịch vụ thông qua các cơ chế khác
  • Xác thực/ủy quyền cuộc gọi
  • Giảm số liệu (khả năng quan sát)

Phạm vi người dùng quan tâm đến sự phát triển của công nghệ này rất rộng - từ các công ty khởi nghiệp nhỏ đến các tập đoàn Internet lớn, chẳng hạn như PayPal.

Tại sao Service Mesh cần thiết trong khu vực doanh nghiệp?

Có nhiều lợi ích rõ ràng khi sử dụng Lưới dịch vụ. Trước hết, nó đơn giản là thuận tiện cho các nhà phát triển: để viết mã nền tảng công nghệ xuất hiện, giúp đơn giản hóa đáng kể việc tích hợp vào cơ sở hạ tầng đám mây do lớp vận chuyển hoàn toàn tách biệt khỏi logic ứng dụng.

Ngoài ra, Service Mesh đơn giản hóa mối quan hệ giữa nhà cung cấp và người tiêu dùng. Ngày nay, các nhà cung cấp API và người tiêu dùng có thể tự mình đồng ý về giao diện và hợp đồng dễ dàng hơn nhiều mà không cần đến một trung gian và trọng tài tích hợp đặc biệt - bus dịch vụ doanh nghiệp. Cách tiếp cận này ảnh hưởng đáng kể đến hai chỉ số. Tốc độ đưa chức năng mới ra thị trường (thời gian đưa ra thị trường) tăng lên, nhưng đồng thời chi phí của giải pháp cũng tăng lên do việc tích hợp phải được thực hiện độc lập. Việc các nhóm phát triển chức năng kinh doanh sử dụng Lưới dịch vụ giúp duy trì sự cân bằng ở đây. Do đó, các nhà cung cấp API có thể tập trung hoàn toàn vào thành phần ứng dụng của dịch vụ của họ và chỉ cần xuất bản nó trong Lưới dịch vụ - API sẽ ngay lập tức có sẵn cho tất cả khách hàng và chất lượng tích hợp sẽ sẵn sàng cho sản xuất và không yêu cầu một lần nào. dòng mã bổ sung.

Ưu điểm tiếp theo đó là nhà phát triển sử dụng Service Mesh chỉ tập trung vào chức năng kinh doanh - về sản phẩm chứ không phải về thành phần công nghệ của dịch vụ. Ví dụ, bạn không còn phải suy nghĩ về thực tế là trong tình huống dịch vụ được gọi qua mạng, lỗi kết nối có thể xảy ra ở đâu đó. Ngoài ra, Service Mesh giúp cân bằng lưu lượng giữa các bản sao của cùng một dịch vụ: nếu một trong các bản sao “chết” thì hệ thống sẽ chuyển toàn bộ lưu lượng truy cập sang các bản sao trực tiếp còn lại.

Lưới dịch vụ - đây là cơ sở tốt để tạo các ứng dụng phân tán, ẩn với khách hàng các chi tiết về việc cung cấp các cuộc gọi đến các dịch vụ của mình cả bên trong và bên ngoài. Tất cả các ứng dụng sử dụng Service Mesh đều bị cô lập ở cấp độ truyền tải cả với mạng và với nhau: không có giao tiếp giữa chúng. Trong trường hợp này, nhà phát triển có toàn quyền kiểm soát các dịch vụ của mình.

Cần lưu ý rằng Việc cập nhật các ứng dụng phân tán trong môi trường lưới dịch vụ trở nên dễ dàng hơn. Ví dụ: triển khai xanh lam/xanh lục, trong đó có hai môi trường ứng dụng để cài đặt, một trong số đó không được cập nhật và đang ở chế độ chờ. Việc quay lại phiên bản trước trong trường hợp phát hành không thành công được thực hiện bởi một bộ định tuyến đặc biệt, vai trò của Service Mesh sẽ đáp ứng tốt. Để kiểm tra phiên bản mới, bạn có thể sử dụng phát hành chim hoàng yến — chỉ chuyển sang phiên bản mới 10% lưu lượng truy cập hoặc yêu cầu từ một nhóm khách hàng thí điểm. Lưu lượng chính đi về phiên bản cũ, không có gì bị hỏng.

Ngoài ra Service Mesh cung cấp cho chúng tôi khả năng kiểm soát SLA theo thời gian thực. Hệ thống proxy phân tán sẽ không cho phép dịch vụ bị lỗi khi một trong các máy khách vượt quá hạn ngạch được chỉ định cho nó. Nếu thông lượng API bị hạn chế, sẽ không ai có thể áp đảo nó bằng một số lượng lớn giao dịch: Service Mesh đứng trước dịch vụ và không cho phép lưu lượng truy cập không cần thiết. Nó chỉ đơn giản là sẽ chống lại lớp tích hợp và bản thân các dịch vụ sẽ tiếp tục hoạt động mà không nhận ra.

Nếu một công ty muốn giảm chi phí cho việc phát triển các giải pháp tích hợp, Service Mesh cũng giúp: Bạn có thể chuyển sang phiên bản nguồn mở từ các sản phẩm thương mại. Lưới dịch vụ doanh nghiệp của chúng tôi dựa trên phiên bản nguồn mở của Lưới dịch vụ.

Sự thuận lợi khác - sự sẵn có của một bộ dịch vụ tích hợp đầy đủ. Bởi vì tất cả sự tích hợp đều được xây dựng thông qua phần mềm trung gian này nên chúng tôi có thể quản lý tất cả lưu lượng tích hợp và kết nối giữa các ứng dụng hình thành nên hoạt động kinh doanh cốt lõi của công ty. Nó rất thoải mái.

Và cuối cùng Service Mesh khuyến khích công ty chuyển sang cơ sở hạ tầng năng động. Bây giờ nhiều người đang hướng tới việc container hóa. Cắt một khối nguyên khối thành các vi dịch vụ, triển khai tất cả những điều này một cách tuyệt vời - chủ đề đang ngày càng gia tăng. Nhưng khi bạn cố gắng chuyển một hệ thống đã được sản xuất nhiều năm sang một nền tảng mới, bạn sẽ ngay lập tức gặp phải một số vấn đề: đẩy tất cả vào các thùng chứa và triển khai nó trên nền tảng này là điều không hề dễ dàng. Và việc triển khai, đồng bộ hóa và tương tác của các thành phần phân tán này là một chủ đề rất phức tạp khác. Họ sẽ giao tiếp với nhau như thế nào? Sẽ có thất bại xếp tầng? Service Mesh cho phép bạn giải quyết một số vấn đề này và tạo điều kiện thuận lợi cho việc di chuyển từ kiến ​​trúc cũ sang kiến ​​trúc mới do bạn có thể quên logic trao đổi mạng.

Tại sao bạn cần tùy chỉnh Service Mesh?

Trong công ty của chúng tôi, hàng trăm hệ thống và mô-đun cùng tồn tại và thời gian chạy rất tải. Vì vậy, mô hình đơn giản của một hệ thống gọi hệ thống khác và nhận được phản hồi là không đủ, bởi vì trong quá trình sản xuất, chúng tôi muốn nhiều hơn thế. Bạn còn cần gì nữa từ lưới dịch vụ doanh nghiệp?

Tại sao chúng tôi tạo Lưới dịch vụ doanh nghiệp?

Dịch vụ xử lý sự kiện

Hãy tưởng tượng rằng chúng ta cần thực hiện xử lý sự kiện theo thời gian thực - một hệ thống phân tích hành động của khách hàng trong thời gian thực và có thể ngay lập tức đưa ra lời đề nghị phù hợp cho anh ta. Để thực hiện chức năng tương tự, hãy sử dụng mô hình kiến ​​trúc được gọi là kiến ​​trúc hướng sự kiện (EDA). Không có Lưới dịch vụ hiện tại nào thực sự hỗ trợ các mẫu như vậy, nhưng điều này rất quan trọng, đặc biệt đối với một ngân hàng!

Một điều khá lạ là Cuộc gọi thủ tục từ xa (RPC) được hỗ trợ bởi tất cả các phiên bản của Service Mesh, nhưng chúng lại không thân thiện với EDA. Bởi vì Service Mesh là một loại tích hợp phân tán hiện đại và EDA là một mẫu kiến ​​trúc rất phù hợp cho phép bạn thực hiện những điều độc đáo về mặt trải nghiệm của khách hàng.

Lưới dịch vụ doanh nghiệp của chúng tôi sẽ giải quyết vấn đề này. Ngoài ra, chúng tôi muốn thấy trong đó việc triển khai phân phối được đảm bảo, phát trực tuyến và xử lý sự kiện phức tạp bằng nhiều bộ lọc và mẫu khác nhau.

Dịch vụ truyền tập tin

Ngoài EDA, sẽ rất tuyệt nếu có thể truyền tệp: ở quy mô Doanh nghiệp, thường chỉ có thể tích hợp tệp. Đặc biệt, mẫu kiến ​​trúc ETL (Trích xuất, Chuyển đổi, Tải) được sử dụng. Trong đó, theo quy định, mọi người chỉ trao đổi các tệp: dữ liệu lớn được sử dụng, điều này là không thực tế để thực hiện các yêu cầu riêng biệt. Khả năng hỗ trợ truyền tệp nguyên bản trong Enterprise Service Mesh mang đến cho bạn sự linh hoạt mà doanh nghiệp của bạn cần.

Dịch vụ điều phối

Các tổ chức lớn hầu như luôn có các nhóm khác nhau tạo ra các sản phẩm khác nhau. Ví dụ, trong ngân hàng, một số nhóm làm việc với tiền gửi, trong khi những nhóm khác làm việc với các sản phẩm cho vay, và có khá nhiều trường hợp như vậy. Đây là những người khác nhau, những nhóm khác nhau tạo ra sản phẩm của họ, phát triển API và cung cấp chúng cho người khác. Và rất thường xuyên cần phải soạn thảo các dịch vụ này, cũng như triển khai logic phức tạp để gọi tuần tự một bộ API. Để giải quyết vấn đề này, bạn cần một giải pháp trong lớp tích hợp sẽ đơn giản hóa tất cả logic tổng hợp này (gọi một số API, mô tả lộ trình yêu cầu, v.v.). Đây là dịch vụ điều phối trong Enterprise Service Mesh.

AI và ML

Khi các vi dịch vụ giao tiếp thông qua một lớp tích hợp duy nhất, Lưới dịch vụ sẽ biết mọi thứ về lệnh gọi của từng dịch vụ một cách tự nhiên. Chúng tôi thu thập dữ liệu từ xa: ai đã gọi cho ai, khi nào, trong bao lâu, bao nhiêu lần, v.v. Khi có hàng trăm nghìn dịch vụ này và hàng tỷ cuộc gọi, thì tất cả những điều này sẽ tích lũy và tạo thành Dữ liệu lớn. Dữ liệu này có thể được phân tích bằng AI, học máy, v.v. và sau đó có thể thực hiện một số điều hữu ích dựa trên kết quả phân tích. Sẽ là phù hợp nếu bàn giao ít nhất một phần quyền kiểm soát tất cả lưu lượng truy cập mạng và các cuộc gọi ứng dụng được tích hợp vào Lưới dịch vụ này cho trí tuệ nhân tạo.

Dịch vụ cổng API

Thông thường, Lưới dịch vụ có các proxy và dịch vụ liên lạc với nhau trong phạm vi đáng tin cậy. Nhưng cũng có những đối tác bên ngoài. Các yêu cầu đối với API dành cho nhóm người tiêu dùng này nghiêm ngặt hơn nhiều. Chúng tôi chia nhiệm vụ này thành hai phần chính.

  • Безопасность. Các vấn đề liên quan đến ddos, lỗ hổng của giao thức, ứng dụng, hệ điều hành, v.v.
  • Quy mô. Khi số lượng API cần được phục vụ cho khách hàng lên tới hàng nghìn hoặc thậm chí hàng trăm nghìn, thì cần có một số loại công cụ quản lý cho bộ API này. Bạn cần liên tục theo dõi API: chúng có hoạt động hay không, trạng thái của chúng là gì, lưu lượng truy cập đang chảy là gì, số liệu thống kê nào, v.v. Cổng API sẽ xử lý tác vụ này đồng thời làm cho toàn bộ quy trình có thể quản lý và bảo mật. Nhờ thành phần này, Enterprise Service Mesh học cách dễ dàng xuất bản cả API bên trong và bên ngoài.

Dịch vụ hỗ trợ cho các giao thức và định dạng dữ liệu cụ thể (Cổng AS)

Hiện tại, hầu hết các giải pháp Lưới dịch vụ chỉ có thể hoạt động nguyên bản với lưu lượng HTTP và HTTP2 hoặc ở chế độ giảm ở cấp TCP/IP. Enterprise Service Mesh đang nổi lên với nhiều giao thức truyền dữ liệu rất cụ thể khác. Một số hệ thống có thể sử dụng các nhà môi giới tin nhắn, một số khác được tích hợp ở cấp cơ sở dữ liệu. Nếu công ty có SAP thì công ty cũng có thể sử dụng hệ thống tích hợp của riêng mình. Hơn nữa, tất cả những điều này đều có tác dụng và là một phần quan trọng của hoạt động kinh doanh.

Bạn không thể chỉ nói: “Hãy từ bỏ di sản và tạo ra các hệ thống mới có thể sử dụng Service Mesh”. Để kết nối tất cả các hệ thống cũ với hệ thống mới (trên kiến ​​trúc microservice), các hệ thống có thể sử dụng Service Mesh sẽ cần một số loại adapter, trung gian, cổng. Đồng ý, sẽ thật tuyệt nếu nó được đựng trong hộp cùng với dịch vụ. Cổng AC có thể hỗ trợ bất kỳ tùy chọn tích hợp nào. Hãy tưởng tượng, bạn chỉ cần cài đặt Enterprise Service Mesh và nó sẵn sàng tương tác với tất cả các giao thức bạn cần. Cách tiếp cận này rất quan trọng đối với chúng tôi.

Đây đại khái là cách chúng ta tưởng tượng về phiên bản công ty của Service Mesh (Enterprise Service Mesh). Tùy chỉnh được mô tả giải quyết hầu hết các vấn đề phát sinh khi cố gắng sử dụng các phiên bản nguồn mở có sẵn của nền tảng tích hợp. Được giới thiệu chỉ vài năm trước, kiến ​​trúc Service Mesh tiếp tục phát triển và chúng tôi rất vui mừng được đóng góp vào sự phát triển của nó. Chúng tôi hy vọng rằng kinh nghiệm của chúng tôi sẽ hữu ích cho bạn.

Nguồn: www.habr.com

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