What is continuous delivery?

Continuous delivery là một phương pháp triển khai phần mềm áp dụng sự tự động hóa để tăng tốc độ phát hành.

Nó thiết lập một quy trình mà trong đó bất kỳ thay đổi nào từ một developer có thể được đưa lên code repository hoặc container registry một cách tự động.

How is continuous delivery related to CI/CD?

Continuous delivery làm nên một phần của CI/CD, một phương pháp triển khai phần mềm thường xuyên bằng cách tự động hóa một vài giai đoạn của quá trình phát triển ứng dụng.

CI trong CI/CD là continuous integration. Với continuous integration, những thay đổi mới trong code của ứng dụng được build, test và merge vào repository chung. Nó là giải pháp cho vấn đề có quá nhiều nhánh trong quá trình phát triển tại một thời điểm, điều có thể gây ra những xung đột.

CD trong CI/CD có thể là continuous deployment hoặc continuous delivery, nó đặc tả giai đoạn tự động hóa tiếp theo của pipeline.

CI/CD

What’s the difference between continuous delivery and continuous deployment?

Continuous delivery và continuous deployment, mặc dù là hai khái niệm liên quan chặt chẽ, nhưng đôi khi được sử dụng riêng biệt để chỉ rõ mức độ tự động hóa đang diễn ra.

Continuous delivery thường có nghĩa là những thay đổi của nhóm phát triển tới ứng dụng được tự động test và tải lên repository (Như GitHub hoặc container registry), nơi mà những thay đổi đó được triển khai lên môi trường production bằng nhóm vận hành. Đó là câu trả lời cho vấn đề của sự năng giao tiếp kém giữa nhóm phát triển và nhóm kinh doanh. Tóm lại, mục đích của continuous delivery là đảm bảo việc triển khai code ít tốn công sức nhất.

Mặt khác, continuous deployment bao gồm vài bước nữa trong quá trình phát hành phần mềm mới. Nó thường bao gồm tiến trình tự động phát hành những thay đổi của developer từ repository tới production - nơi mà chúng khả dụng cho khách hàng. Nó giải quyết vấn để quá tả của các nhóm vận hành khi mà những tiến trình thủ công làm chậm tiến trình triển khai ứng dụng. Nó tạo ra nhiều lợi ích của continuous delivery bằng cách tự động hóa giai đoạn tiếp theo trong pipeline.

What is a CI/CD pipeline?

Một CI/CD pipeline là một loại các bước được thực hiện theo thứ tự để triển khai một phiên bản mới của phần mềm. Áp dụng CI/CD vào thực tế nghĩa là bạn thiết lập một CI/CD pipeline.

Một CI/CD pipeline bao gồm việc giám sát (monitoring) và tự động hóa quy trình phát triển ứng dụng, đặc biệt ở giai đoạn tích hợp và thử nghiệm, cũng như trong suốt quá trình triển khai.

Mặc dù có thể thực hiện thủ công từng bước của một CI/CD pipeline nhưng giá trị thực của CI/CD pipelines là được thực hiện thông qua tự động hóa vòng đời ứng dụng.

How is continuous delivery related to DevOps?

DevOps, một khái niệm kết hợp của "development" và "operations" là một cách tiếp cận đối với văn hóa, tự động hóa và nền tảng thiết kế nhằm mục đích mang lại giá trị kinh doanh gia tăng và khả năng đáp ứng thông qua việc cung cấp dịch vụ nhanh chóng, chất lượng cao.

Continuous delivery là một phương pháp phát triển phần mềm cụ thể trong đó việc áp dụng thường liên quan đến DevOps. Cách tiếp cận DevOps có thể là tạo ra một CD pipeline.

DevOps mô tả những phương pháp tiếp cận cho việc tăng tốc tiến trình bắng một ý tưởng (ví dụ như software feature, a request for enhancement, or a bug fix) đi từ quá trình phát triển đến quá trình triển khai trong môi trường production nơi nó có thể cung cấp giá trị cho người dùng.

Với DevOps, developers thường code trong môi trường phát triển tiêu chuẩn, làm việc chặt chẽ với testers và nhóm vận hành để tăng tốc builds, code commits, unit tests và releases mà không mất đi độ tin cậy.

Kết quả chính của việc áp dụng DevOps là một CI/CD pipeline được hỗ trợ bởi các nhóm phát triển và nhóm vận hành làm việc cùng nhau bằng cách sử dụng một phương pháp agile.

How does pipeline automation support continuous delivery?

CI/CD dựa trên sự tự động hóa để tăng tốc những tiến trình development, deployment và testing. Tự động hóa giúp duy trì chất lượng trong khi giảm thiểu sai sót của con người. Sự tự động hóa cũng hỗ trợ security như là một phần của chiến lược DevSecOps.

Một số công cụ đặc biệt xử lý việc tích hợp (CI), một số quản lý development và deployment (CD), trong khi số khác chuyên về continuous testing hoặc các tính năng liên quan.

Một trong những công cụ CI/CD open source được biết đến đến nhiều nhất là automation server Jenkins. Jenkins được thiết kế để xử lý mọi thứ từ "simple CI server" tới "complete CD hub"

Một open source khác được sử dụng phổ biến đó là Tekton, một phần của Continuous Delivery Foundation. Tekton cung cấp khả năng định nghĩa các pipelines bằng Kubernetes và thực thi chúng theo yêu cầu trong những containers.

Tekton là cơ sở cho OpenShift Pipelines, một giải pháp CI/CD cho Red Hat® OpenShift®.

Nguồn: https://www.redhat.com/en/topics/devops/what-is-continuous-delivery

Leave a Reply

Your email address will not be published.