open source, infrastructure as code, cloud native apps 2015
TRANSCRIPT
1© Copyright 2015 EMC Corporation. All rights reserved.
OPEN SOURCE, INFRASTRUCTURE AS CODE AND CLOUD NATIVE APPSJONAS ROSLAND, DEVELOPER ADVOCATE @EMCCODE
1© Copyright 2015 EMC Corporation. All rights reserved.
22© Copyright 2015 EMC Corporation. All rights reserved.
Jonas RoslandDeveloper AdvocateEMC {code}
@jonasrosland
Loves travelingand retro gamingTalks a lot
3© Copyright 2015 EMC Corporation. All rights reserved.
4© Copyright 2015 EMC Corporation. All rights reserved.
Lots of projects!
5© Copyright 2015 EMC Corporation. All rights reserved.
github.com/emccode
6© Copyright 2015 EMC Corporation. All rights reserved.
dashboard.emccode.com
7© Copyright 2015 EMC Corporation. All rights reserved.
community.emccode.com
8
Why are we doing this?
9© Copyright 2015 EMC Corporation. All rights reserved.
10© Copyright 2015 EMC Corporation. All rights reserved.
Developers – The New Kingmakers
11
Let's start with
infrastructure as code
12
What do we define as infrastructure?
13
14
15
16
• 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?
17
Manually configured environments are like a house of cards in a china
shop
- Neal Ford
18
Up to 60% of failures are caused by human error,
not hardware failure
19
Example - Knight Capital Group
https://infocus.emc.com/wp-content/uploads/2012/08/KCG.jpg
20
• 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?
21
$440 million lossin 45 minutes
22
Not good
23
So
24
Treat your infrastructure as code
25
But how?
26
Just start, right now!• Vagrant• Packer• Terraform• Otto• Nomad
• Puppet• Chef• Ansible• SaltStack(^ amazing config mgmt)
27
node 'www2' {
class { 'apache': } # use apache module
apache::vhost { 'awesomewebsite.com': # define vhost
port => '80',
docroot => '/var/www/html'
}
}
Simple example
28
user { root: ensure => present, password => '$ecretP@ssw0rd',}
Change root password
29
AWS exampleresource "aws_elb" "frontend" { name = "frontend-load-balancer" listener { instance_port = 8000 instance_protocol = "http" lb_port = 80 lb_protocol = "http" }
instances = ["${aws_instance.app.*.id}"]} resource "aws_instance" "app" { count = 5 ami = "ami-043a5034" instance_type = "m1.small"}
30
vSphere exampleresource "vsphere_virtual_machine" "default" { name = ”mysql-04" domain = ”corp.local" datacenter = "datacenter-1" cluster = "cluster-2" vcpu = 2 memory = 4096 disk { datastore = ”FLASH-DATASTORE-14" template = "centos-7.0-x86_64" iops = 5000 }
gateway = "192.168.0.254" network_interface { label = ”internal" ip_address = "192.168.0.74" subnet_mask = "255.255.255.0" }}
31
• Self documenting infrastructure• You now have source code for how everything in your
datacenter is setup• Executable documentation
Recap of the benefits
32
Alright
33
Then what?
34
Let’s look at thehistory of our apps
35
From 10 years ago
36
Or perhaps 2 days ago
37
Consider astandard monolithic
application
38http://cantina.co/monolithic-architecture-doesnt-scale/
39
How do you scale it?
40http://cantina.co/monolithic-architecture-doesnt-scale/
41http://cantina.co/monolithic-architecture-doesnt-scale/
42
So what to do?
43
It’s not all about scale
44
But also aboutseparation of concern
45
Microservices
46http://cantina.co/monolithic-architecture-doesnt-scale/
47
Everything isloosely coupled
48
Enables parts to be fixed, updated and worked on…
49
Independently!
50
Let’s look at an example
51
57
Our apps are becomingCloud Native
58
Cloud Native Architectures• Broad set of
components working together• Prescriptive software
stacks• Functions in mixed cloud
environments• Built on microservices
https://pivotal.io/platform/migrating-to-cloud-native-application-architectures-ebook
59
Cloud Native Computing Foundation
60
Cloud Native Platforms – Cloud Foundry
61
Take this questionwith you…
62
How long would it take your organization to deploy a change
that involves just one single line of code?
- Mary Poppendieck
63
Questions?Jonas Rosland
Developer Advocate @ EMC {code}@jonasrosland