DevOps is not an individual role, it is a group effort.
Your infra should be able to handle a failed deployment automatically and rollback. If it can’t, you’re doing it wrong.
The meaning of DevOps is different to different people.
If any task cannot be automated, remove it instantly from the task list.
Communication is more important than tooling and will make or break an organization.
Shift the focus of Security to the left in the development life-cycle.
Using Jenkins != CI/CD or DevOps …
Always design with autoscaling in mind. Automate-all-the-things. One-click deploy to one-click revert.
Create ready to use images in AWS and use those images for auto-scaling instead of scripted from GitHub builds.
There is a real skillset shortage in the DevOps field. See 'Why it is difficult to hire for DevOps?'
The CI/CD pipeline is one of the best practices for DevOps teams to implement, for delivering code changes more frequently and reliably.
Do not automate a bad process, you end up with an automated bad process — [Credits: DOES18 ]
Testers who know how to code and automate scripts to test various cases are in massive demand in DevOps.
Add monitoring to infrastructure as well as applications. The monitoring system should send alerts on every important events.
Utilize Infrastructure as a code templates to build the infra. Ex. cloud-formation, terraform etc
Serverless is not actually serverless, it is simply 'pay as you use' model
Cloud-native is not a synonym for microservices or Kubernetes, it is all about utilizing the advantages of the cloud computing model
Make use of container registries for publishing, storing, locating, downloading, and managing container images
Golang and DevOps are made for each other.
The recent cloud acquisitions have created confusion in the market, it is time to step up and make a move.
Your turn. Share your learnings:)