1© Copyright 2015 EMC Corporation. All rights reserved.
OPEN SOURCE, INFRASTRUCTURE AS
CODE AND CLOUD NATIVE APPS
JONAS ROSLAND, DEVELOPER ADVOCATE @EMCCODE
1© Copyright 2015 EMC Corporation. All rights reserved.
22© Copyright 2015 EMC Corporation. All rights reserved.
Jonas Rosland
Developer Advocate
EMC {code}
@jonasrosland
Loves traveling
and retro gaming
Talks 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 loss
in 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 example
resource "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 example
resource "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 the
history of our apps
35
From 10 years ago
36
Or perhaps 2 days ago
37
Consider a
standard monolithic
application
38
http://cantina.co/monolithic-architecture-doesnt-scale/
39
How do you scale it?
40
http://cantina.co/monolithic-architecture-doesnt-scale/
41
http://cantina.co/monolithic-architecture-doesnt-scale/
42
So what to do?
43
It’s not all about scale
44
But also about
separation of concern
45
Microservices
46
http://cantina.co/monolithic-architecture-doesnt-scale/
47
Everything is
loosely 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 becoming
Cloud 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 question
with 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
Open Source, infrastructure as Code, Cloud Native Apps 2015

Open Source, infrastructure as Code, Cloud Native Apps 2015

Editor's Notes

  • #10 But we’re talking about DevOps because of this reality – “Software is eating the world”. Marc Andreessen, Venture Capitalist. If you don’t realize that your competition is getting much better at using software as a competitive advantage, or an all-software start-up is lurking in your market, then there is a distinct possibility that your company may not be relevant in the next decade (or less)