Chap 8. DevSecOps Patterns & Beyond
-
What exactly is DevSecOps?
It means different things to different people depends on context, experiences, organization need.
-
DevSecOps is not a mature enough to have a recipe for success.
-
DevSecOps is not an
end goal, but rather an iterative improvement process to make software delivery faster & more reliable.
DevSecOps Patterns
Shifting Left toward CI/CD
CI/CD is the ultimate gold of Dev(Sec)Ops.
-
A developer should be able to
- write code
- see the code moving to production
- passe tests… (CI)
- deploy to production (CD)
-
ArgoCD is designed with DevSecOps in mind:
- There is a web interface to increase visibility: developers can see what see deployment status of the system.
- Takes advantages of tools: K8s, Helm…
Multi-cloud Deployments
With
- containerization technology: Docker, Kubernetes
- the support of cloud providers to provide a platform for containers that integrates well Kubernetes
any organization can run containerized workflow seamlessly on any cloud provides based on:
- organization need
- geographic demand
- redundancy
Integrated and Automatic Security
The whole SDLC should be secure by default, in an unobtrusive way:
-
Role-based access control should be everywhere.
-
In addition to post-production, security needs to be shifted left and automatic (developers don’t need to be an expert in cybersecurity):
-
When code is committed/pushed, the CI system’s security scanning tool should flag the security issues so developers can remediation these security issues early.
e.g. Credentials, secrets within code/configuration needs to be remove ASAP.
-
The tooling should minimize the any security risks for the developers.
-
Linux Everywhere
Promoting tools that:
- are Linux-based
- work seamlessly with Linux
Linux-related skills - utilizing CLI, understand Linux’s architecture … - should be promoted in an organization.
Refactor and Redeploy
For a bare-metal/VM server,
- the cost of deploying another instance is quite high (the hardware purchasing, the setup…)
- the cost of getting the most from the existing instances is cheaper, optimization & troubleshooting skills is more emphasized.
Today, the time spending to get the most out of an instance is more costly than a redeploy:
- Computing resources - processor, memory - are cheap enough that a deployment of another instance is cheaper than determine the root-cause of an instance.
- You can treat redeploying as “turning it off and back on again”
Summary
-
DevSecOps patterns:
- Shift-left (deployment, security)
- Multi-cloud deployment
- Linux (& its skills)
- Redeploy
-
DevSecOps is more than a practice, it’s the culture
- Change the culture first, then introduce the DevSecOps practices, tools.
- Don’t make DevSecOps a technical debt to sole other technical debts.