CommunityDevOps ExchangePartners
Articles
4/22/2020
10 minutes

DevSecOps: The Importance of Continuous Delivery when Building Security In

Written by
Copado Team
Table of contents

Authored by Thom Behrens, DevOps Expert

 

Renowned systems thinker W. Edwards Deming said of quality control: “Cease dependence on inspection to achieve quality. Eliminate the need for inspection on a mass basis by building quality into the product in the first place.” From his influence, the concept of “Built-in Quality” has become a key tenet of Lean software development and DevOps. Testing through inspection at the end of a software product’s life cycle has proven to be inefficient: bugs discovered at this stage require developers to dredge up initial requirements and revisit long-forgotten work, changes can have cascading effects on dependent modules, and this often leads to expensive delays to the overall project.

Within software engineering, we can shift from checking for quality at the end of a process to implementing Built-in Quality by integrating continuous feedback throughout the development process, automating testing, and encouraging “ownership thinking” for all members of the team. Much has already been written about overcoming the disadvantages listed above. And there are many more advantages of adopting continuous feedback: shorter lead times, more stability at a module level, less re-work and wasted work, and improved morale. 

But even while many organizations have made progress towards integrating continuous feedback into their deployment streams, they may still be delaying security & compliance testing until the end. DevOps principles which take into account the importance of security and compliance – referred to as DevSecOps – can help us approach security & compliance in the same way we see functional quality, and strive for “Built-in Security” instead of “Security Checked For”, as is common practice in many organizations.

Many potential security vulnerabilities can be caught even before code is committed, by inline static analysis tools which are able to help sanitize user input, enforce database access patterns, or prevent cross-site scripting. But like any other bug, security vulnerabilities often manifest as the culmination of multiple implementation decisions that combine to produce unanticipated results. As such – and like all testing – security testing isn’t complete until comprehensive penetration tests have been run against the full stack.

We often confuse things in the development process which require the entire stack with things in the development process which need to happen last. A single-stream, unidirectional delivery strategy – the “Waterfall” method – implies that access to the full stack isn’t available until the project is “dev complete”, but not so with Continuous Delivery. By acknowledging that software products never truly reach a state of “dev complete”, we instead embrace the policy of always having our product in a deployable state, every day starting today. When we achieve this, we can test the entire stack as we deliver incremental changes, and deliver continuous improvement of security and compliance measures as we do so.

It’s important to recognize that just as we won’t accidentally build great features, we won’t accidentally achieve a secure system. Security is something that needs to be considered from the beginning and not just considered at the end of the development process. As Anders Wallgren says, “security is not like some condiment that you sprinkle on top of the plate before you serve the food. Security is a core ingredient in the meal.”

For new projects, keeping the stack in a constantly deployable stack from day 1 starts with shipping some workable feature, and then incrementing from there. Concepts like the Hello Production strategy provide illustrations of how to get this done. For mature software products already in production, many books have already been written how to implement Continuous Delivery, but strategy for handling security vulnerabilities within mature systems need to be understood as an I/O system – it’s just as important to remove existing critical security risks from the system as it is to prevent new critical security risks from being introduced. Prioritizing vulnerabilities and then iteratively implementing fixes & tests for those vulnerabilities is a well-worn pattern. Key retrospective questions are “what did we do to become safer this week?” and “what did we do to become faster this week?”. When done in conversation with all the necessary stakeholders, results along these success metrics will grow together.

When our stated goal becomes to keep our application in a constantly deployable state, or getting things into production as quickly as possible, it is worth mentioning that Cloud-provided IaaS or PaaS options bring benefit compared to traditional app stacks. Infrastructure-as-code built on infrastructure clouds provides an easy way to make the final product more dependable. And PaaS solutions like Salesforce, further reduce the vulnerability and management burden for your solution. Salesforce also brings the benefit of an app ecosystem including rules engines like Copado that let you build industry-standard or organization-specific compliance checks into your process.

Security and regulatory compliance is a critical ingredient for any modern organization, whether you’re aiming for success with customer trust & responsible data stewardship, or looking to avoid hefty fines. But the solution to the problem doesn’t have to be as painful as the consequence. Adopting “Built-in Security” as a mantra and a model to strive for can work alongside and in support of your mission to establish continuous delivery.

Want to learn more about Copado?

Book a demo

About The Author

#1 DevOps Platform for Salesforce

We Build Unstoppable Teams By Equipping DevOps Professionals With The Platform, Tools And Training They Need To Make Release Days Obsolete. Work Smarter, Not Longer.

