"Trình làng" server K8S cho các CEV thỏa sức thực hiện dự án nội bộ

Chỉ trong vòng 2 tháng, team dự án server K8s của IFU đã release thành công. Hiện các CEV tại Sun* đã có thể sử dụng server K8s để tối ưu nguồn lực server, phát huy sáng tạo, xây dựng và phát triển các công cụ nội bộ, từ đó khẳng định giá trị và gia tăng hiệu quả công việc tại Sun*.

Theo định hướng phát triển đã được chia sẻ trong tài liệu Tech White Paper, K8s (Kubernetes) sẽ là nền tảng cốt lõi cho các hoạt động phát triển và điều hành của công ty. Trong những năm gần đây, Sun* đang đẩy mạnh việc ứng dụng K8s vào trong dự án theo xu hướng DevOps. K8s cũng là một công nghệ mũi nhọn để tập trung đầu tư và phát triển đội ngũ có kinh nghiệm.

Kubernetes (hay còn được gọi là K8s hay KUBE) là một nền tảng nguồn mở, khả chuyển, có thể mở rộng để quản lý các ứng dụng được đóng gói và các service, giúp thuận lợi trong việc cấu hình và tự động hóa việc triển khai ứng dụng. Kubernetes là một hệ sinh thái lớn và phát triển nhanh chóng. Các dịch vụ, sự hỗ trợ và công cụ có sẵn rộng rãi. Vì vậy các chức năng chính của Kubernetes khá đa dạng, có thể kể đến như:

- Service discovery và cân bằng tải: Expose một container sử dụng DNS hoặc địa chỉ IP của riêng nó. Nếu lượng traffic truy cập đến một container cao, Kubernetes có thể cân bằng tải và phân phối lưu lượng mạng (network traffic) để việc triển khai được ổn định.

- Điều phối bộ nhớ: Cho phép tự động mount một hệ thống lưu trữ mà bạn chọn, như local storages, public cloud providers,..

- Tự động rollouts và rollbacks: Có thể mô tả trạng thái mong muốn cho các container được triển khai dùng Kubernetes và thay đổi trạng thái thực tế sang trạng thái mong muốn với tần suất được kiểm soát.

- Đóng gói tự động: Kubernetes có thể điều phối các container đến các node để tận dụng tốt nhất các resource của bạn.

- Tự phục hồi: Kubernetes khởi động lại các containers bị lỗi, thay thế các container, xoá các container không phản hồi lại cấu hình health check do người dùng xác định và không cho các client biết đến chúng cho đến khi chúng sẵn sàng hoạt động.

- Quản lý cấu hình và bảo mật: Cho phép bạn lưu trữ và quản lý các thông tin nhạy cảm như: password, OAuth token và SSH key.

K8s được sử dụng khi bạn cần quản lý và triển khai một hệ thống phức tạp với nhiều container hoặc microservices. K8s là một lựa chọn tốt cho các dự án có nhu cầu:

- Scalability: Cho phép bạn tăng hoặc giảm số lượng các container trong hệ thống một cách dễ dàng và linh hoạt.

- Availability: Cung cấp các tính năng như replication, self-healing, rollbacks tự động và horizontal scaling để đảm bảo rằng hệ thống luôn hoạt động mạnh mẽ và không bị gián đoạn.

- Continuous Deployment/Delivery: Cho phép bạn triển khai và cập nhật mã nguồn một cách nhanh chóng và dễ dàng.

- Portability: Giúp deploy và manage ứng dụng một cách nhất quán và đáng tin cậy. Nó hỗ trợ việc chuyển đổi giữa các cloud provider hoặc môi trường on-premise dễ dàng.

Với những ưu điểm nổi bật như cung cấp nền tảng để lên lịch và chạy các Containers, cung cấp không gian lưu trữ quy mô lớn, không bao giờ cạn, vận hành mọi nơi… việc áp dụng K8s là điều cần thiết để phát triển dự án. Hiểu rõ điều này, IFU đã triển khai dự án cung cấp K8s cho tất cả các CEV tại Sun*. IFU sẽ hỗ trợ các CEV trong việc phát huy sáng tạo, xây dựng và phát triển các công cụ nội bộ, từ đó khẳng định giá trị và gia tăng hiệu quả công việc trong Sun*.

Hệ thống K8s của Sun* ra mắt: “đúng lúc, đúng thời điểm”

Hiện nay, tại Sun*, K8s là một công nghệ quan trọng, vì thế, để hỗ trợ tốt nhất, IFU đã nghiên cứu và dựng một cụm K8s trong công ty, giúp các CEV có không gian học tập, các dự án cũng sẽ có môi trường để test trước thử nghiệm. Dự án này hướng đến việc tạo server giống với thực tế triển khai sau này, giúp mọi người khi làm quen hệ thống của Infra có thể dễ dàng sử dụng công nghệ này ở ngoài dự án.

