Vous êtes sur la page 1sur 11

WHITE PAPER

Toward a World of Frictionless Change:

Using IT Automation
To Deliver Constantly
Modern Software

Contents
3
4
6
6
8
10
11

Change is the new normal


Future-proofing with abstraction and automation
IT is still too artisanal
Applying abstraction and automation to IT
Becoming more like a software company
Not all automation tools are alike
Constantly modern

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

Is it possible to prepare for events you cant predict? Counterintuitive as


it may sound, the answer is yes. And that should be welcome news for
enterprise IT leaders, who are so often on the receiving end of business
demands and technological developments they can neither foresee nor
control. Change is the only constant in IT these days, and its coming fast and
furious. As much as CIOs might wish they could hit pause just long enough for
their organizations to catch their breath, theres no letup in sight.
And while it may seem that the only reasonable response is to stick to
the most urgent priorities and do a sort of never-ending triage, theres a
better alternative a way to smooth the road and make change relatively
frictionless, including both the changes you can see coming and the ones you
have no inkling of. Thats what this paper is about.

Change is the new normal


Information technology is racing ahead with a Moores law-like inexorability and compounding rate.
Thats put enterprise IT organizations in a vise: told to modernize or transform by adopting the
latest technologies while still keeping a complicated mix of older systems up and running. Even if
youre in the enviable position of starting from scratch and able to cherry-pick the latest and greatest
solutions, you cant stay greenfield forever. Youll sooner or later have legacy investments and
heterogeneity to contend with.
No wonder some commentators have called the CIOs job the toughest in the C-suite. IT organizations cant
abandon the past, and embracing the future is little more than a slogan when we barely know whats going
to happen next year, much less a decade from now. So wouldnt it be more realistic to concentrate on the
immediate challenge of keeping the lights on and incrementally upgrade whenever possible in other words,
to focus on the knowable and near-term and leave tomorrow for another day?
Actually, no. While its impossible to know whats next, it is possible get out of reactive mode and get
ahead of the game. And that doesnt mean simply focusing on practices like DevOps or technologies
like cloud adoption and container stack selection. Those are important advances, and they do move
the ball forward, but like all trends, theyll come and go. What were talking about here is a more
foundational approach that puts you in a better position to take advantage not only of current
developments, but any future innovations.

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

Future-proofing with abstraction and automation


Think of it as a kind of institutional future-proofing. It relies on two principles as old as
information technology itself. The first principle is abstraction, which has been defined as
inventing languages that let us talk more nearly in a problem's own terms and less in terms of
the computer's mechanisms or capabilities.1
That, in many ways, is the story of computing. In the primordial days of the industry, using a
computer meant talking directly to the bare metal. Programmers flipped switches or configured
wires, representing the raw ones and zeroes of machine code. They specified every tiny step the
hardware had to perform, right down to the precise register locations and memory addresses.
It was painstaking, error-prone, highly specialized and impossible to scale as the speed and
sophistication of the machines grew.
Abstraction came to the rescue, freeing programmers from the tedious details so they could
focus on the bigger picture. The first stage of abstraction was assembly language, which
substituted words for numerical machine codes. It was still deep in the functional weeds,
but easier for humans to read and remember. Next came high-level programming languages
like COBOL and Fortran, followed by even higher-level languages like Ruby, Python, Perl and
Visual Basic.
Instead of directly talking to the hardware and describing every elementary computational step,
programmers could specify the higher-order tasks they wanted the computer to accomplish
like rendering an image on screen or indexing a file or creating a list. There was no need to spell
out the thousands or millions of discrete operations that went into performing those functions.

Abstraction came to the rescue, freeing programmers from the tedious


details so they could focus on the bigger picture.

1 UC Berkeley, The Structure and Interpretation of Computer Programs (Course)

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

