My primary goal in 2023 is to replace all of the short-form FAQ questions below with more informative long-form blog posts. Please contact me via the links above if you have any information to contribute or if there is any topic related to DevOps FAQ that you would like to see me cover first!
What are the two benefits of DevOps?
One of the primary benefits of DevOps is the idea of building a unified team of crosscutting concerns. In many organizations, development groups will be isolated from operations groups and vice versa. This creates a lot of tedious and costly handoffs throughout the organization. When building DevOps teams, all responsibilities are working directly together to enhance the delivery of your product(s).
A secondary benefit of DevOps is an interpersonal one. Individuals on a team are able to gain exposure to facets of their jobs that they may not have been exposed to previously. This helps people grow in their careers providing a lot of personal fulfillment.
The primary technological benefit is consistency. The DevOps team works toward a delivery methodology that uses automation, testing, and feature flags to release their products. This positively impacts planning by reducing the overall scope of work into smaller bitesize chunks which allows everyone to fail fast and fail small. Pivoting is much easier to achieve when the change set is more bite size and there is less emotional investment in what has already been produced.
What are the core principles of DevOps?
Atlassian will define the DevOps core principles as Collaboration, Automation, Continuous Improvement, Customer Centric Action, and Create with the End in Mind. Those feel more like Agile pillars to me instead of core principles.
SAFe Agile will provide more of a view of "DevOps Practice Domains", and they are Value Stream Management, Continuous Quality, Continuous Security, Version Control, Configuration Management, Infrastructure Management, Agile Planning and Design, Deployment Pipeline, Configuration Monitoring, Agile Product Management, and Value Metrics. That is quite the list.
I would say that the core principle that DevOps teams can help address would simply be: Enable the Flow of Delivery inside the business. Aside from some minor practices like IaC and Blue/Green deployments, there really isn't much point in saying you are doing DevOps if it isn't focused on flow first, and technology second.
What are the key features of DevOps?
I think it depends on what kind of DevOps you are doing. If you are a centralized team living in a distributed set of technology groups, your core features are going to be different than if the DevOps resources are embedded directly with technology delivery teams.
Centralized: Consistency in approach, reusable tooling, one-size-fits-all approach, and economies of scale.
Decentralized: Systems and strategies that work well for a small group, decentralized decision making which increases agility, and more tightly coupled technology ecosystems.
With either approach, nobody is excluded from the tooling and technology needed to accomplish a DevOps flow successfully.
What does DevOps do?
DevOps is a set of practices that combines software development and operations to improve the speed, quality, and reliability of software delivery. DevOps is about collaboration and communication between development and operations teams.
How can I learn DevOps?
I have a great article answering this question here: Practicing DevOps – A Surprising Alternative
If you are looking to understand relevant skills in a specific DevOps practice, this post is a great place to look for general DevOps skills and skillsets: 15 Top DevOps Skills in 2023
- Who can study DevOps?
- How long does it take to learn DevOps?
- What should I learn first for DevOps?
Do DevOps engineers need a coding background?
I am not going to say that you don't need a coding or software development background, but it certainly wouldn't hurt. I think everyone can benefit from a little bit of code writing in their life. Start simply with something like fizzbuzz and grow from there!
What does DevOps stand for?
DevOps stands for Dev and Ops being combined together into a single practice. Some people will say, "If you build it, you own it" but that doesn't always need to be the case. More often than not, the team needs to advocate for cross-training to build resilience and spread knowledge around more effectively.
What are DevOps skills?
DevOps skills consist of software development and system operations. The domain of software development or system administration (i.e. Java Spring, PHP Laravel, AWS EC2, etc) will change depending on the organization, division, group, team, or individual that is performing DevOps.
Is DevOps easy to learn?
This question implies that there is a potential mastery of DevOps. I believe that the idea of DevOps is evolving and changing rapidly which does make it a bit of a moving target. You can compartmentalize DevOps into some small chunks like building a simple release pipeline which does make DevOps very easy to learn.
If you start to expand into things like the vast array of tools that the CNCF has to offer, then you are going to be learning and growing for a very long time. I believe that the simplest jumping-off point on a DevOps journey is to build some simple deployment pipelines from something like GitHub Pages or Cloudflare Pages utilizing some scripting and git-flow to get used to the nuances that are required when diving more fully into DevOps.
Who can become a DevOps engineer?
Anyone can! The key to becoming a DevOps engineer is to broaden your horizons. Software developers are going to need to become more empathetic to their system engineering counterparts and system engineers are going to need to be more empathetic to their software development counterparts. Do not be afraid to play in a space you are not comfortable with, and ensure that people around you are willing to follow. Be brave, and you too can be a DevOps Engineer.
Who can become a DevOps architect?
Anyone can! The key to becoming a DevOps architect is centered more around being able to educate and guide aspiring engineers while keeping up to date with and adopting newer trends into YOUR DevOps ecosystem. An Architect in any field should be well trained and well seasoned in their practice of choice. Another hallmark of a good architect is someone who is a perpetual learner. If you can communicate your ideas in the DevOps space, stay current, learn new things, and evangelize what it really means to do DevOps well, then you too can be a DevOps Architect.
Which tool is best for DevOps?
Here you will find a high-level list of tools that can be used for DevOps. This is not a complete list, but it is a really good place to get started! For me, the tools question is always a bit of a hit-and-miss topic. I feel that DevOps should be about flow, not about tools.
- What Essential DevOps Tools Should You Be Using in 2023?
- How DevOps Can Improve Your Technology Stack
- DevOps Deployments: Fast, Easy, and Fun!
Why is DevOps boring?
Inheirently, DevOps is a practice that promotes stability and consistency. There is not a lot of room for chaos or chaotic activities which some individual with thrive on. I also think it is easy to slip into a trap of stagnation where teams stop natrually developing themselves over time due to some of the rigidity that DevOps brings with it.
Does DevOps have a future?
I believe that DevOps has a bright future. The industry is consistently moving/has moved away from large monolithic software projects with big-bang-style launches. We have really moved towards smaller bite-sized release cadences which allow for quick pivots based on feedback and measurement and this overall shift has proven to be extremely successful. DevOps is powering this agility and nimbleness technologically while methodologies like Agile are facilitating the planning, goal setting, and strategy.
Is a DevOps job stressful?
DevOps can be stressful when working for organizations that do not take a "People First" approach. A career in DevOps requires precision, accuracy, design thinking, and a whole host of other skills which don't even being to dive into the technology space. To help rationalize what could be a stressful job into something which is more manageable, I look at DevOps differently than most. The work that we do as DevOps engineers and architects has a byproduct of technology being produced and maintained. The real trick to doing DevOps well, and lowering the stress level, is to diligently work through all of the intangibles first with the goal of understanding workflow. Once you have a designed workflow that can be well communicated and evangelized, then you can start to implement it and the byproduct of all of that work is "technology was produced".
What will replace DevOps?
It is hard to say. I believe that a "Full Stack Developer" is not the right direction since that "role" does not leave enough room for any kind of specialization. There are purple unicorns out there than can do it, but most people who think they are FSDs are more of a "Jack of all trades, and master of none". I believe that the primary trend that will continue is simply, to bring smaller fully functional teams together and cut them loose to do awesome work!
Which language should I learn for DevOps?
- Does DevOps need Java?
- Is python needed for DevOps?
- Is SQL required for DevOps?
Is AWS required for DevOps?
No, but it doesn't hurt to have some experience under your belt.
- Is Azure required for DevOps?
- Does DevOps need to be done in the Cloud?
Is DevOps a 24/7 job?
It can be. Combining dev and ops together means that the team is responsible for all facets of the technology lifecycle. I would encourage any team that is struggling with the 24/7 nature of technology to put a much heavier emphasis on considering what it means to operate what you build before you build it. By mitigating risks early, you can turn 24/7 down to an occasional activity rather than a full-time one.
Why DevOps is so difficult?
I think Dennis Nedry from Jurassic Park said it best:
I am totally unappreciated in my time. You can run this whole park from this room with minimal staff for up to 3 days. You think that kind of automation is easy? Or cheap? You know anybody who can network 8 connection machines and debug 2 million lines of code for what I bid for this job? Because if he can I'd like to see him try. Spielberg, S. (1993). Jurassic Park. Universal Pictures.
Building highly reliable, resilient, stable, scalable infrastructure and applications is hard. It just is. If you are having a hard time with DevOps I would encourage you to spend more time trolling around on Reddit, going to meetups, and talking with others in the industry to understand how they are getting along. You would be surprised by what you will learn.
Can I get a DevOps job with no experience?
No technology experience? Probably not.
Do you have a mild amount of technology experience with the will to learn and great intuition and aptitude? Absolutely!
- 6 Top Programming Languages for DevOps Engineers
- 7 Tips for Landing a DevOps Job Without a Degree in 2023