Upload
aestas-it
View
3.172
Download
0
Embed Size (px)
Citation preview
01
About me02
Andrey AdamovichBio: Developer, coach, speaker, author
Company: Aestas/IT (http://aestasit.com)
Email: [email protected]
Linkedin: http://www.linkedin.com/in/andreyadamovich
Lanyrd: http://lanyrd.com/profile/andreyadamovich
GitHub: https://github.com/aadamovich
SO: http://stackoverflow.com/users/162792/andreyadamovich
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 uptodate 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
Worst 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
Backwardcompatibile, 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
Postmortem 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
Amazon
GitHub
•••••••
93
Readingmaterial
94
The Phoenix Project
95
Continuous Delivery
96
Release It
97
Inviting Disaster
98
DevOps blogshttp://enterprisedevops.com/
http://itrevolution.com/devopsblog/••
99
Questions?100
Thank you!101
Have a niceflight!
102