I’ve spent a good portion of my career interacting with DevOps, but from an infrastructure and data center perspective. In that role, my goal was to eliminate legacy components from infrastructure so that the entire process could then impact both DevOps and the business overall. Today, my focus has shifted into the world of cloud, DevOps, and advanced technology solutions like artificial intelligence, machine learning, big data, and even natural language processing.
Today, we focus on DevOps. And this next part is really important:DevOps is NOT just for developers.
Too often -- and I was guilty of it in the past -- a person not directly involved with DevOps thinks that this is a bunch of coders doing some kind of development operation; without understanding what that means.
When it comes to DevOps, there is so much more to the story and the process. In fact, business leaders and even "traditional" IT people need to know what DevOps is and what it can do for a company. I'm seeing more custom application development and even integration with advanced software development kits (SDKs) and APIs.
Before we go on, I need to touch on the concept of legacy. At a high level, this is any process or operation that requires quite a bit of manual intervention and a lot of complex reactive support. This can be code, business or IT processes, and even IT infrastructure. Gartner recently pointed out that legacy infrastructure and operations practices are not sufficient to meet the demands of the digital business. As we all evolve into a data-driven society, digital transformation will require agility and velocity that outstrips classical architectures and practices.
Gartner mentioned that in 2018, IT will be increasingly tasked with supporting complex, distributed applications using new technologies that are spread across systems in multiple locations, including on-premises data centers, the public cloud and hosting providers.
Now, let’s understand DevOps.
First of all, DevOps isn’t just two words combined together. DevOps is all of the following:
- A cultural shift in how processes, code, and technology are delivered.
- A philosophy around continuous development and integration with users, business, and even market dynamics.
- A practice that continuously evolves.
- A tool to help deliver services and applications and market-ready speeds.
- A process to help companies innovate at a much faster pace than what traditional (or legacy) software tools and infrastructure could offer.
While it often is referred to as "agile operations", Jez Humble, co-author of The DevOps Handbook, defines DevOps as “a cross-disciplinary community of practice dedicated to the study of building, evolving, and operating rapidly-changing resilient systems at scale.”
I think you get the point. DevOps in today’s world is a technological and cultural shift to allow for continuous integration, continuous development, and continuous innovation.
I’ve had the chance to work with global enterprises and those in the mid-market. I’ve seen each of them develop customized applications and millions of lines of code that they now struggle to manage. Now, each of them is trying to understand how to get to "a state of DevOps" and how to get rid of legacy development practices. In that experience, many of my conversations boil down to the following five points.
You need to have a "coming to terms" moment and realize that your development process is not capable of scaling or adapting to market needs. Like a chef in their own kitchen, you truly believe that your soup is already perfect. However, you need to understand your development processes and where there are holes. Maybe you’re leveraging too many custom systems, maybe you’re still coding into applications that should be retired. Or, maybe your competition is starting to outpace you. In organizations that I’ve worked with this was the realization that they came to. Their development processes simply couldn’t support the pace of the market. An evaluation of your ecosystem could give you a lot of answers. Where are there faults? Where does the process work? Where can there be improvements? These are challenging questions but they’re a key start to the process.
You need to dedicate time to understanding your systems, dependencies, and how you’ve been delivering applications and services today. We live in a data-driven world. Not just about the data we generate; but also the code we’ve create. Applications are complex systems. Data and applications are some of the hardest parts of the environment to work with, especially when there’s a migration in the discussion. To get to a state of DevOps, you’ll need to go on a journey. This one will revolve around a deep-dive around your applications, your code, the libraries that code requires, the process in compiling that code, where data repositories sit, what APIs you use, and more.
You will need to create a "future-state" to work towards. A key part of the DevOps process is the need to design for the future. This means planning around cloud adoption, system migration, future removal of legacy infrastructure, and even future application requirements. Every DevOps planning session I’ve been a part of includes this process. It helps business leaders better understand where continuous development, integration, and innovation can benefit their organization and competitive stance.
You will need to include infrastructure and cloud teams in the planning process. Don’t lock your server and data center team members out of the DevOps conversation. Right now, I’m helping a customer migrate a massively heterogenous architecture into a hyperconverged platform to allow them to be way more agile. Make sure you include your cloud architects as well; there are so many amazing DevOps tools and functions that the cloud can offer. Remember, DevOps is a cultural shift as well as philosophy. This shift has to happen at multiple levels for the entire process to be successful.
You should work with a partner who can help you create a solid DevOps practice. Although DevOps is designed to make your life easier. Getting there isn’t simple, it can be discouraging if you have a really complex environment to begin with. Working with a good partner can simply begin the conversation and help you understand where you need to evolve your own ecosystem. Working with a partner who can get you to a state of DevOps is great for your business, your developers, and your process overall.
The ultimate goal is to get to a process where you’re not releasing updates on some weekly schedule. Rather, this process is done continuously. Oftentimes, application release updates can be done several times a day. And so, the DevOps cycle is: Plan, Create, Verify, Package, Release, Configure, and Monitor.
Once you adopt this model, integrating new processes, systems, tools, and even business units becomes much easier. Continuous integration and development lets you stay truly agile in a dynamic market. Get started on this process right now. Otherwise, you’ll just keep writing code and that legacy challenge will only get worse. When your own DevOps strategy becomes a reality, you create an engine around innovation that’ll help you stay competitive and better support your customers.