3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Triển khai liên tục là một cách tiếp cận đặc biệt trong phát triển phần mềm, được sử dụng để triển khai nhanh chóng, an toàn và hiệu quả các chức năng khác nhau trong phần mềm.

Ý tưởng chính là tạo ra một quy trình tự động đáng tin cậy cho phép nhà phát triển nhanh chóng cung cấp thành phẩm cho người dùng. Đồng thời, những thay đổi liên tục được thực hiện trong quá trình sản xuất - đây được gọi là đường ống phân phối liên tục (Đường ống CD).

Hộp kỹ năng khuyến nghị: khóa học thực hành "Nhà phát triển di động PRO".

Chúng tôi nhắc nhở: cho tất cả độc giả của "Habr" - giảm giá 10 rúp khi đăng ký bất kỳ khóa học Skillbox nào bằng mã khuyến mại "Habr".

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Để kiểm soát luồng, bạn có thể sử dụng nhiều công cụ khác nhau, bao gồm cả trả phí và hoàn toàn miễn phí. Bài viết này mô tả ba giải pháp phổ biến nhất trong số các nhà phát triển và có thể hữu ích cho mọi lập trình viên.

Jenkins

Máy chủ tự động hóa nguồn mở hoàn toàn khép kín. Bạn nên làm việc để tự động hóa tất cả các loại nhiệm vụ liên quan đến xây dựng, thử nghiệm, vận chuyển hoặc triển khai phần mềm.

Yêu cầu máy tính tối thiểu:

  • RAM 256 MB, dung lượng tệp 1 GB.

Tối ưu:

  • RAM 1GB, ổ cứng 50GB.

Để làm việc, bạn cũng sẽ cần phần mềm bổ sung - Java Runtime Environment (JRE) phiên bản 8.

Kiến trúc (điện toán phân tán) trông như thế này:
3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Máy chủ Jenkins là một bản cài đặt chịu trách nhiệm lưu trữ GUI, cũng như tổ chức và thực thi toàn bộ quá trình xây dựng.

Jenkins Node/Slave/Build Server - các thiết bị có thể được cấu hình để thực hiện công việc xây dựng thay mặt cho Master (nút chính).

Cài đặt cho Linux

Đầu tiên bạn cần thêm kho Jenkins vào hệ thống:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | Thêm khóa apt sudo - echo 'deb pkg.jenkins.io/debian-ổn định nhị phân/' | sudo tee -a /etc/apt/sources.list.d/je

Cập nhật kho gói:

sudo apt update

Cài đặt Jenkins:

sudo apt cài đặt jenkins

Sau này, Jenkins sẽ có sẵn trong hệ thống thông qua cổng mặc định 8080.

Để kiểm tra chức năng, bạn cần mở địa chỉ trên trình duyệt localhost:8080. Sau đó, hệ thống sẽ nhắc bạn nhập mật khẩu ban đầu cho người dùng root. Mật khẩu này nằm trong tệp /var/lib/jenkins/secrets/initialAdminPassword.

Bây giờ mọi thứ đã sẵn sàng, bạn có thể bắt đầu tạo các luồng CI/CD. Giao diện đồ họa của bàn làm việc trông như thế này:

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Điểm mạnh của Jenkins:

  • khả năng mở rộng được cung cấp bởi kiến ​​trúc Master/Slave;
  • tính khả dụng của API REST XML/JSON;
  • khả năng kết nối một số lượng lớn tiện ích mở rộng nhờ plugin;
  • cộng đồng năng động và không ngừng phát triển.

Nhược điểm:

  • không có khối phân tích;
  • giao diện không thân thiện lắm với người dùng.

TeamCity

Phát triển thương mại từ JetBrains. Máy chủ hoạt động tốt với thiết lập đơn giản và giao diện tuyệt vời. Cấu hình mặc định có số lượng chức năng lớn và số lượng plugin có sẵn không ngừng tăng lên.

Yêu cầu Môi trường chạy thi hành Java (JRE) phiên bản 8.

Các yêu cầu phần cứng máy chủ không quan trọng:

  • RAM - 3,2 GB;
  • bộ xử lý - lõi kép, 3,2 GHz;
  • kênh truyền thông có dung lượng 1 Gb/s.

Máy chủ cho phép bạn đạt được hiệu suất cao:

  • 60 dự án với 300 cấu hình xây dựng;
  • Phân bổ 2 MB cho nhật ký xây dựng;
  • 50 đại lý xây dựng;
  • khả năng làm việc với 50 người dùng trong phiên bản web và 30 người dùng trong IDE;
  • 100 kết nối của VCS bên ngoài, thường là Perforce và Subversion. Thời gian thay đổi trung bình là 120 giây;
  • hơn 150 sửa đổi mỗi ngày;
  • làm việc với cơ sở dữ liệu trên một máy chủ;
  • Cài đặt quy trình máy chủ JVM: -Xmx1100m -XX:MaxPermSize=120m.

Yêu cầu của tác nhân dựa trên các cụm đang chạy. Nhiệm vụ chính của máy chủ là giám sát tất cả các tác nhân được kết nối và phân phối các tập hợp được xếp hàng đợi đến các tác nhân này dựa trên yêu cầu tương thích, báo cáo kết quả. Các đại lý có nhiều nền tảng và hệ điều hành khác nhau, cùng với môi trường được cấu hình sẵn.

