SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
ELIMINATING
“OVER THE FENCE”
Blurring the lines between developers and operations
Eric Tucker
Maritime DevCon
ABOUT ME
● DevOps Engineer at Blue Spurs
● AWS Certified DevOps Engineer
● Specialize in infrastructure automation in AWS
● Previously a developer, moved to operations
team, then strived towards engaging both sides
THE “NO AGENDA” AGENDA
This will not be a talk where I sell you a product.
This will not be a talk about a cool new technology.
This will not be a talk focused on any single topic.
This will be a talk about:
○ lessons learned
○ technology & people
○ evolution of work culture
○ personal experience
○ pain points
○ mistakes
WHAT IS “DEVOPS”?
● You’ve probably heard it before
● It has countless meanings
● None of correct or incorrect
Any improvements done to move faster through the
software development lifecycle count as DevOps.
- Rob Brigham, Senior Product Manager, Amazon Web Services
- -
TRADITIONAL ORGANIZATIONAL CULTURE
● No communication between developers and
operations team members
● Developers have no visibility into environments
● Code “hand-off”
● Lots of things can be missed:
○ Configuration
○ New package dependencies
○ Other special instructions
● README:
○ Install this package
○ Copy this file, edit it to your settings
○ Run these commands
○ Copy the code here
○ Run these other commands
○ If this doesn’t work, try this…
● Oh, and those instructions have nothing
to do with deployment to test / prod
environments!
TRADITIONAL DEVELOPER SETUP
TRADITIONAL OPERATIONS SETUP
● Test/Prod server setup once:
○ Manually
○ Oh, and that person doesn’t work here anymore
○ And… it was never documented
● Deployment is a set of steps in a text
document
● Developer setup instructions don’t help:
○ Server is Redhat
○ Developers use Ubuntu (or worse, Windows)
SOLUTIONS
Changes to:
● Technology
● People
TECHNOLOGY
TECHNICAL #1: DON’T BLACK BOX
● Test and production environments
should not be a mystery
● Developers should know how these are configured
○ a document of manual instructions does not
count
● Let developers run the same setup scripts to
configure an environment (VM, Vagrant Box, etc)
○ Challenge with expensive software licenses
○ Don’t use Windows based software!
TECHNICAL #2: AUTOMATE
● Treat servers like cattle, not pets
● Infrastructure as code
● Use automation tools to configure servers:
○ Ex: Chef, Ansible, Puppet
○ Not a text document of instructions to manually
run!
● Automate infrastructure creation where possible
○ AWS CloudFormation & AWS Elastic Beanstalk
TECHNICAL #3: VIRTUALIZE
● Physical servers on a rack is no longer a viable provisioning
strategy.
● Every server should be virtualized
● Benefits:
○ Cost savings (higher host utilization)
○ Easy to provision more capacity (within host limits)
○ Snapshot backups
○ OS standardization
TECHNICAL #4: CONTAINERS
● You should be using containers
● Developers can run multi-tier application
on their machine
● Behaviour and deployment is the same
across environments - no mysteries or surprises
● Docker runs everywhere
TECHNICAL #5: MICROSERVICES
● Monolithic deployments are obsolete:
○ Blast radius
○ Downtime during deployment
○ Difficult to troubleshoot and/or rollback
● Build on the container mantra:
○ One container
○ One purpose
○ One deployment
○ All intercommunication done via APIs
TECHNICAL #6: CONTINUOUS INTEGRATION
New code should always be doing something:
● Constantly running builds
● Constantly running tests
● Constantly deploying
● Code pipelines
● Feedback loops (monitoring and alerting)
TECHNICAL #7: AUTOMATED TESTING
● Manual user testing slows down development and delivery
● Nearly all tests can be performed by a machine:
○ Unit testing
○ Integration testing
○ UI testing
○ Automated mobile testing
● Provide ways for developers to run all tests:
○ Earlier feedback loop reduces costs and errors
○ Developers catching issues earlier means fewer
erroneous commits
TECHNICAL CHANGES REVIEW
1. No black box servers
2. Automate EVERYTHING
3. Virtualize
4. Use containers
5. Microservices
6. Continuous integration
7. Automated testing
PEOPLE
PEOPLE #1: TWO PIZZA TEAMS
● Amazon team size rule
● If you can’t feed the team with two
pizzas, it’s too big
● If your project is too big for that
team, the work must be divided
● Smaller teams means more
collaboration
PEOPLE #2: ENGAGE EVERYONE
● Operations should be part of initial design phase
○ Aids in preparation for infrastructure provisioning
● Operations involved with [major] feature design
○ Fewer surprises
○ Fewer impossible promises
● Developers should be part of architecture design
○ Eliminate black box through knowledge sharing
○ Experience designing highly performant systems
● Developers should design monitoring solutions
○ They code it - they define failure
○ Work with operations to determine escalation procedures
PEOPLE #3: COMMUNICATION
● Operations should attend sprint planning / standups
● Developers should be involved with deployment
planning meetings
● Train developers in advanced concepts - ignorance leads
to over the fence or worse, resentment
● Operations should be aware of upcoming releases
(with more than 24 hours notice!)
PEOPLE #4: ROTATING TEAM MEMBERS
● When possible, rotate team members into and out of
both sides:
○ A developer can join operations for two weeks to get a
feel for how the wheels turn
○ An operations member can join development for two
weeks to understand the challenges they face
delivering client features
● Knowledge grows
● Greater respect for what the other goes through
● Team becomes more nimble
PEOPLE #5: NO SPECIALIZATION
● If things stop when one person takes vacation that’s a skill gap!
● No silo coding
● Shadowing
● Regular code reviews & pull requests
● Discuss any and all changes with other team members
PEOPLE #6: RESPONSIBILITY
● Perfect scenario: no developer and operations split
● By fostering a DevOps mantra you encourage every team
member to be responsible for every phase of delivery
● Friday night deployment?
○ You’re on the hook
○ Can’t throw it over the fence and say:
“it worked in development”
○ Better code (hopefully)
Questions?

