[Case Study] Spotify dịch chuyển sang Kubernetes
Spotify là nền tảng stream trực tuyến âm nhạc, podcast và video kỹ thuật số cho phép bạn truy cập vào hàng triệu bài hát và nội dung khác của các nghệ sĩ trên khắp thế giới. Ra mắt vào năm 2008, Spotify hiện đã phát triển lên hơn 365 triệu người dùng hoạt động mỗi tháng trên khắp thế giới.
Thách thức
Là người đầu tiên áp dụng microservices và Docker, Spotify đã có các microservices được đóng gói chạy trên toàn bộ nhóm máy ảo của mình từ năm 2014. Công ty đã sử dụng hệ thống điều phối container mã nguồn mở rất riêng của mình có tên là Helios. Và trong năm 2016–2017 Spotify đã hoàn thành quá trình di chuyển từ các trung tâm dữ liệu on-premise lên Cloud. Trong thời gian này, team Spotify nhận ra rằng họ cần sự hỗ trợ của một cộng đồng lớn hơn nhiều để cải thiện hơn nữa.
“Có một team nhỏ làm việc trên các tính năng của Helios không hiệu quả bằng việc áp dụng thứ gì đó được hỗ trợ bởi một cộng đồng lớn hơn nhiều. Chúng tôi thấy cộng đồng tuyệt vời đã lớn lên xung quanh Kubernetes và chúng tôi muốn trở thành một phần của điều đó. Chúng tôi muốn hưởng lợi từ việc tăng thêm tốc độ và giảm chi phí, đồng thời cũng phù hợp với phần còn lại của ngành về các phương pháp và công cụ tốt nhất.” - Jai Chakrabarti
Làm cơ sở cho những quyết định này, Chakrabarti nói: "Chúng tôi có một nền văn hóa xung quanh các nhóm tự trị, hơn 200 nhóm kỹ thuật tự trị đang làm việc trên các phần khác nhau và họ cần có khả năng lặp lại nhanh chóng. Vì vậy, đối với chúng tôi, việc có các công cụ vận tốc dành cho nhà phát triển cho phép các nhóm di chuyển nhanh chóng là điều thực sự quan trọng."
Giải pháp
Di chuyển từ Helios sang Kubernetes.
Kubernetes rất phù hợp với vai trò bổ sung và thay thế cho Helios, vì vậy Spotify có thể để nó chạy cùng với Helios để giảm thiểu rủi ro. Trong quá trình di chuyển, các service chạy trên cả hai, vì vậy họ không cần phải đặt tất cả trứng của mình vào một giỏ. Họ có thể sử dụng rất nhiều API Kubernetes và các tính năng mở rộng để hỗ trợ và giao tiếp với cơ sở hạ tầng kế thừa của họ, vì vậy việc tích hợp rất đơn giản và dễ dàng.
Vào năm 2018, công ty đã xử lý các vấn đề công nghệ cốt lõi cần thiết để chuyển từ Helios sang Kubernetes. Để giải quyết hầu hết các vấn đề, team Spotify đã dựa vào Tugboat, một hệ thống trên Helios cung cấp giao diện và các API. Theo Matt Brown - Kỹ sư phần mềm tại Spotify, hầu hết mọi dịch vụ đều đã được kết nối với Tugboat, vì vậy việc thêm Kubernetes như một lựa chọn khác để triển khai chỉ là một vấn đề đơn giản.
Quá trình dịch chuyển bắt đầu vào cuối năm 2018 và tăng tốc vào năm 2019 với trọng tâm là giải quyết các vấn đề công nghệ cốt lõi cần thiết cho quá trình di chuyển. Một tỷ lệ nhỏ trong đội ngũ của Spotify, bao gồm hơn 150 service đã được dịch chuyển sang Kubernetes. Và họ đã nhận được phản hồi từ các team nội bộ rằng họ đã có nhiều thời gian hơn để tập trung vào việc cung cấp các tính năng cho Spotify. Ông James Wen - Kỹ sư Site Reliability Engineer cho biết service lớn nhất hiện đang chạy trên Kubernetes nhận khoảng 10 triệu request mỗi giây như một aggregate service và được hưởng lợi rất nhiều từ tính năng autoscaling. Ông cũng chia sẻ thêm, "Trước đây, các team sẽ phải đợi một giờ để tạo ra một service mới và có được một máy chủ hoạt động để chạy nó trong quá trình sản xuất, nhưng với Kubernetes, họ có thể làm điều đó theo giây và phút".
“Cộng đồng đã vô cùng hữu ích trong việc giúp chúng tôi làm việc với tất cả các công nghệ nhanh hơn và dễ dàng hơn nhiều. Và nó đã giúp chúng tôi xác nhận tất cả những điều chúng tôi đang làm.”
Dave Zolotusky - Kỹ Sư Phần Mềm, Cơ sở hạ tầng và Vận hành, Spotify
Một câu chuyện thành công đến từ những ngày đầu của Kubernetes là một công cụ có tên là Slingshot mà một team Spotify đã xây dựng trên Kubernetes. Chakrabarti chia sẻ: “Với một pull request, nó tạo ra một môi trường tạm thời sẽ tự hủy sau 24 giờ. Tất cả đều được tạo điều kiện bởi Kubernetes, vì vậy đó là một ví dụ thú vị về cách một khi công nghệ ra đời và sẵn sàng sử dụng, mọi người bắt đầu xây dựng trên nó và tạo ra các giải pháp của riêng họ, thậm chí vượt xa những gì chúng ta có thể hình dung là mục đích ban đầu của nó.”
Tính đến đầu năm 2021, Spotify có 14 cụm sản xuất đa công ty ở ba khu vực. Công ty có hơn 1.600 service sản xuất chạy trên Kubernetes với khoảng 100 microservice được thêm vào mỗi tháng. Ngoài ra, Spotify đã chứng kiến mức tăng sản lượng 231% trên Kubernetes. Cụ thể, các nhóm chạy trên Kubernetes có thể thực hiện 6,26 lần triển khai sản xuất mỗi tuần so với 1,89 lần triển khai mỗi tuần cho các nhóm không sử dụng nền tảng.
Spotify là một ví dụ thành công điển hình nhưng không phải là duy nhất. Trên thực tế, Kubernetes đã rất nhiều thương hiệu lớn trên thế giới ứng dụng và triển khai thành công như: Tinder, Booking.com, Adidas, Huawei, IBM… Tuy nhiên, để tận dụng tối đa mọi khả năng của công nghệ tuyệt vời này đòi hỏi người dùng cần có những hiểu biết và kiến thức nhất định. Việc sử dụng Kubernetes sẽ đơn giản và tiện lợi hơn rất nhiều với một công cụ như Pho Tue Kubernetes Engine.
Trương Công Thành
Pho Tue SoftWare Solutions JSC là Nhà Cung cấp dịch Trung Tâm Dữ Liệu, Điện Toán Đám Mây Và Phát Triển Phần Mềm Hàng Đầu Việt Nam. Hệ Thống Data Center Đáp Ứng Mọi Nhu Cầu Với Kết Nối Internet Nhanh, Băng Thông Lớn, Uptime Lên Đến 99,99% Theo Tiêu Chuẩn TIER III-TIA 942.
Leave a comment
Your email address will not be published. Required fields are marked *