Like most things in IT, DevOps isn’t new. The concept has been around for some time and while it has been an important organizational piece of many software development shops, it hasn’t necessarily been at the forefront of things. However, as of late, there’s been renewed interest and emphasis in DevOps. Why is that? It may have something to do with it being one of the best approaches to create applications, test environments and meet the constant need for more and better applications.
Everyone knows that communication and collaboration are important features of everyday life. Without them we wouldn’t get much done. The same can be said of the development process. This is especially true when it comes to things like DevOps.
The medley of development and operations highlights the interdependence of Development and Information Technology. this includes a mixture of cloud, open source and business. In other words, it’s about taking an application through the development and testing process with developers and IT working together to see the application reach the market as quickly as possible.
At the same time, certain factors must be considered and accounted for when endeavoring to meet the end goal. Automation, integration and measurement are just some of the areas included in the overall DevOps process. In addition, DevOps goes deeper into the underlying process that will produce rapid software applications. It’s also about improving operational process as they can make a big difference in speed, agility, maintainability, etc. There’s also some upkeep to think about, in terms of fixes and possible failure rates. Of course, lower failure rates and faster time to recovery are the goals.
As previously stated, much of the use of DevOps stems from demand for continuous delivery of more and better applications. In all honesty, this is probably only increase as time goes by given how technology keeps improving. Also stated previously is the fact that combining IT and Development allows for such a feat to be addressed in one form or another. Still, it doesn’t always allow for consistency or reliability.
Another factor is the use of Agile and other development processes. Agile and DevOps are affiliated through shared goals. Much of Agile revolves around applications formed through collaboration, flexible and adaptive planning, continuous improvement and quick response to change. Added to the mix is an emphasis on cross-functional teams.
Still another factor is increased use of data center automation and configuration management tools. Obviously automation is a big part of DevOps since it allows for manual and/or repetitive tasks to be run automatically. This frees up developers and IT and aids in the facilitation of faster time to market. The use of data center automation means that IT doesn’t have to worry as much about direct access to the data center. Moreover, their tasks can be automated, thus allowing them to aid in paving the way for fast application development and release.
As is usually the case, implementation and adoption of DevOps will vary depending on the company and the situation.
That being said, there are some practices that will make adoption that much easier:
Review and gain a thorough understanding of our organization's priorities, strategies and/or metrics as well as business processes.
Having knowledge of priorities, strategies, etc means that you will have a better idea of what direction fits with company objectives.
Assess current resources
Taking inventory of resources allows you to see what kind of resources you have available as well as determining if they will mesh with a DevOps strategy. At the same time you can also determine if additional resources should/need to be obtained.
Streamline processes so that communication can travel across development, QA, operations, etc.
Enabling input from all departments before implementation allows for the communication and collaboration factor at the center of DevOps.
Build a roadmap.
Clearly defining how implementation of DevOps will take place gives you an executable plan.
Understandably, DevOps also carries with it some challenges. In specific, there are challenges that come with changing times, changes in technology, etc. Some of these challenges include:
Pressure from the “there’s an app for that” mentality. Basically there’s the unrealistic view that everything can be solved with an app that is is either already in existence or will come into existence in the near future.
Every year brings new/improved development tools. As such these tools need to work within operational capability. However, such tools won’t always work within application ecosystems. Moreover, one has to think about legacy applications as well. Those won’t always work with new/improved tools either. The challenge lies in making everything work together to meet business needs.
Budget can determine a lot of factors. And with budget limitations becoming even more prevalent, solutions need to be reached which meet both business and consumer needs. Keep in mind that expenses can’t necessarily be broken down by department anymore and as such, should be overseen by a team.
Pretty self-explanatory right? Maybe it even seems like a common sense thing. For the most part IT and Development have been thought of as two separate departments, But by combining the two you increase a number of important factors that lead to the end goal for everyone; getting applications out to consumers as quickly as possible. Not only do you gain things like speed and efficiency you also gain input from different people which will aid in the overall process. That being said, it does take some work, but in the long run it will definitely make a difference.
Still on the fence about DevOps? Consider the fact that there are conferences all over the world related to the topic and its adoption.