Contenu connexe

Tendances

Continuous Integration In Php
Continuous Integration In PhpContinuous Integration In Php
Continuous Integration In PhpWilco Jansen
 
Happy ever afters with ci workflow
Happy ever afters with ci workflowHappy ever afters with ci workflow
Happy ever afters with ci workflowAlbina Tiupa
 
Constinuous Integration
Constinuous IntegrationConstinuous Integration
Constinuous IntegrationGabriel Araujo
 
DevOps Anti-Patterns
DevOps Anti-PatternsDevOps Anti-Patterns
DevOps Anti-PatternsFernando Ike
 
DevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own AdventureDevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own AdventureFabian Iannarella
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-levelLars Thorup
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the ContinuistPaul Blundell
 
Test Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShellTest Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShellHemmerling
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
How volkswagen used microservices and automation to develop self service solu...
How volkswagen used microservices and automation to develop self service solu...How volkswagen used microservices and automation to develop self service solu...
How volkswagen used microservices and automation to develop self service solu...Marcos Entenza Garcia
 
Behaviour Driven Development Hands-on
Behaviour Driven Development Hands-onBehaviour Driven Development Hands-on
Behaviour Driven Development Hands-onHemmerling
 
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus Binary Studio
 
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)Matheus Marabesi
 
Creating a continuous delivery pipeline with docker
Creating a continuous delivery pipeline with dockerCreating a continuous delivery pipeline with docker
Creating a continuous delivery pipeline with dockercontainershipio
 

Tendances (20)

OpenNTF Essentials
OpenNTF EssentialsOpenNTF Essentials
OpenNTF Essentials
 
Continuous Integration In Php
Continuous Integration In PhpContinuous Integration In Php
Continuous Integration In Php
 
Happy ever afters with ci workflow
Happy ever afters with ci workflowHappy ever afters with ci workflow
Happy ever afters with ci workflow
 
User story workflow (eng)
User story workflow (eng)User story workflow (eng)
User story workflow (eng)
 
Constinuous Integration
Constinuous IntegrationConstinuous Integration
Constinuous Integration
 
Develop 4 Developers
Develop 4 DevelopersDevelop 4 Developers
Develop 4 Developers
 
DevOps Anti-Patterns
DevOps Anti-PatternsDevOps Anti-Patterns
DevOps Anti-Patterns
 
DevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own AdventureDevOps is a Journey - Choose Your Own Adventure
DevOps is a Journey - Choose Your Own Adventure
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-level
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the Continuist
 
