Triển Khai Quản Lý Lưu Lượng Và Chiến Lược Giám Sát Cho Dịch Vụ Web
- 13-07-2024
- Toanngo92
- 0 Comments
Mục lục
Giới thiệu về Azure Load Balancer
Azure Load Balancer có thể được định nghĩa là một công cụ giúp các nhà phát triển mở rộng ứng dụng của họ, từ đó cung cấp tính khả dụng cao cho các dịch vụ của họ.
Một số tính năng của nó bao gồm:
- Phù hợp cho cả kịch bản đầu vào và đầu ra.
- Cung cấp độ trễ thấp.
- Cung cấp thông lượng cao.
- Mở rộng nhiều luồng cho tất cả các ứng dụng TCP và UDP.
Load Balancer chấp nhận các luồng đầu vào tại giao diện trước và truyền chúng đến các trường hợp trong pool backend dựa trên các quy tắc được xác định trước. Hơn nữa, các nhà phát triển có thể sử dụng Load Balancer công cộng để tạo mạng đầu ra cho các VM trong mạng ảo của họ. Để làm điều này, họ chỉ cần chuyển đổi các địa chỉ IP riêng hiện có của họ thành công cộng.
Load Balancer giúp các nhà phát triển thực hiện các tác vụ sau:
- Cân bằng tải lưu lượng Internet đầu vào đến các VM của họ, được gọi là Load Balancer công cộng.
- Cân bằng tải lưu lượng qua các VM trong một mạng ảo. Các nhà phát triển có thể đi đến giao diện trước của Load Balancer từ một mạng đã cho trong các trường hợp như kịch bản hybrid.
- Chuyển tiếp lưu lượng port đến port đích trên các VM cụ thể với các quy tắc NAT (Network Address Translation) đầu vào.
- Cung cấp kết nối ra ngoài cho các VM trong mạng ảo bằng cách sử dụng Load Balancer công cộng.
Hình bên dưới minh họa cách Load Balancer có thể phân phối lưu lượng bằng cách triển khai thuật toán dựa trên hash.
Nhà phát triển có thể định nghĩa một quy tắc cân bằng tải để phân phối lưu lượng tại giao diện trước đến các trường hợp trong pool backend. Khi làm điều này, nó triển khai một thuật toán dựa trên hash, như minh họa trong Hình 14.1. Một máy chủ nhận lưu lượng hash mới khi đầu ra của một truy vấn ngụ ý một điểm cuối backend đáng tin cậy. Theo mặc định, một hash 5-tuple bao gồm kết hợp các địa chỉ IP nguồn và đích, các port nguồn và đích, và số giao thức IP đến các máy chủ có sẵn.
Tất cả các gói thuộc cùng một luồng lưu lượng sẽ đến cùng một trường hợp backend tồn tại tại phía sau của giao diện trước đã cân bằng tải. Nếu một luồng mới được kích hoạt từ cùng một IP nguồn, nó dẫn đến nguồn được sửa đổi, do đó thuật toán hash 5-tuple có thể đẩy lưu lượng đến một điểm cuối backend khác.
Các khả năng của Load Balancer cho các ứng dụng triển khai Giao thức Điều khiển Truyền dẫn (TCP) và Giao thức Datagram Người dùng (UDP) bao gồm:
- Cân bằng tải: Load Balancer giúp phân phối lưu lượng đều giữa các máy chủ backend.
- Tái cấu hình tự động: Load Balancer có thể giúp tự động mở rộng hoặc giảm tải.
- Chuyển tiếp port: Các nhà phát triển có thể tạo quy tắc NAT đầu vào cho một mạng ảo để chuyển tiếp lưu lượng từ một port cụ thể của một địa chỉ IP giao diện trước nhất định đến một port cần thiết của một ví dụ backend cụ thể.
- Agnostic và minh bạch với ứng dụng: Load Balancer có thể hoạt động với bất kỳ ứng dụng TCP hoặc UDP nào mà không giao tiếp trực tiếp với chúng. Nó không chặn các luồng hoặc thực hiện bất kỳ tác vụ nào liên quan đến cổng ứng dụng.
- Probes sức khỏe: Load Balancer sử dụng probes sức khỏe để xác định tình trạng của các trường hợp trong pool backend. Nếu không có phản hồi từ một probe, nó sẽ ngừng truyền bất kỳ yêu cầu mới nào đến trường hợp đó. Điều này không ảnh hưởng đến các kết nối hiện tại.
Làm việc với Azure Application Gateway và Traffic Manager
Azure Application Gateway có thể được định nghĩa là một Load Balancer phù hợp để xử lý lưu lượng Web đầu vào và nhắm mục tiêu đến các ứng dụng Web. Thông thường, các Load Balancer hoạt động trên tầng vận chuyển, tức là tầng 4 của mô hình OSI, bao gồm TCP và UDP. Chúng phân phối lưu lượng đầu vào dựa trên địa chỉ IP nguồn và port. Tuy nhiên, bằng cách sử dụng gateway này, các nhà phát triển có quyền thực hiện định tuyến cụ thể hơn. Nó có khả năng thực hiện định tuyến dựa trên URL và nhiều hơn nữa. Hình bên dưới minh họa cách ứng dụng gateway xử lý tài nguyên đến từ các vị trí khác nhau.
Người dùng không biết nguồn của các tài nguyên. Để làm cho các tài nguyên này có sẵn từ nhiều vị trí là trách nhiệm của Load Balancer. Điều này được xử lý tại lớp của Azure Application Gateway, như minh họa trong Hình bên trên.
Các tính năng của Azure Application Gateway:
- Định tuyến dựa trên URL: Sử dụng các đường dẫn URL được chỉ định trong yêu cầu để định tuyến lưu lượng đầu vào đến các pool backend.
- Lưu trữ nhiều trang Web: Cho phép sử dụng nhiều trang Web trên một instance của Application Gateway, tạo ra một topology hợp lý và cho phép chèn lên đến 20 trang Web nhắm mục tiêu đến các pool tương ứng.
- Session affinity: Giữ phiên của một khách hàng cụ thể trên cùng một máy chủ bằng cách sử dụng cookie được quản lý bởi gateway.
- Chuyển hướng: Chuyển đổi HTTP thành HTTPS để đảm bảo rằng tất cả các tương tác giữa ứng dụng và khách hàng được mã hóa.
Azure Traffic Manager
Azure Traffic Manager cho phép các nhà phát triển phân bổ lưu lượng toàn cầu. Nó dựa trên DNS và cung cấp khả năng truy cập tốt và phản hồi nhanh chóng. Với sự trợ giúp của DNS, nó chấp nhận yêu cầu và gán nó cho dịch vụ phù hợp. Để làm điều này, nó kiểm tra các điểm cuối khỏe mạnh và sử dụng thuật toán định tuyến để định tuyến lưu lượng.
Các tính năng chính của Traffic Manager:
- Tăng cường khả năng truy cập ứng dụng: Traffic Manager cung cấp mức độ truy cập cao cho các ứng dụng quan trọng bằng cách theo dõi các điểm cuối và cung cấp failover tự động trong trường hợp điểm cuối bị hỏng.
- Thực hiện bảo trì mà không trì hoãn: Cho phép thực hiện các tác vụ bảo trì được lên lịch mà không có thời gian chết bằng cách phân bổ lưu lượng đến các điểm cuối khác đang hoạt động.
- Phân phối lưu lượng trong trường hợp các thiết lập lớn: Sử dụng các profile Traffic Manager lồng nhau để hợp nhất các phương pháp định tuyến lưu lượng, phát triển các quy tắc tiên tiến và thích ứng, giúp mở rộng trong các triển khai lớn và phức tạp.
- Nâng cao hiệu suất của ứng dụng: Traffic Manager cung cấp tăng cường khả năng phản hồi của các ứng dụng bằng cách hướng lưu lượng người dùng đến điểm cuối gần nhất hoặc phù hợp nhất, cải thiện trải nghiệm người dùng tổng thể.
- Hợp nhất các ứng dụng hybrid: Cho phép triển khai các điểm cuối bên ngoài và không thuộc Azure, sử dụng với đám mây hybrid và các triển khai hiện tại.
Giới thiệu về Azure Application Insights và Log Analytics
Application Insights là một dịch vụ giúp các nhà phát triển trong Quản lý Hiệu suất Ứng dụng (APM) khi làm việc trên nhiều môi trường khác nhau. Nó hỗ trợ theo dõi các ứng dụng Web trực tiếp và xác định các sự cố hiệu suất. Nó có nhiều công cụ phân tích mà họ có thể sử dụng để phát hiện các vấn đề và phân tích những gì người dùng thực sự làm trên ứng dụng. Sử dụng dịch vụ này, họ có thể tập trung vào cách cải thiện hiệu suất và tăng tính dễ sử dụng của ứng dụng.
Các môi trường phù hợp cho Application Insights:
- .NET
- Node.js
- J2EE
Nó hoạt động trên các ứng dụng cài đặt trên hệ thống hoặc trên đám mây. Nó hỗ trợ quá trình DevOps và cung cấp các điểm kết nối với nhiều công cụ phát triển. Đối với các ứng dụng di động, các nhà phát triển có thể sử dụng nó để theo dõi và kiểm tra telemetry kết hợp với Visual Studio App Center.
Quy trình thực hiện:
- Cài đặt một gói trên ứng dụng.
- Truy cập portal Microsoft Azure và cấu hình một resource Application Insights.
- Sau khi thành công, gói công cụ bắt đầu theo dõi các ứng dụng và chuyển thống kê telemetry đến portal.
Các nguồn dữ liệu có thể lấy từ:
- Counters hiệu suất
- Azure diagnostics
- Docker logs
Ngoài ra, có thể cấu hình các Web tests để định kỳ chuyển yêu cầu đến dịch vụ Web một cách thường xuyên. Hình bên dưới minh họa Application Insight cho ứng dụng Web trên Azure.
Azure Log Analytics
Azure Monitor thu thập dữ liệu log và lưu trữ chúng trong Log Analytics. Log Analytics chịu trách nhiệm thu thập telemetry và thống kê từ các tài nguyên khác nhau. Nó cung cấp cho các nhà phát triển một ngôn ngữ truy vấn giúp thực hiện các phân tích nâng cao.
Các nhà phát triển có thể sử dụng truy vấn log để lấy thông tin từ Log Analytics. Truy vấn này là cơ sở để thực hiện bất kỳ nhiệm vụ nào, chẳng hạn như nghiên cứu thông tin trong portal, thiết lập quy tắc để cảnh báo nhà phát triển về một vấn đề nào đó và để lấy thông tin qua API của Log Analytics. Hình bên dưới minh họa Analytics cho việc sử dụng đĩa của Azure VM.
Những Tính Năng Được Cung Cấp Bởi Trang Log Analytics
Tabs:
- Tabs: Các nhà phát triển phải tạo các tab riêng biệt cho mỗi truy vấn mà họ muốn làm việc.
Visualizations:
- Visualizations: Các tùy chọn biểu đồ khác nhau.
Syntax Highlighting:
- Syntax highlighting: Giúp nâng cao khả năng đọc truy vấn của các nhà phát triển.
Query Explorer:
- Query explorer: Các nhà phát triển có thể sử dụng tính năng này để xem các truy vấn và hàm đã được tạo và lưu trữ trước đó.
Possibilities:
- Possibilities: Các nhà phát triển có thể sử dụng tính năng này để xem cách thông tin của họ được cấu trúc, giúp họ truy vấn một cách tốt hơn.
Share:
- Share: Các nhà phát triển có thể tạo liên kết đến các truy vấn và cũng ghim chúng vào bảng điều khiển Azure được chia sẻ bởi các nhà phát triển khác.
Smart Analytics:
- Smart Analytics: Các nhà phát triển có thể phát hiện bất kỳ đột biến nào và phân tích nguyên nhân của chúng.
Column Selection:
- Column selection: Các nhà phát triển có thể sử dụng tính năng này trên các cột kết quả truy vấn để nhóm và phân loại chúng.
Cấu Hình Application Insights
Các bước thực hiện để cấu hình Application Insight cho ứng dụng web được lưu trữ:
Bước 1:
Đăng nhập vào Azure Portal với ID đăng nhập và mật khẩu.
Bước 2:
Từ menu chính bên trái, nhấp vào “App Services“, hệ thống sẽ tải danh sách các ứng dụng web đang chạy. Hình bên dưới cho thấy trang danh sách ứng dụng web.
Bước 3:
Chọn và nhấp vào ứng dụng web đã được tạo và lưu trữ trước đó. Hệ thống sẽ tải trang thuộc tính của ứng dụng web. Nhấp vào “Application Insight” từ menu bên trái. Vì chưa có Application Insight nào được tạo, nên hệ thống sẽ tải một màn hình trống như hình tiếp theo.
Bước 4:
Trên trang Application Insight, nhấp vào “Turn on Application Insights” để bắt đầu tạo một Application Insight mới. Hình bên dưới cho thấy quá trình tạo một Application Insight mới.
Bước 5:
Cung cấp các thông tin cần thiết như Tên tài nguyên mới, Địa điểm, và nhấn Apply. Một cửa sổ xác nhận sẽ xuất hiện. Nhấp Yes để tiếp tục quá trình tạo mới.
Bây giờ, Application Insight đã sẵn sàng và nhà phát triển có thể truy cập từ trang Quản lý. Hình tiếp theo cho thấy Application Insight đang chạy.
Giới thiệu về Azure Event Hubs và Stream Analytics
Azure Event Hubs cung cấp một môi trường cho phép dòng dữ liệu lớn (Big Data) được truyền đi. Nó cũng cung cấp một dịch vụ gọi là dịch vụ tiếp nhận sự kiện, có khả năng chấp nhận và xử lý gần một triệu sự kiện mỗi giây. Các phần mềm và thiết bị khác nhau tạo ra sự kiện, thông tin và dữ liệu telemetri, có thể được thực thi và lưu trữ bằng cách sử dụng Event Hubs. Nhà cung cấp phân tích thời gian thực hoặc bộ chuyển đổi/lưu trữ hàng loạt có thể được sử dụng để chuyển đổi và lưu trữ thông tin như vậy.
Dưới đây là các trường hợp mà các nhà phát triển có thể sử dụng Event Hubs:
- Để phát hiện các bất thường, chẳng hạn như gian lận hoặc các giá trị ngoại lệ.
- Để thực hiện việc ghi nhật ký trong các ứng dụng.
- Để thực hiện các đường ống phân tích, ví dụ như clickstreams.
- Để thực hiện bảng điều khiển thời gian thực.
- Để lưu trữ thông tin.
- Để xử lý giao dịch.
- Để xử lý telemetri của người dùng và thiết bị.
Vì sao nhà phát triển cần sử dụng Event Hubs? Tất cả thông tin được thu thập không thể coi là có thể sử dụng ngay lập tức. Dữ liệu chỉ có giá trị khi nó có thể được xử lý một cách dễ dàng và khi có thể thu được những thông tin hữu ích. Event Hubs cung cấp một môi trường thực thi phân tán có các dịch vụ phân tích khác trong và ngoài Azure để tạo ra một đường ống dữ liệu lớn hoạt động đầy đủ.
Event Hubs có thể được xem như là lối vào cho một đường ống sự kiện, thường được biết đến là một bộ tiếp nhận sự kiện. Một bộ tiếp nhận sự kiện là một thành phần nằm giữa nhà sản xuất sự kiện và người sử dụng sự kiện để phân tách quá trình tạo ra dòng sự kiện và quá trình sử dụng sự kiện.
Azure Stream Analytics được định nghĩa là một công cụ thực thi sự kiện cho phép các nhà phát triển nghiên cứu các phần lớn thông tin đến từ các thiết bị khác nhau. Thông tin có thể từ các nguồn như dữ liệu cảm biến, cấp dữ liệu truyền thông xã hội, thiết bị, trang web và ứng dụng. Các mẫu dữ liệu và mối quan hệ có thể được phát hiện từ đó có thể được sử dụng để kích hoạt các hành động khác nhau, chẳng hạn như cảnh báo, cung cấp dữ liệu cho công cụ báo cáo hoặc lưu trữ dữ liệu cho mục đích sử dụng sau này.
Dưới đây là các lý do để sử dụng stream analytics:
- Thực hiện hợp nhất cảm biến Internet of Things (IoT) và phân tích clickstream.
- Thực hiện phân tích Weblogs.
- Thực hiện phân tích không gian địa lý cho quản lý đội xe và trong các trường hợp xe không có tài xế.
- Giám sát từ xa và bảo trì tài sản có giá trị cao.
- Thực hiện phân tích thời gian thực trên dữ liệu điểm bán hàng (POS) để điều chỉnh hàng tồn kho và phát hiện các bất thường.
- Thực hiện telemetri thiết bị trực tiếp.
Azure Front Door
Azure Front Door là một dịch vụ cho phép nhà phát triển cải thiện tính sẵn có, giảm độ trễ và mở rộng hiệu quả. Nó cung cấp trải nghiệm bảo mật cho người dùng của bạn, dù bạn đang cung cấp nội dung, tập tin, hay xây dựng các ứng dụng và API toàn cầu. Azure Front Door là một mạng lưới phân phối nội dung đám mây (CDN) hiện đại của Microsoft. Nó đảm bảo truy cập nhanh chóng, đáng tin cậy và an toàn cho người dùng trên toàn thế giới.
Azure Front Door là một dịch vụ mạnh mẽ kết hợp cân bằng tải toàn cầu, phân phối nội dung và tính năng bảo mật.
Tạo Hồ Sơ Front Door
Làm theo các bước sau để tạo hồ sơ Front Door:
Bước 1: Đăng nhập vào Azure Portal với thông tin đăng nhập của bạn.
Bước 2: Điều hướng đến trang chủ hoặc menu Azure và nhấp vào + Tạo tài nguyên. Sau đó, tìm kiếm Front Door và các hồ sơ CDN trong ô tìm kiếm như hình bên dưới đã thể hiện.
Bước 3:
- Nhấp vào “Create” sau khi tìm kiếm Front Door và CDN profiles trong Azure Portal.
- Trên trang “So sánh các dịch vụ”, chọn “Azure Front Door” và sau đó chọn “Quick Create.”
- Nhấp vào “Continue to create to Front Door” để tiếp tục thiết lập Front Door của bạn.
Xem hình bên dưới:
Bước 4:
Trong trang Tạo hồ sơ cửa trước, cung cấp thông tin cho các cài đặt được yêu cầu như trong Hình tiếp theo.
Bước 5: Nhấp vào Review + create và kiểm tra thẻ xác thực. Sau đó, nhấp vào Create như trong Hình bên dưới.
Cấu hình Lộ trình và Tùy chọn Bộ nhớ đệm cho Dịch vụ Web bằng Azure Front Door
Azure Front Door được trang bị các tính năng tăng tốc độ trang động và cân bằng tải động. Khi bộ nhớ đệm được kích hoạt trên lộ trình, trang cạnh nhận mỗi yêu cầu đầu tiên kiểm tra bộ nhớ đệm của mình để tìm phản hồi hợp lệ. Cơ chế bộ nhớ đệm này giúp giảm thiểu lưu lượng được định tuyến đến máy chủ nguồn. Trong trường hợp không tìm thấy phản hồi được lưu vào bộ nhớ đệm, yêu cầu sẽ được chuyển tiếp đến nguồn gốc.
Hãy làm theo các bước sau để cấu hình lộ trình và tùy chọn bộ nhớ đệm cho Dịch vụ Web bằng Azure Front Door:
Bước 1:
Đăng nhập vào Azure Portal với tên đăng nhập và mật khẩu. Sau đó, điều hướng đến hồ sơ Azure Front Door và nhấp vào Quản lý Front Door. Bây giờ, thêm một lộ trình mới bằng cách nhấp Add a router hoặc Select existing routes. (Tham khảo Hình bên dưới).
Bước 2:
Chọn Enable caching và chỉ định hành vi bộ nhớ đệm của chuỗi truy vấn. Tùy chọn, nhấp vào Enable compression để nén phản hồi nén của Front Door đến máy khách. Sau đó, nhấp vào Update. (Tham khảo Hình bên dưới).
Thiết lập các giải pháp giám sát và đo từ xa bằng cách sử dụng Azure Monitor và thông tin chi tiết về ứng dụng
Hãy làm theo các bước sau để thiết lập các giải pháp giám sát và đo từ xa:
Bước 1:
Đăng nhập vào Azure Portal bằng thông tin đăng nhập của bạn. Sau đó, điều hướng đến Application Insights. Chọn dịch vụ Application Insights đã được tạo gần đây. Sau đó, sao chép Key Instrumentation. Tham khảo Hình bên dưới.
Bước 2:
Mở Visual Studio và mở dự án. Trong dự án, định vị tệp appsinstall.json
như trong Hình bên dưới.
Bước 3:
Mở tệp appsettings.json
. Thêm mã trong Đoạn mã bên dưới bằng cách thay thế văn bản ‘YOUR INSTRUMENTATION_KEY‘ bằng khóa của dịch vụ Application Insights đã tồn tại. Tham khảo Hình tiếp theo.
"ApplicationInsights": {
"InstrumentationKey": "YOUR INSTRUMENTATION_KEY"
}
Bước 4:
Nhấp chuột phải vào dự án trong Solution Explorer và chọn Application Insights. Sau đó, chọn Search Debug Session Telemetry. Tham khảo Hình bên dưới.
Bước 5:
Chế độ xem này hiển thị phép Debug từ xa được tạo ở phía máy chủ của ứng dụng. Thử nghiệm với các bộ lọc và nhấp vào bất kỳ sự kiện nào để xem thêm chi tiết. Tham khảo Hình tiếp theo.
Bước 6:
Debug từ xa được tạo ở phía máy chủ Nhấp chuột phải lần nữa vào dự án trong Solution Explorer và chọn Application Insights. Sau đó, chọn Open Application Insights Portal. Tham khảo Hình bên dưới.
Cổng mở ra ở chế độ xem đo từ xa từ ứng dụng như trong Hình tiếp theo.