Garden v0.10.0: Laptop của bạn không cần Kubernetes

Ghi chú. bản dịch.: Với những người đam mê Kubernetes từ dự án Vườn chúng tôi đã gặp nhau tại một sự kiện gần đây KubeCon Châu Âu 2019, nơi họ đã gây ấn tượng dễ chịu với chúng tôi. Tài liệu này của họ, được viết về chủ đề kỹ thuật hiện tại và có tính hài hước đáng chú ý, là một sự xác nhận rõ ràng về điều này, và do đó chúng tôi quyết định dịch nó.

Anh ấy nói về điều chính (cùng tên) sản phẩm công ty có ý tưởng tự động hóa quy trình công việc và đơn giản hóa việc phát triển ứng dụng trong Kubernetes. Để thực hiện điều này, tiện ích này cho phép bạn dễ dàng (theo nghĩa đen bằng một lệnh) triển khai các thay đổi mới được thực hiện trong mã cho cụm nhà phát triển, đồng thời cung cấp tài nguyên/bộ nhớ đệm dùng chung để tăng tốc độ xây dựng và kiểm tra mã của nhóm. Hai tuần trước Garden đã tổ chức phát hành 0.10.0, trong đó không chỉ có thể sử dụng cụm Kubernetes cục bộ mà còn có thể sử dụng cụm từ xa: đây là sự kiện mà bài viết này dành riêng cho.

Điều tôi ghét nhất là làm việc với Kubernetes trên máy tính xách tay của mình. "Người cầm lái" ngốn bộ xử lý và pin, khiến bộ làm mát quay không ngừng và khó bảo trì.

Garden v0.10.0: Laptop của bạn không cần Kubernetes
Chụp ảnh có sẵn trong chủ đề để tăng thêm hiệu ứng

Minikube, kind, k3s, Docker Desktop, microk8s, v.v. - các công cụ tuyệt vời được tạo ra để giúp việc sử dụng Kubernetes trở nên thuận tiện nhất có thể và cảm ơn chúng vì điều đó. Nghiêm túc. Nhưng dù bạn nhìn nó như thế nào thì có một điều rõ ràng: Kubernetes không phù hợp để chạy trên máy tính xách tay của tôi. Và bản thân chiếc máy tính xách tay này không được thiết kế để hoạt động với một cụm thùng chứa nằm rải rác trên các lớp máy ảo. Người tội nghiệp đang cố gắng hết sức nhưng rõ ràng không thích hoạt động này, tỏ ra không hài lòng với tiếng hú của máy làm mát và cố gắng đốt cháy đùi khi tôi liều lĩnh đặt anh ta lên đầu gối của mình.

Giả sử: máy tính xách tay - máy tính xách tay.

Vườn là một công cụ dành cho các nhà phát triển có cùng lĩnh vực với Skaffold và Draft. Nó đơn giản hóa và tăng tốc độ phát triển cũng như thử nghiệm các ứng dụng Kubernetes.

Từ thời điểm bắt đầu làm việc trên Garden, khoảng 18 tháng trước, chúng tôi đã biết rằng địa phương Phát triển hệ thống phân tán là giải pháp tạm thời nên Garden được xây dựng với tính linh hoạt đáng kể và nền tảng vững chắc.

Hiện chúng tôi đã sẵn sàng hỗ trợ cả môi trường Kubernetes cục bộ và từ xa. Công việc đã trở nên dễ dàng hơn nhiều: việc lắp ráp, triển khai và thử nghiệm giờ đây có thể được thực hiện trong một cụm từ xa.

Tóm lại:

Với Garden v0.10, bạn hoàn toàn có thể quên đi cụm Kubernetes cục bộ mà vẫn nhận được phản hồi nhanh chóng khi thay đổi mã. Tất cả điều này là miễn phí và nguồn mở.

Garden v0.10.0: Laptop của bạn không cần Kubernetes
Tận hưởng trải nghiệm tương tự trên các môi trường địa phương và từ xa

Bạn có chú ý không?

Và tôi rất vui vì điều này vì chúng tôi có nhiều tính năng thú vị hơn! Việc sử dụng chung các cụm nhà phát triển có ý nghĩa rộng hơn, đặc biệt đối với các nhóm cộng tác và quy trình CI.

Làm thế nào để như vậy?

