ci/cd là gì

ci-cd-la-gi-thumbnail

CI/CD là gì? CI/CD là ghi chép tắt của Continuous Integration và Continuous Delivery/Deployment, được coi như 1 tiến độ loại mới nhất, phối kết hợp tự động hóa hoá canh ty đẩy mạnh tiến trình cải tiến và phát triển thành phầm và đem thành phầm cho tới người tiêu dùng sau cuối.

Bạn đang xem: ci/cd là gì

Để nắm rõ rộng lớn về CI/CD, những lý lẽ xây dựng tương đương ông tơ contact thân thiết CI/CD với Agile nhập toàn cảnh thực tiễn, ITviec đang được với buổi share thú vị với những vấn đề đẫy hữu ích nằm trong anh Nguyễn Trường Giang – Mobile Tech Lead bên trên Amanotes qua chuyện nội dung bài viết tại đây.

Tham khảo việc thực hiện bên trên Amanotes bên trên ITviec

CI/CD là gì?

CI là ghi chép tắt của Continuous Integration (tích ăn ý liên tục), CD là ghi chép tắt của Continuous Delivery (chuyển phú liên tục) hoặc Continuous Deployment (triển khai liên tục).

Khái niệm CI/CD thông thường nhắc đến việc tự động hóa hóa nhập tiến độ cải tiến và phát triển ứng dụng và đem phú thành phầm, hỗ trợ cho việc tích ăn ý ra mắt thời gian nhanh rộng lớn và thành phầm hoàn mỹ được đem đến người tiêu dùng nhập thời hạn nhanh nhất.

Hiện ni, CI/CD đã và đang được vận dụng thoáng rộng nhập tiến độ thao tác làm việc của những công ty thực hiện nhập nghành nghề IT, tuy vậy hành cùng theo với DevOps và Agile. Một tiến độ CI/CD hoàn hảo hoàn toàn có thể được tưởng tượng như sau: 

  1. Developer commit code (đẩy code lên server).
  2. Quy trình CI/CD tiếp tục tự động hóa chạy build, chạy test và deploy thành phầm.
  3. Tiếp tục đem phú thành phầm cho tới người tiêu dùng.

Sự khác lạ Lúc cải tiến và phát triển ứng dụng vận dụng CI/CD là gì?

Với một tiến độ cải tiến và phát triển ứng dụng, toàn bộ công việc thao tác làm việc của Developer với phần tay chân và tổn thất không hề ít thời hạn. Anh Giang thể hiện ví dụ:

Developer sau khoản thời gian code xong xuôi thì tiếp tục build thẳng bên trên máy tính/laptop cá thể, tiếp sau đó ngóng code được build kết thúc. Tiếp Từ đó, bọn họ nên upload tay chân tệp tin này lên TestFlight và trải qua chuyện 3,4 bước thao tác, rồi lại nối tiếp ngóng cho tới Lúc kết thúc đẩy. File được upload xong xuôi không còn thì Developer mới nhất thông tin cho tới team Tester/QA QC và thời điểm hiện nay, team mới nhất chính thức triển khai công tác làm việc kiểm demo mang lại toàn cỗ thành phầm.

Nếu xẩy ra sơ sót thì tiến độ gần như là tiếp tục quay trở về từ trên đầu, thời hạn ngóng thân thiết phía hai bên Developer và Tester/QA QC kha khá lâu năm, tạo cho dự án công trình cũng trở thành trì dừng theo gót. Đó là ko nói tới việc Developer Lúc cải tiến và phát triển một tác dụng mới nhất hoàn toàn có thể thực hiện hư đốn tác dụng cũ đang hoạt động bên trên phần mềm, nhưng mà chỉ Lúc deploy mới nhất trừng trị hình thành.

ci-cd-la-gi-02

Áp dụng CI/CD là cơ hội triệt tiêu xài hiệu suất cao công việc tay chân nhập tiến độ cải tiến và phát triển phần mềm/ứng dụng. Việc của Developer đơn giản commit code, còn sót lại toàn bộ tiến độ bao hàm chạy build, test, deploy sẽ tiến hành tự động hóa triển khai trọn vẹn tự dụng cụ (tool) CI/CD. Nếu hoàn toàn có thể phối kết hợp thêm thắt với automation test thì tiến độ tiếp tục nghiêm ngặt và giới hạn được tối nhiều những lỗi đột biến (ví dụ: lỗi cải tiến và phát triển tác dụng mới nhất thực hiện hư đốn tác dụng cũ).

