DevOps to DevSecOps
Từ DevOps đến DevSecOps Ảnh: jasonfranklin.com

Khi nhân viên làm việc từ xa ngày càng nhiều, các networks ngày càng được mở rộng hơn. Đồng thời, số lượng thiết bị và ứng dụng trên các mạng tiếp tục tăng. Các ước tính cho rằng, đến năm 2030, sẽ có 15 thiết bị được kết nối cho mỗi người trên hành tinh.

Sự mở rộng nhanh chóng của lực lượng lao động từ xa và nhu cầu ứng dụng liên quan của họ đã tạo ra một thách thức đáng kể cho cả các nhà phát triển ứng dụng và các chuyên gia IT được giao nhiệm vụ triển khai và bảo trì các ứng dụng. Tìm kiếm sự cân bằng phù hợp giữa tốc độ phát hành và tính ổn định và độ tin cậy của các ứng dụng – không bao giờ là một nhiệm vụ dễ dàng – là điều tối quan trọng đối với sự thành công của bất kỳ tổ chức nào.

AgileDevOps đã phát triển để giúp các tổ chức đạt được sự cân bằng này, mang đến trải nghiệm khách hàng tốt nhất có thể trong khung thời gian thực tế ngắn nhất. Nhưng liệu Agile và DevOps đã thực hiện được lời hứa đó chưa?

Lời hứa của Tuyên ngôn Agile

Mặc dù Agile như một phương pháp luận đã được biết đến và tuân theo gần hai thập kỷ, nhưng cách thức các tổ chức áp dụng Agile cũng đa dạng như chính các tổ chức đó.

Tuyên ngôn Agile đặt ra bốn giá trị cơ bản khi nó được viết lần đầu tiên vào năm 2001:

  • Các cá nhân và tương tác được ưu tiên hơn các quy trình và công cụ.
  • Phần mềm làm việc được ưu tiên hơn tài liệu toàn diện.
  • Sự hợp tác của khách hàng được ưu tiên hơn so với thương lượng hợp đồng.
  • Phản ứng với sự thay đổi được ưu tiên hơn so với việc làm theo kế hoạch một cách vô tâm.

Các quy trình Agile được áp dụng trên một loạt các hoạt động phát triển, từ phát triển các ứng dụng độc lập đến phát triển các ứng dụng kinh doanh riêng trên nền tảng đám mây. Tuyên ngôn Agile cũng bao gồm một số nguyên tắc khác giải thích thêm ý nghĩa của các giá trị khi áp dụng vào thực tế.

Các nguyên tắc Agile này có thể được cô đọng thành một số lĩnh vực trọng tâm:

Ưu tiên khách hàng hơn sản phẩm

Phát triển Agile yêu cầu sự tham gia liên tục của khách hàng trong toàn bộ quá trình phát triển, với mục tiêu cuối cùng là phân phối sản phẩm thường xuyên dựa trên phản hồi cụ thể của khách hàng. Mặc dù điều này có thể đưa ra những thách thức cho một nhóm Agile, đặc biệt khi khách hàng yêu cầu những thay đổi muộn trong chu kỳ phát triển, Agile cho rằng cách tốt nhất để nâng cao trải nghiệm của khách hàng là biến khách hàng thành một phần của quá trình phát triển.

Tin tưởng các nhóm Agile tự tổ chức và tự quản lý

Agile tập trung vào các nhóm nhỏ hơn luôn liên lạc với khách hàng cũng như với nhau. Các nhóm này nên bao gồm cả nhà phát triển và những người có kiến ​​thức về các yêu cầu kinh doanh lớn hơn đang được đáp ứng thông qua quá trình phát triển. Để những đội này làm việc hiệu quả, niềm tin là chìa khóa. Agile cho rằng các nhóm tự tổ chức, có thời gian để theo đuổi dự án của họ theo cách họ thấy phù hợp, dẫn đến chu kỳ phát triển ngắn nhất.

Giữ cho đơn giản

Các đội Agile yêu cầu sự đơn giản. Điều này tương quan với thái độ coi thường của Agile đối với việc lạm dụng quy trình. Agile tìm cách giảm thiểu tổng khối lượng công việc cần thiết, do đó giảm thiểu thời gian phát triển tổng thể.

Sự linh hoạt dẫn đến sự linh hoạt

Cũng giống như các nhóm Agile liên tục cải thiện sản phẩm của họ và trải nghiệm của khách hàng, họ cũng không ngừng cải thiện bản thân. Sự phát triển liên tục của các nhóm và các quy trình mà họ sử dụng (hãy nhớ, các nhóm trước khi các quy trình) tự cải thiện sự nhanh nhẹn của nhóm.

Mặc dù các giá trị và nguyên tắc Agile có vẻ đơn giản, nhưng việc áp dụng hiệu quả các giá trị và nguyên tắc lại là một câu chuyện hoàn toàn khác. Thật vậy, đôi khi, việc triển khai phát triển Agile đã vi phạm giá trị đầu tiên của tuyên ngôn là tập trung vào những công cụ và quy trình nào nên được sử dụng. Tuy nhiên, trong một môi trường mà ngày càng có nhiều người dùng yêu cầu nhiều sản phẩm và dịch vụ hơn, thì việc triển khai các phương pháp Agile không chỉ là quan trọng mà nó còn là điều bắt buộc.

Xây dựng dựa trên Agile với DevOp

Bản thân ý nghĩa chính xác của thuật ngữ và phạm vi của DevOps vẫn là một nguồn tranh luận. Ở cấp độ cao, DevOps là sự kết hợp của chu kỳ phát triển với các hoạt động sau phát triển, chẳng hạn như triển khai và bảo trì.

