Enterprise Flight into DevOps space for JAX 2015

Preview:

Citation preview

01

About me02

Andrey AdamovichBio: Developer, coach, speaker, author

Company: Aestas/IT (http://aestasit.com)

E­mail: andrey@aestasit.com

Linkedin: http://www.linkedin.com/in/andreyadamovich

Lanyrd: http://lanyrd.com/profile/andrey­adamovich

GitHub: https://github.com/aadamovich

SO: http://stackoverflow.com/users/162792/andrey­adamovich

Twitter: @codingandrey, @aestasit

••••••••

03

The story04

Once upon a time...

05

An email arrives...

06

...let's get to work

07

...two days later...

08

...five days later...

09

Another emailHi Jack, I got a call from Sandy, the secret project's PM, she says that

the DEV servers are not ready yet, I really want you to understand how

critical is this project for the organization, please, don't let me down...

Francis, VP

10

Jack's bossHi Jack, I understand you have been working on the secret project

servers setup recently, don't forget that we need to keep the

documentation up­to­date yeah?

11

No problem! We know how to write docs.

12

... in the meanwhile ...

13

The dreaded CRHey Jack, we can't deploy anymore to our DEV servers. What the hell

is going on?

14

Fixing

15

...things get worse...

16

Worse thandown...

17

UNKNOWN STATE

18

Chaos (r)19

The "secret" project moves into QA

20

The GO LIVE!

21

Let's throw more people at it

22

...it's going to work, right?

23

What aboutmonitoring?

24

Do we haveit?

25

YES!26

But...

27

Well...28

Sorry!29

No happyending?

30

Where is theproblem?

31

Communication problems I

32

Communication problems II

33

Stability vs.agility

34

Fear of deployBecause systems are fragile, each deployment is like a trip to the

nearest casino

Devs and SysOps make development cycles longer to be as far as

possible from the deploy date

Slower time to market, systems are down more often

Nobody is happy!

••

35

Unplanned vs. failed

36

Unplanned vs. unique

37

DevOps!38

Fix communication

39

The feedback loopThrough configuration management and deploy automation, we can

deploy more often and reduce risk

The feedback loop gets shorter

Functionalities are rolled out with higher frequency

Systems are always in a known state

Changes to the system can be simulated and impacts calculated

••••

40

Sharing responsibility I

41

Sharing responsibility IIThe focus of DevOps is on automating the tasks performed during the

build, QA and deployment stage

The risk of deployment errors is reduced drastically by having a strong

automated testing suite, automated deployment workflow, well

defined/automated rollback process

42

Reduce failed changes

43

Reduce number of unique configs

44

Great!45

Now we'veheard aboutDevOps!46

Let's do it!47

It will save us!48

Failedexpectations

49

Most startwith the tools

50

Tools are asimportant

as...51

Internalculture!

52

C.A.M.SCulture : People over processes and tools. Software is made by and

for people.

Automation : Automation is essential for DevOps to gain quick

feedback.

Measurement : DevOps finds a specific path to measurement. Quality

and shared (or at least aligned) incentives are critical.

Sharing : Creates a culture where people share ideas, processes, and

tools.

53

How Devsand Ops canhelp eachother?54

TALK!55

TALK MORE!56

SHARE!57

SHAREEVERYTHING!

58

Hints fordevelopers59

Don't ignoreoperations!60

AvoidShadowOps

DevOoops••

61

LoggingWhenever you add new logging statement to your code, remember

that the guy on the other side can actually read it!

Logging level, message and frequency of logging can help or disturb

62

Bad logging messages

63

ConfigurationStructure application configuration

Backward­compatibile, good defaults, good naming

Do not mix technical and business configuration

•••

64

Bad parameter naming

65

MonitoringEmbed monitoring capabilities into your code

Know monitoring channels that your operations use: JMX, SNMP,

HTTP

••

66

Monitoring vitalsTechnical metrics:

CPU, Memory, Disk

Resource pools

Network I/O

Transactions/requests/operations per second/minute/hour

Database performance

Business metrics

••••••

67

Create dashboards!

68

Align early!69

Late alignment issues

70

Learn how to use provisioning softwarePuppet

Chef

Ansible

Salt

••••

71

Build a cloneSame OS version,

same components,

same configuration

as in production environemnt,

but running in virtual machine on your laptop or at some cloud provider

•••••

72

vagrant up

73

Similarity levelsDEV << QA <<< PROD

DEV < QA < PROD

DEV ~ QA ~ PROD

DEV = QA = PROD

1.

2.

3.

4.

74

Package managersSystem administrators know how to install standard OS packages

Just make one for them!

RPM, DEB, MSI... ­ it's not that hard to master!

•••

75

Artifact repositories

76

Automation over documentation

77

Automate everything repeatablebuild

release

deploy

test

backup

migration

restarts

•••••••

78

Hints foroperations79

Problem solvingGet developers to solve production problems

Look at how they did it

Post­mortem analysis

•••

80

MonitoringCreate dashboards! Many, but meaningful dashboards!

Analyze your data!

Create alerts!

•••

81

LoggingAggregate logs

Analyze logs

Rotate logs

Clean logs

••••

82

Learn how to use provisioning softwarePuppet

Chef

Ansible

Salt

••••

83

Infrastructureas code

84

Keep it in version control

85

Port changesback to DEV!

86

Prepare for disaster!Backups!

Test your backups. Seriously!

Capacity planning.

•••

87

Technologiesto follow

88

VirtualizationLocal: VirtualBox/VMWare/Parallels (+ Vagrant)

OS: Docker

Remote: Various cloud oferrings

•••

89

CloudsAWS

VMWare

Azure

Google Cloud

OpenStack

•••••

90

Infrastructure provisioningPuppet

Chef

Ansible

Salt

••••

91

Infrastructure monitoringLogstash

Graphite

Kibana

Grafana

Dashing

•••••

92

DevOps companiesSpotify

Netflix

Etsy

Twitter

Amazon

Google

GitHub

•••••••

93

Readingmaterial

94

The Phoenix Project

95

Continuous Delivery

96

Release It

97

Inviting Disaster

98

DevOps blogshttp://enterprisedevops.com/

http://itrevolution.com/devops­blog/••

99

Questions?100

Thank you!101

Have a niceflight!

102

Recommended