Tích hợp và triển khai liên tục với CircleCI và Github: Xu hướng mới trong phát triển và triển khai phần mềm

10:28 - 30/03/2021  |  1356 lượt xem

Chia sẻ
Đối với việc phát triển phần mềm đầy đủ luôn bao gồm nhiều công đoạn, bắt đầu từ khảo sát lấy nghiệp vụ đến phân tích bài toán, thiết kế và xây dựng chương trình, kiểm thử và cuối cùng là triển khai chương trình lên hệ thống thực tế. Qua thời gian, rất nhiều các quy trình khác nhau được đưa ra nhằm đẩy nhanh tốc độ phát triển phần mềm đồng thời hạn chế lỗi tối đa. Continuous Integration (tích hợp liên tục) và Continuous Delivery (triển khai liên tục) (CI/CD) là một trong những phương pháp đó. Bài viết này sẽ đưa ra một cái nhìn tổng quan về CI/CD và giới thiệu về CircleCI với Github.
Tích hợp và triển khai liên tục với CircleCI và Github: Xu hướng mới trong phát triển và triển khai phần mềm

Quy trình CI/CD với CircleCI

Tích hợp liên tục và triển khai liên tục (CI/CD) là gì?

Tích hợp liên tục - Countinuous Integration (CI) - là phương pháp phát triển phần mềm trong đó những người phát triển phần mềm (developers) tích hợp code của họ liên tục và thường xuyên trên một nhánh chung của một repository. Ở các phương pháp phát triển truyền thống khác, code thường được phát triển độc lập theo từng chức năng sau đó được tích hợp vào code chính ở cuối giai đoạn phát triển phần mềm. Ví dụ, bạn làm việc với git, các tính năng được các lập trình viên phát triển riêng biệt nhau và sau đó được merge và resolve conflict sau khi đã hoàn thành.

Phát triển phần mềm theo cách truyền thống.

Thay vào đó, với phương pháp CI, các developer phát triển theo hướng như sau:

  • Mỗi developer commit code của mình lên trực tiếp mainline.
  • Mỗi feature được merge vào sẽ kích hoạt (trigger) build code và automation test.
  • Feature sẽ không được chấp nhận nếu fail các bài test và mainline không build được.
  • Developer sửa lỗi và tiếp tục tích hợp code.

Quy trình CI trong phát triển phần mềm

Triển khai liên tục - Continuous Delivery (CD) - là giai đoạn sau khi phần mềm được phát triển đến các server test, staging. CD cho phép chuyển code đã được build và test liên tục trong quá trình CI đến các server triển khai code để tự động hoá, đẩy nhanh quá trình test và triển khai phần mềm.

CD song song với CI

Tại sao cần CI/CD?

Điểm mạnh nhất của CI/CD là đưa mọi quá trình test, deploy lên tự động hóa hoàn toàn, và cho phép developer liên tục phát triển, kiểm thử các chức năng của họ. Điều này giúp tăng hiệu suất phát triển phần mềm, tìm và fix các lỗi nhanh hơn, release sản phẩm cũng nhanh và ổn định hơn.

Một số thuật ngữ và khái niệm cần biết về CircleCI:

  • Configuration (config.yml): file này điều phối các integration và deployment cho cả project. Trong file chứa các thành phần như sau:
    • Pipeline: là tất cả các cấu hình (configuration).
    • Workflows: Có nhiệm vụ điều phối hiểu jobs.
    • Jobs: mỗi job sẽ thực hiện các lệnh (steps) theo tuần tự,
    • Steps: là command (ví dụ cài đặt dependencies, hoặc chạy test) và script trong quá trình làm việc.
  • Orbs: Là các snippet hỗ trợ sẳn để giúp cho việc build, test tự động, thuận tiện hơn.

Sau khi một repository của Github hoặc Bitbucket được kết nối với CircleCI, mỗi lần code được merge, thay đổi, thì sẽ kích hoạt automation test trên một container mới của máy ảo VM. CircleCI chạy các job hoàn toàn trên các container độc lập. Hiện nay, CircleCI đã hỗ trợ deploy lên các nền tảng như AWS CodeDeploy, AWS EC2 Container Service (ECS), AWS S3, Google Kubernetes (GKE), Microsoft Azure, Heroku.

Trên đây là bài giới thiệu tổng quan về hướng phát triển phần mềm mới CI/CD và Circle đem lại nhiều lợi ích trong việc phát triển, triển khai phần mềm trong tương lai.

Nguyễn Văn Điệp

10:28 - 30/03/2021  |  1356 lượt xem

Chia sẻ

TIN BÀI ĐỌC NHIỀU

Hạnh phúc bình dị của một gia đình thợ điện

Hạnh phúc bình dị của một gia đình thợ điện

15:59 - 28/06/2022  |  7297 lượt xem