Hiện trạng và nhu cầu
Để duy trì tốc độ phát triển và nâng cao sức cạnh tranh trên thị trường, TinTin JSC đặt ra mục tiêu xây dựng một hạ tầng công nghệ thông tin mới để phục vụ người dùng cuối. Để thực hiện điều này, đội ngũ IT của công ty đã nghiên cứu và lựa chọn tiếp cận thông qua việc phát triển hạ tầng mới dựa trên kiến trúc Microservices hiện đại và ứng dụng thông qua việc triển khai Kubernetes.
Tuy nhiên, việc triển khai hệ thống này trên hạ tầng on-premises truyền thống không đơn giản bởi chi phí vận hành cao, khả năng mở rộng hạn chế, và việc duy trì độ sẵn sàng cao đều đòi hỏi một lượng lớn nguồn lực cả về thời gian,con người lẫn chi phí. Thêm vào đó, việc tự quản lý các dịch vụ như MQ, Redis, và ElasticSearch trên hạ tầng on-premises cũng cần đến chuyên môn và tiêu tốn nhiều nguồn lực chuyên trách.
Trước những thách thức này, TinTin JSC đã tìm đến CMC Telecom – một đối tác dịch vụ cấp cao của AWS tại Việt Nam. Thông qua quá trình tư vấn và đánh giá, CMC Telecom đã giới thiệu AWS như một giải pháp hạ tầng Cloud lý tưởng. Nó không chỉ giúp giảm bớt gánh nặng về chi phí TCO, mà còn cung cấp khả năng mở rộng linh hoạt, duy trì tính sẵn sàng cao, bảo mật, giảm nhẹ công việc triển khai và vận hành hạ tầng cho đội ngũ IT của TinTin.
Cùng với đội ngũ TinTin, CMC Telecom thực hiện một hành trình để giải quyết những thách thức đã đặt ra.
Giải pháp triển khai
Sau nhiều năm tư vấn và triển khai, dựa vào kinh nghiệm thực tiễn,đội ngũ chuyên gia CMC Telecom đã xây dựng nền tảng công nghệ thông tin cho TinTin bằng cách kết hợp các dịch vụ được quản lý của AWS như Amazon EKS, Amazon S3, Amazon CloudFront, Amazon MQ… Đặc biệt, các ứng dụng của TinTin sẽ được đóng gói thành các container và triển khai, quản lý bằng Kubernetes trên AWS với Amazon EKS. Đây là giải pháp mà AWS giúp khách hàng triển khai và quản trị thành phần control plane trong Kubernetes, giúp người dùng giảm nhẹ công việc quản lý cũng như rủi ro trong việc cài đặt các tính năng bảo mật cho Kubernetes control plane. Bên cạnh đó, CMC Telecom sử dụng EKS Blueprint để triển khai Amazon EKS để áp dụng những thực tiễn tốt nhất khi triển khai EKS và giúp TinTin có thể dễ dàng tích hợp các giải pháp add-ons về auto-scale, security, CI/CD để giúp TinTin tăng tốc triển khai ứng dụng của mình mà không cần bận tâm quá nhiều về việc cài đặt và vận hành các công việc trên. Cùng với đó, các ứng dụng cũng được triển khai trên hạ tầng có áp dụng công nghệ chip tiên tiến từ AWS như Graviton. Đây là dòng chip có kiến trúc ARM do AWS phát triển, đặc biệt phù hợp cho các ứng dụng container, mang lại hiệu năng và chi phí tốt hơn so với các dòng chip x86.
Để tối ưu hóa hiệu suất và trải nghiệm của người dùng khi truy cập ứng dụng từ các khu vực địa lý khác, CMC Telecom đã sử dụng Amazon Cloudfront. Đây là một dịch vụ CDN quản trị bởi AWS, Amazon CloudFront sẽ tận dụng hạ tầng CDN trên toàn cầu của AWS để cache một phần dữ liệu truy cập thường xuyên trên các máy chủ. Từ đó, người dùng trên khắp nơi trên toàn thế giới có thể dễ dàng truy cập các nội dung này mà không lo ngại vấn đề đường truyền. Đồng thời, Amazon CloudFront cũng được tích hợp với AWS Web Application Firewall (WAF) để tăng cường bảo mật nâng cao cho lớp ứng dụng khách hàng.
Về vấn đề kết nối giữa các service trong ứng dụng, CMC Telecom triển khai Amazon MQ – dịch vụ RabbitMQ được quản trị bởi AWS.Dịch vụ này cung cấp khả năng message queue đáng tin cậy; và Amazon ElasticCache for Redis – hỗ trợ việc lưu trữ dữ liệu trong bộ nhớ cache để tăng tốc độ xử lý. Hơn nữa,đội ngũ chuyên gia còn sử dụng Amazon OpenSearch – dịch vụ ElasticSearch trên AWS để quản lý việc tìm kiếm và phân tích dữ liệu, cũng như AWS Elastic Load Balancer để phân phối tải.
Về lưu trữ, CMC Telecom đã chọn sử dụng Amazon S3, một dịch vụ lưu trữ object của AWS có độ bền lên đến 99.999999999%. Bên cạnh đó, CMC Telecom đã kết nối MongoDB Atlas trên AWS với hạ tầng của ứng dụng. MongoDB Atlas được triển khai trên một VPC độc lập và được kết nối với VPC ứng dụng qua VPC peering, cung cấp một giải pháp lưu trữ dữ liệu mạnh mẽ và linh hoạt.
Cuối cùng, CMC Telecom tích hợp các dịch vụ khác của AWS, cung cấp các tính năng như quản lý chứng chỉ, giám sát để tạo ra một hệ thống hoàn chỉnh, hiệu quả và bảo mật.
Quản lý hạ tầng
Quản lý hạ tầng được thực hiện thông qua việc sử dụng Terraform, cùng với GitLab CI/CD cho việc tự động triển khai hạ tầng. Terraform code được lưu trong GitLab repository, giúp tự động cập nhật khi có thay đổi, giảm lỗi từ quá trình thủ công và tăng hiệu quả quản lý thay đổi.
Các bước áp dụng giải pháp này bao gồm: định rõ cấu hình hạ tầng qua Terraform code; lưu code trên GitLab repository; tạo và cấu hình GitLab CI để tự động triển khai Terraform code khi có thay đổi; kiểm tra các thành phần trên AWS sau khi GitLab CI/CD hoàn tất việc triển khai.
CMC Telecom khuyến nghị việc thay đổi cấu hình hạ tầng AWS nên được thực hiện qua Terraform, để GitLab CI/CD tự động cập nhật, tránh tình trạng không đồng bộ cấu hình khi thực hiện thay đổi trực tiếp trên AWS console.
Phương án sao lưu và khôi phục dữ liệu
Việc sao lưu và đảm bảo dữ liệu được khôi phục trong trường hợp xảy ra thảm hoạ cũng là yêu cầu quan trọng trong dự án này. Với yêu cầu về RTO và RPO mà TinTin đưa ra cho hạ tầng trên AWS, CMC Telecom đã đề xuất một giải pháp sao lưu và khôi phục hiệu quả dựa trên khả năng chịu đựng thảm họa và tính sẵn sàng cao của AWS. Thông qua việc snapshot các EBS volume của Amazon OpenSearch hàng giờ và lưu chúng trên Amazon S3. Điều này giúp đảm bảo rằng dữ liệu OpenSearch luôn được sao lưu và có thể khôi phục nhanh chóng khi cần. Với MongoDB Atlas, sử dụng Cross Region Replication để đồng bộ dữ liệu từ cluster.
Kết luận và lợi ích đạt được
Thông qua dự án này, CMC Telecom đã giúp TinTin nhận thấy rõ giá trị của Cloud nói chung và AWS nói riêng đã mang lại cho doanh nghiệp của mình. Bằng việc triển khai ứng dụng cho TinTin bằng EKS Blueprint và kết hợp linh hoạt các giải pháp của AWS về CDN, security, CMC Telecom đã giúp TinTin có thể dễ dàng triển khai ứng dụng microservice của mình với các thực tiễn tốt nhất, đảm bảo các tiêu chí về mở rộng linh hoạt, vận hành dễ dàng, bảo mật và hiệu năng cao, dữ liệu được sao lưu và khôi phục bằng các chiến lược và giải pháp phù hợp. Qua đó TinTin không phải đầu tư quá nhiều nguồn lực và thời gian cho việc nghiên cứu, triển khai và vận hành hạ tầng cho ứng dụng của mình, thay vào đó TinTin bây giờ hoàn toàn tập trung cho việc phát các vấn đề liên quan kinh doanh của mình.