Chọn các công cụ cung cấp tính linh hoạt tối đa trong việc tích hợp và phân phối phần mềm.
Các nhà phát triển hiện đại là những người có kỹ thuật cao, kiên định, đam mê, tập trung vào cộng đồng, có định hướng, đa ngôn ngữ và quan trọng nhất là những người ra quyết định về trao quyền. Ngày nay, các nhà phát triển có tiếng nói trọng lượng trong các sản phẩm đang được xây dựng cũng như các công cụ và công nghệ được sử dụng để xây dựng chúng. Quan trọng nhất, thời gian là quý giá, và các nhà phát triển và quản lý dự án luôn có thể hưởng lợi từ hiệu quả tuyệt vời do tối ưu thời gian đem lại. Tuy nhiên, để đạt được hiệu quả cao này, bạn phải hiểu vòng đời của phần mềm và cách nó có thể được tổ chức và thao tác.
Ngành công nghiệp này vẫn đang nghiên cứu để hoàn thiện cách sử dụng thời gian hiệu quả cho nhà phát triển khi xây dựng sản phẩm. Chúng ta có thể chia các nhiệm vụ chính của nhà phát triển thành hai “vòng lặp” khác nhau:
- Vòng lặp bên trong: Đây là những tác vụ phổ biến nhất mà nhà phát triển làm, những tác vụ sử dụng đầy đủ các bộ kỹ năng của họ: mã (code), chạy (run), xác thực (validate) và gỡ lỗi (debug). Đây là vòng lặp nhà phát triển cổ điển:
(Nimisha Mukherjee, CC BY-SA 4.0 )
- Vòng lặp bên ngoài: Đây là nơi mã của nhà phát triển trải qua quá trình tích hợp liên tục và phân phối liên tục (CI / CD) và được triển khai vào sản xuất. Trên Gitlab và các nền tảng tương tự, Pull Request (PR) của nhà phát triển được hợp nhất với nhánh chính, CI / CD khởi động và tạo bản dựng, chạy các bài kiểm tra cần thiết và triển khai các môi trường được chỉ định. Đây là một vòng lặp DevOps.
(Nimisha Mukherjee, CC BY-SA 4.0 )
Các nhà phát triển nên dành phần lớn nỗ lực của họ cho các nhiệm vụ vòng trong, thúc đẩy sự đổi mới và thời gian tối thiểu cho vòng ngoài.
Hiểu được sự khác biệt giữa vòng trong và vòng ngoài có thể giúp xác định các công cụ dành cho nhà phát triển hoạt động tốt nhất cho từng phần của vòng đời phần mềm.
Các công cụ vòng trong mã nguồn mở
Dưới đây là một số công cụ nguồn mở yêu thích của tôi cho chu trình mã, chạy, xác thực và gỡ lỗi .
Mã (code)
- Eclipse Che làm cho việc phát triển Kubernetes có thể truy cập được cho các nhóm nhà phát triển. Che cung cấp môi trường phát triển tích hợp trong trình duyệt (IDE), cho phép các nhà phát triển viết mã, xây dựng, kiểm tra và chạy các ứng dụng từ bất kỳ máy nào chính xác như khi chúng chạy trong quá trình sản xuất.
- Visual Studio Code (VS Code) và VSCodium là các trình soạn thảo mã nguồn mở với hỗ trợ gỡ lỗi, tô sáng cú pháp, hoàn thành mã thông minh, đoạn mã, cấu trúc lại mã và Git được nhúng.
Chạy (run)
- OpenShift Do (odo) là một giao diện dòng lệnh dành cho các nhà phát triển hỗ trợ phát triển nhanh, lặp đi lặp lại, cho phép họ tập trung vào những gì quan trọng nhất đối với họ: mã.
- Minishift giúp các nhà phát triển chạy OKD (phân phối cộng đồng của Kubernetes) cục bộ bằng cách khởi chạy một cụm OKD một nút bên trong một máy ảo. Minishift cho phép dùng thử OKD hoặc phát triển với nó hàng ngày trên một máy cục bộ.
- Eclipse Che
Xác thực (validate)
- Eclipse Che
- Odo
- VS Code Dependency Analytics là một cơ sở dữ liệu về lỗ hổng bảo mật mã nguồn mở.
Triển khai (deploy)
- Eclipse Che
- Odo
Tìm hiểu thêm
Có nhiều quy trình công việc để thực hiện một chu trình mã hóa tốt. Để biết cách các nhà phát triển đang sử dụng những công cụ này, hãy đọc bài viết của Daniel Oh về cách anh ấy sử dụng Quark để phát triển ứng dụng không máy chủ và bài viết của Bryan Son về cách nhóm của anh ấy sử dụng Eclipse Che .
Các công cụ vòng ngoài mã nguồn mở
Có những công cụ mã nguồn mở tuyệt vời giúp gửi mã qua CI / CD và triển khai nó vào sản xuất dễ dàng hơn.
CI / CD
- Tekton là một khung mã nguồn mở để tạo các hệ thống CI / CD, cho phép các nhà phát triển xây dựng, thử nghiệm và triển khai.
- Jenkins là một máy chủ tự động mã nguồn mở và miễn phí. Nó giúp tự động hóa các phần phát triển phần mềm liên quan đến xây dựng, kiểm tra và triển khai để tạo điều kiện cho CI / CD.
Xây dựng (build)
- Shipwright là một khuôn khổ có thể mở rộng để xây dựng hình ảnh container trên Kubernetes.
- Eclipse JKube là một tập hợp các plugin và thư viện được sử dụng để xây dựng hình ảnh vùng chứa bằng cách sử dụng các chiến lược xây dựng Docker, Jib hoặc OpenShift Source-to-Image (S2I).
Chạy (run)
- CodeReady Containers (CRC) quản lý một cụm OpenShift 4.x cục bộ được tối ưu hóa cho mục đích thử nghiệm và phát triển.
Giám sát (monitor)
- Prometheus cung cấp tính năng giám sát và cảnh báo sự kiện.
Triển khai (deploy)
- Tekton
- Jenkins
- Helm là một trình quản lý gói cho Kubernetes.
- Argo CD là một công cụ phân phối liên tục, mang tính khai báo GitOps cho Kubernetes. Nó giúp cho việc triển khai ứng dụng và quản lý vòng đời trở nên tự động, dễ nghe và dễ hiểu.
Tìm hiểu DevOps
Nếu bạn muốn triển khai chiến lược DevOps, bạn có thể bắt đầu với bài viết của Jess Cherry về cách sử dụng Minishift và Jenkiins để thiết lập đường dẫn đầu tiên của bạn .
Làm cho nó dễ dàng
Ngày nay, các nhà phát triển chọn các công cụ và công nghệ được sử dụng trong tích hợp và phân phối phần mềm. Nếu bạn là nhà phát triển, hãy chọn các công cụ mã nguồn mở để có sự linh hoạt tối đa. Nếu bạn là người quản lý dự án hoặc kiến trúc sư, hãy chọn các công cụ mã nguồn mở để giúp các nhà phát triển của bạn thành công bằng cách làm việc ít hơn và hoàn thành nhiều hơn.