In an environment where the development teams get along with the operations teams, organizations are finding it easier to deliver software faster, with better quality. What’s their secret? DevOps.
“With DevOps, you get agility, you get speed, you have the ability to deploy applications very quickly, which means that you can release new features and new applications, and bring them to market very quickly to give you a competitive advantage,” said Aruna Ravichandran, vice president of product and solutions marketing, APM and DevOps at CA Technologies.
Businesses are no longer alone in the world in selling a specific set of software, and there is a lot of competition out there trying to be the first to market. DevOps is an emerging methodology organizations are adopting to stay in the race, according to Andreas Grabner, technology strategist at Dynatrace.
“Smaller companies that have the agile culture ingrained…are much more flexible in getting new cool features out to the end consumer a lot faster, and that is a threat to larger organizations because they eventually lose business to smaller startups,” he said. “If you do DevOps right, larger organizations can catch up to the competition that might be a lot faster than you, delivering the features that are demanded by the end users.”
But while the promised benefits of DevOps are alluring, there is a caveat: There is not a clear-cut definition of what DevOps is or how an organization can implement it successfully. Any organization looking to transition to DevOps should be aware that it has a long road ahead. But it can be worth the bumps and bruises in the end, according to Julian Fish, director of products at Serena Software.
“DevOps can be very, very difficult for people who have an unstructured mindset of how they are going to use it to try to change the business for the better,” he said. “But for an organization who thinks it through and understands what DevOps can provide, then there is certainly a lot of value to be had from both the term DevOps and the implementation of processes, practices and producers that support DevOps.”
Breaking down the silos
Unlike other methodologies that are adopted to help speed up the software development life cycle, such as agile and Continuous Delivery, DevOps is a cultural change. And one of the most important changes that has to be made in DevOps can also be the most challenging because you are melding teams that traditionally haven’t gotten along in the past, according to Sacha Labourey, CEO and founder of CloudBees.
“The goal in their DNA is very different,” he said. “A developer is here to bring change. They want to implement the new frameworks that just got released, and essentially by forcing this change they are also bringing in risks because those aren’t necessarily the most mature pieces of technologies. An IT guy’s job is really to make sure the house never goes down. They don’t want to be woken up at 2 a.m. because something went wrong.”
In order for these teams to work well together, they can’t be on opposite sides of the fence, according to CA’s Ravichandran.
“I would say one of the most fundamental things of DevOps is to have common goals,” she said.
The classic wall between developers and operations is that developers want to build code and deliver new features quickly, while operations are not worried about features; they are worried about how resilient they can be, according to Ravichandran. The No. 1 goal both teams need to strive for in a DevOps role has to come from the top, and it has to be hitting shipping deadlines.
“To be able to survive in the market, you want to have a competitive edge,” she said. “The common goal should be both of them need to be [focused] on time to market to bring that app because it gives you a competitive edge and impacts your top and bottom line.”
But providing a set of common goals to teams isn’t enough to get them to work together. Often people are resistant to change, and organizations need to be prepared for that, according to Dynatrace’s Grabner.
“Change is never easy, and if people used to work in an organization for years or maybe even decades and they now need to change, that might be an issue on the personal side for them,” he said.
The way organizations can overcome this is simply by finding out what works in their organization by having open discussions and picking tools and strategies that work for everyone, according to Yegor Yarko, technical product analyst for TeamCity at JetBrains.
“People often don’t want to alter their practices, and they like to stick with what they are used to,” he said. “That’s why our IT department asks teams directly which tools they prefer to use, and they satisfy those teams’ requests. It’s crucial for a company to have a culture which is open to dialogue and sharing expertise when we are striving towards DevOps.”
You don’t want to force people to change if they are unwilling, according to CloudBees’ Labourey. Organizations should start out by transitioning some teams that are willing to change.
“Find teams that are open to change and a relatively easy project,” he said. “Show the added value with simplicity and with positivity. From there, you can start extrapolating. If you try to go and solve all your problems at once, then you are likely going to fail.”
Once teams can see that they are doing something that has an impact on the business, people may be more prepared to change. But they have to understand why they are changing and what the benefits are, according to Serena’s Fish.
“Education is one of the first pillars,” he said. “It isn’t about culture change of jobs; it is about culture change of thinking. It is not the case of someone who was in operations [not being] required anymore. It is more about cross-skilling that person in operations to understanding the app, the database, the server and infrastructure that everything is sitting on, and vice versa,” he said.
Changing the culture of an organization and of the development life cycle can feel like too much of a burden. But Grabner said that the benefits are worth the headache.
“If you bring them all in the same team from the beginning, they can avoid a lot of problems right from the start,” he said. “Or you can have the right conversations right from the start instead of waiting until development develops something, and then it gets thrown over the wall and then hell breaks loose.”
In the end, organizations should have one cross-functional team working toward the same goal. The operations team will have to learn more about the development process, while developers will have to learn to be more familiar with the operations process. But this change is mutually beneficial to the team and the entire organization, according to JetBrains’ Yarko.
“DevOps relieves the developers from routine tasks and takes the burden of due [dates], painless and fast product delivery,” he said. “The best of the teams are open to get the best from the two worlds: sharing their expertise and learning from the new practices.”
Prerequisites of DevOps
Before an organization even ventures out on the long, bumpy road toward DevOps, it has to ask itself what DevOps means to it. There is still a lot of confusion in the industry on what DevOps actually is, according to Serena’s Fish.
In order for organizations to successfully transition their teams to this new way of working, they need to understand why they are doing it in the first place. It isn’t going to work if they just jump on the bandwagon, according to Mark Levy, product marketing manager at Serena Software.
“You need to understand what is the primary goal of the business and ensure those goals are measureable and support the business,” he said.
Being able to understand what you are working toward will help organizations understand if they are on the path of success or failure, Levy continued.
In addition, business goals are really what will drive DevOps adoption, because in the end the business is all about IT, according to CloudBees’ Labourey, “We need to stop thinking about IT as some kind of remote team within the organization responsible for implementing whatever the business desires.”
“What we are seeing today is that IT is business, business is IT. A lot of the innovation and differentiation that exists within products today comes from software, which comes from IT.”
Lastly, before moving toward DevOps, organizations need to grasp the notion that it is going to take time. Even if the IT department is on board and wants to make the move, it isn’t going to happen in a snap, nor should it happen all at once, according to Labourey.
“It is really something that needs to happen through small proof-of-concept initially because every company is going to be different,” he said. “You have to build your own practice, your own religion, and that is going to take time.”
Proven practices for a DevOps implementation
Keeping it simple: Don’t try to transform the entire organization, according to Serena’s Levy. Instead, start with a pilot program. “If the DevOps principles are not natural to your team—such as creating a culture, automating and measuring all things—then you need a place to practice,” he said. “Pilot programs allow you to start small and it is less expensive, but it represents real work.”
According to CA’s Ravichandran, organizations have actually built “centers of excellence” to foster one common business imperative, and to use that to fine-tune how they are going to make this culture transformation at a larger level in the company.
Understanding that failure is a part of the process: Organizations should not go into DevOps thinking that they will see results right away, because that is not going to happen, according to CloudBees’ Labourey. “You don’t need to build a castle to define whether an idea is a good one or a bad one,” he said. “You are going to do maybe daily, weekly reviews to see how things are going and whether things need to be adapted.”
Getting management on board: “You need to get management as well to make sure that the tools you need are going to be available, that the training you need is going to be available,” Labourey said. “It is going to be a pretty drastic change for many teams in the way they do things, so you can’t expect just to snap and see things happen. It has to be a top-down initiative to improve the flow within IT.”
Getting help from the outside: Having someone from the outside looking in can help stop an organization from making a mistake, or it can bring in a different perspective that an organization might have missed. “Have change agents that can make sure you are not going to fall back into the good ol’ ways of doing things, but you are pushing change,” Labourey said.
Remembering that there is not one DevOps tool: “Everyone can claim a point of view and say [theirs] is a DevOps tool, but it is probably only solving one particular pain point and problem for customers,” said Ravichandran. “So when choosing a tool, look at what the tool solves and if it can work in your current ecosystem.”
It is important that tools interoperate with third-party and open-source tools because customers aren’t going to buy all their DevOps tools from one vendor, she continued.
Labeling tools as “DevOps tools” is a big problem in the industry that buyers should be aware of, according to Dynatrace’s Grabner.
“I want to point fingers at our own industry,” he said. “As much as I love that we have something like DevOps as a term, I think it has been misused…because people think just by adding DevOps on every single blog post or paper, it makes them look credible.
“I think DevOps is great, but the initial idea had nothing to do with tooling. DevOps was really the culture change about automating the process of software engineering and also sharing results.”
Planning ahead: “Have a good plan and procedure for the case when things go wrong, implement good error recovery and reporting, regularly check the scenarios in near-live circumstances,” suggested JetBrains’ Yarko.
Ravichandran added that teams should always make sure they have a previous version they can roll back to in case there is an outage or a complication.
Communicating: “Communication has to be simple and streamlined. No administrative or bureaucratic barriers,” said Yarko. “Less long meetings, more openness to asking questions and solving problems on the spot. We believe that solving problems quickly and early is key to making the transition smoother.”
Not replacing your teams: According to Serena’s Fish, some organizations go down the route of hiring an entire DevOps team, intending to have it replace existing teams. But all that does is create another silo within the organization. “It is an interesting approach, but unfortunately it just leads to the same levels of heartache that organizations have been trying to move away from—the whole notion of isolation and silos that we want to break down,” he said. “So certainly don’t put a team in place to purely perform DevOps. It just creates another silo.”
Not being afraid of the term “DevOps”: According to Serena’s Levy, people were afraid that agile was going to ruin the entire software engineering industry, but it didn’t. So they shouldn’t be afraid that DevOps is going to be the same thing. It is all about creating cross-functional teams and delivering better software; DevOps is just a term, he explained.
“DevOps in some ways is not a totally new way of thinking; it just uses a lot of stuff that has been around in other industries,” he said. “If you get heartburn with ‘DevOps,’ then don’t use the word. Call it anything you like. The point is being able to remove the constraint of IT out so the businesses can move as fast as possible.”
Automating as much as possible: Automate everything that can be automated, because anything you can’t automate is manual, and manual means it is going to take a longer time, according to Dynatrace’s Grabner.
“Manual means that it is also prone to error because if somebody needs to perform something manually, humans make mistakes,” he said. “Also, if the person who is performing the manual tasks is sick and somebody else needs to do it, then that person isn’t going to have the same experience and make mistakes. Therefore, tools need to have a very big focus on automation.”
What does DevOps mean for your company
DevOps can be confusing for companies because there is still no set definition on what the methodology actually means. SD Times caught up with some experts to describe what DevOps means to their company and how they try to explain it to customers.
CA’s Ravichandran: Our definition of DevOps is being able to enable customers by providing a tool set that helps them automate the entire software delivery life cycle while enabling customers to have a continuous feedback mechanism, which goes bi-directionally between the Dev and the Ops side. If you think about DevOps, people have multiple different definitions, and DevOps in my mind is more of a phenomenon; it is more of a culture transformation, which includes people, processes and technology.
CloudBees’ Labourey: Everyone is going to tell you it is hard to define, it is not a specific or solid. It is almost more of a philosophy then a set of tools. Tools are important, but really DevOps is going to be anything that helps accelerate the delivery flow from development to testing, staging and production. Anything that can help make that happen is going to be covered by DevOps, and obviously it is going to have some very specific aspects to it in terms of tooling, in terms of methodologies, in terms of collaboration among teams of different DNA, and all of that is covered under the DevOps umbrella.
Dynatrace’s Grabner: For me, DevOps is actually a way to scale what works well as a small shop in a big enterprise. When I always do in my presentations around DevOps, I have one slide where it says DevOps is basically what we used to do when we were a small startup and we were all developers, testers and operations in a single person. That is kind of how I see DevOps: being able to scale what works well in a small organization to a large enterprise, to a bigger engineering team to multiple engineering teams, to teams that work across the continent, to teams that work across the globe.
The right message is that DevOps is necessary, but DevOps includes a lot of things, and the major things are culture change, being able to automate everything, being able to measure the quality and the progress of your software delivery, being able to share data, and then you have tools that support that.
JetBrains Yarko: We define DevOps as a collaboration between software development and IT operations with a purpose of improving and streamlining the development in our organization by introducing a concept of fearless deployment. This leads to faster deployments, which are ensured by a close-to-zero risk to break things in production because every new deployment can be run in preview mode to ensure the app is running well.
Such collaboration depends largely on open communication and fast problem-solving culture in the company.
Serena Software’s Levy: The way we look at it is it’s a movement. It is not a product. It is not a technology. It encompasses a lot of things. It is about breaking the silos down, ensuring that you sort of have this horizontal team whose mission is to support the business, to drive business value, but by taking the constraint of IT out of the business. I think that is the key. That is at a high level.
Now, how you go about doing it, there are a number of different things that you need to do, starting with the process and understanding your current system and your current process and leveraging lean techniques to remove waste, get a repeatable, reliable process, automate and more, along the same lines of the principles of Continuous Delivery.
A guide to DevOps offerings
Atlassian: Bamboo offers first-class support for the “delivery” aspect of Continuous Delivery, tying automated builds, tests and releases together in a single workflow. It gives developers, testers, build engineers and systems administrators a common space to work and share information while keeping sensitive operations like production deploys locked down. Bamboo puts branches under test automatically (as well as merges), and deploys them according to your team’s processes. It also boasts the best JIRA and Stash integration.
CA Technologies: CA Service Virtualization is a solution to help address DevOps challenges. It helps eliminate constraints by modeling and simulating the behavior and performance characteristics of dependent systems and services. Organizations can move development and test tasks earlier in the life cycle; reduce time-to-market; lower infrastructure costs; and improve overall application quality. Customers have experienced as much as a 25% to 50% reduction in cycle times, as well as reduced lab infrastructure within three months of adoption.
Chef: Chef Enterprise delivers a shared repository of code for automating applications and resources. The solution provides a way for development and operations teams to collaborate and move at the speed of the market. It includes role-based access control, centralized reporting, activity monitoring, an enhanced management console, and multi-tenancy.
CloudBees: CloudBees provides Continuous Delivery solutions powered by Jenkins that allow DevOps teams to manage and control software delivery processes. Along with commercial support for Jenkins, CloudBees Jenkins Enterprise provides a suite of enterprise-level plug-ins that address more-complex requirements found in enterprise environments. With CloudBees Jenkins Enterprise, teams are able to deliver software faster while reducing risk. CloudBees Jenkins Operations Center provides centralized management of Jenkins instances throughout the enterprise. It provides the ability to share Jenkins resources between teams and view real-time analytics. DEV@cloud is a cloud service solution that offers the benefits of cloud computing while leveraging the power of Jenkins.
Dynatrace: Dynatrace offers a number of products to help DevOps teams build apps faster with more reliability through collaboration. Dynatrace Application Monitoring detects problems in production, traces transactions, pinpoints end-user issues, provides code-level visibility, eliminates false alarms, and is designed for Continuous Delivery processes. Dynatrace User Experience Management provides crash reports and performance and usage analytics in order for teams to gain insights to help reduce software errors and enhance performance.
Electric Cloud: Electric Cloud is a leader in enterprise Continuous Delivery and DevOps automation, helping organizations deliver better software faster by automating and accelerating build, test and deployment processes at scale. Industry leaders like Qualcomm, SpaceX, Cisco, GE, Gap and E-Trade use Electric Cloud’s solutions to boost software productivity. The ElectricFlow DevOps Automation Platform provides end-to-end control and visibility across shared resources and tool chains, allowing teams to release software faster and more predictably.
IBM: Bluemix runs on the SoftLayer infrastructure, and it combines the strength of IBM’s middleware software with other open services and tools from IBM partners and its developer ecosystem to offer DevOps in the cloud: an open, agile development model, scalable from one-person startups to large enterprises. The growing catalog includes more than 100 development tools in categories such as Big Data, Watson analytics, social, mobile, security, and the Internet of Things, and for industries ranging from mobile commerce, academia, advertising, and emerging spaces such as wearables.
JetBrains: TeamCity is a Continuous Integration/build solution designed to help teams perform, save time, and integrate and deploy continuously. It features a number of tools for Continuous Integration, configuration, build history, code quality tracking, VCS interoperability, extensibility and customization, system maintenance, and user management. In addition, TeamCity integrates with all major version-control systems, issue trackers, IDEs, development frameworks, and cloud services
LeanKit: LeanKit provides a shared tool that’s designed to allow development and operations to work collaboratively on a shared process. With LeanKit, teams can map their processes on virtual whiteboards to gain a complete and transparent look into statuses, issues and updates. The highly visual nature of LeanKit helps maximize effectiveness and keeps extended teams on the same page.
New Relic: New Relic is a software analytics company that makes sense of billions of data points of millions of applications in real time. Its comprehensive SaaS-based solution provides one powerful interface for Web and native mobile applications, and it consolidates the performance-monitoring data for any chosen technology in your environment. It offers code-level visibility for applications in production that cross six languages (Java, .NET, Ruby, Python, PHP and Node.js), and more 60 frameworks are supported.
Puppet Labs: Puppet Enterprise is IT automation software that gives the power to easily automate repetitive tasks, quickly deploy critical applications, and proactively manage infrastructure, on-premises or in the cloud. It automates tasks at all stages of the IT infrastructure life cycle, including discovery, provisioning, OS and app configuration management, orchestration, and reporting. It includes event inspection, supported modules, role-based access control, certification management, and cloud provisioning.
Serena Software: Serena Deployment Automation bridges the DevOps gap by simplifying and automating deployments and supporting Continuous Delivery. With Deployment Automation, teams can deliver efficient, reliable and high-quality software faster while reducing cycle times and providing feedback. Features include the ability to manage test and production environments, deployment pipeline automation, tool-chain integration, inventory tracking, the ability to create and visualize end-to-end deployment process, and a reliable and repeatable process.