I recently did an interview with JAX Magazine on DevOps and here is the transcript of the interview.
Some people call DevOps a cultural movement, others consider it a magic bullet. In your view, what is the essence of DevOps?
DevOps is used to increase the efficiency of a business. It is a catalyst for collaboration between the roles of technology developers and IT operations to improve the agility of both IT and development. It is no magic bullet. The same problems such as poor communication, mismatched expectations, lack of cohesiveness and teamwork, and lack of vision that exist in a traditional development and operations setting will be carried over to a DevOps situation.
What are the latest trends in DevOps? Could you describe one important trend that you are particularly interested in?
As with most technology trends, DevOps is relying more heavily on cloud-based solutions. These solutions will shy away from the more simplistic Platform-as-a-Service (PaaS) approach and compartmentalize workflows into distinct containers. The container approach uses the same concept that DevOps employs. Using separate specialized containers that collaborate with each other that can change rapidly for a faster, efficient, and cost-effective solution. At the same time, there is a need to more flexible management on an enterprise scale so these solutions are being integrated with cloud management suites for ease of provisioning, monitoring, auditing, and management.
DevOps is more than a technology trend — some people claim that it is transforming the modern IT landscape. As more and more organizations decide to adopt DevOps, they need guidance and the right tools. In your view, what are the most suitable tools that should be part of a ready-to-use “DevOps kit”?
DevOps needs an infrastructure that can support rapid development and deployment. I would say the essential toolkit includes a code repository, a project management tool, a change management application, and a ticketing system. Every person in the DevOps team needs to be on the same page. The project management tool helps with this. The code repository helps with code versioning and release management. This way everyone can work on the most recent branch of code submitted. An automated testing environment is also helpful with speeding up development and getting products to market faster. Next, the change management application allows for a controlled implementation of changes and ensures that adequate review of changes has been accomplished. Lastly, a ticketing system tracks end user issues and their resolution. When these items relate back to application issues, new releases can solve the underlying issues.
What is the role of cloud in a DevOps context? What benefits does it bring?
The cloud can be used for both collaboration for the development/operations team and the deployment to the customer. This can be used for rapid deployment of each new iteration. With a cloud, the support can be done anywhere, anytime, which makes it much more efficient than provisioning individual systems. The cloud can also be used to quickly set up test or QA environments and allows for rapid deployment of products or rapid growth.
If containers are revolutionizing IT infrastructure and DevOps is transforming the modern IT landscape, would you say that they go well together?
DevOps can use containers in many of its solutions. Containers can be thought of as single units that collaborate to make a final product. This way the DevOps job of supporting the containers can be singled out to an exact container with each container fulfilling a certain function. In this way, it is much easier to discern which container needs maintenance. This improves efficiency, which is one of the primary goals of DevOps
What are the anti-patterns of DevOps?
Anti-patters remove undesirable assumptions and artifacts from the DevOps culture and belief system. DevOps does not combine the roles of a Developer and Operations into a single job. It instead aims to strive for better collaboration between two roles within the same collaborative team. When developers start doing the job of system administrators or vice versa, anti-patterns bring corrective structure to the team. This ensures that both developers and administrators have the same goal instead of being in opposition to each other while still performing distinct tasks within the team.
Do you have a tip on how we can eliminate obstacles to DevOps adoption?
The first step to DevOps adoption is to get developers to start using an agile development approach rather than a traditional approach. This is essentially a prerequisite for DevOps and many companies have already taken this step. Next, comes coordination and integration of the teams. There needs to be the establishment of new norms, goals, and expectations. Some groups may need to undertake team-building exercises to better work together and there may be some cultural changes as well as development and operations teams may have developed their own unique cultures.