In our earlier blog, we talked about the readiness of the enterprise for DevOps. In this blog, we will discuss on how to scale DevOps if you have already adopted it, challenges and solutions to scaling DevOps?
As a technology leader, you can use multiple tools and plans for management of data, cloud, budget, training, outsourcing, legacy systems, security, innovation. The list continues. So, why is DevOps important and how is it suitable?
DevOps aims to embrace the idea of developers and operations departments working together to produce better products. Working to scale DevOps may seem daunting, but these five steps can help you immediately build a successful DevOps culture. You will be using any number of accepted tools to achieve these goals from open source tools such as Puppet and Jenkins to public clouds such as Amazon’s AWS or Openstack hosted on Rackspace. At a startup or a small company, DevOps is defined by automation and single team success – developers own operations and the company can deliver software continuously.
Below Are a Few Common Challenges and their Solutions While Scaling DevOps:
Challenge – DevOps and Production Control
How does pushing a developer to production multiple times a day fare with strict production control requirements present in regulated industries? At large companies, production control and change management can take days or even weeks.
Solution – Automate production control
Work with your change management team to create an auditable automated system to track production changes. Educate your change management professionals about continuous delivery and the benefits of increasing the frequency of software development. As long as production changes can be reviewed and traced back to specific individuals, change management and production control should not object to speeding up production. Most production control teams know that the last thing they want to do is create an obstacle to speeding up execution.
Challenge – ‘Ownership’ of Operations?
In organizations, often we see that some teams take a very aggressive approach and own release management, performance testing, and production support while other teams are unwilling to do anything more than commit code to a source code repository. In these situations, who ‘owns’ operations at scale?
Solution – Establish common expectations for DevOps
In a small set-up like a start-up, DevOps covers all of the operations because you are working on a small system with a handful of developers. In a larger organization though, you will need to draw clear boundaries for responsibilities for infrastructure to avoid disagreements over project ownerships. If you ask teams across your enterprise to adopt DevOps practices without providing adequate resources, many of your teams may decide to resist the change. DevOps is philosophical. Always keep in mind that these team members need to feel enabled before they can skill up and innovate. Create an environment where people are comfortable trying new things and making mistakes.
Challenge – DevOps Decentralization and Variation
DevOps needs to be decentralized for optimum utilization. In a large set-up, while some variation might be healthy, too much variation can create challenges if different groups use incompatible technologies?
Solution – Standardize common DevOps practices
During initial ramp-up, have the teams adopt different approaches of DevOps to see which approach works and which does not for your organization. This strategy works best when teams involved in DevOps practice is small. Once you start scaling DevOps, you will want to establish a centralized practice with established ground rules for all teams. The central group could be established for this which is responsible for ensuring compliance and helping teams guide towards commonly accepted toolsets.
Challenge – Central Budgeting vs Self-service Deployments
Developers are no longer willing to wait for the operations team to provide hardware, they want to access self-service APIs to provide cloud instances, and they require the ability to provide systems dynamically. How does this work when the budget is fixed and only updated once a year?
Solution – Build in Space for DevOps and Model Cloud Infrastructure Costs
In a small company, public cloud charges are often classified as OpEx. In a large company, you have to allocate budgets during your quarterly / annual budgeting. If you own servers (which many large organizations still do), you have further limitations with respect to their usage and availability for additional requirements. When you practice DevOps at scale, it is essential to build a sufficient capacity to create & destroy environments for automated testing and dynamic scaling. You need to stand up and forecast environment demand and plan accordingly.
Challenge – Is It Even Possible to Practice DevOps at Scale?
If you are advocating for DevOps in a large enterprise, you will often come across people who will tell you that DevOps is impractical at scale. That is partially because more people are involved in meetings, project plans, unexpected delays, hierarchies and more.
Solution – Ignore the noise.
A few common sources of pushback for DevOps at scale is professionals viewing change in negative limelight or simply as ‘additional’ work. Most ops professionals understand the benefits of DevOps and value their interaction with developers, but a few see DevOps as a threat to operations.
DevOps is a Journey:
If you try to start by creating a long list of deployments, your team will feel overwhelmed. Expand DevOps step by step. Give your team the space needed to truly innovate and learn from their mistakes. Get feedback after deployment and fix bugs as quickly as possible and always focus on delivery. Follow the steps below and you will make the team operate in an organization that knows DevOps.
Contact us if you are ready to do more with DevOps. Get the strategies and tactics you need by interacting with our DevOps experts today.