Theo cộng tác viên nguồn mở Barbara Ericson của Cloud Defense, “Thay vì các hoạt động CNTT và phát triển phần mềm bị tách rời khỏi nhau, DevOps phá vỡ các ranh giới truyền thống đã tồn tại trước đây giữa chúng để đạt được sự tích hợp liên tục và phân phối liên tục (CI / CD ) của các tính năng và ứng dụng phần mềm chất lượng cho người dùng cuối. ”

Cũng giống như Agile, việc triển khai DevOps hiệu quả đòi hỏi phải trau dồi văn hóa DevOps trong tổ chức. Tuy nhiên, Agile và DevOps cũng không loại trừ lẫn nhau. Có nghĩa là, DevOps không chỉ đơn thuần là một sự thay thế hoặc một sự phát triển của Agile. Mặc dù Agile và DevOps khác nhau về cấu trúc và cách tiếp cận, nhưng chúng có thể làm việc đồng bộ để đạt được mục tiêu cuối cùng là triển khai nhanh chóng và nâng cao trải nghiệm khách hàng.

Trong khi Agile và DevOps chia sẻ các mục tiêu chung, chúng không phải lúc nào cũng thống nhất về cách đạt được những mục tiêu đó. DevOps khác với Agile về nhiều mặt, nhưng ở điểm tốt nhất, DevOps áp dụng các phương pháp Agile, cùng với các nguyên tắc sản xuất tinh gọn, để tăng tốc độ triển khai phần mềm.

Một lĩnh vực căng thẳng đặc biệt giữa Agile và DevOps là cái sau chủ yếu dựa vào các công cụ; đặc biệt, khi nói đến tự động hóa các quy trình thử nghiệm và triển khai. Nhưng DevOps có thể vượt qua sự phản kháng của các nhà phát triển Agile đối với việc sử dụng công cụ chỉ đơn giản bằng cách áp dụng các nguyên tắc Agile.

Một cách hiệu quả, những người đề xuất DevOps phải thuyết phục các nhóm Agile rằng việc tuân thủ giáo điều các nguyên tắc cơ bản của Agile thực sự không phù hợp với Agile ngay từ đầu. Trớ trêu thay, các nhà phát triển Agile khẳng định rằng quy trình luôn tồi tệ lại thực sự vi phạm các nguyên tắc Agile bằng cách từ chối thừa nhận những lợi ích mang lại thông qua thay đổi, một nguyên tắc Agile khác.

Thách thức là làm sao để các nhóm phát triển Agile tin tưởng vào các nỗ lực tự động hóa của DevOps, đồng thời khuyến khích nhóm DevOps xem xét các mục tiêu kinh doanh của việc triển khai thay vì theo đuổi tốc độ triển khai vì lợi ích của riêng mình.

Với sự liên lạc liên tục giữa nhóm Agile và nhóm DevOps (một nguyên tắc Agile khác), sự phát triển có thể đạt được mức độ thoải mái với các nhiệm vụ và quy trình DevOps. Điều này có nghĩa là tự động hóa thử nghiệm và triển khai có thể tiến hành nhanh chóng, dẫn đến giảm thời gian đưa ra thị trường.

Cuối cùng, Agile và DevOps có thể làm việc cùng nhau hiệu quả nhất khi họ nhớ lại các mục tiêu đã chia sẻ của mình: thay đổi nhỏ hơn dựa trên phản hồi dẫn đến chu kỳ phân phối nhanh hơn.

Tiếp tục phát triển: DevSecOps

Khi các mạng mở rộng và các doanh nghiệp tiếp tục tích hợp các dịch vụ dựa trên đám mây (trong nhiều trường hợp là xây dựng môi trường đa đám mây), các vấn đề bảo mật ngày càng trở nên phức tạp hơn. Một lĩnh vực mà Agile đang thiếu là tích hợp bảo mật vào quá trình phát triển. Thật không may, trong môi trường Agile, bảo mật ứng dụng thường là một vấn đề được giải quyết sau khi phát triển, hơn là một phần của quy trình. Hãy cùng xem xét bước tiến hóa tiếp theo của DevOps: DevSecOps.

DevSecOps xoay quanh ba nguyên tắc cơ bản: đảm bảo bảo mật dữ liệu đồng thời giảm thiểu sự bất tiện cho người dùng trong việc truy cập dữ liệu, sử dụng các công cụ phát triển giúp xác định rủi ro sớm nhất có thể trong quá trình phát triển và đảm bảo mã hóa dữ liệu bằng các công nghệ như lớp cổng bảo mật (SSL) và riêng ảo. mạng (VPN).

Mặc dù DevSecOps và Agile cũng có thể bất đồng về mức độ ưu tiên của các công cụ, nhưng bảo mật phải trở thành một phần không thể thiếu của bất kỳ dự án phát triển nào. Đây là lý do tại sao Agile, DevOps và DevSecOps phải làm việc cùng nhau để đảm bảo không chỉ triển khai nhanh chóng mà còn triển khai an toàn.

Kết luận

Agile và DevOps đều là những bước phát triển quan trọng của quy trình phát triển phần mềm, nhưng DevSecOps là bước tiến hóa tiếp theo. Mặc dù có một số đặc điểm khác nhau, Agile, DevOps và DevSecOps có thể và nên làm việc đồng bộ để đạt được mục tiêu chung của họ: trải nghiệm khách hàng tốt nhất có thể và chu kỳ triển khai ngắn.

Theo: https://devops.com/from-agile-to-devops-to-devsecops-the-next-evolution/

Đánh giá bài viết

Average rating 5 / 5. Vote count: 7

No votes so far! Be the first to rate this post.

Comments are closed.