Post on 06-Aug-2015
1EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
How can modern applications drive organizational efficiency?Jonas RoslandDeveloper Advocate
2EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY 2© Copyright 2015 EMC Corporation. All rights reserved.
Jonas RoslandDeveloper AdvocateEMC {code}
@jonasrosland
Loves travelingand retro gamingTalks a lot
4EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
This is an organizational change talk
5EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
But to make those organizational changes…
6EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
You need to embrace modern technologies
7EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Just like when we move to better engines, phones, etc
8EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Let’s look at thehistory of our apps
11EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Consider astandard monolithic
application
12EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
http://cantina.co/monolithic-architecture-doesnt-scale/
14EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
http://cantina.co/monolithic-architecture-doesnt-scale/
15EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
http://cantina.co/monolithic-architecture-doesnt-scale/
18EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
But also aboutseparation of concern
20EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
http://cantina.co/monolithic-architecture-doesnt-scale/
22EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Enables parts to be fixed, updated and worked on…
24EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Traditional apps will not
• Drive your organization forward
• Allow you to innovate quickly
• Enable your staff to develop new skills with modern tools
27EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
We're just anIT organization,
not the line of business
28EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
We're just anIT organization,
not the line of business
29EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
You're the machinery, the glue, the conduit
31EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
You help drive thebusiness forward
32EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
How about making your business more profitable?
35EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Let’s talk about some real pain points in your orgs
36EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
You can't wait 6 monthsfor a feature/upgrade/bug fix/etc
37EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Solve configurationdrift issues quickly
38EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Know what’s wrong, where and why. Not who!
39EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Last and most importantly, improve team communication
and collaboration
40EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Let’s have a look at somepopular languages/frameworks
41EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Python 2.7
JRE 8
NodeJS 0.12.2
Haskell 7.8.4
Go 1.4.2
Rust 1.0.0-beta.3
Ruby on Rails 4.2
42EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Will they solve your 6 month cycle? Your config drift? Your errors?
44EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
How long would it take your organization to deploy a change
that involves just one single line of code?
- Mary Poppendieck
45EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Jenkins CI
• Travis CI
• Codeship
• CloudFoundry
• OpenShift
Deployment automation
46EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Docker
• Framework for application container management
• HUGE community
Containers
47EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Splunk
• Loggly
• LogInsight
• ELK Stack– ElasticSearch– LogStash– Kibana
Log management
48EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• vCenter Operations
• New Relic
• AppDynamics
• DataDog
Performance management
49EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Nagios
• Sensu
• VictorOps
• PagerDuty
Monitoring
50EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Slack
• HipChat
• Trello
• Asana
Communication
51EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Github
• Quip
Collaboration
54EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Introduce the following mentality to mitigate inefficient processes
55EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
http://46zwyrvli634e39iq2l9mv8g.wpengine.netdna-cdn.com/wp-content/uploads/2013/06/DevOps-infinity-loop2.png
57EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
An idea or collaborative culture/philosophy between
technical teams
58EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Unified processes and tools for faster end-to-end delivery of quality
software
59EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
It’s all about removing nonvalue-adding wastes
60EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Make the timeline from customer order to cash in your bank as
short as possible
61EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
DevOps practices and IT performance impact
organizational performance
http://www.slideshare.net/realgenekim/2014-state-of-devops-findings-velocity-conference
62EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Enabling IT to work efficiently leads to
• 30x more frequent production deployments
• Deployments performed 8000x faster(I know, crazy number)
• 2x higher success rate on deployments
• 12x faster fixing of issues
63EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Enabling IT to work efficiently leads to
• 2x more likely to exceed profitability, market share and productivity goals
• 50% higher market capitalization growth over 3 years
65EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
You get all that from modernizing your apps?
66EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Of course not, you can't buy efficiency
67EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
But modernizing your apps enables you to make smarter choices and
change your processes
68EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Modernized apps will
• Give your teams smaller focus areas
• Enable your teams to innovate faster
• Let you practice Kaizen
69EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
The word Kaizen is Japaneseand means
Continuous Improvement
73EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Questions?
Jonas Rosland
Developer Advocate @ EMC {code}
@jonasrosland
76EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Let's start with
infrastructure as code
77EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
What do we define as infrastructure?
81EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Deploy, monitor and connect together all the pieces needed to run services for the organization
• Processes and tools for faster end-to-end delivery of quality services
• Automation comes built-in
Why define infrastructure as code?
82EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Desired state specified in text files
• Autonomic (self-corrects to desired state)
• State should be known through monitoring
• Remove snowflake servers
How do we do this?
83EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Easy to read and edit
• Shareable
• Can use standard version control like Git or SVN
• Becomes executable documentation
Why store them in text files?
84EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
node 'www2' {
class { 'apache': } # use apache module
apache::vhost { 'awesomewebsite.com': # define vhost
port => '80',
docroot => '/var/www/html'
}
}
Simple example
85EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
user { root:
ensure => present,
password => '$ecretP@ssw0rd',
}
Change root password
86EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Manually configured environments are like a house of cards in a china
shop
- Neal Ford
87EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Deploying, provisioning and scaling automatically is virtually impossible if every server is unique
• Adds friction between the requestor and the deployer
• Mistakes happen
• We're all human
Snowflake servers
88EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
What can happen if you don't treat infrastructure as code?
89EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Up to 60% of failures are caused by human error,
not hardware failure
90EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Example - Knight Capital Group
https://infocus.emc.com/wp-content/uploads/2012/08/KCG.jpg
91EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Manual deployment of new trading software
• 7 of 8 servers correctly updated
• Old function still alive on the 8th server led to…
Knight Capital Group - What happened?
92EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
$440 million lossin 45 minutes
94EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
Treat your infrastructure as code
95EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Self documenting infrastructure
• You now have source code for how anything in your datacenter is setup
• Executable documentation
Recap of the benefits
98EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
How aboutautomating some more?
99EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Jenkins CI
• Travis CI
• Codeship
• CloudFoundry
• OpenShift
Deployment automation
100EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Docker
• Framework for application container management
• HUGE community
Containers
101EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Splunk
• Loggly
• LogInsight
• ELK Stack– ElasticSearch– LogStash– Kibana
Log management
102EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• vCenter Operations
• New Relic
• AppDynamics
• DataDog
Performance management
103EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Nagios
• Sensu
• VictorOps
• PagerDuty
Monitoring
104EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Slack
• HipChat
• Trello
• Asana
Communication
105EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• Github
• Quip
Collaboration
106EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY
• And by smartly we mean cooperatively between Devs and Ops
• Will help operators understand what's running and happening in the infrastructure
• Will give developers insight into the underlying infrastructure and the way it behaves under load
Use these tools smartly