Software development, like manufacturing, is a craft that requires the application of creative approaches to solve problems given a wide range of constraints. However, while engineering design may be craftwork, the production of most designed objects relies on a standardized and automated manufacturing process. By contrast, much of moving an application from prototype to production and, indeed, maintaining the application through its lifecycle has often remained craftwork. In this session, Gordon Haff discusses the many lessons and processes that DevOps can learn from manufacturing and the assembly line-like tools, such as Platform-as-a-Service, that provide the necessary abstraction and automation to make industrialized DevOps possible.
6. DEVOPS IS AN I.T. PROCESS
Session title
6
• For delivering new business applications and services
• With increased agility and quality
• Through improved technology and collaboration
• From development through ongoing operations
8. WHAT MANUFACTURING CAN TEACH US!
Session title
8
Standardize parts!
Drive modularity!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
!
9. Session title
9
SOME EARLY STANDARD PARTS!
Système Gribeauval (1765)!
Cannons
Standard bores
Eli Whitney (1801)!
Muskets with interchangeable parts
Still costly and handmade
10. Session title
10
START WITH (CHOICE OF MANY) STANDARD PARTS!
Standardized!
Open!
Multi-vendor!
Multi-platform!
But these are just piece parts!
11. WHAT MANUFACTURING CAN TEACH US!
Session title
11
Standardize parts!
Drive modularity and reuse!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
!
13. Session title
13
“45–47% passenger cars will use one of top 20 platforms by 2015.”
EvaluServe, 2012
14. Session title
14
MICROSERVICES ENABLE SOFTWARE COMPONENT REUSE!
http://martinfowler.com/articles/microservices.html
15. Session title
15
TYPICAL MICROSERVICES CHARACTERISTICS!
• Single function (but can be any size)!
• Each microservice can be its own build!
• Can use unique languages, runtime, etc. but…!
• Typically single developer or small team!
• Stateless business logic!
• Data caching as needed!
16. Session title
16
WHAT MANUFACTURING CAN TEACH US!
Standardize parts!
Drive modularity and reuse!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
17. Session title
17
BRINGING PROCESS TO STANDARDIZATION:!
BRUNEL AND MAUDSLAY’S SAILING BLOCKS!
“...So that ten men, by
the aid of this machinery,
can accomplish with
uniformity, celerity and
ease, what formerly
required the uncertain
labour of one hundred
and ten.”!
!
19. WHAT MANUFACTURING CAN TEACH US!
Session title
19
Standardize parts!
Drive modularity and reuse!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
22. Session title
22
WHAT MANUFACTURING CAN TEACH US!
Standardize parts!
Drive modularity and reuse!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
23. Session title
23
VALUE OF (THE RIGHT) STANDARDIZED INFRASTRUCTURE!
Process drives tools
(not the other way
around)!
Abstraction of
implementation details!
24. Session title
24
A CLOUD PLATFORM FOR MICROSERVICE CLOUD APPS
Provision apps from
service catalog
Orchestrate and place apps
Run composed
microservices in containers
Provide dynamic,
Programmable infrastructure
OPS MANAGEMENT
SERVICE CATALOG
(RED HAT CLOUDFORMS)
CONTENT
ENTITLEMENT
LIFECYCLE
(RED HAT SATELLITE)
SERVICE SCHEDULER/ORCHESTRATOR
(KUBERNETES, MESOS)
OPENSHIFT
BY RED HAT
CloudForms
Monitoring
Docker
RED HAT ENTERPRISE
LINUX GUEST
RED HAT ENTERPRISE
LINUX GUEST
RED HAT ENTERPRISE LINUX OPENSTACK PLATFORM
COMPUTE STORAGE NETWORK
(RED HAT ENTERPRISE LINUX OPENSTACK PLATFORM, RED HAT STORAGE, OPEN DAYLIGHT)
Image
CloudForms
Orchestration
Docker
Image
Satellite
Content
Docker
Image
JBoss
AMQ
Docker
Image
App
DB
Docker
Image
JBoss
BRMS
Docker
Image
25. Session title
25
WHAT MANUFACTURING CAN TEACH US!
Standardize parts!
Drive modularity and reuse!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
27. Session title
27
WHAT MIGHT YOU MONITOR? EVERYTHING.!
Category Type of data
Capacity Storage capacity, network utilization, CPU utilization, number of VMs/
containers/servers
Performance Query time, page load time, upload/download speeds, I/O rates
Service health Service outages, service instance failures, timeouts
Compliance/security Intrusion detection, DoS/DDoS attempts, Authentication failures,
Password resets
Traffic flows HTTP(S) requests, end-to-end packet flows
User metrics Pageviews and time/page, registrations, clicks, abandons
28. WHAT MANUFACTURING CAN TEACH US!
Session title
28
Standardize parts!
Drive modularity and reuse!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
29. Session title
29
TRADITIONAL MANUFACTURING!
Any customer can have a car
painted any color that he wants so
long as it is black.
Henry Ford
(probably apocryphal)
General Motors Fairfax Assembly Plant in Kansas City, Missouri
30. Session title
30
DEMING CIRCLE / SHEWHART CYCLE!
Source: IBM
Plan!
Do!
Check!
Adjust!
31. Session title
31
A DIFFERENT APPROACH!
Lean manufacturing!
Kaizen!
JIT!
BTO!
Systems thinking
(“The Toyota Way”)!
32. Session title
32
A FEW KEY POINTS!
• Make process as flexible as necessary without
stress or "muri" (overburden) since this generates
"muda" (waste)!
• Long-term philosophy but tactical improvements
also valuable!
• Can’t directly attack outcomes without
understanding underlying concepts!
• Significant organizational / incentives / culture(?)
element!
!
!
33. Session title
33
CICD PRINCIPLES!
• Maintain a single source repository!
• Automate the build!
• Make your build self-testing!
• Test in a clone of the production environment (usually)!
• Everyone can see what’s happening!
• Automate all the things!
34. Session title
34
AUTOMATING CONTINUOUS INTEGRATION!
WITH MAVEN AND JENKINS!
Code
35. Session title
35
USING JENKINS FOR CI/CD!
• New build triggered on push to git repository!
• No application downtime during the build process!
• Failed builds do not get deployed (leaving the
previous working version in place)!
• Can have different deployment stages (e.g. dev,
test, stage, production) !
36. Session title
36
GARTNER DEVOPS METRICS PYRAMID!
Data-Driven DevOps: Use Metrics to Help Guide Your Journey
May 2014
37. Session title
37
• Apply agile continuous improvement!
• Ensure that each DevOps process implemented (such as test-driven
infrastructure, continuous delivery, etc.) maps to a
business impact !
• Monitor for unintended side effects !
• Foster a learning-centric approach to process improvement,
rather than to use these exercises as a means to punish missing
expectations
Summarized from
Data-Driven DevOps: Use Metrics to Help Guide Your Journey
May 2014
GARTNER DEVOPS RECOMMENDATIONS!
38. LIMITS TO MANUFACTURING LESSONS!
Session title
38
• No real concept of inventory with code!
• Capital structures different!
• Cost of failure (may) be different!
• Ability to iterate may be different!
• Lighter-weight process!
39. WHAT MANUFACTURING CAN TEACH US!
Session title
39
Standardize parts!
Drive modularity!
Standardize process!
Automate repeatable processes!
Standardize infrastructure!
Instrumentation and control!
Continuous iteration and improvement!
!
40. Session title
40
ABOUT ME
• Red Hat Cloud Product Strategy
• Twitter: @ghaff
• Google+: Gordon Haff
• Email: ghaff@redhat.com
• Blog: http://bitmason.blogspot.com
• Formerly: Illuminata (industry analyst), Data
General (minicomputers/Unix/NUMA/etc.)