This layering of more intuitive, purposeful constructs over primitive execution details ladders all
the way up to the user interface. Users communicate with computers in metaphors and actions
so natural we dont have to think about them at all, telling our devices what to do without the
least notion of how theyre doing it. Even as the hardware has gotten orders of magnitude more
complicated, its gotten drastically simpler to operate.

Together, abstraction and automation comprise a breathtakingly powerful


paradigm, a kind of force-multiplier that enables us to do more and more
with less and less effort.
Abstraction not only insulates us from complexity, but variability as well. It gives us a standard,
stable way of interacting with systems independent of their evolving implementations. Programs
written in high-level languages are portable, not tied to particular hardware architectures. The
same goes for UIs: though the circuitry inside our devices advances with every new product
model, we continue to interact with them as though nothing has changed.
While abstraction provides a standard way of describing lower-level, implementation-dependent
execution in terms of higher-level, device-independent directives, that still leaves the task
of translating the latter into the former, which is no trivial feat. Thats where our second
fundamental principle, automation, comes in. Very smart software is used to automatically
translate abstract descriptions into concrete actions. Thats what compilers do for high-level
language programs, and what operating systems do for user inputs.
Together, abstraction and automation comprise a breathtakingly powerful paradigm, a kind of
force-multiplier that enables us to do more and more with less and less effort. Were no longer
bound by the proverbial 99% perspiration, 1% inspiration ratio because, as the physicist
and quantum computing pioneer David Deutsch points out, the perspiration phase can be
automated, leaving much more time for innovation and creativity.2

2 David Deutsch, The Beginning of Infinity: Explanations that Transform the World (Penguin Publishing Group)

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

IT is still too artisanal


By buffering us against increasing complexity and flux, the abstraction-plus-automation
paradigm has helped make life livable in the information age. But not all of the tech industry is
tapping its full potential. Most IT departments, for example, have at least one foot in an earlier
era of manual methods. In fact, 85% of enterprise IT environments rely on a mix of manual
processing, one-off scripts and other labor-intensive methods.
Many of those who do use automation are usually doing so in a piecemeal and limited sense.
Theyre manually provisioning new servers with brittle scripts that have evolved into a complex
tangle of conditionals. Theyre SSH-ing into machines to directly update configurations. Theyre
mapping some UML-like application model to a series of scripts that are supposed to configure
the underlying infrastructure for an application release.
Thats not the level of comprehensive and unified abstraction and automation needed to manage
increasingly intricate and fast-changing infrastructures. No wonder IT shops are facing mounting
backlogs, delays and costs, barely able to keep older systems chugging along, much less satisfy
the endless demand for new services.

In fact, 85% of enterprise IT environments rely on a mix of manual


processing, one-off scripts and other labor-intensive methods.

Applying abstraction and automation to IT


Fortunately the same model thats worked so well for computing can be applied to IT. Just as
programmers use abstract descriptions to specify what they want a computer to do, sysadmins
can do the same with diverse collections of IT resources, be they applications, the services they
use or the servers they run on. This practice is commonly called managing your infrastructure as
code or operating a software-defined data center.
If you have a sufficiently robust, standardized language for describing your infrastructure, you
can treat your entire infrastructure with the same degree of abstraction that programmers
benefit from. This includes everything from mainframes to load balancers to cloud-based
services, and from private data centers to public cloud environments. Abstracting management
across your infrastructure eliminates a huge amount of complexity and multiplicity, making the
work simpler, more uniform and easier to understand, and facilitating better communication
and collaboration.

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

Once you have a uniform description, you can apply automation. You just need software that
takes that high-level description and translates it into desired actions. Automation dramatically
simplifies and standardizes all sorts of IT processes, as these before/after scenarios illustrate:

Virtual
infrastructure management

Day One deployment

Orchestrating deployments

Traditional manual approach:


Requests are managed by tickets,
with wait times of days or even weeks.
Multiple iterations are needed as the
administrator and requester go back
and forth to ensure that the virtual
infrastructure is correct.