Cách thức hoạt động và sinh hoạt của CI/CD

Theo anh Giang share thì nhập tiến độ CI/CD bên trên Amanotes sẽ sở hữu sự kết hợp của (1) là Git repository và (2) là CI/CD tool.

Khi Developer đưa đến ngẫu nhiên sự thay cho thay đổi bên trên Git repository (ví dụ: tạo nên pull request) thì Git repository tiếp tục trừng trị cút thông tin cho tới CI/CD tool là với thay cho thay đổi như vậy. Phản hồi với thông tin, phía CI/CD tiếp tục tự động hóa triển khai những thao tác đã và đang được setup trước ê mang lại hành vi pull request. 

Sau Lúc triển khai toàn bộ những mệnh lệnh đã và đang được setup kể bên trên thì CI/CD tiếp tục update sản phẩm ngược lại mang lại Git repository biết là pull request được tạo nên với vượt lên (pass) không còn những tiến độ (bao bao gồm testing) phía CI/CD hay là không. 

Theo ê, Lúc review code, Reviewer chỉ việc nhìn nhập tình trạng sau cuối của pull request (passed hoặc failed) để hiểu pull request đang được đáp ứng nhu cầu được unique, đang được tối ưu hoặc ko.

Anh Giang đánh giá và nhận định thêm thắt rằng tiến độ CI/CD chỉ hoàn toàn có thể cover một trong những phần logic, Developer vẫn nên dành riêng thời hạn nhằm review code tay chân nhằm mục đích đáp ứng sự phù phù hợp với tiêu xài chuẩn chỉnh của tất cả team, và vì thế thực tiễn vẫn đang còn một vài lỗi nhưng mà quy trình tự động hóa (automation) vẫn ko cover không còn được.

Việc thực hiện IT Developer “chất” bên trên TP.Hồ Chí Minh bên trên ITviec
Việc thực hiện IT Developer “chất” bên trên thủ đô hà nội bên trên ITviec

Ưu điểm và điểm yếu của CI/CD là gì?

Theo thưởng thức của phiên bản thân thiết, anh Giang share một vài ưu thế nhưng mà tiến độ CI/CD đưa đến mang lại Developer bao gồm:

  • Tránh được những lỗi ko xứng đáng có: ví dụ như lỗi compile (khi đẩy code lên) hoặc những lỗi đột biến tương quan cho tới môi trường xung quanh build thành phầm. Ví dụ: Lúc thực hiện tay chân, nằm trong 1 source code tuy nhiên sẽ sở hữu sự khác lạ khi chúng ta A build bên trên máy chúng ta A, chúng ta B build bên trên máy chúng ta B.
  • Đảm bảo logic (vì tiến độ CI/CD với phần automation test), Lúc Developer xây đắp tác dụng mới nhất tiếp tục không khiến tác động cho tới tác dụng cũ.
  • Giúp triệu tập nhập công việc tự tiến độ CI/CD mang tính chất tự động hóa cao nên Developer không nhất thiết phải triển khai việc build và deploy phần mềm/ứng dụng bên trên máy cá thể nữa.
  • Nâng cao unique code trải qua tiến độ, Developer hoàn toàn có thể setup những buộc ràng tức thì từ trên đầu. Ví dụ: pull request Lúc được đưa đến thì ko được quá rộng, ko được vượt lên trên quá X thay cho đổi…, điều này góp thêm phần canh ty unique pull request càng ngày càng đảm bảo chất lượng rộng lớn.
  • Phát triển tài năng unit test mang lại Developer trải qua những chỉ số buộc ràng về code coverage (% code đã và đang được cover) được setup nhập tiến độ CI/CD. Nghĩa là lúc cải tiến và phát triển tác dụng mới nhất, nhằm ko thực hiện rời chỉ số code coverage, Developer nên ý thức được vai trò của unit test và dữ thế chủ động học hỏi và giao lưu, nâng lên những tài năng tương quan.
  • Tối ưu vận tốc cải tiến và phát triển của sản phẩm trải qua việc theo gót dõi thời hạn build pipeline (các bước chạy test, build, chạy static code analytics (lint check)).