Trước hết, trình thu thập nội bộ cụm - có thể là daemon Docker tiêu chuẩn hoặc Kaniko - cũng như sổ đăng ký nội bộ cụm được chia sẻ cho toàn bộ cụm. Nhóm của bạn có thể chia sẻ cụm nhà phát triển với bộ nhớ đệm bản dựng và hình ảnh có sẵn cho tất cả các nhà phát triển. Vì Garden gắn thẻ cho hình ảnh dựa trên mã băm nguồn nên thẻ và lớp được xác định duy nhất và nhất quán.

Điều này có nghĩa là khi nhà phát triển tạo một hình ảnh, nó sẽ trở thành có sẵn cho toàn đội. Ngày qua ngày, chúng tôi tải xuống những hình ảnh cơ bản giống nhau và tạo ra những bản dựng giống nhau trên máy tính của mình. Tò mò bao nhiêu giao thông và điện bị lãng phí?..

Điều tương tự cũng có thể nói về các bài kiểm tra: kết quả của chúng được cung cấp cho toàn bộ cụm và tất cả các thành viên trong nhóm. Nếu một trong các nhà phát triển đã thử nghiệm một phiên bản mã nhất định thì không cần phải chạy lại thử nghiệm tương tự.

Nói cách khác, vấn đề không chỉ là không chạy minikube. Bước nhảy vọt này mở đường cho nhóm của bạn nhiều cơ hội tối ưu hóa - không còn các bản dựng và chạy thử không cần thiết nữa!

Còn CI thì sao?

Hầu hết chúng ta đều quen với thực tế rằng CI và nhà phát triển cục bộ là hai thế giới riêng biệt cần được cấu hình riêng (và chúng không chia sẻ bộ đệm). Bây giờ bạn có thể kết hợp chúng và loại bỏ phần dư thừa:

Bạn có thể thực thi các lệnh tương tự trong CI và trong quá trình phát triển, cũng như sử dụng một môi trường, bộ nhớ đệm và kết quả kiểm tra duy nhất.

Về cơ bản, CI của bạn sẽ trở thành bot phát triển làm việc trong cùng môi trường với bạn.

Garden v0.10.0: Laptop của bạn không cần Kubernetes
Các yếu tố hệ thống; phát triển và thử nghiệm liền mạch

Cấu hình đường ống CI có thể được đơn giản hóa đáng kể. Để thực hiện việc này, chỉ cần chạy Garden từ CI để xây dựng, kiểm tra và triển khai. Vì bạn và CI đang sử dụng cùng một môi trường nên bạn sẽ ít gặp phải sự cố về CI hơn.

Tìm hiểu vô số dòng cấu hình và tập lệnh, rồi đẩy, chờ đợi, hy vọng và lặp lại vô tận... Tất cả đã là quá khứ. Bạn chỉ đang phát triển. Không có chuyển động không cần thiết.

Và cuối cùng để làm rõ tình hình: khi bạn hoặc một thành viên khác trong nhóm xây dựng hoặc thử nghiệm thứ gì đó với Garden, điều tương tự cũng xảy ra với CI. Nếu bạn không thay đổi bất cứ điều gì kể từ khi chạy thử nghiệm thì bạn không cần chạy thử nghiệm (hoặc thậm chí là bản dựng) cho CI. Garden tự làm mọi việc rồi chuyển sang các nhiệm vụ khác như tổ chức môi trường trước khi ra mắt, đẩy hiện vật, v.v.

Nghe có vẻ hấp dẫn. Làm thế nào để thử?

Chào mừng bạn đến kho lưu trữ GitHub của chúng tôi! Cài đặt Garden và thử nghiệm các ví dụ. Đối với những người đã sử dụng Garden hoặc muốn tìm hiểu rõ hơn về nó, chúng tôi cung cấp Hướng dẫn Kubernetes từ xa. Hãy tham gia cùng chúng tôi trên kênh #garden trong Kubernetes Slack, nếu bạn có thắc mắc, vấn đề hoặc chỉ muốn trò chuyện. Chúng tôi luôn sẵn sàng giúp đỡ và đón nhận những phản hồi từ người dùng.

Tái bút từ người dịch

Chúng tôi cũng sẽ sớm xuất bản bài đánh giá về các tiện ích hữu ích dành cho các nhà phát triển ứng dụng hoạt động trong Kubernetes, bao gồm các dự án thú vị khác ngoài Garden... Trong thời gian chờ đợi, hãy đọc thêm trên blog của chúng tôi:

Nguồn: www.habr.com

Thêm một lời nhận xét