DevOps: Roll out new software and functionality quicker with high velocity DevOps As software becomes more central, companies are looking for ways to shorten software development cycles and push new functionality to end users quicker. The solution is a strong DevOps strategy, and a cloud infrastructure to support it. WHY YOU SHOULD READ THIS: Discover how to use DevOps and the cloud to develop and introduce new software and functionality quicker Be advised of the steps to take for success Understand why the cloud is ideal for your DevOps strategy Learn how TelecityGroup s Cloud-IX can provide a secure and reliable connection between you and your cloud service provider
THE BUSINESS OPPORTUNITY DEFINING DEVOPS Is your company eager to make its software more responsive? Do internal users or external customers want software with more features? As software becomes a more central part of any business, companies are looking for ways to shorten software development cycles and push new functionality to end users quickly. Written by Aditya Ayyagari, TelecityGroup David Gildeh, Dataloop.IO Agile software development is a long-standing solution to the problem of rigid, cumbersome and slow software development processes. It enables end users to feedback quickly and regularly on new product development as it happens, ensuring that they end up with the software that they need to solve their particular problems. Companies must do this while keeping their software secure and reliable, which means that they cannot sacrifice thorough software testing. DevOps is a rapidly growing movement designed to streamline software development while retaining reliability. More than just a set of tools or a methodology, it is a development strategy that can revolutionise software development and make online software more relevant and engaging for end users. DevOps brings together the two most important players in delivering and running software: developers and operations professionals. Historically, these two parties have had different goals: developers want to push out new features. Operations staff focus on reliability and availability, both of which can be threatened when developers make changes to software. These two groups traditionally operated in silos, with neither knowing much about the other s processes. DevOps uses several techniques to integrate the two, but they all revolve around a common theme: automation. Automated testing Software testing tools can be scripted to create automated testing procedures that draw code from commonly-used repositories. They can automatically run tests to ensure that code works properly from deployment to production. Automated deployment Any software development process uses three stages for deployment: development, testing and production. Typically, these each have their own environments. DevOps professionals will script the workflow between the stages, ensuring that software is not pushed out before it is thoroughly tested and signed off. Automated configuration management Automated configuration management pushes standard configurations for virtualised hardware throughout the development, testing and operations environments. This ensures that when software moves from testing to production, it works as expected. Monitoring Automated monitoring is at the heart of any DevOps strategy, gluing the two contrasting operations together. Monitoring software can help to identify any problems that emerge in code performance during production, helping operations and development staff to understand what must be done to fix it. Customer feedback Automatically gathering usage data for software and feeding it back to developers can help inform and prioritise future announcements. It minimises the requirements gathering effort still further for a development team which will already be in frequent communication with the operations staff, ensuring that the development process stays on track.
DEVOPS IN BRIEF Opportunities Shorter software development cycles mean more frequent software updates. Automation minimises human error, increasing reliability. Agile development processes create more responsive development teams and more relevant software. Challenges Adapting existing code bases can be expensive. Cultural resistance to change is common. Developing on-premise systems to manage DevOps can be daunting. STEPS TO SUCCESS The road to competent DevOps requires both technical and cultural changes. When changing the fundamentals of how a team operates, the planning and engagement stage is crucial if the project is to realise its full potential later. Because DevOps may be threatening to some staff, metrics showing a solid return on investment are important. 1. Get senior management buy-in The DevOps way of life will be radically different for many developers and operations staff. It is a culture of experimentation, which supports and learns from failures and mistakes. Playing the blame game won t work if an errant script causes a system to go down for half an hour. To change the operating culture, it s therefore essential to get senior management buy-in. 2. Audit existing software What does your existing software infrastructure look like? The chances are that it is monolithic, with large blocks of code handling many different functions. Code in a DevOps environment works better when it is modular and component-based, so that it can be easily updated in small pieces. Understand where your code resides, what business processes it supports and how it is written. 3. Pick low hanging fruit code for your DevOps project Don t boil the ocean. Find code with a high potential for return and a relatively low risk. This may be legacy code that can be decoupled from a larger code base, or it may be a new project that can form the basis for a DevOps trial. 4. Install tools and brief staff Install tools to handle the automation side of your DevOps strategy. Many of these are available either as open-source tools, or as proprietary tools that support open-source standards. Many developers have a preference for open source, and it will minimise your risk of vendor lock-in. Be sure to embrace the benefits of a cloud-based DevOps infrastructure, which will bring benefits such as flexible provisioning for the development team. Tools required for DevOps include: Configuration management and code versioning Code deployment Application and performance monitoring Log monitoring Service monitoring. 5. Monitor metrics Use automated monitoring to gather useful information about both operational parameters and performance, and customer usage. Experiment with reporting tools that can help you to keep both operational staff and developers abreast of these metrics. 6. Build a use case for further adoption Companies that execute these steps effectively will find themselves well-equipped to show senior management how DevOps has enhanced software usability and shortened the development lifecycle. This will provide a solid use case for further adoption across a broader code base. CHALLENGES DevOps is a strategy, rather than a simple product purchase. Ensure that you have a grasp on the cultural and technical nuances of your organization before attempting to change its DNA. Here are some of the challenges that you may encounter along the way. Process inertia For years, software development has followed a typical pattern known as the waterfall method, in which developers talk to users very early on in the process, building lists of requirements. They then spend months in isolation, developing a product that may not match ever-changing user expectations. This method is often inefficient, however changing these processes may require retraining. Blame -based cultures Another level of inertia may be cultural. Managers who are used to making someone accountable for system failures must get used to supporting failure and encouraging new ideas. DevOps is supposed to support fluid, entrepreneurial experiments with software features, using the protection of an automated environment to minimize disruption. ACCELERATING DIGITAL : USING HYBRID CLOUD RESOURCES TO DELIVER BUSINESS OUTCOMES Watch this TelecityGroup Webinar featuring Gartner for advice on how to get the most from your hybrid cloud solution. WATCH WEBINAR 2015 Gartner, Inc. and/or its affiliates. All rights reserved.
Monolithic software DevOps works best with a code base that is broken up into smaller components, each supporting a different software service. This makes it easier to change small amounts of code without affecting the rest of an application. Many code bases are monolithic, with one huge set of source code supporting all the services within an application. This means that over time, the software will need to be re-architected. Expertise Designing, implementing and supporting a DevOps strategy is a complex and demanding task. Experts come at a high premium, and this may be a hidden cost for companies that don t expect it. HOW THE CLOUD CAN HELP DevOps was born in the cloud DevOps became a buzzword because mature companies offering cloud-based software and services created it. Some companies push out roughly 20,000 software updates each day across its various properties. That would not be possible without a DevOps strategy and a cloud-based infrastructure to support it. Virtualised environments Public cloud infrastructures offer far better economies of scale than any in-house solution could provide for companies implementing a DevOps strategy. The ability to create as many virtualised machines as required instantly and manage them automatically is something that cloud-based service providers have perfected. USING CLOUD-IX FOR DEVOPS Cloud-IX from TelecityGroup can be a valuable resource when you take your DevOps initiative to the cloud. It is a secure, high-performance route to a choice of public cloud service providers, enabling customers with a TelecityGroup data centre presence to choose between multiple service partners as they hone their DevOps process. Cloud-IX can help DevOps professionals in several ways: Redundancy As your requirement for fast and fluid product refreshes grows, you can spread your DevOps operation across multiple cloud partners, so that if one suffers an outage, developers can keep responding to customer needs. Flexibility Business cycles will often dictate software refresh requirements. Companies may need to innovate frequently with software as pressure increases from their competitors. With Cloud-IX, development teams can provision as many infrastructure resources as they need to get the job done. Frictionless access Developers can set up application infrastructures to support a DevOps strategy easily using Cloud-IX s innovative self-service portal and a range of different cloud service partners. Whether developers need Amazon AWS or Microsoft Azure as the basis for their automated DevOps toolset, Cloud-IX can provide. Self-provisioning Cloud service providers enable developers to provision their own virtualised resources without the burden of hardware requisition and internal bureaucracies. This empowers them to move quicker, pushing out software updates more frequently and shortening the product cycle. API-based architectures Cloud services frequently use application programming interfaces (API). These enable developers to quickly script the necessary services that underpin an automated testing and deployment environment. Toolsets and enablers DevOps and the cloud go together naturally. Tools for tasks such as configuration and deployment were born there, and still operate there in a range of free and paid services. This is a culture that developers are used to, and it also minimizes or fully eliminates the need to license, install, customise and upgrade software in-house. ASSESS YOUR CLOUD STRATEGY Is your cloud strategy on the right path for digital transformation? ASSESS YOUR CLOUD STRATEGY CONTACT AN EXPERT Request a free cloud strategy consultation with our cloud experts. CONTACT AN EXPERT
Outstanding data centres Expertise you can trust. A leading European data centre provider. www.telecitygroup.com Contact us: E-mail: cloud-ixenquiries@telecity.com Phone: +44(0)203 229 1170