Bên cạnh những ưu thế canh ty tiến độ CI/CD xứng danh suy nghĩ nhằm vận dụng nhập tổ chức triển khai thì CI/CD vẫn đang còn những giới hạn rất cần được Note như:

  • Trong một dự án công trình nếu như với rất nhiều Developer nằm trong nhập cuộc cải tiến và phát triển thành phầm, sẽ sở hữu thời khắc đột biến nhiều pull request rất cần phải merge nhập branch. Lúc này, những member nên ngóng pull request của những người trước được merge kết thúc, tiếp sau đó triển khai update (cập nhật) lại source code (trong tình huống với thông tin conflict kể từ Git repository) và nên trải qua chuyện công việc test lại từ trên đầu. Hệ trái khoáy là làm những công việc gián đoạn thời hạn cải tiến và phát triển thành phầm.
  • Vì dùng công ty CI/CD của mặt mày service loại 3 nên nếu như service ê gặp gỡ yếu tố và bị crash, bị khai tử thì các dự án công trình vận dụng CI/CD cũng trở thành tác động khá nguy hiểm.

Khi nào là nên sử dụng và lúc nào tránh việc sử dụng tiến độ CI/CD?

Anh Giang khuyến nghị những tổ chức triển khai nên vận dụng tiến độ CI/CD và việc tích ăn ý nên triển khai càng cấp tốc càng đảm bảo chất lượng. Quan điểm của anh ấy là lúc với tiến độ đảm bảo chất lượng thì unique việc làm của Developer cũng tối ưu rộng lớn. Kể cả Lúc triển khai dự án công trình theo gót cá thể thì vẫn nên tích ăn ý CI/CD (có thể lựa lựa chọn những service miễn phí) nhằm tận dụng tối đa những ưu thế đã và đang được liệt kê.

Tuy nhiên, nhập một vài tình huống như: tổ chức triển khai không tồn tại người đầy đủ tài năng vận hành tiến độ CI/CD, Developer ko thực hiện mái ấm và ko nắm vững về tool hoặc ko biết làm thế nào nhằm đáp ứng tiến độ CI/CD… thì hoàn toàn có thể suy nghĩ ko dùng. Vì nếu như với yếu tố ko ước muốn xẩy ra tuy nhiên lại không tồn tại người đầy đủ kỹ năng và kiến thức trình độ chuyên môn nhằm xử lý thì tiếp tục tổn thất thật nhiều thời hạn, tạo ra nhiều con gián đoạn ko quan trọng.

CI/CD và Agile với ông tơ contact rời khỏi sao?

Theo anh Giang thì CI/CD tựa như một tiến độ bổ sung cập nhật, hỗ trợ cho việc triển khai Agile đảm bảo chất lượng rộng lớn. Nếu như Agile thiên về tiến độ quản lý và vận hành việc làm thì CI/CD lại thiên về technical (kỹ thuật), hỗ trợ cho việc cải tiến và phát triển thành phầm nhanh gọn lẹ rộng lớn.

Các lý lẽ Lúc xây dựng tiến độ CI/CD mang lại tổ chức?

ci-cd-la-gi-03

Xem thêm: cường độ dòng điện là gì

Tuỳ nằm trong vào cụ thể từng tổ chức triển khai, tuy nhiên theo gót anh Giang share thì lúc này Amanotes đang được vận dụng những lý lẽ như sau:

  • Không cần thiết toàn cỗ những team nhập tổ chức triển khai vận dụng tiến độ CI/CD, nếu như thấy team nào là thích hợp thì hoàn toàn có thể xây dựng trước tiên.
  • Nên chính thức càng cấp tốc càng đảm bảo chất lượng (lúc team không nhiều người hoặc khi mới nhất chính thức dự án) thì Lúc đi vào phần mềm thoáng rộng tiếp tục gặp gỡ không nhiều trở ngại rộng lớn.
  • Đừng lo ngại demo nhiều mặt mày service nhằm lựa lựa chọn ra được service thích hợp nhất vì thế sẽ sở hữu service thích hợp mang lại team này tuy nhiên ko đáp ứng nhu cầu được yêu cầu của team không giống. Ví dụ: team Mobile tiếp tục đòi hỏi mặt mày service được chấp nhận tương hỗ build được bên trên iOS/Android, còn team Backend sẽ sở hữu những đòi hỏi không giống.
  • Nên lựa lựa chọn service phù phù hợp với nhiều team, hoàn toàn có thể share khoáng sản nhằm tối ưu ngân sách rộng lớn.

