DevOps và DevSecOps là hai phương pháp phổ biến trong phát triển phần mềm hiện đại, đều hướng đến mục tiêu tăng tốc độ phát hành và tối ưu hiệu suất vận hành. Điểm khác nhau cơ bản của chúng nằm ở cách tiếp cận tích hợp bảo mật vào vòng đời phát triển. Trong bài viết này, cùng khám phá sự khác biệt giữa DevOps vs DevSecOps và giải thích lý do tại sao bảo mật nên là ưu tiên hàng đầu trong phát triển phần mềm hiện đại.
Đọc bài viết để hiểu rõ hơn về:
- Khái niệm DevOps và DevSecOps;
- Điểm tương đồng của DevOps và DevSecOps;
- Những điểm khác nhau giữa DevOps vs DevSecOps;
- Cách chuyển đổi từ DevOps sang DevSecOps;
- Nên chọn DevOps hay DevSecOps.
Hiểu về DevOps và DevSecOps
DevOps là gì?
DevOps là phương pháp tập trung vào việc tích hợp phát triển phần mềm (Dev) và hoạt động công nghệ thông tin (Ops). Mục tiêu là rút ngắn vòng đời phát triển trong khi vẫn cung cấp phần mềm chất lượng cao liên tục. DevOps thúc đẩy sự hợp tác giữa các nhà phát triển và nhóm vận hành để thúc đẩy văn hóa chia sẻ trách nhiệm, giải trình và giao tiếp.
Các nguyên tắc chính của DevOps bao gồm:
- Hợp tác và giao tiếp: DevOps giúp cải thiện giao tiếp giữa các nhóm phát triển, vận hành và các phòng ban khác.
- Tự động hóa: Việc tự động hóa các tác vụ lặp đi lặp lại như tích hợp mã, thử nghiệm và triển khai giúp tăng hiệu suất và giảm lỗi của con người.
- Tích hợp liên tục/Triển khai liên tục (CI/CD): Tích hợp mã vào kho lưu trữ dùng chung và triển khai các thay đổi vào sản xuất thường xuyên, đảm bảo vòng phản hồi cũng như cung cấp các tính năng nhanh hơn.
- Giám sát và phản hồi: Trong môi trường DevOps, việc giám sát hệ thống theo thời gian thực giúp các nhóm hiểu được hiệu suất của phần mềm và nhanh chóng giải quyết mọi sự cố phát sinh.
Đọc chi tiết: DevOps roadmap: Lộ trình 16 bước học chi tiết trở thành DevOps
DevSecOps là gì?
DevSecOps lấy nền tảng của DevOps, nhưng bổ sung việc tích hợp bảo mật vào mọi giai đoạn của vòng đời phát triển, đảm bảo rằng bảo mật không bị coi là yếu tố phụ mà là một phần không thể thiếu, hướng đến việc xây dựng ứng dụng an toàn ngay từ đầu. Ngoài ra, thay vì coi bảo mật là một mối quan tâm riêng biệt do một nhóm bảo mật chuyên trách xử lý, DevSecOps nhấn mạnh việc bảo mật là trách nhiệm của mọi người.
Các nguyên tắc chính của DevSecOps bao gồm:
- Security as Code: Các biện pháp và chính sách bảo mật được tự động hóa và tích hợp vào quy trình CI/CD, do đó các thử nghiệm và kiểm soát bảo mật được thực hiện tự động ở mọi giai đoạn của quy trình phát triển.
- Shifting Left: Trong DevSecOps, các hoạt động bảo mật như đánh giá lỗ hổng và đánh giá mã được đưa vào sớm hơn trong chu kỳ phát triển. Điều này ngăn chặn việc phát hiện lỗ hổng sau khi triển khai gây tốn kém và mất thời gian khắc phục.
- Hợp tác với các nhóm bảo mật: Trong môi trường DevSecOps, các nhà phát triển, nhân viên vận hành và chuyên gia bảo mật cùng nhau chủ động giải quyết các lỗ hổng.
- Threat Intelligence: DevSecOps dựa vào giám sát bảo mật liên tục và Threat Intelligence để phát hiện lỗ hổng theo thời gian thực. Điều này đảm bảo rằng phần mềm được bảo vệ khỏi các mối đe dọa ngay khi chúng được phát hiện.
Đọc chi tiết: DevSecOps là gì: Tổng hợp công cụ và DevSecOps best practices
Điểm tương đồng của DevOps vs DevSecOps
Cả hai phương pháp đều ưu tiên sự hợp tác, tự động hóa, cải tiến liên tục và chia sẻ trách nhiệm, trong đó DevSecOps đặc biệt nhấn mạnh đến việc tích hợp các biện pháp bảo mật trong suốt vòng đời phát triển phần mềm.
Dưới đây là 3 điểm tương đồng cốt lõi:
Đồng nhất về tư duy và văn hóa làm việc
Cả DevOps lẫn DevSecOps đều đề cao việc phá bỏ “rào cản phòng ban”, thúc đẩy sự cộng tác giữa các nhóm phát triển (Dev), vận hành (Ops) và trong DevSecOps là với cả nhóm bảo mật (Sec). Cả hai mô hình đều nuôi dưỡng một văn hóa: cùng chịu trách nhiệm, phản hồi nhanh chóng và không ngừng tối ưu, giúp làm giảm tình trạng tắc nghẽn và thúc đẩy hiệu quả.
Với DevOps, mục tiêu là kết nối Dev và Ops để giảm thiểu xung đột, tăng hiệu suất triển khai, và rút ngắn chu kỳ phát hành phần mềm. Với DevSecOps, tư duy này được mở rộng bằng cách tích hợp nhóm bảo mật ngay từ đầu chuỗi phát triển, giúp giảm thiểu lỗ hổng trong quá trình phát triển và triển khai ứng dụng.
Giám sát
Bạn có thể cần cải thiện mã hiện tại hoặc sửa đổi mã trong tương lai. Do đó, việc giám sát chủ động rất quan trọng đối với bất cứ quy trình phát triển phần mềm nào. Cả hai mô hình DevOps và DevSecOps đều không thể thiếu việc giám sát chủ động các ứng dụng phần mềm và mã đang được phát triển:
- Trong DevOps là việc theo dõi hiệu suất hệ thống, log, lỗi và phản hồi người dùng giúp nhóm vận hành và phát triển đưa ra điều chỉnh kịp thời.
- DevSecOps mở rộng điều này bằng cách bổ sung giám sát bảo mật liên tục, theo dõi mã nguồn để phát hiện sớm các lỗ hổng, mã độc, hoặc cấu hình sai có thể bị khai thác.
Tự động hóa
Tự động hóa trong DevOps và DevSecOps cung cấp một CI/CD pipeline – nơi phần mềm tích hợp và triển khai liên tục.
DevOps sử dụng tự động hóa để rút ngắn vòng phản hồi, giảm thiểu lỗi thao tác thủ công và tăng tốc độ phát hành. DevSecOps cũng tận dụng tự động hóa để tích hợp các kiểm tra bảo mật ngay trong pipeline.
Các công cụ như Docker, Kubernetes, Jenkins, GitLab CI/CD được sử dụng rộng rãi trong cả hai mô hình để triển khai tự động hóa ở cấp độ toàn hệ thống.
Những điểm khác nhau giữa DevOps vs DevSecOps
Mặc dù đều hướng đến việc cải thiện hiệu suất phát triển phần mềm, DevOps và DevSecOps khác nhau đáng kể trong cách tích hợp bảo mật, mức độ tự động hóa và văn hóa làm việc giữa các nhóm.
Cùng xem qua bảng so sánh tóm tắt dưới đây, sau đó chúng ta sẽ so sánh chi tiết từng tiêu chí nhé:
Tiêu chí so sánh | DevOps | DevSecOps |
Trọng tâm | Tăng cường hợp tác giữa nhóm phát triển và nhóm vận hành. | Tích hợp các biện pháp bảo mật vào quy trình DevOps. |
Mục tiêu | Phát triển và cung cấp phần mềm nhanh hơn và hiệu quả hơn. | Cung cấp phần mềm an toàn và linh hoạt với trọng tâm là bảo mật liên tục. |
Tích hợp bảo mật | Những cân nhắc cơ bản về bảo mật được tích hợp vào quy trình. | Các hoạt động bảo mật được tích hợp ngay từ đầu (tức là shift-left), với bảo mật là trách nhiệm chung. |
Tự động hóa | Tự động hóa các bước phát triển, thử nghiệm và triển khai. | Tự động hóa các bước thử nghiệm bảo mật, quét lỗ hổng, kiểm tra tính tuân thủ,… |
Văn hóa hợp tác | Các nhóm phát triển và vận hành hợp tác chặt chẽ. | Mở rộng hơn khi hợp tác với cả nhóm bảo mật, hướng tới nhận thức an ninh bảo mật là trách nhiệm chung. |
Quan điểm vòng đời | Phát triển và cung cấp phần mềm. | Bảo mật được tích hợp ở mọi giai đoạn của SDLC. |
Công cụ và công nghệ | Công cụ CI/CD, quản lý cấu hình, công cụ giám sát, cơ sở hạ tầng dưới dạng mã (IaC). | Công cụ kiểm tra bảo mật, máy quét lỗ hổng, hệ thống quản lý sự kiện và thông tin bảo mật (SIEM). |
DevOps vs DevSecOps về trọng tâm và mục tiêu
- Mục tiêu cốt lõi của DevOps là cải thiện hiệu quả và sự phối hợp giữa nhóm phát triển phần và vận hành, từ đó thúc đẩy quy trình phát triển nhanh chóng và liên tục, rút ngắn chu kỳ phát hành phần mềm.
- Trong khi đó, DevSecOps đặt trọng tâm mạnh mẽ hơn vào bảo mật. Mục tiêu chính của DevSecOps là ngăn chặn rủi ro và các lỗ hổng tiềm ẩn có thể xuất hiện trong codebase. Điểm khác biệt mấu chốt là DevSecOps đảm bảo rằng bảo mật được tích hợp chặt chẽ vào mọi giai đoạn của quy trình phát triển, chứ không phải là một bước bổ sung ở cuối.
DevOps vs DevSecOps trong tích hợp bảo mật
Đây là sự khác biệt chính giữa DevOps và DevSecOps.
- Trong mô hình DevOps truyền thống, các nhóm thường triển khai thực hành bảo mật như một quy trình riêng biệt, điển hình là vào cuối SDLC. Việc tích hợp ở giai đoạn muộn này có thể dẫn đến sự chậm trễ và phức tạp, đặc biệt nếu phát hiện ra các vấn đề bảo mật đáng kể.
- DevSecOps tìm cách giải quyết vấn đề này bằng cách tích hợp các thực hành bảo mật ngay từ khi bắt đầu dự án và trong suốt tất cả các giai đoạn phát triển. Cách tiếp cận shift-left này đối với bảo mật có nghĩa là các vấn đề tiềm ẩn được xác định và giải quyết sớm hơn nhiều trong quy trình, dẫn đến các sản phẩm cuối cùng an toàn và đáng tin cậy hơn.
DevOps vs DevSecOps về tự động hóa
- DevOps chủ yếu tập trung vào tự động hóa quy trình kỹ thuật, bao gồm: xây dựng mã, chạy unit test, tích hợp mã nguồn và triển khai ứng dụng. Mục tiêu chính là đạt được tích hợp liên tục (CI) và phân phối liên tục (CD), cho phép các đội phát hành phần mềm thường xuyên và đáng tin cậy hơn.
Ví dụ, các công cụ như Jenkins hoặc GitLab CI/CD pipelines được cấu hình để tự động kích hoạt quá trình xây dựng và kiểm thử mỗi khi mã được đẩy lên kho lưu trữ, sau đó tự động triển khai lên môi trường phát triển hoặc kiểm thử.
- DevSecOps mở rộng tự động hóa sang khía cạnh bảo mật. Điều này bao gồm tự động hóa SAST và DAST ngay trong CI/CD pipeline, tự động quét các thành phần và thư viện bên thứ ba để tìm lỗ hổng, cũng như tự động hóa việc kiểm tra tuân thủ các quy định bảo mật.
Ví dụ:
- Mỗi khi mã được cam kết, một công cụ SAST như SonarQube có thể tự động phân tích mã để tìm kiếm các lỗ hổng bảo mật tiềm ẩn.
- Tương tự, trước khi triển khai lên môi trường sản phẩm, một công cụ DAST như OWASP ZAP có thể tự động chạy các bài kiểm tra xâm nhập đối với ứng dụng đang hoạt động.
- Phản hồi sự cố bảo mật cũng được tự động hóa, với các cảnh báo và quy trình khắc phục được kích hoạt tự động khi phát hiện mối đe dọa.
Mục tiêu của tự động hóa trong DevSecOps là đảm bảo rằng bảo mật được tích hợp sẵn thay vì vá lỗi, từ đó giảm thiểu rủi ro bảo mật ngay từ đầu và trong suốt vòng đời của ứng dụng.
DevOps vs DevSecOps về hợp tác và thay đổi văn hóa
Trong môi trường DevOps, sự hợp tác chính diễn ra giữa các nhà phát triển và nhân viên vận hành CNTT để đảm bảo tích hợp liên tục và phân phối liên tục (CI/CD). Mục tiêu là tạo ra một môi trường mà việc xây dựng, kiểm thử và phát hành phần mềm có thể diễn ra nhanh chóng, thường xuyên và đáng tin cậy hơn.
Ngược lại, DevSecOps mở rộng văn hóa hợp tác này để bao gồm cả đội ngũ bảo mật. Trong mô hình này, mọi người trong SDLC đều chịu trách nhiệm về bảo mật, về cơ bản phá vỡ các silos giữa các đội phát triển, vận hành và bảo mật. Cách tiếp cận DevSecOps thúc đẩy triết lý ‘security by all and for all’, với bảo mật trở thành một trách nhiệm chung.
DevOps vs DevSecOps về quan điểm vòng đời
DevOps tập trung vào việc tăng tốc vòng đời phát triển phần mềm thông qua tự động hóa và cộng tác, với hoạt động giám sát chủ yếu hướng đến hiệu suất, tính khả dụng và thời gian hoạt động của hệ thống. Các số liệu như sử dụng CPU và thời gian phản hồi ứng dụng là trọng tâm, và phản hồi sự cố thường mang tính phản ứng, chỉ được kích hoạt sau khi vấn đề phát sinh.
Ngược lại, DevSecOps áp dụng một cách tiếp cận chủ động hơn đối với bảo mật bằng cách tích hợp thử nghiệm bảo mật ở mọi giai đoạn, bao gồm giám sát liên tục các mối đe dọa, quét lỗ hổng và kiểm tra tuân thủ với các công cụ như SIEM. Phản ứng sự cố trong DevSecOps được tự động hóa và hỗ trợ bởi AI, cho phép giải quyết các lỗ hổng nhanh chóng, thường là trước khi chúng kịp leo thang.
DevSecOps còn sử dụng các chiến lược như SAST (quét mã nguồn) và DAST (đánh giá ứng dụng đang chạy) để phát hiện lỗ hổng sớm, đồng thời có thể kết hợp IAST để phân tích sâu hơn trong môi trường thời gian chạy.
DevOps vs DevSecOps về công cụ
Các công cụ phổ biến của DevOps bao gồm:
- Công cụ quản lý mã nguồn: GitHub, GitLab.
- Công cụ tự động hóa CI/CD: Jenkins, CircleCI, Travis CI hoặc Azure DevOps.
- Công cụ quản lý cấu hình và triển khai hạ tầng: Ansible, Puppet, hoặc Terraform là những lựa chọn hàng đầu.
- Các công cụ giám sát như Prometheus, Grafana, hay ELK Stack (Elasticsearch, Logstash, Kibana) được sử dụng để theo dõi hiệu suất, tính khả dụng và ghi nhật ký hoạt động của ứng dụng và cơ sở hạ tầng.
DevSecOps không chỉ kế thừa các công cụ DevOps, mà còn bổ sung và tích hợp sâu rộng các công cụ bảo mật chuyên biệt vào mọi giai đoạn của SDLC. Cụ thể là:
- Các công cụ phân tích bảo mật tĩnh (SAST) như SonarQube hoặc Checkmarx để quét mã nguồn ngay trong quá trình phát triển, giúp phát hiện sớm các lỗ hổng tiềm ẩn.
- Các công cụ phân tích bảo mật động (DAST) như OWASP ZAP hoặc Burp Suite được sử dụng để kiểm tra ứng dụng trong môi trường chạy, mô phỏng các cuộc tấn công của hacker.
- Các công cụ IaC (Infrastructure as Code): Checkov, TfLint, Kubescape, Terrascan, Jit IaC Security, KICS,… giúp tự động hóa việc cung cấp và quản lý cơ sở hạ tầng, đảm bảo tính nhất quán và bảo mật xuyên suốt quá trình phát triển, kiểm thử và triển khai.
- Tận dụng các công cụ quản lý lỗ hổng, công cụ kiểm tra tuân thủ và các giải pháp quản lý sự kiện và thông tin bảo mật (SIEM) như Splunk hoặc Microsoft Sentinel để giám sát và phản ứng với các mối đe dọa theo thời gian thực.
Cách chuyển đổi từ DevOps sang DevSecOps
Việc chuyển đổi từ DevOps sang DevSecOps không chỉ là bổ sung thêm công cụ bảo mật vào quy trình hiện tại, mà là một sự thay đổi tư duy toàn diện, trong đó bảo mật không còn là bước sau cùng, mà được tích hợp ngay từ đầu và trở thành trách nhiệm của toàn đội. Dưới đây là các bước thiết thực để thực hiện chuyển đổi thành công:
- Hiểu rõ sự khác biệt của DevOps vs DevSecOps: DevOps nhấn mạnh tốc độ và hiệu quả, còn DevSecOps ưu tiên bảo mật liên tục bên cạnh tốc độ. Việc hiểu rõ điều này là tiền đề cho việc thiết kế lại quy trình và phân bổ vai trò hợp lý.
- Áp dụng tư duy bảo mật là trên hết: Biến bảo mật thành trách nhiệm chung của toàn đội.
- Làm quen với các công cụ bảo mật:
- Công cụ SAST (SonarQube, Checkmarx)
- Công cụ DAST (OWASP ZAP, Burp Suite)
- Công cụ bảo mật container (Aqua Security, Falco)
- Quản lý thông tin nhạy cảm (HashiCorp Vault, AWS Secrets Manager)
- Các framework như OWASP Top 10 và NIST Cybersecurity cung cấp hướng dẫn và chuẩn mực để giải quyết rủi ro bảo mật quan trọng.
- Nắm chắc các kỹ thuật kiểm tra cơ bản: Interactive Application Security Testing (IAST), Runtime Application Self-Protection (RASP), Software Composition Analysis (SCA).
- Nhúng bảo mật vào CI/CD pipeline: Tự động hóa kiểm tra bảo mật, bảo mật IaC và “shift left” để phát hiện sớm các vấn đề.
- Đầu tư vào đào tạo bảo mật: Nâng cao nhận thức và kỹ năng bảo mật cho các nhóm thông qua đào tạo thường xuyên và học hỏi liên chức năng.
- Tập trung vào tuân thủ và quản trị: Sử dụng công cụ giám sát tự động để đảm bảo tuân thủ các quy định và duy trì các tiêu chuẩn bảo mật.
- Đo lường bằng KPI và cải tiến liên tục: Thiết lập các KPI bảo mật (MTTD, MTTR) và áp dụng vòng phản hồi để liên tục cải tiến quy trình.
Nên chọn DevOps hay DevSecOps?
Việc lựa chọn giữa DevOps và DevSecOps phụ thuộc vào nhu cầu, nguồn lực và mục tiêu chiến lược cụ thể.
Khi nào chỉ cần DevOps?
DevOps là lựa chọn phù hợp nếu tổ chức của bạn đang tập trung vào:
- Tăng tốc chu kỳ phát hành phần mềm
- Tăng cường sự cộng tác giữa các nhóm phát triển và vận hành
- Tự động hóa và cải tiến hiệu suất kỹ thuật
DevOps nâng cao hiệu quả, phá vỡ các rào cản, thúc đẩy văn hóa học tập và cải tiến liên tục. Bằng cách triển khai DevOps, bạn có thể giảm thiểu lỗi triển khai, phục hồi nhanh hơn sau các lỗi và chu kỳ phát triển nhanh hơn.
Khi nào cần DevSecOps?
DevSecOps là lựa chọn tốt hơn nếu tổ chức của bạn hoạt động trong các ngành:
- Bị quản lý nghiêm ngặt bởi luật, quy định bảo mật (ví dụ: tài chính, y tế, SaaS)
- Xử lý dữ liệu người dùng nhạy cảm
- Phát triển hệ thống phân tán, đa tầng trên đám mây
Phương pháp này tận dụng các lợi ích của DevOps và truyền tải bảo mật vào mọi giai đoạn của vòng đời phát triển. Mặc dù việc chuyển đổi sang DevSecOps có thể gây ra một số khó khăn bước đầu, tuy nhiên với DevSecOps, kỹ sư sẽ dễ dàng giải quyết các lỗi và lỗ hổng bảo mật trong quá trình sản xuất, giúp bạn không phải dừng triển khai hoặc giải quyết vấn đề bảo mật sau đó.
Đọc chi tiết: DevSecOps Engineer là làm gì? Kỹ năng và chứng chỉ cần có
Câu hỏi thường gặp về DevOps vs DevSecOps
DevOps và DevSecOps có thể cùng tồn tại không?
Hoàn toàn có thể. Trên thực tế, DevSecOps về cơ bản là DevOps nhưng tập trung nhiều hơn vào bảo mật.
DevSecOps cải thiện DevOps như thế nào?
DevSecOps cải thiện DevOps bằng cách tích hợp các cân nhắc về bảo mật vào mọi bước của quy trình phát triển. Điều này làm giảm nguy cơ xảy ra sự cố bảo mật và giảm chi phí giải quyết chúng.
So sánh DevOps với các loại hình tiếp cận khác (SRE, Agile, Microservices)
Sự khác biệt giữa SRE và DevOps
Mục tiêu của DevOps là rút ngắn SDLC để phát triển và phát hành nhanh các giải pháp phần mềm. SRE giúp tự động hóa các tác vụ vận hành CNTT mà không cần thực hiện thủ công bởi quản trị viên hệ thống. SRE sử dụng kỹ thuật phần mềm để triển khai tự động hóa và đơn giản hóa một số tác vụ hành chính.
Đọc chi tiết: SRE vs DevOps: Cách phân biệt và Trường hợp sử dụng
Sự khác biệt giữa Agile và DevOps
- Trong DevOps, sự hợp tác diễn ra giữa nhóm phát triển và nhóm vận hành. Trong Agile, sự hợp tác diễn ra giữa nhóm phát triển và nhóm quản lý dự án.
- Agile bắt đầu từ ý tưởng đến hoàn thiện mã, DevOps mở rộng sang khâu giao hàng và bảo trì.
- Agile áp dụng phương pháp lặp đi lặp lại, còn DevOps cung cấp khả năng tự động hóa trong thử nghiệm và triển khai.
Sự khác biệt giữa Microservices và DevOps
Microservice là kiến trúc chia ứng dụng thành các dịch vụ độc lập, hoạt động riêng lẻ. Kiến trúc này rất phù hợp cho ứng dụng web và được sử dụng rộng rãi trong các dịch vụ đám mây. Còn với DevOps, các nhóm có thể đóng gói chức năng vào các microservice nhỏ, hoạt động như khối xây dựng để phát triển hệ thống lớn.
Các quy trình CI/CD trong DevOps giúp triển khai hiệu quả các microservice này, mang lại nhiều lợi ích cho việc phát triển và quản lý ứng dụng.
DevSecOps có thay thế DevOps không?
DevSecOps sẽ không thay thế DevOps, thay vào đó, DevSecOps sẽ tăng cường DevOps, đưa các hoạt động bảo mật vào quy trình phát triển và vận hành. Trong khi DevOps tập trung vào tốc độ, sự cộng tác và hiệu quả, DevSecOps đảm bảo rằng bảo mật trở thành một phần vốn có của các quy trình này.
Cả hai bổ sung cho nhau chứ không loại trừ lẫn nhau. DevSecOps đóng vai trò như một cầu nối, đảm bảo rằng bảo mật không trở thành bottleneck trong khi vẫn duy trì tính linh hoạt của DevOps. Sự phát triển tự nhiên này giải quyết nhu cầu ngày càng tăng về phát triển phần mềm an toàn.
Tổng kết
Sự khác biệt cốt lõi giữa DevOps vs DevSecOps nằm ở vai trò của bảo mật: DevOps coi bảo mật như một giai đoạn riêng biệt, thường là sau cùng; còn DevSecOps biến bảo mật thành trách nhiệm chung và chủ động, thực hiện xuyên suốt từ khi lên ý tưởng cho đến khi vận hành. Bằng cách chuyển đổi nhanh chóng sang mô hình DevSecOps, bạn sẽ dễ dàng giải quyết các mối đe dọa mà không ảnh hưởng đến thời điểm phát hành và tốc độ phát triển của phần mềm.