8 điểm bởi ironlung 2024-08-27 | 1 bình luận | Chia sẻ qua WhatsApp
  1. Nâng cao năng suất phát triển khi sử dụng công cụ CI/CD
    • Theo kết quả khảo sát trong báo cáo ‘State Of Continuous Integration & Continuous Delivery Report’ do SlashData, công ty phân tích nhà phát triển của Anh, và cộng đồng mã nguồn mở toàn cầu Continuous Delivery Foundation (CDF) công bố vào tháng 4 năm nay
    • Các nhà phát triển sử dụng công cụ CI/CD (managed hoặc self-hosted) có khả năng đạt thành tích cao hơn về lead time thay đổi mã, thời gian khôi phục dịch vụ và tần suất triển khai so với những người không sử dụng
      • Ba yếu tố này là một phần của các chỉ số cốt lõi DORA dùng để đánh giá năng suất của nhà phát triển
    • Các nhà phát triển không sử dụng công cụ CI/CD có khả năng đạt hiệu suất thấp hơn so với những người sử dụng
    • Các nhà phát triển sử dụng cả công cụ CI/CD managed và self-hosted cho thấy kết quả tốt nhất về lead time thay đổi mã, thời gian khôi phục dịch vụ và tần suất triển khai
    • Theo SlashData và CDF, nhóm nhà phát triển có lead time thay đổi mã dưới 1 ngày nhiều nhất là những người dùng cả công cụ CI/CD managed và self-hosted (24%)
      • Tiếp theo là những người chỉ dùng công cụ CI/CD managed (22%), chỉ dùng công cụ CI/CD self-hosted (17%) và không dùng công cụ CI/CD (13%)
    • Với lead time thay đổi mã từ 1 tháng trở lên, nhóm lớn nhất là các nhà phát triển không dùng công cụ CI/CD (40%), tiếp theo là nhóm chỉ dùng công cụ CI/CD self-hosted (33%), chỉ dùng công cụ CI/CD managed (30%) và dùng cả managed lẫn self-hosted (19%)
    • Nhóm nhà phát triển có thời gian khôi phục dịch vụ dưới 1 giờ nhiều nhất cũng là những người dùng cả công cụ CI/CD managed và self-hosted (25%)
      • Tiếp theo là những người chỉ dùng công cụ CI/CD self-hosted (17%), chỉ dùng công cụ CI/CD managed (15%) và không dùng công cụ CI/CD (11%)
    • Với thời gian khôi phục dịch vụ từ 1 tuần trở lên, nhóm lớn nhất là các nhà phát triển không dùng công cụ CI/CD (32%), tiếp theo là nhóm chỉ dùng công cụ CI/CD self-hosted (29%), chỉ dùng công cụ CI/CD managed (25%) và dùng cả managed lẫn self-hosted (17%)
    • Theo SlashData và CDF, “khi sử dụng cả công cụ CI/CD managed và self-hosted, có thể kết hợp sự tiện lợi và các tính năng tích hợp sẵn của công cụ managed với khả năng tùy biến của công cụ self-hosted để nâng cao hiệu quả”
    • Trong khảo sát trên, công cụ CI/CD managed được dùng để chỉ Azure Pipelines, AWS CodePipeline, còn công cụ CI/CD self-hosted là Jenkins và TeamCity
  2. Hiệu suất giảm khi dùng nhiều công cụ CI/CD self-hosted
    • Việc sử dụng nhiều công cụ CI/CD cùng loại có thể làm giảm hiệu suất triển khai
      • Hiện tượng này đặc biệt rõ khi dùng nhiều công cụ CI/CD self-hosted
    • Kết quả khảo sát của SlashData và CDF cho thấy khi số lượng công cụ CI/CD self-hosted tăng lên, tỷ lệ nhóm hiệu suất thấp có lead time thay đổi mã, tần suất triển khai và thời gian khôi phục dịch vụ từ 1 tháng trở lên tăng mạnh
    • Theo hai tổ chức này, nhóm nhà phát triển có lead time thay đổi mã từ 1 tháng trở lên nhiều nhất là những người dùng 4 công cụ CI/CD self-hosted
    • Nhóm nhà phát triển có tần suất triển khai và thời gian khôi phục dịch vụ đều từ 1 tháng trở lên nhiều nhất là những người dùng từ 5 công cụ CI/CD self-hosted trở lên
    • Ngược lại, nhóm nhà phát triển có lead time thay đổi mã và thời gian khôi phục dịch vụ đều dưới 1 ngày nhiều nhất là những người dùng 1 công cụ CI/CD managed
    • SlashData và CDF chỉ ra vấn đề “khả năng tương tác” là nguyên nhân chính khiến số lượng công cụ CI/CD self-hosted tăng lên có tác động tiêu cực đến thời gian khôi phục dịch vụ
      • Khi sử dụng nhiều công cụ CI/CD, rất khó tích hợp tất cả công cụ một cách đầy đủ
      • Vì vậy có thể khó tách biệt các vấn đề ảnh hưởng đến dịch vụ
  3. Tăng cường tích hợp AI và machine learning vào CI/CD
    • AI và machine learning đang được tích hợp nhiều hơn vào pipeline CI/CD
    • Pipeline CI/CD dựa trên AI hỗ trợ phát hiện vấn đề nhanh hơn
      • Điều này giúp các nhóm phát triển và kiểm thử rút ngắn đáng kể thời gian troubleshooting và debugging
    • AI tự động hóa việc cấu hình môi trường kiểm thử CI và tăng tốc kiểm thử
    • Điều này thúc đẩy tự động hóa thông minh trong pipeline CD, đồng thời tự động hóa cả code review và kiểm thử
    • AI và machine learning được áp dụng để xác định lỗ hổng trong mã
    • Phân tích dự đoán được kỳ vọng sẽ được sử dụng tích cực để dự đoán các vấn đề tiềm ẩn và các thất bại trong pipeline CI/CD
      • Công nghệ này sử dụng dữ liệu, thuật toán thống kê và machine learning
      • Nó hỗ trợ các nhóm xác định và xử lý vấn đề trước khi ảnh hưởng đến pipeline triển khai bằng cách phân tích các mẫu lỗi build trong quá khứ
      • Kết quả là việc triển khai trở nên nhanh hơn và ổn định hơn
    • Trong tương lai, AI và machine learning sẽ được áp dụng rộng rãi và chặt chẽ hơn trong CI/CD
  4. GitOps gia tăng ảnh hưởng đối với CI/CD
    • GitOps ngày càng có ảnh hưởng lớn hơn trong pipeline CI/CD
    • Đây là một framework vận hành áp dụng các thực hành tốt nhất của DevOps dùng trong phát triển ứng dụng như quản lý phiên bản, cộng tác, compliance và CI/CD vào tự động hóa hạ tầng
    • Nhiều tổ chức đang triển khai GitOps như một phần của quy trình CI/CD
    • Với GitOps, nhà phát triển có thể dùng Git repository làm nguồn chân lý duy nhất (SSOT) cho mã và cấu hình
      • Thay đổi mã hoặc cấu hình được thực hiện trong Git repository
    • GitOps thúc đẩy các thay đổi được kiểm soát phiên bản trên toàn bộ hạ tầng và triển khai ứng dụng, đơn giản hóa cộng tác và nâng cao khả năng quan sát
      • GitOps tập trung hóa mọi cấu hình và deployment manifest trong Git repository
    • Với workflow lấy Git làm trung tâm, GitOps hỗ trợ tự động phát hành các bản cập nhật gia tăng, giúp nhà phát triển quản lý cluster và cung cấp ứng dụng hiệu quả, an toàn mà không gặp lỗi cấu hình
    • Nhờ tốc độ, hiệu quả và tính tiện dụng, GitOps sẽ được sử dụng rộng rãi trong CI/CD khi các tổ chức đơn giản hóa workflow DevOps và triển khai các thực hành tốt nhất về IaC
  5. Nhu cầu tiếp nhận edge computing ngày càng tăng
    • Nhu cầu tiếp nhận edge computing trong pipeline CI/CD đang tăng lên
    • Edge computing là việc xử lý dữ liệu thời gian thực và vận hành thiết bị ngay tại nơi dữ liệu được tạo ra hoặc ở vị trí gần đó
    • Điều này giúp giảm độ trễ khi xử lý và phân tích dữ liệu thời gian thực, từ đó giúp ứng dụng hoạt động hiệu quả hơn và nhanh hơn
    • Có ý kiến cho rằng pipeline CI/CD cần thích nghi để tiếp nhận triển khai tại edge
      • Ví dụ: tạo deployment nhẹ hoặc tận dụng container hóa để triển khai dễ hơn lên các thiết bị edge
    • Việc các nhóm phát triển cung cấp ổn định phiên bản mới nhất của chương trình và dịch vụ tới thiết bị edge trở nên quan trọng hơn bao giờ hết
    • Kết nối pipeline CI/CD với edge sẽ mang lại trải nghiệm nhà phát triển nhất quán và hiệu quả cho các ứng dụng edge, từ đó nâng cao hiệu quả vận hành
    • Tự động triển khai và kiểm thử ứng dụng tại edge cùng với phản hồi sớm giúp cung cấp sản phẩm tốt hơn nhanh hơn
    • Dù một số dịch vụ đã hỗ trợ triển khai edge, khả năng cao sẽ xuất hiện các công cụ và plugin mới cho các pipeline hiện có, bao gồm cả pipeline CI/CD

1 bình luận

 
aer0700 2024-08-30

Thật ra tôi vẫn không hiểu rõ CI/CD dựa trên AI khác gì so với CI/CD thông thường...