Khó khăn hoặc thử thách Lúc xây dựng tiến độ CI/CD là gì?

Điều đáng vui với anh Giang và team Lúc xây dựng tiến độ CI/CD bên trên Amanotes là hầu hết không tồn tại trở ngại gì cả. Mỗi team với quyền tự động ra quyết định service tốt nhất có thể và thích hợp nhất với team bản thân nên cũng không tồn tại buộc ràng, quy trình lời khuyên với cấp cho bên trên cũng nhanh gọn lẹ và được thuận tình dễ dàng và đơn giản. Chủ yếu đuối ở khoảng chừng thời hạn đầu thì những team nên tốn thời hạn test trên rất nhiều service nhằm lựa chọn ra được “ứng cử viên” đảm bảo chất lượng nhất.

Ví dụ: Lúc đầu team anh Giang test bên trên CircleCI và App Center của Microsoft tuy nhiên CircleCI thì khó khăn dùng còn App Center thì thông số kỹ thuật yếu đuối và không tồn tại lựa lựa chọn thông số kỹ thuật, kéo theo thời hạn build lâu. Sau ê team đem thanh lịch test bên trên Bitrise và lựa lựa chọn dùng lâu lâu năm.

Ngoài rời khỏi, anh Giang cũng Note rằng Lúc anh lần thứ nhất thông tin về sự xây dựng tiến độ CI/CD, một vài member nhập team anh cảm nhận thấy lạ lẫm và với phần tương đối bó buộc. Tuy nhiên, sau khoản thời gian anh biểu diễn giải về những ưu thế cũng giống như những quyền lợi nhưng mà những chúng ta cũng có thể đạt được Lúc vận dụng tiến độ CI/CD thì team cũng dần dần túa tăng thêm và hào hứng với tool mới nhất. 

Chẳng hạn: Theo tiến độ CI/CD thì tài năng code của các bạn sẽ đảm bảo chất lượng rộng lớn, vận dụng CI/CD thì nâng tổn thất thời hạn build vì thế đang được với khối hệ thống tự động động…

Tất nhiên Lúc quý khách đều đồng thuận với việc xây dựng tiến độ CI/CD thì cả team cũng nên nêm thêm thời hạn mò mẫm tòi, học hỏi và giao lưu, hoàn mỹ dần dần tiến độ và học tập thêm thắt về unit test…

Tiêu chí nhằm lựa lựa chọn service CI/CD đảm bảo chất lượng nhất?

Theo anh Giang, trước lúc lựa lựa chọn được service CI/CD thích hợp nhất thì rất cần được suy nghĩ dựa vào nhiều nhân tố. Với anh, cường độ ưu tiên của những nhân tố được bố trí như sau:

  1. Phải đáp ứng nhu cầu được những yêu cầu bản thân cần thiết.
  2. Nếu nhân sự không thực sự chuyên nghiệp về CI/CD thì tool nhưng mà phía service hỗ trợ đòi hỏi nên dễ dàng dùng.
  3. Có nhiều lựa lựa chọn thông số kỹ thuật vì thế thông số kỹ thuật với tương quan cho tới build time – nhân tố cần thiết nhập tiến độ, build pipeline nên càng thời gian nhanh càng đảm bảo chất lượng.
  4. Lựa lựa chọn service càng thông dụng càng đảm bảo chất lượng vì thế nhiều người biết phương pháp dùng. Chẳng hạn: Circle CI, Bitrise, Gitlab, TeamCity, Github Actions, TravisCI…
  5. Chi phí phù phù hợp với ngân sách của tổ chức triển khai. (Ở Amanotes, ngân sách dùng service CI/CD cần thiết tuy nhiên ko nên là nhân tố tiên quyết).

Quy trình thao tác làm việc điển hình nổi bật theo gót quy mô CI/CD

Anh Giang share rằng một tiến độ thao tác làm việc với CI/CD bên trên Amanotes tiếp tục bao gồm 2 workflow chính:

(1) Development

Khi Developer cải tiến và phát triển một tác dụng nào là ê thì bọn họ sẽ tạo nên một branch. Sau sau khi làm xong thì sẽ tạo nên pull request nhằm merge branch này nhập development branch tổng. Trong tình huống pull request được khởi tạo nên, tiến độ CI/CD được thiết lập sẵn tiếp tục chạy build, chạy test, chạy lint kiểm tra và report.

