The holidays are finally here and we wanted to celebrate by providing you with The 12 DevOps Tricks of Christmas. Our engineers not only live the DevOps lifestyle daily, but also do regular DevOps consulting for global 2000 organizations. I asked each of them to provide me with a couple tips that will help any enterprise’s DevOps culture work better. These are The 12 DevOps Tricks of Christmas.
1. Think Big — Start Small
You can do Continuous Delivery, maybe not straight away but get some building blocks in place. Continuous Integration is a great start.
2. Dev Meet Ops, Ops Meet Dev
If you’re an Ops or a Dev person – Go for a coffee/beer with a Dev or an Ops person.
As a Developer do some Ops stuff if you have some spare time. Understand the problem domain of the Operations team. Set up servers, install an OS, configure firewalls, clear down directories, install software. Automate this, clone this configuration and build it again (without using Docker ).
As an Operations Specialist, try your hand at development. Build an application, start simple. Add a login screen, interact with a database, maintain the data structure and data life cycle. Loads of examples out there, todo lists, gym session tracker etc. Host it somewhere.
If you have a siloed structure, invite Ops to your daily standups, invite Developers from another project to a project meeting.
3. Think Testing Right From the Start. How Can I Test This Feature?
Tester: Insert yourself into the project development phase, Developer, grab testers or become one!
Write your tests up front – just get into this habit. Tests that are run frequently are great automation candidates. Hold fire on your UI until it is stable – you can burn loads of hours writing tests for a fluid UI and these tests are a bitch to maintain.
Execute execute execute. It gets easier.
4. CI ≠ CD.
Get your applications built and deployed with better quality (CI). Orchestrate all of your deployments/releases across your release pipeline (from DEV to PROD) with full visibility into dependencies, bottlenecks and schedules. (CD)
5. No One Cares if a Developer Builds and Deploys a Code Change Several Times in DEV.
Everyone cares when the code change has to be redeployed more than once in Production.
6. You Wrote the SQL to Make a Database Change?
You can also write the SQL to roll that change out. No excuses.
7. Fast Feedback is Key
You don’t want to wait for weeks, months, years, … before that new fancy feature hits the production system. So the sooner you can put that feature out there, and get feedback, the better. This helps you to define if that is really the cool feature everyone was waiting for or not.
8. Focus On Your Business
If your business is developing mobile applications, you should be focusing on that most of the time. Having side projects that handle take care of developing your own CI or deployment framework are not helping your business. So whatever is not part of your core business, go shopping for it.
9. Embrace Failures, Mistakes and Faults
Every failure, mistake, fault, … should be seen as a moment for inspection and adaption. This also means that acknowledging failures also helps in improving the overall DevOps organization.
10. Select a Goalkeeper to Keep Ops From Getting Side Tracked
Everyone gets busy, that’s the nature of the beast. Having someone in place to keep Ops on track to make sure small tasks get done as soon as possible and to keep ops focused on long term goals is a valuable habit to form.
11. Remember Your Resources
We all get consumed by the projects we are working on, and sometimes we forget other people have already worked on similar projects in the past. Whether it is a great Github repository or a useful technical article you found months ago, just remembering there are resources out there to help can save you a lot of time and stress.
12. Goals — Good to Have, But Let’s Be Realistic
Setting realistic goals is as important to team morale as it is to the bottom line. There is no lack of metrics to measure in any business, but setting specific goals that are both achievable and that keep the end user in mind should be a goal in and of itself.