Cài đặt cookie và đăng ký bản tin
- Trang web này sử dụng cookie, pixel tag và local storage cho mục đích hiệu năng, cá nhân hóa và marketing.
- Chỉ các cookie bắt buộc được bật mặc định.
- Có thể đăng ký nhận bản tin.
Quá trình Figma di chuyển sang Kubernetes
- Tác giả: Ian VonSeggern, Quản lý Kỹ thuật Phần mềm tại Figma
- Chủ đề: Quá trình và lý do Figma di chuyển sang Kubernetes trong vòng 12 tháng
Nền tảng điện toán của Figma
- Vào đầu năm 2023, công ty đã hoàn tất việc chạy mọi dịch vụ trong container.
- Sử dụng AWS Elastic Container Service (ECS) để nhanh chóng khởi động các tác vụ đã được container hóa.
- Về dài hạn, họ bắt đầu cân nhắc phiên bản thế hệ tiếp theo của nền tảng điện toán.
Sự thiếu hụt tính năng của Kubernetes
- Một số hạn chế của ECS đã tiêu tốn nhiều thời gian kỹ thuật.
- ECS không có tính năng StatefulSets của Kubernetes, khiến việc chạy cụm etcd trở nên khó khăn.
- Thiếu hỗ trợ định nghĩa dịch vụ thông qua Helm chart.
- Khi chạy EC2 trên ECS, việc chấm dứt một máy EC2 đơn lẻ là điều khó khăn.
Tiếp cận hệ sinh thái Cloud Native Computing Foundation
- Khi dùng ECS, họ không thể tận dụng các công nghệ mã nguồn mở trong hệ sinh thái CNCF.
- Hệ sinh thái Kubernetes có khả năng autoscaling rất tốt.
- Cũng cân nhắc khả năng đưa service mesh vào sử dụng.
Ưu điểm của một nền tảng phổ biến
- Kubernetes đã được nhiều doanh nghiệp lớn sử dụng nên độ ổn định đã được kiểm chứng.
- Có thể tránh bị khóa vào nhà cung cấp.
- Dễ tuyển kỹ sư có kinh nghiệm với Kubernetes hơn.
Xác định phạm vi di chuyển
- Để di chuyển an toàn, họ giảm thiểu các thay đổi đối với hệ thống cốt lõi.
- Đặt mục tiêu chuyển sang EKS.
- Đưa một số hạng mục cải tiến vào phạm vi di chuyển.
Các cải tiến được đưa vào quá trình di chuyển
- Trải nghiệm nhà phát triển: Đơn giản hóa việc định nghĩa dịch vụ và quy trình triển khai.
- Cải thiện độ tin cậy: Nâng cao độ tin cậy của dịch vụ bằng cách dùng ba cụm EKS.
- Hiệu quả chi phí: Hỗ trợ autoscaling cho node để giảm chi phí.
Các hạng mục bị loại khỏi phạm vi
- Loại khỏi phạm vi việc xử lý độ phức tạp của pipeline log.
- Loại khỏi phạm vi việc autoscaling ở cấp pod.
Thực hiện di chuyển an toàn
- Load test: Thực hiện load test để hiểu hiệu năng của cụm.
- Cơ chế rollout dần: Chuyển lưu lượng dần dần bằng cách sử dụng các mục DNS có trọng số.
- Chạy dịch vụ thực tế: Chạy dịch vụ thực tế trong môi trường staging để phát hiện sớm vấn đề.
- Giảm thiểu YAML tùy chỉnh: Hạn chế các định nghĩa YAML có thể gây nhầm lẫn cho người dùng.
- Phối hợp chặt chẽ với chủ sở hữu dịch vụ: Làm việc cùng chủ sở hữu dịch vụ để cập nhật monitoring và cảnh báo.
- Bố trí nhân sự phù hợp: Thành lập đội ngũ có thể xử lý các vấn đề phát sinh ngoài dự kiến.
Kết quả di chuyển
- Đến tháng 1 năm 2024, các dịch vụ chính đã được di chuyển sang các cụm EKS.
- Thu được các lợi ích như giảm chi phí, tăng độ tin cậy và cải thiện trải nghiệm nhà phát triển.
Giai đoạn sau khi phát hành
- Cải thiện công cụ truy cập của người dùng thông qua suy luận tự động về cụm và vai trò.
- Lên kế hoạch cho các hạng mục như đơn giản hóa pipeline log, hỗ trợ Horizontal Pod Autoscaling và di chuyển sang bộ xử lý Graviton.
Tóm tắt của GN⁺
- Figma đã đạt được giảm chi phí, tăng độ tin cậy và cải thiện trải nghiệm nhà phát triển thông qua việc di chuyển từ ECS sang Kubernetes.
- Tận dụng các công nghệ mã nguồn mở trong hệ sinh thái CNCF để tăng khả năng autoscaling và khả năng đưa service mesh vào sử dụng.
- Trong quá trình di chuyển, họ đã dùng các phương pháp an toàn như load test, rollout dần và chạy dịch vụ thực tế.
- Sau khi phát hành, họ cải thiện công cụ truy cập người dùng và lên kế hoạch cho các hạng mục tối ưu hóa bổ sung.
1 bình luận
Ý kiến Hacker News
Có người rất thích k8s
Việc di chuyển để cải thiện hạ tầng là điều tốt
Ngạc nhiên vì trên HN có nhiều ý kiến phản đối k8s
Việc quản lý triển khai bằng Terraform và ECS phức tạp quá mức
Hoài nghi về ý kiến cho rằng việc di chuyển sang Kubernetes mất đến vài năm
Có cảm giác các quyết định ở tổ chức lớn không dựa trên nhu cầu của người dùng hay của công ty
Tò mò không biết trong các hệ thống hay dịch vụ hiện đại có điều gì được xem là đáng tự hào khi hoàn tất migration trong vòng 1 năm hay không
Thích đọc các báo cáo thực địa
Bài viết này giải thích rõ các lợi ích của Kubernetes
Tò mò không biết sẽ mất bao lâu để dừng cuộc migration này