Traditional manual approach:


A systems administrator logs into
a newly provisioned server and
configures the core infrastructure
standards, such as SSH keys and NTP
servers. The admin then spends a few
hours setting up the middleware for
the required services, applying his/
her admins personal best practices,
as opposed to documented IT best
practices. The entire process takes at
least one or two days. Then developers
log into the server and run deployment
scripts or manually deploy the services
the server is intended to run.

Traditional manual approach:


IT ops set a deployment window and
hold a deployment conference call to
coordinate tasks. Admins log into each
system in turn and perform the necessary
configuration changes one at a time in the
correct order. The deployment takes hours
and is very error-prone.

With automation:
The administrator defines a
set of virtual infrastructure stacks
that can be requested on demand, and
the automation software builds out the
necessary virtual infrastructure if it
doesnt already exist. The infrastructure
is provisioned within minutes of the
request, with IT policy
compliance enforced.

With automation:
The sysadmin assigns predefined roles
to a server, and the core infrastructure
configurations, middleware and
services are fully configured in minutes
in full compliance with IT standards.

With automation:
The change is specified once using an
automation framework, then pushed out
to all systems, where the deployment is
controlled and executed in the correct
order, applying standard configurations
and tasks. The process takes minutes and
is error-free.

These benefits multiply when this approach is applied across the board, when all IT resources
are specified in a common language and wrapped in a comprehensive automation layer.
Companies that fully exploit the power of automation can deploy changes 200 times times more
frequently than the organizations that don't.3 And that means they have 200 times as many
opportunities to deliver better software to their users in the same amount of time.

3 Puppet, 2016 State of DevOps Report

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

Becoming more like a software company


In effect, youve turned your infrastructure into code. And that means youre ready to take
advantage of the same efficiencies that make modern software development such a fast,
repeatable, and dependable process.
The payoffs include easier management of IT infrastructure, faster development and greater
resiliency in the face of change.

Easier management: Staff


are freed from menial details
and can focus on overall
aims and objectives. Instead
of spending hours and
days working on basic but
essential tasks like syncing
server clocks, sysadmins can
simply specify the desired
configuration state, and
automation does the rest.

Repeatability: With manual,


error-prone processes replaced
by automation, delivery
becomes more consistent and
predictable.

Faster delivery: Deployment


and configuration of new and
updated resources and services
can be fully automated, saving
a huge amount of manual labor
and slashing delivery times from
months to minutes.

Frictionless change: With the


repeatability and agility you
get from automation, you can
begin pushing out changes on
demand, without the complexity
and costs of manual processes.

Reuse and sharing: Once


youve created a description
of a resource in a standard
language and the software
needed to automate its
management, you dont
need to reinvent it. Youve
got a growing library of
infrastructure code that can
be reused, shared and remixed. Instead of duplicated
effort and do-overs, youre
fully leveraging past work.

Situational awareness:
Automation software doesnt
just manage infrastructure;
it informs you, too, providing
real-time visibility into the
state of your infrastructure,
from inventory to change
reporting.

Ensure security & compliance:


You can define and deploy
your security policies across
all your systems and devices.
Automation will then enforce
them on its own, reducing costs
and the risks associated with
security misconfigurations and
failed audits.

End-to-end optimization: When


you define your infrastructure
as code using a common
language, it becomes much
easier much to integrate
with other software delivery
tools. You now have clean,
standardized code, not hardto-manage scripts, providing a
foundation for integrating and
optimizing your entire software
delivery pipeline.

The result of all this is that your IT operation becomes more like a leading-edge software
company: able to rapidly push out updates and new functionality to users, drive continual

improvements and leverage the sort of efficiencies that make companies like Google, Spotify
and Amazon the envy of the industry.
One reason those companies are able to do the things they do is because theyre working
with a relatively modern and unified stack, something that enterprise IT departments, with
their mixed arrays, could only dream of in the past. Well, they dont have to dream anymore
because the combination of abstraction and automation confers that uniformity, providing a
common language and stable interface that hides the underlying heterogeneity.

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

