Xây dựng nền tảng Microservices dự phòng (DR Site) cho Công ty Talentnet

1. Về Talentnet

Tiền thân là Dịch vụ nhân sự của PricewaterhouseCoopers Việt Nam, Talentnet Việt Nam (Công ty Kết Nối Nhân Tài) hiện được xem là công ty tư vấn nhân sự hàng đầu, với đội ngũ tư vấn hơn 20 năm kinh nghiệm hoạt động trong các lĩnh vực về quản trị nguồn nhân lực. Talentnet hiện cung cấp các giải pháp quản trị nhân sự toàn diện, chuyên nghiệp và thiết thực phù hợp với nhu cầu của các doanh nghiệp ở mọi quy mô.




2. Nhu cầu và thách thức dành cho đội ngũ CNTT của Talentnet

Để đáp ứng nhu cầu đa dạng của khách hàng, Talentnet đã xây dựng hệ thống cung cấp dịch vụ “Quản lí nhân sự trực tuyến”. Hệ thống này được triển khai hoàn toàn trên nền tảng Docker và Kubernetes là các nền tảng Container và Microservices hàng đầu hiện nay.
Đối với khách hàng của Talentnet, dữ liệu quản lý nhân sự cần phải được đảm bảo sự an toàn và sẵn sàng để truy xuất mọi lúc mọi nơi là mối quan tâm hàng đầu khi sử dụng dịch vụ "Quản lý nhân sự trực tuyến". Nhu cầu này đặt ra cho Talentnet một áp lực phải chứng minh được khả năng đảm bảo hệ thống có thể vận hành liên tục và có thể khôi phục nhanh chóng và toàn vẹn sau thảm hoạ. Do vậy Talentnet cần xây dựng hệ thống dự phòng thảm họa và đồng bộ dữ liệu với các yêu cầu sau:
• Xây dựng một hệ thống tương tự có khả năng dự phòng cho hệ thống chính ở một địa điểm khác.
• Xây dựng kịch bản các sự cố có thể gây gián đoạn dịch vụ và quy trình phục hồi hệ thống tại site dự phòng.
• Đảm bảo dữ liệu được đồng bộ định kì liên tục từ hệ thống chính đến hệ thống dự phòng.
• Tự động cập nhật khi có thay đổi về mã nguồn ứng dụng
Tuy nhiên, việc triển khai một hệ thống dự phòng cho nền tảng container và microservices có tích hợp chặt chẽ với nhiều thành phần khác để trở thành một nền tảng hoàn chỉnh như: Nginx, Postgres Database, Minio Object Storage, Local Registry, Jenkins,… trong một thời gian ngắn là một thách thức về mặt kỹ thuật. 
Chưa kể, hệ thống ứng dụng trên Kubernetes của khách hàng vẫn đang trong quá trình hoàn thiện, các bộ phận có liên quan cần kết hợp chặt chẽ để xây dựng được hệ thống tương thích tốt nhất.
Cuối cùng là thách thức về mặt tiến độ, dự án cần được triển khai nhanh chóng nhất để kịp thời gian Talentnet bàn giao sản phẩm đến khách hàng, demo trực tiếp khả năng phục hồi của hệ thống dự phòng cho khách hàng. Thời gian từ khi bắt đầu lên thiết kế đến lúc hoàn thành dự án phải dưới 1 tháng.

3. Giải pháp

Đối với một dự án với các thành phần phức tạp cũng như đòi hỏi thời gian gấp rút như vậy, đội ngũ kỹ sư HPT đã nghiên cứu, thiết kế các thành phần hệ thống một cách kĩ càng, áp dụng các công nghệ mới và phù hợp nhất. Bên cạnh đó là chuẩn bị một kế hoạch chi tiết, cụ thể để việc triển khai được suôn sẻ và thuận lợi, giảm tối thiểu các rủi ro và thời gian triển khai hệ thống.


Xây dựng hệ thống Kubernetes tương tự tại DR Site

