CIO Connect 2015 - Modernize your applications to drive organizational efficiency

105
1 EMC CONFIDENTIAL—INTERNAL USE ONLY EMC CONFIDENTIAL—INTERNAL USE ONLY How can modern applications drive organizational efficiency? Jonas Rosland Developer Advocate

Transcript of CIO Connect 2015 - Modernize your applications to drive organizational efficiency

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

3EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

This is not a tech talk

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

9EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

From 10 years ago

10EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Or perhaps 2 days ago

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/

13EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

How do you scale it?

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/

16EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

So what to do?

17EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

It’s not all about scale

18EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

But also aboutseparation of concern

19EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Microservices

20EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

http://cantina.co/monolithic-architecture-doesnt-scale/

21EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Everything isloosely coupled

22EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Enables parts to be fixed, updated and worked on…

23EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Independently!

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

25EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

So what?

26EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Some might say…

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

30EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

You make things work

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?

33EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

But first…

34EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Where do we start?

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?

43EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Most probably not

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

56EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

What is DevOps?

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

64EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Wait a minute…

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

70EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

So should youreally do this?

71EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

72EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

73EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Questions?

Jonas Rosland

Developer Advocate @ EMC {code}

@jonasrosland

75EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Backup slides

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?

78EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

79EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

80EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

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

93EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

So

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

96EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Alright

97EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

Then what?

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

107EMC CONFIDENTIAL—INTERNAL USE ONLYEMC CONFIDENTIAL—INTERNAL USE ONLY

• Start talking about it

• Choose low-hanging fruit

• Learn, make wrong decisions, learn again

• Involve the broader team– Give books, presentations, blog posts etc.

So how do we get started?