Test Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShellTest Driven Development (TDD) with Windows PowerShell
Test Driven Development (TDD) with Windows PowerShell
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
How volkswagen used microservices and automation to develop self service solu...
How volkswagen used microservices and automation to develop self service solu...How volkswagen used microservices and automation to develop self service solu...
How volkswagen used microservices and automation to develop self service solu...
 
Behaviour Driven Development Hands-on
Behaviour Driven Development Hands-onBehaviour Driven Development Hands-on
Behaviour Driven Development Hands-on
 
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
 
Fast end-to-end-tests
Fast end-to-end-testsFast end-to-end-tests
Fast end-to-end-tests
 
UPC Plone Testing Talk
UPC Plone Testing TalkUPC Plone Testing Talk
UPC Plone Testing Talk
 
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
 
Creating a continuous delivery pipeline with docker
Creating a continuous delivery pipeline with dockerCreating a continuous delivery pipeline with docker
Creating a continuous delivery pipeline with docker
 

Similaire à Eric tucker - Eliminating "Over the Fence"

Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Giovanni Toraldo
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software houseParis Apostolopoulos
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev opsMukta Aphale
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringSolano Labs
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsYosef Tavin
 
Successful DevOps implementation for small teams a true story
Successful DevOps implementation for small teams  a true storySuccessful DevOps implementation for small teams  a true story
Successful DevOps implementation for small teams a true storyJakub Paweł Głazik
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to itPetter Holmström
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptxHARSH MANVAR
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code cleanBrett Child
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectivelyAshutosh Agarwal
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersJon Peck
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven developmentAhmed El-Deeb
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Kris Buytaert
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingDrew Hannay
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Dockerbwinterton
 

Similaire à Eric tucker - Eliminating "Over the Fence" (20)

Dev ops
Dev opsDev ops
Dev ops
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Successful DevOps implementation for small teams a true story
Successful DevOps implementation for small teams  a true storySuccessful DevOps implementation for small teams  a true story
Successful DevOps implementation for small teams a true story
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to it
 
What is xp
What is xpWhat is xp
What is xp
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptx
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Agile and test driven development
Agile and test driven developmentAgile and test driven development
Agile and test driven development
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual Testing
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker
 