Tất cả thông tin về kết quả xây dựng được lưu trữ trong cơ sở dữ liệu. Chủ yếu đây là lịch sử và các dữ liệu tương tự khác, các thay đổi của VCS, tác nhân, hàng đợi xây dựng, tài khoản người dùng và quyền. Cơ sở dữ liệu không chỉ bao gồm nhật ký xây dựng và tạo phẩm.

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Cài đặt cho Linux

Để cài đặt TeamCity theo cách thủ công với bộ chứa servlet Tomcat, bạn nên sử dụng kho lưu trữ TeamCity: TeamCity .tar.gz. Tải xuống bạn có thể lấy nó từ đây.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [bắt đầu|dừng]

Khi bắt đầu lần đầu tiên, bạn cần chọn loại cơ sở dữ liệu mà dữ liệu tập hợp sẽ được lưu trữ.

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Cấu hình mặc định chạy trên localhost:8111/ với một tác nhân xây dựng đã đăng ký chạy trên cùng một PC.

Điểm mạnh của TeamCity:

  • thiết lập dễ dàng;
  • giao diện người dùng thân thiện;
  • một số lượng lớn các chức năng tích hợp;
  • Dịch vụ hỗ trợ;
  • có API RESTful;
  • tài liệu tốt;
  • an ninh tốt.

Nhược điểm:

  • hội nhập hạn chế;
  • Đây là một công cụ trả phí;
  • một cộng đồng nhỏ (tuy nhiên, đang phát triển).

GoCD

Một dự án nguồn mở yêu cầu Môi trường chạy thi hành Java (JRE) phiên bản 8 để cài đặt và vận hành.

Yêu cầu hệ thống:

  • RAM - tối thiểu 1 GB, càng nhiều càng tốt;
  • bộ xử lý - lõi kép, tần số lõi 2 GHz;
  • ổ cứng - ít nhất 1 GB dung lượng trống.

agent:

  • RAM - ít nhất là 128 MB, càng nhiều càng tốt;
  • bộ xử lý - ít nhất 2 GHz.

Máy chủ đảm bảo hoạt động của các đại lý và cung cấp giao diện thuận tiện cho người dùng:

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Giai đoạn/Công việc/Nhiệm vụ:

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

Cài đặt cho Linux

echo "deb tải về.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

quăn lại tải xuống.gocd.org/GOCD-GPG-KEY.asc | Sudo apt-key thêm -
kho lưu trữ bổ sung ppa:openjdk-r/ppa

apt-get update

cài đặt apt-get -y openjdk-8-jre

cài đặt apt-get go-server

apt-get cài đặt go-agent

/etc/init.d/go-server [bắt đầu|dừng|trạng thái|khởi động lại]

/etc/init.d/go-agent [bắt đầu|dừng|trạng thái|khởi động lại]

Theo mặc định GoCd chạy trên localhost: 8153.

Điểm mạnh của GoCd:

  • mã nguồn mở;
  • cài đặt và cấu hình đơn giản;
  • tài liệu tốt;

  • Giao diện người dùng tuyệt vời:

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

  • khả năng hiển thị đường dẫn triển khai GoCD từng bước trong một chế độ xem:

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

  • hiển thị tuyệt vời của cấu trúc đường ống:

3 công cụ phổ biến để tổ chức triển khai liên tục (Continuous Deployment)

  • GoCD tối ưu hóa quy trình làm việc CD trong các môi trường đám mây phổ biến nhất bao gồm Docker, AWS;
  • công cụ này có thể khắc phục các sự cố trong quy trình, nhờ đó có tính năng theo dõi mọi thay đổi từ cam kết đến triển khai trong thời gian thực.

Nhược điểm:

  • cần ít nhất một tác nhân;
  • không có bảng điều khiển để hiển thị tất cả các tác vụ đã hoàn thành;
  • để thực thi mỗi lệnh, bạn cần tạo một tác vụ cho cấu hình đường ống;
  • Để cài đặt plugin bạn cần di chuyển tệp .jar sang /plugins/external và khởi động lại máy chủ;
  • cộng đồng tương đối nhỏ.

Là một kết luận

Đây chỉ là ba công cụ, trên thực tế còn nhiều công cụ khác nữa. Rất khó để lựa chọn, vì vậy bạn chắc chắn cần chú ý đến các khía cạnh bổ sung.

Mã nguồn mở của công cụ giúp bạn có thể hiểu nó là gì và thêm các tính năng mới nhanh hơn. Nhưng nếu có điều gì đó không ổn thì bạn chỉ phải dựa vào chính mình và sự giúp đỡ của cộng đồng. Các công cụ trả phí cung cấp sự hỗ trợ đôi khi có thể rất quan trọng.

Nếu bảo mật là ưu tiên hàng đầu của bạn thì bạn nên làm việc với một công cụ cục bộ. Nếu không thì chọn giải pháp SaaS là ​​một lựa chọn tốt.

Và cuối cùng, để đảm bảo quá trình triển khai liên tục thực sự hiệu quả, bạn cần xây dựng các tiêu chí có chi tiết cụ thể sẽ cho phép bạn thu hẹp phạm vi các công cụ có sẵn.

Hộp kỹ năng khuyến nghị:

Nguồn: www.habr.com

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