(2) Deployment

Khi pull request được merge nhập branch thì tiếp tục triển khai build thành phầm, tiếp sau đó upload lên Test Flight mang lại iOS hoặc Fire App Distribution mang lại Android. Khi tiến độ upload thành công xuất sắc, sẽ sở hữu thông tin hiển thị qua chuyện Slack nhằm chúng ta QC biết và lên TestFlight vận tải về, nối tiếp triển khai manual test.

Có nên test tool CI/CD bên trên dự án công trình nhỏ?

Nhận quyết định về ý kiến “Bắt buộc nên test demo tool CI tiềm năng nhập một dự án công trình nhỏ trước lúc ra quyết định dùng và đi vào toàn cỗ hệ thống”, anh Giang nhận định rằng anh trọn vẹn tán thành với việc nên test bên trên một (hoặc thậm chí còn nhiều) dự án công trình nhằm lựa chọn được tool và service thích hợp mang lại dự án công trình. Tuy nhiên, việc dựa vào sản phẩm test kể từ dự án công trình nhỏ nhằm vận dụng mang lại toàn cỗ tổ chức triển khai thì ko hợp lý và phải chăng lắm vì thế phỏng phức tạp và đòi hỏi của từng dự án công trình không giống nhau. Mặc mặc dù vậy, tính nhanh gọn lẹ và kinh nghiệm tay nghề test bên trên dự án công trình nhỏ vẫn là vấn đề nằm trong canh ty đẩy mạnh tiến trình và giới hạn sơ sót Lúc xây dựng bên trên những dự án công trình to hơn.

Anh Giang khêu ý nên phân tách theo gót team nhằm test những tool và service CI/CD (ví dụ: team Mobile, team NodeJS, team Java…). Theo ông, việc phân loại testing từng team dựa vào ngôn từ thiết kế tiếp tục khả ganh đua và không nhiều xẩy ra lỗi rộng lớn đối với việc chỉ nhờ vào quy tế bào dự án công trình nhằm ra quyết định.

ci-cd-la-gi-04

Anh Giang với mọi người cùng cơ quan bên trên Amanotes

Tài liệu CI/CD tham lam khảo

Anh Giang cho biết thêm những mặt mày service CI/CD tiếp tục hỗ trợ tư liệu, kèm cặp chỉ dẫn khá đầy đủ, cụ thể về những thao tác dùng tương quan nên nhập quy trình tìm hiểu thêm nhằm lựa lựa chọn service thích hợp mang lại tổ chức triển khai, chúng ta cũng có thể tìm hiểu thêm trước để sở hữu thêm thắt đánh giá và nhận định. Anh Review cao tư liệu được sẵn sàng tự Bitrise (service CI/CD nhưng mà Amanotes đang được sử dụng) tự UI UX thân thiết thiện và dễ dàng dùng. Trong khi, anh cũng khêu ý thêm thắt một vài tư liệu kể từ những service đáng tin tưởng tức thì mặt mày dưới:

  • https://devcenter.bitrise.io/ 
  • https://circleci.com/docs/migrating-from-buildkite 
  • https://docs.gitlab.com/ee/ci/

Thông tin yêu về anh Nguyễn Trường Giang

Anh Giang đang được với rộng lớn 10 năm kinh nghiệm tay nghề nhập nghành nghề cải tiến và phát triển phần mềm Mobile (Mobile development) và hiện tại vẫn đang lưu giữ địa điểm Mobile Tech Lead bên trên Amanotes Tính từ lúc năm 2020. Trước ê, anh cũng từng khăng khít với tương đối nhiều tập đoàn như TIKI, Umbala, eSoftHead ở nhiều cương vị như Android Lead, Senior Android Developer…

Xem thêm: cao đẳng là gì

Tính đến giờ anh đang được thao tác làm việc theo gót tiến độ CI/CD được rộng lớn 6 năm. Vốn nắm vững phong phú và đa dạng với mọi thưởng thức thực chiến qua chuyện thời hạn đang được đúc rút nên những share nhập nội dung bài viết.

robby-2

Bạn thấy nội dung bài viết hoặc và quan trọng với tương đối nhiều người? Đừng lo ngại nhấn nút Share bên dưới nhé.

Và nhớ là tìm hiểu thêm việc thực hiện IT bên trên ITviec!