Dernier

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Dernier (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 

Eric tucker - Eliminating "Over the Fence"

  • 1. ELIMINATING “OVER THE FENCE” Blurring the lines between developers and operations Eric Tucker Maritime DevCon
  • 2. ABOUT ME ● DevOps Engineer at Blue Spurs ● AWS Certified DevOps Engineer ● Specialize in infrastructure automation in AWS ● Previously a developer, moved to operations team, then strived towards engaging both sides
  • 3. THE “NO AGENDA” AGENDA This will not be a talk where I sell you a product. This will not be a talk about a cool new technology. This will not be a talk focused on any single topic. This will be a talk about: ○ lessons learned ○ technology & people ○ evolution of work culture ○ personal experience ○ pain points ○ mistakes
  • 4. WHAT IS “DEVOPS”? ● You’ve probably heard it before ● It has countless meanings ● None of correct or incorrect Any improvements done to move faster through the software development lifecycle count as DevOps. - Rob Brigham, Senior Product Manager, Amazon Web Services - -
  • 5. TRADITIONAL ORGANIZATIONAL CULTURE ● No communication between developers and operations team members ● Developers have no visibility into environments ● Code “hand-off” ● Lots of things can be missed: ○ Configuration ○ New package dependencies ○ Other special instructions
  • 6. ● README: ○ Install this package ○ Copy this file, edit it to your settings ○ Run these commands ○ Copy the code here ○ Run these other commands ○ If this doesn’t work, try this… ● Oh, and those instructions have nothing to do with deployment to test / prod environments! TRADITIONAL DEVELOPER SETUP
  • 7. TRADITIONAL OPERATIONS SETUP ● Test/Prod server setup once: ○ Manually ○ Oh, and that person doesn’t work here anymore ○ And… it was never documented ● Deployment is a set of steps in a text document ● Developer setup instructions don’t help: ○ Server is Redhat ○ Developers use Ubuntu (or worse, Windows)
  • 10. TECHNICAL #1: DON’T BLACK BOX ● Test and production environments should not be a mystery ● Developers should know how these are configured ○ a document of manual instructions does not count ● Let developers run the same setup scripts to configure an environment (VM, Vagrant Box, etc) ○ Challenge with expensive software licenses ○ Don’t use Windows based software!
  • 11. TECHNICAL #2: AUTOMATE ● Treat servers like cattle, not pets ● Infrastructure as code ● Use automation tools to configure servers: ○ Ex: Chef, Ansible, Puppet ○ Not a text document of instructions to manually run! ● Automate infrastructure creation where possible ○ AWS CloudFormation & AWS Elastic Beanstalk
  • 12. TECHNICAL #3: VIRTUALIZE ● Physical servers on a rack is no longer a viable provisioning strategy. ● Every server should be virtualized ● Benefits: ○ Cost savings (higher host utilization) ○ Easy to provision more capacity (within host limits) ○ Snapshot backups ○ OS standardization
  • 13. TECHNICAL #4: CONTAINERS ● You should be using containers ● Developers can run multi-tier application on their machine ● Behaviour and deployment is the same across environments - no mysteries or surprises ● Docker runs everywhere
  • 14. TECHNICAL #5: MICROSERVICES ● Monolithic deployments are obsolete: ○ Blast radius ○ Downtime during deployment ○ Difficult to troubleshoot and/or rollback ● Build on the container mantra: ○ One container ○ One purpose ○ One deployment ○ All intercommunication done via APIs
  • 15. TECHNICAL #6: CONTINUOUS INTEGRATION New code should always be doing something: ● Constantly running builds ● Constantly running tests ● Constantly deploying ● Code pipelines ● Feedback loops (monitoring and alerting)
  • 16. TECHNICAL #7: AUTOMATED TESTING ● Manual user testing slows down development and delivery ● Nearly all tests can be performed by a machine: ○ Unit testing ○ Integration testing ○ UI testing ○ Automated mobile testing ● Provide ways for developers to run all tests: ○ Earlier feedback loop reduces costs and errors ○ Developers catching issues earlier means fewer erroneous commits
  • 17. TECHNICAL CHANGES REVIEW 1. No black box servers 2. Automate EVERYTHING 3. Virtualize 4. Use containers 5. Microservices 6. Continuous integration 7. Automated testing
  • 19. PEOPLE #1: TWO PIZZA TEAMS ● Amazon team size rule ● If you can’t feed the team with two pizzas, it’s too big ● If your project is too big for that team, the work must be divided ● Smaller teams means more collaboration
  • 20. PEOPLE #2: ENGAGE EVERYONE ● Operations should be part of initial design phase ○ Aids in preparation for infrastructure provisioning ● Operations involved with [major] feature design ○ Fewer surprises ○ Fewer impossible promises ● Developers should be part of architecture design ○ Eliminate black box through knowledge sharing ○ Experience designing highly performant systems ● Developers should design monitoring solutions ○ They code it - they define failure ○ Work with operations to determine escalation procedures
  • 21. PEOPLE #3: COMMUNICATION ● Operations should attend sprint planning / standups ● Developers should be involved with deployment planning meetings ● Train developers in advanced concepts - ignorance leads to over the fence or worse, resentment ● Operations should be aware of upcoming releases (with more than 24 hours notice!)
  • 22. PEOPLE #4: ROTATING TEAM MEMBERS ● When possible, rotate team members into and out of both sides: ○ A developer can join operations for two weeks to get a feel for how the wheels turn ○ An operations member can join development for two weeks to understand the challenges they face delivering client features ● Knowledge grows ● Greater respect for what the other goes through ● Team becomes more nimble
  • 23. PEOPLE #5: NO SPECIALIZATION ● If things stop when one person takes vacation that’s a skill gap! ● No silo coding ● Shadowing ● Regular code reviews & pull requests ● Discuss any and all changes with other team members
  • 24.
  • 25. PEOPLE #6: RESPONSIBILITY ● Perfect scenario: no developer and operations split ● By fostering a DevOps mantra you encourage every team member to be responsible for every phase of delivery ● Friday night deployment? ○ You’re on the hook ○ Can’t throw it over the fence and say: “it worked in development” ○ Better code (hopefully)