Giải pháp: Google Cloud BigQuery Cloud SQL Cloud Pub/Sub Dataflow Kubernetes Engine Google Workspace Kết…
Traveloka: Chuyển sang Google Cloud Platform để phân tích Big Data mạnh mẽ
TÓM TẮT
Bài toán doanh nghiệp:
- Các vấn đề debug trong cụm Kafka tỏ ra khó khăn và tốn thời gian
- Việc thêm nhiều nodes hơn vào MongoDB yêu cầu một quá trình tái cân bằng kéo dài – và nhóm đã nhanh chóng hết dung lượng đĩa
- Doanh nghiệp chỉ có thể lưu trữ dữ liệu 14 ngày trong MemSQL do giới hạn bộ nhớ, trong khi các query đôi khi trả kết quả lỗi hết bộ nhớ
Giải pháp:
- Google Cloud Platform
- BigQuery
- Cloud Pub/Sub
- Cloud Dataflow
- Kubernetes Engine
- Cloud Storage
- Cloud Composer
- Cloud SQL
Kết quả:
- Các kỹ sư thư thả, dành thời gian để mang lại giá trị cho doanh nghiệp
- Ghi lại hơn 99,9% tính khả dụng
- Kho 400TB (khoảng 500 tỷ dòng) dữ liệu
Với các công nghệ Google Cloud, chẳng hạn như BigQuery, Traveloka đã thiết lập một kiến trúc dữ liệu đáp ứng tất cả các yêu cầu về hiệu suất và tính khả dụng, đồng thời cho phép doanh nghiệp có được những insights có ý nghĩa và có thể hành động từ khối lượng dữ liệu lớn. Thu thập và phân tích dữ liệu trong thời gian thực để đưa ra quyết định trong toàn doanh nghiệp.
Được thành lập vào năm 2012, Traveloka là một doanh nghiệp kỳ lân cung cấp dịch vụ đặt chỗ cho các chuyến du lịch, ăn uống và các lựa chọn khác. Tổ chức đã phát triển để thiết lập sự hiện diện tại sáu quốc gia ASEAN và sử dụng hơn 2.000 người, trong đó có 400 kỹ sư. Traveloka đặt mục tiêu trở thành nền tảng du lịch và phong cách sống one-stop cho người dân Indonesia cũng như đang đa dạng hóa và cá nhân hóa các dịch vụ của mình. Doanh nghiệp đã giới thiệu các tính năng như dịch vụ đặt xe cho thuê và hướng dẫn điểm đến du lịch vào năm 2018, đồng thời bổ sung một loạt tính năng bổ sung cho các dịch vụ hiện có, chẳng hạn như thông báo tình trạng chuyến bay cho dịch vụ đặt vé bay. Đáng chú ý vào năm ngoái là sự ra mắt dịch vụ tín dụng trực tuyến.
Traveloka dựa vào phân tích dữ liệu để cung cấp các dịch vụ phù hợp, được cá nhân hóa cho người tiêu dùng. Điều này đặt ra một thách thức lớn đối với nhóm phân tích dữ liệu của doanh nghiệp. Nhóm này phải hỗ trợ nhu cầu kinh doanh ngày càng tăng về insights có thể hành động bằng cách thu thập dữ liệu từ nhiều nguồn, chọn khuôn khổ phù hợp để phân tích dữ liệu, quản lý nhiều trường hợp sử dụng và cung cấp dữ liệu thời gian thực để phân tích luồng và báo cáo. Đồng thời, doanh nghiệp phải mở rộng quy mô cơ sở hạ tầng trong khi giảm chi phí.
Các hoạt động của nhóm phân tích phải hỗ trợ các mục tiêu kinh doanh nhằm tăng tính nhanh nhạy và thời gian tiếp thị các tính năng và ứng dụng mới nhanh hơn. Từ quan điểm công nghệ, điều này có nghĩa là tăng tốc độ phát triển và phân phối mà không ảnh hưởng đến bảo mật.
“Là một phần của giải pháp phân tích việc truyền dữ liệu Google Cloud Platform, sự hỗ trợ từ BigQuery cho dữ liệu truyền trực tuyến là lợi thế chính cho chúng tôi trong việc hỗ trợ trường hợp sử dụng phân tích thời gian thực.”
—Rendy Bambang, Data Engineering Lead, Traveloka—
Phân tích dữ liệu không theo kịp tốc độ
Tuy nhiên, khi hoạt động kinh doanh mở rộng, môi trường phân tích dữ liệu hiện tại của Traveloka không theo kịp. Điều này đã làm ảnh hưởng đến quy trình xử lý dữ liệu trực tuyến hỗ trợ một số trường hợp sử dụng – bao gồm phát hiện gian lận, cá nhân hóa, tối ưu hóa quảng cáo, bán kèm, A/B testing và tính đủ điều kiện quảng cáo – cho phép các nhà phân tích kinh doanh theo dõi hiệu suất.
Để chạy pipeline phân tích dữ liệu, Traveloka đã dựa vào kiến trúc bao gồm Apache Kafka để nhập các sự kiện của người dùng, MongoDB được phân nhỏ để cung cấp kho dữ liệu hoạt động trải rộng trên nhiều máy và MemSQL được phân nhỏ cho các query phân tích thời gian thực. Traveloka đã xử lý dữ liệu từ Kafka thông qua người dùng Java và lưu trữ dữ liệu đó với ID người dùng làm khóa chính trong MongoDB. Để phân tích, Traveloka đã sử dụng dữ liệu sự kiện từ Kafka và lưu trữ nó trong MemSQL, nơi các công cụ kinh doanh thông minh có thể truy cập.
“Cloud Pub/Sub đặc biệt thuận tiện cho chúng tôi bởi vì – không giống như kiến trúc trước đây, vốn yêu cầu lập kế hoạch dung lượng cho việc nhập các sự kiện – chúng tôi có thể dựa vào tính năng tự động của nó để xử lý các thay đổi về khối lượng và thông lượng mà không cần phải làm gì cả.”
—Rendy Bambang, Data Engineering Lead, Traveloka—
Độ trễ thấp và cơ sở hạ tầng được quản lý đầy đủ
Doanh nghiệp quyết định khám phá thị trường và thiết lập một dịch vụ thay thế cần thiết để cung cấp:
- Độ trễ dữ liệu đầu cuối thấp trong thỏa thuận mức dịch vụ được đảm bảo
- Cơ sở hạ tầng được quản lý hoàn toàn để khiến các kỹ sư thư thả, giúp giải quyết các vấn đề kinh doanh (và dành ít thời gian hơn cho việc bảo trì và chữa cháy), bao gồm khả năng phục hồi hoặc tính khả dụng của hệ thống end-to-end 99,9% và tự động mở rộng quy mô lưu trữ và máy tính
Những yêu cầu này được lọc thành một sự cần thiết đối với một công nghệ được quản lý đầy đủ với độ trễ từ đầu đến cuối thấp, hiệu suất và tính khả dụng cao cũng như nhu cầu vận hành tối thiểu.
Google Cloud Platform làm nền tảng
Traveloka đã tiến hành đánh giá và kết luận rằng Google Cloud Platform đã cung cấp các dịch vụ và hiệu suất để hoạt động như nền tảng của kiến trúc dữ liệu.
Đối với dự án pipeline dữ liệu của mình, Traveloka đã triển khai môi trường cross-cloud kết hợp Cloud Pub/Sub (https://cloud.google.com/pubsub) quản lý nhắn tin thời gian thực để nhập dữ liệu sự kiện, Cloud Dataflow (https://cloud.google.com/dataflow) để xử lý dữ liệu được truyền trực tuyến và kho dữ liệu phân tích BigQuery để lưu trữ dữ liệu lịch sử và thực tế được tạo ra bởi các hoạt động của khách hàng, cũng như dữ liệu đã xử lý. Mỗi dịch vụ Google Cloud Platform đã giúp khắc phục các vấn đề cản trở pipeline trước đây.
Kho dữ liệu phân tích BigQuery là chìa khóa cho kiến trúc mới. Rendy Bambang, Data Engineering Lead, Traveloka cho biết: “Là một phần của giải pháp phân tích việc truyền dữ liệu Google Cloud Platform, sự hỗ trợ từ BigQuery cho dữ liệu truyền trực tuyến là lợi thế chính cho chúng tôi trong việc hỗ trợ trường hợp sử dụng phân tích thời gian thực”. “Hơn nữa, chúng tôi không còn lo lắng về việc lưu trữ dữ liệu lịch sử chỉ 14 ngày vì BigQuery lưu trữ tất cả dữ liệu đó cho chúng tôi, với các tài nguyên máy tính tự động mở rộng quy mô theo yêu cầu khi chúng tôi cần.”
“Khả năng của Cloud Dataflow để tạo ra các pipeline mới và tự động phân tỷ lệ mà không cần sự can thiệp của người dùng là một lợi thế lớn đối với chúng tôi, đặc biệt là khi chúng tôi phải lấp đầy một pipeline để xử lý dữ liệu lịch sử.”
—Rendy Bambang, Data Engineering Lead, Traveloka—
“Cloud Pub/Sub đặc biệt thuận tiện cho chúng tôi bởi vì – không giống như kiến trúc trước đây của chúng tôi, vốn yêu cầu lập kế hoạch dung lượng cho việc nhập sự kiện – chúng tôi có thể dựa vào tính năng tự động phân vùng của nó để xử lý các thay đổi về khối lượng và thông lượng mà không cần bất kỳ công việc nào”, Bambang cho biết thêm. “Cuối cùng, khả năng của Cloud Dataflow tạo ra các pipeline mới và tự động phân tỷ lệ mà không cần sự can thiệp của người dùng là một lợi thế lớn đối với chúng tôi, đặc biệt khi chúng tôi phải lấp đầy một pipeline để xử lý dữ liệu lịch sử.”
Mô hình lập trình hợp nhất dựa trên Apache Beam của Cloud Dataflow giúp giảm bớt sự chuyển đổi giữa xử lý dữ liệu hàng loạt và luồng, trong khi các chức năng windowing and trigger của nó cho phép dễ dàng xử lý dữ liệu đến chậm.
400TB dữ liệu được lưu trữ thành công
Cơ sở hạ tầng Google Cloud Platform hiện đang quản lý khối lượng lớn một cách nhanh chóng và tốt trong tổ chức với trên 99,9% tính khả dụng từ đầu đến cuối. Hơn 4TB dữ liệu mỗi ngày được chuyển vào Cloud Pub/Sub, trong khi BigQuery lưu trữ khoảng 400TB (khoảng 500 tỷ dòng) dữ liệu. Khoảng 250TB dữ liệu nằm trong Cloud Storage, trong khi 60.000 nhóm công việc được thực hiện mỗi ngày. Cloud Dataflow xử lý khoảng 2.500 công việc mỗi ngày, trong khi khoảng 1.500 biểu đồ sử dụng BigQuery được tạo bằng các công cụ kinh doanh thông minh.
Kho BigQuery cũng không thể thiếu đối với những thay đổi trong cách Traveloka cung cấp cho các nhóm sản phẩm của mình quyền truy cập vào dữ liệu. Imre Nagi, Software Engineer, Data Team, Traveloka cho biết: “Trước đây, khi một nhóm sản phẩm yêu cầu dữ liệu từ kho dữ liệu của chúng tôi, chúng tôi chỉ cần cấp cho họ quyền truy cập đọc trực tiếp vào các nhóm hoặc bảng mà họ cần”.
Tuy nhiên, cách tiếp cận này yêu cầu hệ thống khách hàng phải được kết hợp chặt chẽ với công nghệ và định dạng lưu trữ dữ liệu, có nghĩa là bất kỳ thay đổi nào đối với công nghệ hoặc định dạng đều yêu cầu cập nhật hệ thống. Hơn nữa, vì quyền truy cập ở cấp độ nhóm, nhóm dữ liệu không thể chắc chắn rằng các nhóm sản phẩm đang không truy cập vào các cột mà họ không được phép. Cuối cùng, nhóm dữ liệu cảm thấy khó khăn trong việc theo dõi và kiểm tra những gì người dùng đang làm với dữ liệu.
Phân phát dữ liệu chuẩn hóa
Nagi cho biết: “Dựa trên những vấn đề trên toàn doanh nghiệp, chúng tôi đã quyết định xây dựng một cách tiêu chuẩn hóa để phục vụ dữ liệu của chúng tôi, sau này trở thành data provisioning API của chúng tôi.”
API hiện phân phối hàng triệu bản ghi có tổng dung lượng vài gigabyte từ kho BigQuery đến hệ thống sản xuất theo yêu cầu. Cloud Composer (https://cloud.google.com/composer)lên lịch cho các truy vấn BigQuery để chuyển đổi dữ liệu thô thành các phiên bản tóm tắt và biên tập lại để chuyển vào các bảng trung gian và bảng cuối cùng đã được xử lý.
Cloud Storage cung cấp bộ nhớ tạm thời cho các kết quả query và xử lý quá trình gửi kết quả đến clients và Cloud SQL theo dõi các liên kết, state và metadata khác, trong khi API được lưu trữ trong các cụm Kubernetes do Google Kubernetes Engine quản lý. Các cụm Kubernetes (https://cloud.google.com/kubernetes) giao tiếp với Cloud Storage và Cloud SQL để lưu trữ kết quả và job metadata của các query do người yêu cầu thực hiện.
Các vấn đề đã được giải quyết
Nagi cho biết: “Với công nghệ Google Cloud Platform, data provisioning API mới của chúng tôi đã giải quyết thành công một số vấn đề trong quá trình phân phối dữ liệu”. “Chúng tôi hiện có một API contract rõ ràng làm chuẩn hóa cách các nhóm sản phẩm truy cập vào kho dữ liệu của chúng tôi.”
Sử dụng API có nghĩa là các nhóm sản phẩm không còn truy cập vào lớp vật lý thuộc cơ sở hạ tầng của Traveloka, cải thiện khả năng kiểm tra việc sử dụng dữ liệu của nhóm dữ liệu. Nhóm cũng có thể xác định kiểm soát truy cập ở cấp độ cột, đảm bảo nhóm sản phẩm chỉ sử dụng các cột mà họ cần. Ngoài ra, API cung cấp một định nghĩa tiêu chuẩn nhưng linh hoạt mà các nhóm khác có thể sử dụng để truy vấn dữ liệu. Nagi cho biết: “Giờ đây, chúng tôi có thể hạn chế cách các nhóm sản phẩm truy cập vào dữ liệu của chúng tôi, trong khi vẫn cho phép nhiều truy vấn khác nhau. “Nhìn chung, chúng tôi hiện có sự linh hoạt, cùng với sự an ninh và kiểm soát mà chúng tôi cần.”