Enhancing Customer Service with CopadoGPT Technology
What is Efficient Low Code Deployment?
Copado Launches Test Copilot to Deliver AI-powered Rapid Test Creation
Cloud-Native Testing Automation: A Comprehensive Guide
A Guide to Effective Change Management in Salesforce for DevOps Teams
Building a Scalable Governance Framework for Sustainable Value
Copado Launches Copado Explorer to Simplify and Streamline Testing on Salesforce
Exploring Top Cloud Automation Testing Tools
Master Salesforce DevOps with Copado Robotic Testing
Exploratory Testing vs. Automated Testing: Finding the Right Balance
A Guide to Salesforce Source Control
A Guide to DevOps Branching Strategies
Family Time vs. Mobile App Release Days: Can Test Automation Help Us Have Both?
How to Resolve Salesforce Merge Conflicts: A Guide
Copado Expands Beta Access to CopadoGPT for All Customers, Revolutionizing SaaS DevOps with AI
Is Mobile Test Automation Unnecessarily Hard? A Guide to Simplify Mobile Test Automation
From Silos to Streamlined Development: Tarun’s Tale of DevOps Success
Simplified Scaling: 10 Ways to Grow Your Salesforce Development Practice
What is Salesforce Incident Management?
What Is Automated Salesforce Testing? Choosing the Right Automation Tool for Salesforce
Copado Appoints Seasoned Sales Executive Bob Grewal to Chief Revenue Officer
Business Benefits of DevOps: A Guide
Copado Brings Generative AI to Its DevOps Platform to Improve Software Development for Enterprise SaaS
Celebrating 10 Years of Copado: A Decade of DevOps Evolution and Growth
Copado Celebrates 10 Years of DevOps for Enterprise SaaS Solutions
5 Reasons Why Copado = Less Divorces for Developers
What is DevOps? Build a Successful DevOps Ecosystem with Copado’s Best Practices
Scaling App Development While Meeting Security Standards
5 Data Deploy Features You Don’t Want to Miss
Top 5 Reasons I Choose Copado for Salesforce Development
How to Elevate Customer Experiences with Automated Testing
Getting Started With Value Stream Maps
Copado and nCino Partner to Provide Proven DevOps Tools for Financial Institutions
Unlocking Success with Copado: Mission-Critical Tools for Developers
How Automated Testing Enables DevOps Efficiency
How to Keep Salesforce Sandboxes in Sync
How to Switch from Manual to Automated Testing with Robotic Testing
Best Practices to Prevent Merge Conflicts with Copado 1 Platform
Software Bugs: The Three Causes of Programming Errors
How Does Copado Solve Release Readiness Roadblocks?
Why I Choose Copado Robotic Testing for my Test Automation
How to schedule a Function and Job Template in DevOps: A Step-by-Step Guide
Delivering Quality nCino Experiences with Automated Deployments and Testing
Best Practices Matter for Accelerated Salesforce Release Management
Maximize Your Code Quality, Security and performance with Copado Salesforce Code Analyzer
Upgrade Your Test Automation Game: The Benefits of Switching from Selenium to a More Advanced Platform
Three Takeaways From Copa Community Day
Cloud Native Applications: 5 Characteristics to Look for in the Right Tools
Using Salesforce nCino Architecture for Best Testing Results
How To Develop A Salesforce Testing Strategy For Your Enterprise
What Is Multi Cloud: Key Use Cases and Benefits for Enterprise Settings
5 Steps to Building a Salesforce Center of Excellence for Government Agencies
Salesforce UI testing: Benefits to Staying on Top of Updates
Benefits of UI Test Automation and Why You Should Care
Types of Salesforce Testing and When To Use Them
Copado + DataColada: Enabling CI/CD for Developers Across APAC
What is Salesforce API Testing and It Why Should Be Automated
Machine Learning Models: Adapting Data Patterns With Copado For AI Test Automation
Automated Testing Benefits: The Case For As Little Manual Testing As Possible
Beyond Selenium: Low Code Testing To Maximize Speed and Quality
UI Testing Best Practices: From Implementation to Automation
How Agile Test Automation Helps You Develop Better and Faster
Salesforce Test Cases: Knowing When to Test
DevOps Quality Assurance: Major Pitfalls and Challenges
11 Characteristics of Advanced Persistent Threats (APTs) That Set Them Apart
7 Key Compliance Regulations Relating to Data Storage
7 Ways Digital Transformation Consulting Revolutionizes Your Business
6 Top Cloud Security Trends
API Management Best Practices
Applying a Zero Trust Infrastructure in Kubernetes
Building a Data Pipeline Architecture Based on Best Practices Brings the Biggest Rewards
CI/CD Methodology vs. CI/CD Mentality: How to Meet Your Workflow Goals
DevOps to DevSecOps: How to Build Security into the Development Lifecycle
DevSecOps vs Agile: It’s Not Either/Or
How to Create a Digital Transformation Roadmap to Success
Infrastructure As Code: Overcome the Barriers to Effective Network Automation
Leveraging Compliance Automation Tools to Mitigate Risk
Moving Forward with These CI/CD Best Practices
Top 3 Data Compliance Challenges of Tomorrow and the Solutions You Need Today
Top 6 Cloud Security Management Policies and Procedures to Protect Your Business
What are the Benefits of Principle of Least Privilege (POLP) for My Organization?
You Can’t Measure What You Can’t See: Getting to know the 4 Metrics of Software Delivery Performance
How the Public Sector Can Continue to Accelerate Modernization
Building an Automated Test Framework to Streamline Deployments