Xây dựng một hệ thống tương tự tại site phụ, đầy đủ tất cả các thành phần để hoạt động được như site chính. Cần khảo sát rất kĩ hệ thống hiện tại nhằm nắm bắt tất cả các thành phần và cấu hình của các thành phần đó, sau đó lên thiết kế hoàn chỉnh cho hệ thống tại DR Site.
Hệ thống cần xây dựng bao gồm các thành phần:
• Hệ thống Nginx làm loadbalancer.
• Cụm máy ảo chạy Kubernetes trên hệ điều hành CentOS, gồm 1 node Master và 2 node Worker.
• Hệ thống registry local lưu trữ các image.
• Hệ thống Database PostgreSQL và Minio Storage kết nối thông suốt đến cụm Kubenetes.
• Hệ thống Jenkins cho các tác vụ tự động hóa

Đồng bộ dữ liệu giữa DC site và DR site

Xây dựng hệ thống đồng bộ dữ liệu tự động, toàn bộ dữ liệu trên site chính sẽ được tự động đồng bộ sang site phụ một cách liên tục, đảm bảo không thất thoát dữ liệu khi site chính gặp sự cố. Hệ thống gồm rất nhiều thành phần riêng biệt, cần các phương thức đồng bộ khác nhau cho mỗi thành phần để đảm bảo hiệu quả tốt nhất.


Mô hình đồng bộ dữ liệu


Các phương thức đồng bộ:
• Minio Storage: Sử dụng MinIO Mirror Job trên MinIO Client đồng bộ dữ liệu định kì theo thời gian đã quy định.
• PostgreSQL Database: Sử dụng tính năng Replication trên PostgreSQL theo mô hình Master-Slave, đồng bộ dữ liệu theo thời gian thực.
• Jenkins Automation: sử dụng Jenkins kết nối đến hệ thống Kubernetes ở cả 2 site, tự động cập nhật các container image sang DR site nếu có thay đỏi ở DC site.

Xây dựng kịch bản phục hồi cụ thể cho các sự cố có thể xảy ra

Xây dựng kịch bản chi tiết nhằm tiến hành các bước phục hồi theo đúng quy trình, đảm bảo hệ thống được phục hồi nhanh nhất và không có lỗi xảy ra.
Tiến hành mô phỏng và chạy thử các kịch bản nhiều lần nhằm hoàn thiện và đảm bảo quy trình khôi phục được chính xác nhất.

4. Lợi ích mang lại

  • Toàn bộ hệ thống phục hồi thảm họa Disaster Recovery Site đã hoàn thành sau gần 1 tháng triển khai, cung cấp một hệ thống dự phòng có khả năng phục hồi nhanh chóng khi có sự cố xảy ra, giúp cho dịch vụ cung cấp tới khách hàng không bị gián đoạn – vượt tiến độ đã đề ra.
  • Dữ liệu giữa 2 hệ thống được đồng bộ liên tục và thông suốt, đảm bảo an toàn dữ liệu.
  • DR site chạy ổn định trước và sau khi thực hiện quá trình phục hồi.
  • Recovery Point Objective (RPO) đều đạt chỉ tiêu đề ra (dưới 15 phút).
  • Kịch bản phục hồi thảm họa được hoàn thiện và đã demo trực tiếp thành công cho khách hàng của Talentnet.
  • Tất cả các đợt diễn tập mô phỏng thảm họa đều đạt kết quá tốt 100% như mong đợi.

Khách hàng Talentnet hài lòng với hệ thống DR site và mong muốn cùng hợp tác với HPT trong tương lai để có thể phát triển, củng cố thêm toàn bộ hệ thống.
Đối với HPT, dự án đã khẳng định năng lực triển khai hệ thống với nhiều công nghệ mới, có độ phức tạp và chuyên sâu cao của đội ngũ cán bộ kỹ thuật HPT; năng lực xây dựng và thiết kế hệ thống Container, Docker, Kubernetes,… trên nhiều nền tảng khác nhau.

Với kinh nghiệm triển khai các hệ thống Microservice, Docker, Kubernetes… cũng như kinh nghiệm xây dựng các hệ thống dự phòng thảm họa (DR Site), HPT hoàn toàn có khả năng cung cấp các gói giải pháp toàn diện từ tư vấn, triển khai và bảo hành cho các hệ thống với các quy mô khác nhau, đem lại sự an toàn cho hệ thống cũng như nâng cao độ tin cậy của doanh nghiệp trong các hoạt động của mình.