the new it: rethinking a 60 year old industry self-service changes the game for departments; it...
TRANSCRIPT
The New IT: Rethinking a
60 Year Old Industry
1
Geoff Halprin The SysAdmin Group
[email protected] @geofficate
Driving IT Conference Copenhagen
November 2017
(C) Copyright 2015-2017, Geoff Halprin. All Rights reserved.(C) Copyright 2015-2017, Geoff Halprin. All Rights reserved.
The Age of the Dinosaurs
6
Software Development in the 80s
http://www.flickr.com/photos/cblue98/6679374097/
Highly Formalised, Unidirectional WorkflowThe Waterfall Model
‣ Key Attributes: • Left-to-right progress. Each phase completed before next
commenced (in theory).• Right-to-left traceability. Code can be traced back to requirements.
7
Requirements Architecture Design Code Test Release
‣ Input:
‣Requirements from user
‣Output:
‣RequirementsDefinitionDocument(RDD)
‣ Input:
‣RDD
‣Output:
‣SystemArchitectureDescription(SAD)
‣ Input:
‣ SAD
‣Output:
‣DetailedDesignDescription(DDD)
‣ Input:
‣DDD
‣Output:
‣Code
‣ Input:
‣RDD, SAD, DDD, Code
‣Output:
‣Test Reports
‣ Input:
‣Code, Test Reports
‣Output:
‣Product
The Root CausesThe “Big M” Methodologies
‣ Human Resources • Eschew the difference in productivity of programmers.
‣ Wrong Model • “All the creativity is at the beginning, the rest is just construction.”
‣ High Risk, Hence High Formality • Such large investments require significant controls to (attempt to)
ensure that the value is delivered.
12
We have known these methodologies were wrong for decades, and yet we still use them in most
enterprises
13
This waterfall approach to projects extends from inception to retirement
It extends beyond the Software Development boundary
It extends beyond the IT boundary
14
Physical infrastructure investment was cost-optimised, and so bespokeInfrastructure Investment
‣ Expensive, bespoke Production infrastructure and applications
‣ Different infrastructure for Development and Test environments
‣ Long delivery and commissioning lead times
‣ Large, complex production acceptance processes
15
Reflects physical hardware costs
The Capex view of the world is about ensuring delivery (visible success) of long-running projects through “high ceremony” governance
Capex Budget Allocation
‣ Budget allocation, funding gates • Fight to keep the project “above the line” for next financial year
• Control release of funds to “ensure” delivery
‣ Project management • Seen as responsible for delivery
‣ Operational acceptance • Compliance checklist as gatekeeper
‣ Alarm response • Defined during build - with no production experience
16
Agile fails in many enterprises because is must still deal with traditional funding and operations models
The Agile Sandwich
17
Agile
Project
Release 1 Release 3
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5
Release 2
Value realised over time
2 weeks
WaterfallWaterfall
New technologies have enabled new practices that affect project delivery,
risk management, and altered the nature of good IT management irreversibly.
19
Enabling self-service changes the game for departments; it moves infrastructure from Capex to Opex
Cloud Computing - Key Attributes
‣ Independent, compartmentalised (isolated) tenancies
‣ Self-service and automated fulfilment
‣ On-Demand
‣ Ephemeral
‣ API based services (CRUD)
21
Cloud is important because it enables self-service, incremental investment, and new risk management
practices
22
The cloud requires a new approach to risk managementRisk and Resiliency
‣ Failure is inevitable - at cloud scale it a mathematical certainty • Cloud is unreliable, but offers infrastructure diversity
‣ Human led processes: (1) do not scale, (2) are not fast enough • Autonomous response is required
‣ In the cloud, the application must deal with failure (service resilience) • There is no separate infrastructure responsibility; the application is
responsible for all failure modes. This includes network functions.
‣ Being able to deploy is more important than keeping the platform operating • Infrastructure diversity and rapid repair requires automated deployment
24
The Inception of Cloud ComputingAPIs
25
All teams will henceforth expose their data and functionality through service interfaces.Teams must communicate with each other through these interfaces.There will be no other form of inter-process communication… no back-doors whatsoever……All service interfaces, without exception, must be designed from the ground up to be externalizable…No exceptions.
Anyone who doesn’t do this will be fired.Thank you have a nice day!
— Jeff Bezos, 2002
APIs are important because they create an ecosystem
An internal ecosystem: they enable decentralisation of the SDLC
A wider ecosystem: they also enable Internet based commerce in software components (Software as a Service)
The enterprise no longer has to construct complete solutions
26
Microservices
29
In short, the microservice architectural style isan approach to developing a single application as a suite of small services, each running in itsown process and communicating with lightweightmechanisms, often an HTTP resource API. These services are build around business capabilitiesand independently deployable by fully automated deployment machinery. There is a bare minimumof centralised management of these services,which may be written in different programming languages and use different data storage technologies.”
— Martin Fowler
Microservices encourage a move from centralised construction of large, complex systems towards decentralised assembly of discrete components.
30
Systems Must Take Three Design Aspects Into ConsiderationThe Three Planes of Code
31
Execution Plane
𝜇S-A-02𝜇S-A-01
AZ-West AZ-EastImplementation Plane
𝜇S-B-01𝜇S-B-02𝜇S-A-01𝜇S-A-02
Design Plane
𝜇S 𝜇S
𝜇S 𝜇S
𝜇S
Microservices are important because they enable discrete component delivery, reduce integration overheads, and simultaneously increase velocity
and quality.
32
But they introduce the potential for significant complexity and far more dynamic production
configuration changes
33
Leveraging these new technologies requires new approaches to IT across the lifecycle
A Digital Delivery Model
35
Arch/ Design
Build/EvolveImplement
Operate
ITIL ➔ SRE
Bespoke ➔ Cloud
Design First ➔ LibraryConstruction ➔ Assembly
Waterfall ➔ Agile/DevOpsMonoliths ➔ Microservices
TOGAF has not evolved to support the digital enterpriseTOGAF is Feeling Dated
36
TOGAF
Technical Reference Architecture (TRM)has not been updated since pre-cloud era
TOGAF development methodology isheavy, document based, and slow.
Does not reflect cloud-nativeoperational requirements
Does not reflect modern service(and microservice) based ecosystem
Does not reflect modern iterativesoftware development practices
Does not reflect customerexperience led design thinking
Architecture must move from gatekeeper to enablerEnterprise Architecture as Librarian
‣ Software development is now: • Incremental and iterative• Assembled from component microservices, rather than constructed
from as a self-contained monolith
‣ Enterprise architecture must evolve • The model I propose is that of librarian, or concierge• Support and encourage good behaviour in distributed teams
• Advisor, not gatekeeper
37
Business Value Faster and More Reliably Agile Versus Waterfall
38
Project
Release 1 Release 3
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5
Release 2
Agile Project
Value realised over time
2 weeks
Project
SolutionDefinition Design & Build
RDD
Waterfall-based Project
SAD DDD Code
Test
Release
Value realised over time
2 years?
Agile fails in many enterprises because is must still deal with traditional funding and operations models
The Agile Sandwich
39
Agile
Project
Release 1 Release 3
Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5
Release 2
Value realised over time
2 weeks
WaterfallWaterfall
Continuous Delivery and Feedback LoopsDevOps: A New Model
40
Requirements Architecture Design Code Test Release Operate
Continuous Integration
Continuous Delivery
DevOps
Waterfall/Agile Software Development
Continuous Deployment
DevOps is a new, expansive paradigm, where software evolution is data driven, by continual feedback loops
DevOps is About More Than Agile
41
DevOps turns a number of traditional IT practices on their headThe Big DevOps Behaviours
‣ Shared ownership and high collaboration
• vs. organisational silos and hand-offs
‣ Continuous Integration and Delivery • vs. high cost integration testing
‣ Risk management by embracing change
• vs. fear of change
‣ Ephemeral infrastructure • vs. build once, hand crafted
“snow flakes”
‣ Automation • vs. manual fulfilment
‣ Feedback loops and data driven responses
• vs. waterfall design of new features and releases
42
Tools: Driving Speed and Consistency
43
Jenkins, Bamboo, Teamcity
Continuous Integration
Git, Mercurial, Subversion
Source Code Control
Crucible, Gerritt
Human Review
Coverity, Findbugs
Static Analysis
Clover, Emma
Code Coverage
Code Review
Eclipse, Visual Studio
Development
Rally, Jira, Bugzilla
ALM
JUnit, SOAPUI
Unit
Silenium, Pacts, ServerSpec
Integration
Loadrunner, SOAPUI
Stress/Volume
Test Automation
Cucumber, Selenium
Acceptance
Make, Ant, Rake, Maven
Build
Nexus, Artefactory
Artefact Repository
Packer, Docker
Packaging
Continuous Delivery
Vagrant, Heat
IaaS
Infrastructure
Cloud Foundry, OpenShift, Docker
PaaS
Puppet, Chef, Ansible
Deployment
Release Mgmt
Consul, HAProxy, Envoy
Activation
New Relic, Sensu, Logstash, Spunk
Monitoring
Management/Ops
Only the left edge is “writable”. Everything else is read-only.DevOps Best Practice: The Hard Left Edge
44
DevOps manages risk through increasing the rate of change rather than aversion to it
DevOps Risk Management
‣ Deploying is king • Deployment must be painless.• You have deployed the same thing several times before it gets to Production.
• Don’t guess - use real production data!
‣ Deployment is decoupled from activation • Risk is managed via activation controls
- Canaries, 1% of the user base, waves of activation, etc.
‣ Deployment is not “one size fits all” • It is a rail yard of interconnecting steps and micro-processes.
46
DevOps places paramount importance on automation and quality across the entire idea-to-production pipeline
The Release Pipeline
47
Requirements Architecture/ Design Code Test Release Operate
Feature FlagsA/B TestingAutomated failure responses
Ephemeral InfrastructureCD - push on green
On-demand environmentsCI - nightly builds
Test-Driven DevelopmentSmaller, more frequent releasesAutomated build from source artefacts
Just enough designRefactoring
MVP, MMFReal world feedbackEvolution of product
The cloud has enabled new ways of managing server builds, software release, and server entropy
Infrastructure as Code
‣ Cattle, not pets • Servers are built on demand via automation.• Logging into the server is seen as failure.
‣ Release through parallel infrastructure • Build the new version on new infrastructure; stage transition between
environments (zero downtime).
‣ Ephemeral (transient) infrastructure • Thrown away when it is no longer needed.• This eliminates entropy - a major source of change failure.
48
Inverting key decisions and limitationsA Clash of Operations Cultures
49
Traditional Ops DevOps
‣ Manual configuration changes to critical infrastructure.
‣ Application architectures defined by network design.
‣ Bespoke infrastructure built once, then maintained.
‣ Risk managed through change windows.
‣ Processes biased towards “build once”.
‣ Automated deployment to all environments.
‣ Network design defined by application architectures.
‣ Ephemeral infrastructure created for each new deployment.
‣ Risk managed through progressive activation.
‣ Processes re-engineered for high volume, rapid throughput of changes.
Applying software engineering to system operationsSRE: ITSM at Cloud Scale
‣ The purpose of operations is to protect production • Reliability, Availability, Serviceability (RAS)• These principles haven’t changed since the 60s
‣ In the 90s, the world began adopting ITIL • Process oriented controls• Assumption: human fulfilment• Assumption: large, up-front, project-based delivery • Assumption: bespoke solutions and infrastructure
‣ The cloud needs a different model • Site Reliability Engineering is the application of the same principles at cloud scale.
50
Incremental, Data and Experiment Driven Product DevelopmentLean Enterprise
‣ Minimum Viable Product,Minimum Marketable Features
‣ Business Model Canvas
‣ Learn (guess), Test (prototype),Engage (trial), Measure, Pivot
53
The Role of Central IT Must EvolveDecentralised Computing
‣ The Problems: • Central IT is too slow and too restricting
• JIT infrastructure - Cloud only requires a credit card
‣ Shadow IT is now Departmental IT • BUT: Data security/compliance obligations remain: PII, GDPR, LI, etc.
‣ IT must evolve from gatekeeper to service provider • Changing role of architecture: concierge/librarian
‣ The Big Issues: • Data governance, duplication, and compliance• Duplication of effort
54
Digital enterprises value flexibility and speed to market mostDigital Companies Prioritise Flexibility
56
A comprehensive re-engineering of the enterprise is requiredThe Transformation Journey
57
From:Bespoke infrastructureManual fulfilmentProject based deliveryITILWaterfallSOA/ESBInside-out
To:CloudAutomationProduct evolutionSite Reliability Eng.DevOpsAPIsOutside-in
Realising the benefits of digital technologies will require significant changes to the company operating model
An Unprecedented Challenge
‣ A transformation like no other • It affects the entire operating model (DNA) of the company.• A product-led transformation will fail.
- But new generation products are a critical element of transformation.
• An operating model transformation is required.
‣ This is about putting customer experience at the centre of the new world
58
The investment model begets the risk and governance model which begets the operating model
A New Operating Model
60
Investment Model Risk/Governance Model Operating Model
The incumbent operating model reflects the physical infrastructure investment model of the past 40 years
The Incumbent ICT Operating Model
‣ Expensive, bespoke production infrastructure and applications • Long delivery cycle times• Maintained in-situ across a lifespan of many years• Other environments do not match production due to cost
• Resistant to automation due to highly customised nature of each host• Subjected to outsourcing in order to control costs
‣ Project based delivery • New = complex, expensive, risky• Separate project team
• Everything must be delivered (via capex) during build phase
‣ Clear separation of business, development, QA, security, and production teams • Handoffs, engagement artefacts, lack of end-to-end responsibility
61
Digital infrastructure is virtual, incremental, and on-demandThe Digital Operating Model
‣ Cloud • Highly scalable, self-service environments, build on commodity hardware.
‣ High levels of automation • Infrastructure build, testing, release, deployment, activation• Rapid real world feedback
‣ Product based delivery • Continuous stream of small incremental improvements (frequent, rapid)• Industrialised view of change
‣ Integrated, cross-functional teams • High collaboration and shared goals
‣ Digital technologies • Re-engineering of core processes against new technology backdrop
62
The modern enterprise now prizes agility and experimentation above stability and ROI
It’s About Risk and Enablement
‣ This is about risk models
‣ The old risk model reflected the highly bespoke nature of construction • It focussed on protecting the (very large) investment
‣ The new world is software on commodity hardware • The investment is now incremental• Agility is far more valuable
‣ The risk, governance, and operating models must evolve
63