Team dự án K8s

Team dự án bao gồm 4 thành viên của IFU là Sunner Tuấn Minh, Thành Trung (Sun* Hà Nội), Văn Quyết (Sun* Đà Nẵng) và Minh Hưng (Sun* Hồ Chí Minh), bắt đầu thực hiện dự án từ tháng 4/2024. Dự án đáp ứng đủ tài nguyên cho các dự án với mức tối thiểu là 2 core 16GB. Hiện tại, K8s đã được công bố trong công ty nên các CEV đều đã được tiếp cận với cluster.

Hệ thống K8s nội bộ này thiết kế theo mô hình hệ thống được xây dựng HA, có 3 node master và 3 mode worker chạy liên tục. K8s do IFU thực hiện sẽ có các ưu điểm:

- Hệ thống sẽ gần với môi trường thực tế

- Không mất công sức phải dựng cluster mà vẫn có thể tiến hành deploy app

- Infra sẽ chịu trách nhiệm xử lý cluster, giảm effort vận hành của dev khi phát triển

Chia sẻ về dự án, Sunner Thành Trung - Đại diện dự án cho hay: “Hệ thống K8s có khá nhiều thành phần con nên việc xây dựng hệ thống phức tạp và cũng dễ gặp lỗi. Ngoài ra trong khi sử dụng cũng cần phải thay đổi và sửa đổi để phù hợp với yêu cầu sử dụng. Mặc dù vậy, team dự án vẫn quyết tâm vượt qua và tìm hướng giải quyết kịp thời. Team chủ động nghiên cứu, tham khảo từ những người có kinh nghiệm và áp dụng vào hệ thống.”

Server K8S liên tục update để mang đến những trải nghiệm tốt nhất cho các Unit

Tính đến thời điểm hiện tại, sau khi hệ thống K8s của Sun* “ra lò”, team dự án đã tổ chức 1 buổi chia sẻ cho tất cả các đại diện của mỗi CEV, cũng như giải đáp thắc mắc trong buổi họp này. Bên cạnh đó, team dự án cũng đã tạo kênh riêng để hỗ trợ cho từng CEV chia theo 3 miền, do các bạn Infra phụ trách riêng biệt. Thông qua đó, team sẽ cung cấp tài nguyên và thông tin để các Unit có thể làm quen.

Rất nhiều Unit cũng như các dự án đã được thử nghiệm hệ thống này và đưa ra những “feedback" tích cực. Chia sẻ sau khi sử dụng hệ thống, Sunner Văn Hưởng (CEV09) cho hay: “Đây là 1 hệ thống chạy nhanh và ổn định. Mình cũng được tham gia buổi giới thiệu từ team IFU về hệ thống K8s nên đã nắm rõ các thông tin về hệ thống. Để lan tỏa hệ thống này đến mọi người, mình đã tổ chức 1 buổi workshop cho anh chị em bên CEV09 về hướng dẫn cách dùng K8s.”

Dự kiến vào ngày 15/7 tới đây, team dự án sẽ cho ra mắt bộ hướng dẫn sử dụng 1 app đơn giản trên K8s để giúp các CEVs về việc sử dụng hiệu quả hơn như một số khóa học cơ bản cũng như cách để truy cập được ứng dụng của mình từ bên trong nội bộ và bên ngoài internet. Trong thời gian tới, team dự án hứa hẹn sẽ mang đến những trải nghiệm bổ ích và thú vị hơn với hệ thống K8s này.

"Team hy vọng mọi người trong công ty sẽ ứng dụng K8s nhiều hơn vào dự án và góp phần làm cho hệ thống K8s ngày càng hoàn thiện hơn. K8s sẽ là bước tiến mới, mang lại nhiều lợi ích cho các dự án và công ty. Trong tương lai, hệ thống K8s sẽ hoàn thiện đầy đủ như các hệ thống ở trên AWS, GCP và Azure. Từ đó, các dự án sẽ thuận tiện sử dụng hệ thống và có những trải nghiệm tuyệt vời." - Đại diện team dự án cho biết.

Tận dụng sự linh hoạt và khả năng mở rộng để triển khai và quản lý ứng dụng một cách hiệu quả với K8s cluster là một hướng đi đúng đắn. Chắc chắn rằng, việc sử dụng K8s cluster sẽ giúp đơn giản hóa quy trình triển khai, tăng cường độ tin cậy và khả năng mở rộng của ứng dụng trong môi trường đám mây. Vậy nên mong rằng, các Unit nhà Sun* sẽ sử dụng hệ thống K8s do IFU thực hiện một cách chất lượng nhé!