Welcome!

Machine Learning Authors: Pat Romanski, Yeshim Deniz, Liz McMillan, Elizabeth White, Zakia Bouachraoui

Related Topics: @DevOpsSummit, Linux Containers, Containers Expo Blog

@DevOpsSummit: Blog Feed Post

The ‘What’ and ‘Why’ Behind Continuous Delivery | @DevOpsSummit #CD #Agile #DevOps

Users’ needs have evolved – they expect more releases and features which waterfall just isn’t able to deliver

The ‘What’ and ‘Why’ Behind Continuous Delivery
By Ron Gidron

In the digital age, speed is everything and no-one wants to be left behind. Being slow to react is the first and, most likely, final nail in the coffin for a 21st century company. The rigidity of the traditional ‘waterfall' development approach was overhauled by the ‘agile' philosophy. And with agility things have changed; its brought into reality the idea of continuous delivery.

Move with the Times or Get Left Behind
But what is continuous delivery? Simply put, it's the ability to push any kind of change, be it new functionality, code updates, bug squashes or the like, into production environments quickly and safely. Not only this, but each release must be stable and sustainable. Continuous delivery eradicates pesky time-consuming processes and freeze periods, as it removes the need for dedicated silos of integration and testing. This is all achieved by creating code which is always in a state fit for deployment. In theory, continuous delivery enables us to release stable code to production at any given time - an approach demanded by the needs of the end user and impossible to achieve through waterfall-styled development.

Those who have adopted continuous delivery are already reaping the rewards. They're seeing how it significantly improves your time-to-market: as your changes can be published almost instantly, you're no longer restricted by a rigid release schedule. You become much faster to react, to iron out bugs and release features. Your customers are more satisfied than before, which is what we ultimately strive for.

Shipping a release has traditionally been momentous, something we want to shout about, and rightly so. Ironing out those bugs or releasing those long sought-after features is no small feat and takes a huge amount of effort from everyone involved. There's nothing worse than shipping, only for new bugs to crop up, or the software to crash. Continuous delivery allows you (in theory) to continually deploy - just not always to customers. Pushing your stable code to UAT environments or staging reduces the risk around the production release. Now, you're no longer deploying once every few months: you can be releasing every single day.

There are often barriers, inefficiencies and hidden costs in the release cycle which, historically, went unnoticed until launch. Continuous delivery highlights all these flaws, making them clear to the business and senior management members, who are in charge of making decisions. Pipelines will be much more transparent: you'll know where and when manual, human input will be required, where bottlenecks will crop up, where automation can be implemented. The pipeline now creates a clear incentive for a dynamic software delivery schedule, replacing a notion of dissatisfaction with costly, long and arduous release windows.

Flexibility is one of the main selling points of the model. Yes, there is an initial outlay in terms of infrastructure, in both software and operational architectures, but once this seed is sown, the benefits are there to be reaped. Features and fixes are now available to be pushed to specific individuals or customer subsets, ensuring the functionality works as expected. Or the features can remain dormant within the product, awaiting a future release which could be sparked by a marketing push for example. In the past, trying to devise such functionality would have been a logistical and costly nightmare. With continuous delivery, it's par for the course.

The rewards speak for themselves. Like I said, continuous delivery is simple - in theory. The difficulties arise in its implementation.

The Pains of Changing
The main challenge you may encounter while trying to implement continuous delivery will probably be organizational. While more and more companies are working toward implementing a DevOps culture - structurally, they may not yet be ready for continuous delivery. You'll still find plenty of firms are split into seemingly countless divisions, each of which ‘owns' a particular product, feature, or codebase. Each division is going to have its own goals, targets and KPIs it must meet. Trying to bring these ‘opposing' factions together can be a logistical nightmare which could prove to be the undoing of your dreams of agility.

Therein lies the problem. For large companies, it can take months, if not years, to move complex applications to continuous delivery. It requires a complete mind-set overhaul to adapt to this new process. New behaviors and practices must be learned, architecture will probably need revisiting as will software development processes. Top-down changes must be implemented in order to promote a culture of collaboration.

In all honesty, continuous delivery can seem a tough sell when presenting the concept to senior management for a number of reasons. Firstly, they have their own day-to-day tasks to see to, which depending on seniority levels, are going to take up much of their time. They may not be as tech-minded as yourself and may not be able to immediately see the benefits of implementation. They also have their own views, priorities and goals, which may vary from yours.

The barriers to employing continuous delivery may seem insurmountable at times but, as we've seen, the benefits of the approach speak for themselves. That's how you'll sell the approach to senior stakeholders.

Automation is the key
Continuous delivery has revolutionized the way we develop and release software, but without automation, arguably it wouldn't be possible at all. Automating the entire pipeline, from code submission, through testing and environmental deployments is crucial to being able to obtain true continuous delivery.

The entire philosophy is built around flexibility, around agility; code changes and releases could be occurring at any time. Without the right automation processes in place, saving manual testing, deployment and releases, we'd be back at square one: the cumbersome waterfall approach. Manually overseeing each of these processes would completely defeat the entire goal of continuous delivery. But, like I said, times really have (a) changed.

Read the original blog entry...

More Stories By Automic Blog

Automic, a leader in business automation, helps enterprises drive competitive advantage by automating their IT factory - from on-premise to the Cloud, Big Data and the Internet of Things.

With offices across North America, Europe and Asia-Pacific, Automic powers over 2,600 customers including Bosch, PSA, BT, Carphone Warehouse, Deutsche Post, Societe Generale, TUI and Swisscom. The company is privately held by EQT. More information can be found at www.automic.com.

CloudEXPO Stories
With more than 30 Kubernetes solutions in the marketplace, it's tempting to think Kubernetes and the vendor ecosystem has solved the problem of operationalizing containers at scale or of automatically managing the elasticity of the underlying infrastructure that these solutions need to be truly scalable. Far from it. There are at least six major pain points that companies experience when they try to deploy and run Kubernetes in their complex environments. In this presentation, the speaker will detail these pain points and explain how cloud can address them.
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructure solutions deliver the adaptive architecture needed to manage this new data reality. Machine learning algorithms can better anticipate data storms and automate resources to support surges, including fully scalable GPU-centric compute for the most data-intensive applications. Hyperconverged systems already in place can be revitalized with vendor-agnostic, PCIe-deployed, disaggregated approach to composable, maximizing the value of previous investments.
When building large, cloud-based applications that operate at a high scale, it's important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. "Fly two mistakes high" is an old adage in the radio control airplane hobby. It means, fly high enough so that if you make a mistake, you can continue flying with room to still make mistakes. In his session at 18th Cloud Expo, Lee Atchison, Principal Cloud Architect and Advocate at New Relic, discussed how this same philosophy can be applied to highly scaled applications, and can dramatically increase your resilience to failure.
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by sharing information within the building and with outside city infrastructure via real time shared cloud capabilities.
As Cybric's Chief Technology Officer, Mike D. Kail is responsible for the strategic vision and technical direction of the platform. Prior to founding Cybric, Mike was Yahoo's CIO and SVP of Infrastructure, where he led the IT and Data Center functions for the company. He has more than 24 years of IT Operations experience with a focus on highly-scalable architectures.