Rúben Barros - ISEP - 1100667@isep.ipp.pt
Orientador: Doutor Ângelo Martins
Development
Test/QA
Operations
Need for Change
Operations goals:
Development goals:
Fear of Change
Source: ITSM/Serena.com 2012 study of IT professionals
75% of Devs says that
Ops is a Roadblock
72% of Ops says that
Dev is not Supportive
Worldwide Network
Distributed computing resources
Empowers computer processing and scaling
Introduction
Patrick Debois
Agile Infrastructure
by: Andrew Shafer
10+ deploys per day:
Dev and Ops cooperation at Flickr
by: Paul Hammond & John Allspaw
DevOps (Development and Operations) describes a culture in which the departments of development, operations, and quality assurance collaborate to deliver software in a continuous manner. [Sharma and Coyne, 2015].
DevOps = New Mindset + New Tools + New Skills
Automate Everything
Source: Stephen Elliot, 2014 - DevOps and the Cost of Downtime: Fortune 1000 Best Practice Metrics Quantified
DevOps metrics from 20+ Fortune 1000 organizations:
What information can we capture and how can we formalize it so that we can improve how software teams practice DevOps?
Categories & Tools
|
|
|
||
---|---|---|---|---|
Europe | ✔ * 2 | ✔ * 2 | ✔ | ✔ * 3 |
Asia | ✔ * 4 | ✔ * 7 | ✔ | ✔ |
North America | ✔ * 4 | ✔ * 6 | ✔ * 6 | ✔ * 3 |
South America | ✔ | ✔ | ✘ | ✘ |
Africa | ✘ | ✘ | ✘ | ✘ |
Oceania | ✔ | ✔ * 2 | ✘ | ✘ |
MySQL | ✔ | ✔ | ✔ | ✘ |
PostgreSQL | ✔ | ✘ | ✘ | ✘ |
SQL Server | ✔ | ✔ | ✘ | ✘ |
MongoDB | ✘ (DynamoDB) | ✔ | ✘ (Cloud BigTable) | ✘ |
Free | 1 year (t2.micro) | 60 minutes/CPU daily | ✘ | ✘ |
|
|||
---|---|---|---|
x86 | ✔ | ✔ | ✔ |
x64 | ✔ | ✔ | ✔ |
ARM | ✔ | ✘ | ✔ |
Linux | ✔ | ✔ | ✔ |
Windows | ✔ | ✔ | Guest |
Solaris | ✔ | ✔ | Guest |
Full Virtualization | ✔ | ✔ | ✔ |
Paravirtualization | ✔ | ✔ (ESXi Hypervisor) | ✔ |
Live Migration | ✔ | ✔ | ✔ |
The development environment should be as similar as possible to the production environment
0 6 * * 1-5
"At 06:00 on Mon, Tue, Wed, Thu and Fri."
5 0 * 8 *
"At 00:05 every day in Aug."
Cron
Chronos
(Mesos, open-source cluster manager)
Minutes | Hours | Days | Months | Weekdays |
---|
Murphy's Law -"If anything can go wrong, it will go wrong."
Manual deployments are error prone.
Anyone in the team is able to deploy software.
Engineers spend more time developing.
Deploying to somewhere new is a matter of configuration.
This allows more frequent updates!
|
||||
---|---|---|---|---|
AWS, Azure, Google CP | ✔ | ✔ | ✔ | ✔ |
Script Language | Ruby | Puppet DSL Ruby DSL |
YAML | K\V (Json) |
Linux | ✔ | ✔ | ✔ | ✔ |
Windows | ✔ | ✔ | PowerShell 3.0 | ✘ |
Middleman Server | ✔ | ✔ | ✘ | ✔ |
Node Agent | ✔ | ✔ | ✘ (SSH) | ✘ |
Push Commands | ✔ (not natively) | ✔ (MCollective) | ✔ | ✔ |
Immutable Infrastructure | ✘ | ✘ | ✘ | ✔ |
Free plan | Unlimited nodes Services limited to 25 nodes |
Limited to 10 nodes | ✔ (no WebUI) | ✘ (Packer, Consul, Terraform) |
Basic Plan | $72 per node (min. of 20 nodes) |
120$ per node |
Ansible Tower $5,000 year for 100 nodes |
Price undisclosed |
systemd |
|
|||
---|---|---|---|---|
Host | Ubuntu | Redhat/Fedora | UNIX | UNIX |
Act as UNIX's init | ✔ | ✔ | ✘ | ✘ |
Log rotation | ✔ (logrotate + copytruncate) |
✔ | ✔ | ✔ |
Script Language | Shell | Shell | Configuration | Python |
Start several instances of a program | ✘ | ✘ | ✔ | ✔ |
GUI | ✘ | ✘ | ✘ | ✔ |
|
|||
---|---|---|---|
Linux | ✔ | ✔ | ✔ |
Windows | ✔ | ✔ | ✘ |
Mac OS | ✔ | ✔ | ✘ |
Client-side | Server Active Connection + Keep-Alive | - | Gossip Protocol |
Node Health Check | Ping | - | HTTP Ping |
Built with | Java | Go | Go |
Intrinsic support for multiple datacenters | ✘ | ✘ | ✔ |
Type | Goal |
---|---|
Server Monitoring | CPU, RAM, Disk Space, Network Traffic, ... |
Application Monitoring | Performance impact of: > Specific code segments; > SQL statements. |
R.U.M. | Application performance in real time |
Geolocation and load times of users | |
Javascript errors |
|
||||
---|---|---|---|---|
North America, Asia, Europe, Oceania | ✔ | ✔ | ✔ | ✔ |
South America | ✔ | ✔ | ✔ | ✘ |
Africa | ✘ | ✘ | ✔ | ✘ |
Application Monitoring | ✔ | ✔ | ✘ | ✘ |
Mobile Monitoring | ✔ | ✔ | ✘ | ✘ |
Server Monitoring | ✔ | ✔ | ✘ | ✘ |
R.U.M. | ✔ | ✔ | ✘ | ✔ |
Free account | ✘ | ✔ (1 day retention) | ✔ | ✘ |
HTTP Health Check | $0.20 (100 checks) | $99 (10k checks) | $20 (430k checks) | $13 (430k checks) |
R.U. sessions | $0.20 (500 sessions) | $199 (500k pageviews) | ✘ | ▲ (100k pageviews) |
|
|||
---|---|---|---|
Free Plan | ✔ (500Mb/day) | ✔ (200Mb/day + 7 days retention) | Open Source |
Basic Plan | $170/mo (1GB/day) | $55/mo (1GB/day + 7 days retention) | ✘ |
In-House | Splunk Enterprise Splunk Light |
✘ | ✔ |
Cloud based | Splunk Cloud | ✔ | ✔ (Outsource) |
Quasi-experiment
Pre-existing groups of developers and operators in an organization
Parameters | Type |
---|---|
Dev and Prod environment parity | Qualitative |
Reduce the time someone provisions the infrastructure | Minutes |
Reduce the time someone is testing the application | Minutes |
Reduce the time for the application to go from development to production | Days |
Reduce the time spent when deploying | Minutes |
Reduce downtime when deploying | Minutes |
Increase the number of deploys within a month | Quantitative |
Reduce the time to notice an error | Hours |
Reduce the time to find an error | Hours |
Reduce the concern for the well-being of the servers | Qualitative |
Increase the trust level when updating the application | Qualitative |
Composed of 2 people:
Metric | Observed Value |
---|---|
Time for the team to test the application | 90 minutes |
How do they notice errors | User feedback and manual testing |
Trust level when updating the application | 4 |
Motivation to learn DevOps | 1 |
Objectives | Results |
---|---|
Duration | 4 weeks |
Reunion | weekly |
Backend Service |
|
Frontend Service |
|
Infrastructure |
|
Provisioning and Virtualization |
|
Unit Testing |
|
End-to-end Testing |
|
Deployment |
|
Yet to implement
The team had no motivation and skills to adopt DevOps
Identification of base competencies
Objetive | Result |
---|---|
Collection of knowledge concerning DevOps | >Centralized information regarding the DevOps work cycle >Different market leader and innovative tools aggregated in categories |
Concerns regarding DevOps tools | Features, price, and learning curve |
Choosing the tools | Different answers for different scenarios |
Team improvement | ✘ |
Rúben Barros - ISEP - 1100667@isep.ipp.pt
Orientador: Doutor Ângelo Martins