The Three Elements That Make You a Better DevOps Professional
I have been working in the DevOps space for over 15 years, in companies such as Playbuzz, Cyberint, HERE Technologies and now 2bcloud. In every company and in every position, I had to adjust quickly to new technologies, products and people. On the way, I learned a lot! I’d like to share with you my insights about the DevOps culture, and what you should consider on your way to becoming a great DevOps engineer.
I’ll be looking at hands-on knowledge, soft skills and the importance of great colleagues. Last but not least, I’ll give you some best practices to make the journey smoother. Let’s get started!
Looking at Hands-On Knowledge
Companies will measure you largely on your hands-on skills, so it’s important to make sure that these are up to scratch. Let’s look at some of the main areas to brush up on for DevOps.
- Security: Learn to do threat modeling using STRIDE, and apply it to everything you do. STRIDE stands for Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege. Using these, you will always have to consider the implications of your decisions, and can easily understand threats and their application in practice.
- Infrastructure as code (IaC): Stay up to date with popular tools. At the moment, these are Terraform, Ansible, Packer and Pulumi for small scope projects. Always think in a modular way to ease the development of future products. This will increase reusability and save yourself having to rewrite the same functionality more than once.
- Cloud: Learn to create a secured VM in every Cloud. Start with Azure free-tier, as it covers most aspects of the Cloud. Learn basic dogmas related to the Cloud, such as VMs, networking, storage and DNS.
Memorize the OSI model and know which load balancer fits your design. Don’t forget to stay well informed by subscribing to AWS cloud news and Azure cloud news, too.
- Coding: Not all DevOps professionals know how to program, but it’s always a good skill to have. I would recommend starting as a developer somewhere close to the metal, not assembly-close or even kernel-close, but definitely some backend. Then, pay attention to the layers below you and how they affect your system, network, IO, and more.
- Design: Prepare the foundations first, a best practice is to always prove each floor can hold the weight of the next. One of the most important rules to live by is to “Do more with less.” By that I mean, pick the least number of technologies that solve the most current and future problems.
- Monitoring / SRE: Build a system that alerts you to only critical issues, or you’ll end up with alert fatigue, and that’s how you start skipping steps and causing vulnerabilities. Other issues that are less critical should be visible on your dashboards as future tasks.
- Databases, Orchestration and more: Get basic knowledge on some popular databases, such as Elasticsearch, MongoDB, and Postgres. Learn the most popular use cases and some low level implementation, too.
For orchestration, practice Kubernetes! it is widely popular and highly required. Other orchestration tools are far less needed.
Other technologies to get acquainted with include a CDN, Stream Processing such as Kafka, Queues message broker such as RabbitMQ, Communication bus such as Envoy, and Jaeger for tracing.
Getting Great at the Important Soft Skills
Good DevOps professionals and Cloud architects come with a variety of soft skills.
First off, work on your problem solving. In DevOps you will spend a lot of time building, fixing or designing, and this takes a creative mind that can think outside the box about challenges when they arise. Find out what the best practices are to design a system, get familiar with good bug-solving methods, and take the time to learn how to support others with their technical problems.
Next, it’s essential to have a good eye, and pay attention to detail. After designing or creating a system, any bugs will come from the details which were missed or forgotten. Make sure to create and cover a list of important subjects every time, and go down to granular detail.
I can’t stress how important it is to have great communication. DevOps professionals will work with people, so a huge part of the role is to support and direct others or guide coworkers. People appreciate good will and open communication, and it will get you a long way.
Lastly, I would always recommend that you work on ownership. When something is under your responsibility, there is a skill to making sure people know about it and that the alerts and flow of changes runs through you. Remember, if you own a project or a product, the buck stops with you. When something good or bad happens to things you own, you should be there.
Why Colleagues Make All the Difference
When candidates are looking for a new role, there are a few key elements that they tend to focus on. This could be anything from the benefits or the success of the product, to the gadgets and perks they have in the office. However, I would suggest you make sure that you’re working for a company with brilliant colleagues. Here’s why.
In order to sharpen your expertise, you have to be with the right people. A rising tide will lift all ships. Sharp, experienced colleagues will always raise the quality of your own products and accelerate and improve the way you think. That’s one of the big reasons why I joined 2bcloud.
Once you’re in an environment with great colleagues, utilize their expertise and support! Brainstorming and design reviews are a good way to improve your own skill set. Allowing your colleagues to question your decisions or give you a second opinion is important. If you’ve made sure to be in a place with great people, their insight and reviews will be invaluable, and their criticism will be constructive and improve your product overall. As the proverb says, “As iron sharpens iron, so one person sharpens another.”
5 Personal Best Practice Do’s and Don’ts.
Lastly, I’ll leave you with my ultimate do’s and don’ts for becoming successful in DevOps.
#1: DO look for companies with the latest technologies. You’ll always want to keep up with the industry’s technologies or you’ll become obsolete. If you have to work with old technologies or some legacy code, suggest ways to upgrade them to fit the current industry standard.
#2: DO try to align yourself under good managers. Find those who care about you and your progress.
#3: DO remember that Production is the heart of your company. Know that everything that you do there takes its toll. If there is some problem in your company’s production, try to be involved and suggest solutions to these problems.
#4: DON’T make these Production errors. Don’t let users access production, test on production, or cause needless downtime!
#5: DO know that DevOps isn’t one size fits all. There are many kinds of DevOps. Some specialise in one field, others work for one company and know its infrastructure to the bone. Our field has a vast amount of technologies and many requirements. Good DevOps come in many varieties but for me – being a “jack-of-all-trades” was my way of becoming a great one.
Looking for more best-practices for managing your cloud environment? I’d be happy to schedule a call.