Not just another wave


This isnt the first solution aimed at managing complexity and change in IT. In fact, some of the
most important IT trends today are partial stabs at the same problem. DevOps, for example,
attempts to improve speed and predictability by structuring and streamlining the often messy
relationship between development and operations. Cloud computing outsources infrastructure
maintenance and provides a clean, unified stack to work with. Containers simplify the provisioning
and scaling of applications across processing resources.
These are all great, as far as they go. But each tackles only a piece of the problem. DevOps
is just the latest in a long line of evolving cultural norms, and it wont be the last. Cloud solutions
only apply to your newer cloud-based applications, not your existing brownfield environments
and legacy systems. The same goes for containers, which work best with newer,
containerized microservices.
Taken alone, none of these solutions addresses the sheer breadth and diversity of real-world IT
landscapes. But abstraction plus automation, applied broadly, does. It encompasses everything
from aging mainframes to new cloud apps, providing a standard, simple, secure and scalable
mechanism for delivering and operating all of the applications, services and infrastructure in
your data center.

Since you use a common language to describe what you want your
apps, services and infrastructure to do, you can use the same language
to help you adopt new software as well as maintain the old.
Just as important, abstraction and automation are evergreen. Its not just a temporary solution
that will be swept aside by another wave in due time. Done right, it provides a platform for reliably
delivering and integrating future technologies into your IT environment with minimal disruption.
Since you use a common language to describe what you want your apps, services and
infrastructure to do, you can use the same language to help you adopt new software as well as
maintain the old. So though the low-level technology is constantly evolving, youre not constantly
re-coding. And that goes not only for current technologies, but also for next-gen solutions yet
to be imagined.

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

Not all automation tools are alike


Note that when discussing these sweeping impacts, were talking about a particularly robust and
comprehensive form of automation. While there are a variety of partial solutions that automate a
limited set of tasks, the real payoffs come when you use a comprehensive approach. Look for a
solution that provides the following:
A common language that describes the desired state of all resources.
Automation for the entire data center, from mainframes to containers, from physical to
virtual and from on-premises to cloud.
Automation throughout the stack, including distributed apps, middleware and
infrastructure.
Situational awareness, keeping you informed on the state of and changes to your
infrastructure.
Change orchestration, providing detailed control and automation of ordered deployments
and change throttling, as well as real-time visibility as you push out changes to distributed
applications and global infrastructure.
Inherent security and compliance with automatic policy enforcement, remediation
and reporting.

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

10

Constantly modern
The kind of tools were talking about arent pie in the sky. They arent aspirational. Theyre
available now, and theyre already helping forward-thinking IT organizations realize the kinds of
results described above. Companies using best-of-breed automation solutions are far more agile
and adaptable, spending less time on firefighting and more time on innovation. Theyre able to
deliver software 200 times more frequently, with 2,555 times faster lead times. They spend 22%
less time on unplanned work and rework, and 50% less time remediating security issues.4
Those are massive advantages, and the dividends accrue over time. A relatively modest
investment in automation today brings huge returns down the line. Not surprisingly, companies
whove gone all-in on automation are pulling away from their competitors at an accelerating rate,
and businesses still relying on older methods would do well to follow suit while they can still
close the gap.

Companies using best-of-breed automation solutions are far more


agile and adaptable, spending less time on firefighting and more time
on innovation.
Its the latest chapter of an old story. Automation has been transforming industries like
manufacturing for centuries, upending the status quo and enabling whole new economies
of scale. Now its ITs turn for an industrial revolution, and theres no going back.

4 Puppet, 2016 State of DevOps Report

White paper Toward a World of Frictionless Change: Using IT Automation To Deliver Constantly Modern Software

11

Vous aimerez peut-être aussi