Is NoOps the End of DevOps?
In NoOps, you wouldn’t require an operations team to oversee your lifecycle because everything would be automated. But is that really a good idea?
Join the DZone community and get the full member experience.Join For Free
Is NoOps really the end of DevOps? To answer this question, you must understand NoOps better.
Things are moving incredibly fast in the development world as automation and scaling in the cloud reach new heights every day. You can have “as a service” for almost anything — be it storage, network, in the cloud, compute, or security. Cloud providers are also increasingly investing in their automation ecosystem. This leads us to NoOps, where you wouldn’t require an operations team to oversee your lifecycle because everything would be automated.
You can use automation templates to provision your app components and automate component management, meaning less overhead for you and minimal to no human interference. Doesn't this sound nice?
But is this a wise choice, and what are some advantages and challenges to implementing it?
NoOps: Is It a Wise Choice?
You already know that DevOps aims to make app deployments faster and smoother, with a focus on continuous improvement. NoOps ("no operations"), a term coined by Mike Gualtieri at Forrester, has the same goal at its core but with the absence of an operations professional.
In an ideal NoOps scenario, a developer never has to collaborate with a member of the operations team. Instead, NoOps uses serverless and PaaS to get the resources they need when they need them. This means that you can use a set of services and tools to deploy the required cloud components (including the infrastructure and code) securely. Additionally, NoOps leverages a CI/CD pipeline for deployment.
Ops teams are incredibly effective with data-related tasks, seeing the collection, analysis, and storage of data as a crucial part of their functions. Keep in mind, however, that you can automate most of your data collection tasks, but you can’t always get the same level of insights from automating this analysis.
Essentially, NoOps can act as a self-service model where a cloud provider becomes your ops department, automating the underlying infrastructure layer and removing the need for a team to manage it. Many argue that a completely automated IT environment requiring zero human involvement — true NoOps — is unwise, or even impossible.
NoOps vs. DevOps: Advantages and Challenges
DevOps emphasizes the collaboration between developers and the operations team, while NoOps emphasizes complete automation. Yet, they both try to achieve the same thing — faster time-to-market and a better software deployment process. However, there are advantages and challenges when considering a DevOps vs. a true NoOps approach.
More Automation, Less Maintenance
By controlling everything using code, NoOps aims to eliminate the additional labor required to support your code’s ecosystem. This means that there will be no need for manual intervention, and every component will be more maintainable in the long run because it’ll be deployed as part of the code. But does this affect DevOps jobs?
Uses the Full Power of the Cloud
There are a lot of new technologies that support extreme automation, including Container as a Service (CaaS) or Function as a Service (FaaS), so leading cloud service providers can help with NoOps adoption. This is excellent news, because ops can ramp up cloud resources as much as necessary, leading to higher capacity planning compared to DevOps (where dev and ops teams work together to decide where the app can run).
Fast Beats Slow
NoOps focuses on business outcomes by shifting focus to priority tasks that deliver value to customers and eliminating the dependency on the operations team, further reducing time-to-market.
You Still Need Ops
In theory, not relying on an operations team to take care of your underlying infrastructure can sound like a dream. Practically, you may need them to monitor outcomes or take care of exceptions. Expecting developers to handle these responsibilities exclusively would take their focus away from delivering business outcomes and wouldn’t be advantageous considering NoOps benefits.
It also wouldn’t be in your best interest to rely solely on developers, as their skillsets don’t necessarily include addressing operational issues. Plus, you don’t want to further overwhelm devs with even more tasks.
Security, Security, Security
You could abide by security best practices and align them with automatic deployments all you want, but that won’t completely eliminate the need for you to take delicate care of security. Attack methods evolve and change each day, and therefore, so should your cloud security controls.
For example, you could introduce the wrong rules for your AI or automate flawed processes, inviting errors in your automation or creating flawed scripts for hundreds or thousands of infrastructure components or servers. If you completely remove your ops team, you may want to consider investing additional funds into a security team to ensure you’re instilling the best security and compliance methods for your environments.
Consider Your Environment
Considering NoOps uses serverless and PaaS to get resources, this could become a limiting factor for you, especially during a time of digital transformation. Automation is still possible with legacy infrastructures and hybrid deployments, but you can’t entirely eliminate human intervention in these cases. So remember that not all environments can transition to NoOps. You must carefully evaluate the pros and cons of switching.
So Is NoOps Really the End of DevOps?
Short answer: no.
Long answer: NoOps is not a one-size-fits-all solution. You know that it’s limited to apps that fit into existing serverless and PaaS solutions. Since some enterprises still run on monolithic legacy apps (requiring total rewrites or massive updates to work in a PaaS environment), you’d still need someone to take care of operations even if there’s a single legacy system left behind.
In this sense, NoOps is still a way away from handling long-running apps that run specialized processes or production environments with demanding applications. Conversely, operations occurs before production, so, with DevOps, operations work happens before code goes to production. Releases include monitoring, testing, bug fixes, security, and policy checks on every commit, and so on.
You must have everyone on the team (including key stakeholders) involved from the beginning to enable fast feedback and ensure automated controls and tasks are effective and correct. Continuous learning and improvement (a pillar of DevOps teams) shouldn’t only happen when things go wrong; instead, members must work together and collaboratively to problem-solve and improve systems and processes.
Furthermore, when you think of DevOps, you think of “people.” Building better software, faster, with team members from all areas of business (including QA, marketing, designers, security, product managers, and so on) will continue to be the superior choice as they work together toward a common goal. Remember from our building a high-velocity dev team article that a balanced team keeps all members engaged and offers them opportunities to grow and learn from each other.
Thankfully, NoOps fits within some DevOps ways. It’s focused on learning and improvement, uses new tools, ideas, and techniques developed through continuous and open collaboration, and NoOps solutions remove friction to increase the flow of valuable features through the pipeline. This means that NoOps is a successful extension of DevOps.
In other words, DevOps is forever, and NoOps is just the beginning of the innovations that can take place together with DevOps, so to say that NoOps is the end of DevOps would mean that there isn’t anything new to learn or improve.
Final Stop, Destination: NoOps
There’s quite a lot of groundwork involved for true NoOps — you need to choose between serverless or PaaS and take configuration, component management, and security controls into consideration to get started. Even then, you may still have some loose ends — like legacy systems — that would take more time to transition (or that you can’t transition at all).
One thing is certain, though: DevOps isn’t going anywhere and automation won’t make ops obsolete. However, as serverless automation evolve, you may have to consider a new approach for development and operations at some point. Thankfully, you have a lot of help, like automation tools and FaaS, to make your transition easier should you choose to switch.
Published at DZone with permission of Roxana Ciobanu. See the original article here.
Opinions expressed by DZone contributors are their own.