[Report][AWS Summit Online ASEAN RE:CAP 2020]Các mẫu kiến trúc: Xử lý luồng không cần máy chủ ở quy mô

Trong phần này, khám phá cách tạo các kiến trúc xử lý luồng không có máy chủ kết hợp IoT, Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon Kinesis Data Analytics và AWS Lambda để tạo ra các đường ống phân tích thời gian thực.
2020.10.01

Ngày 29/09/2020 vừa rồi đã diễn ra sự kiện AWS Summit Online ASEAN RE:CAP. Link sự kiện: https://live.awsevents.com/ASEANSummitreCap/

Chủ để của session lần này là "Các mẫu kiến trúc: Xử lý luồng không cần máy chủ ở quy mô" Diễn giả: Timothee Cruse, Specialist Solutions Architect, Amazon Web Services Akhtar Hossain, Senior Solutions Architect, Amazon Web Services

Kiến trúc ứng dụng phát trực tuyến thường được sử dụng để giải quyết các yêu cầu phân tích thời gian thực. Kiến trúc không có máy chủ rất phù hợp cho các ứng dụng xử lý luồng vì chúng cho phép bạn giảm chi phí vận hành và chỉ trả cho mỗi lần thực hiện và chúng có thể mở rộng quy mô khi tốc độ dữ liệu luồng của bạn thay đổi. Trong phần này, khám phá cách tạo các kiến trúc xử lý luồng không có máy chủ kết hợp IoT, Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon Kinesis Data Analytics và AWS Lambda để tạo ra các đường ống phân tích thời gian thực.

1. Tổng quan về Real-time Analytics trên AWS

Giá trị của data giảm dần theo thời gian, để có được giá trị tốt nhất, data phải được xử lý theo tốc độ mà nó được tạo ra. Chẳng hạn như các chỉ số sinh tồn của bệnh nhân từ thiết bị y tế hay các việc bất thường từ cảm biến. Ví dụ: Data cảm biến từ tàu hoả chỉ ra các bất thường về hệ thống thắng là dấu hiệu của hỏng hóc. Thông điệp từ các cảm biến trên tàu ngoài khơi gửi về báo hiệu cần phải bảo dưỡng,...

Data và video cần đưa vào xử lý lập tức thay vì phải chờ hàng giờ, hàng ngày thì việc thu thập, lọc, làm giàu data ngay cả trước khi nó được lưu vào kho dữ liệu. Điều này làm cho data luôn có sẵn cho việc phân tích và xử lý theo dây. Chúng ta có sử hiểu biết sâu sắc hơn về data theo thời gian thực và hành động nhanh chóng.

Việc Streaming ở AWS thì dễ dàng hơn rất nhiều. Khách hàng có thể thu thập, phân tích và xử lý luồng data và video theo thời gian thực mà không cần triển khai hạ tầng phức tạp. Dịch vụ Kinesis mang lại sự uyển chuyển với các tuỳ chọn để phù hợp với các kiến trúc streaming của các bạn. Và theo từng use case cụ thể Kinesis Data Streams cho phép các bạn thu thập và lưu trữ streaming data với quy mô lớn theo yêu cầu. Kinesis Data Firehose cung cấp một cách thức dễ dàng, nhanh chóng để stream data vào Data lake hay ở nơi khác. Với khả năng thực hiện chuyển đổi dữ liệu dựa trên nền tảng serverless theo yêu cầu, các dịch vụ này làm việc cùng nhau để cho phép khách hàng stream, process và delivery data theo thời gian thực.

2. Kiến trúc đẩy Log

Chúng ta hãy cùng xem kiến trúc đẩy Log. Log có thể đẩy từ EC2 web server, Lambda function, Container. Các log được đẩy vào với tốc độ cao bằng Kinesis Data Streams và sau đó sẽ được stream trực tiếp vào Kinesis Data Analytics dành cho việc phân tích theo thời gian thực, hoặc đẩy vào Kinesis Data Firehorse để đưa vào Elastic Search dành cho phân tích lịch sử.

3. Ví dụ về kiến trúc Stream Processing (Xử lý luồng)

Ví dụ 1: Bây giờ chúng ta hãy cùng xem kiến trúc cho việc giám sát cho trạm thiết bị IOT từ xa:

  • Các sensor data được đẩy vào IOT Gateway
  • Được truyền qua Kinesis Data Streams và được phân tích bởi Kinesis Data Analytics
  • Sau đó được tổng hợp và đưa vào Amazon RDS MySQL

Ví dụ 2: Phân tích AWS CloudTrail Event Logs để phát hiện sử bất thường cho việc sử dụng tài nguyên hãy lỗ trống bảo mật

  • Đầu tiên, đẩy Log từ CloudTrail qua Kinesis Data Firehose
  • Từ Firehose chúng ta sẽ dùng Kinesis Data Analytics để có các dữ liệu mong muốn
  • Sau đó lưu vào Database
  • Vào cuối cùng, hiển thị cho user bằng Dashboard theo thời gian thực

4. Use case: Octank HealthCare

Yêu cầu khách hàng

  • Khách hàng cần triển khai thiết bị y tế trong các bênh viện trên toàn thế giới
  • Các thiết bị cho việc thu thập dữ liệu của bệnh nhân và dữ liệu của thiết bị
  • Cần đẩy dữ liệu vào, xử lý, phân tích dữ liệu với quy mô lớn gần với thời gian thực
  • Lập trình viên không muốn vận hành cơ sở hạ tầng IT
  • Giải pháp cần tuân thủ theo tiêu chuẩn HIPAA

Mô hình kiến trúc cho use case này dựa trên một Whitepaper đã viết vào năm 2018

Tổng quan kiến trúc:

  • Module 1 phục vụ cho việc đẩy streaming data từ các cảm biến IOT ở các bệnh viện trên toàn thế giới. Lưu ý: Trong kiến trúc này, IOT Device Gateway và Lambda function được gọi để thực hiện việc De-Identification thông tin bệnh nhân từ các cảm biến. Điều này giúp chúng ta tuân thủ theo HIPAA. Các thông tin được mã hoá và lưu trong DynamoDB.
  • Module 2 thực thi việc làm giàu data bằng cách bổ sung thông tin chi tiết của thiết bị từ cross-reference database trong DynamoDB.
  • Module 3: Các messages sau khi qua Module 1 và 2 sẽ được xử lý bởi Kinesis Analytics cho việc phân tích theo thời gian thực để phát hiện các bất thường trong data về các chỉ số của bệnh nhân. Nếu phát hiện một bất thường nào đó, SNS messages sẽ được gửi tới cho nhân viên y tế.

Phần Demo là một video nên nếu bạn thấy thú vị và muốn tìm hiểu thêm. Hay truy cập đường link của sự kiện và tìm video của session "Các mẫu kiến trúc: Xử lý luồng không cần máy chủ ở quy mô"

Cảm ơn các bạn đã theo dõi blog. Xin chào và hẹn gặp lại!