SlideShare a Scribd company logo
How to eat a Whale? One byte at a
time…
Gettingsoftwaretoabetterplace
— Some Ideas and scar tissue
— Technology Problem
— Educational Problem
— Organizational Problem
1
Overall Situation:
— We have an existing system that works but needs new capabilities
— We want to move to Microservices/Containers,Comprehensive
Monitoring,Service Discovery,and Advanced Orchestration
— Need to get to stateless and immutable services
— We don't have time or are scared shitless of a rewrite
(for good reason)
2
Potentially Fatal Mistakes
— Underestimating what you have
— Trying to deliver too much at once
— Be Agile even if you weren't
originally
— Not thinking about code,state,and
data together
— Transient technology choices
— Run before walking-complexity
— You get better over time,plan for it
3
The “Strangler” Pattern
https://www.martinfowler.com/bliki/
StranglerApplication.html
— A less risky path to modernization by
slowly subsuming a legacy application
— I'm always surprised at how quickly
things move once the ball is rolling
4
Strangler in Action
5
First Steps:
1. Find a way to run old and new together
— And talk to each other…
2. Write new features in the new
framework
3. Pick stuff to change or replace
4. Put new tools in the context of existing
tools
6
A cloud for software not designed for the cloud
— VMware,Solaris (ZFS),Linux
Infrastructure
— Ruby,Python,...
— 50 Developers,12 Ops,11 geographical
regions and growing
— Decision to move (over time) to Docker
Containers and Kubernetes
— Probably 35-45% there now with the
trends clear
7
Technology Problem: Dealing with
technical change
— Developers don't like tools to change
— Release management process is
usually built into technical tools you're
already using
— Kube-native vs traditional CI/CD
— Fits new deployment paradigm
exactly
— Require re-education
— Hides complexity
8
Skytap CI/CD and Kube
— Started in 2015,at the time there were almost no native kube CI/CD
tools
— We deploy ~ 150 third-party and in-house services on ~ 800 machines
running in 11 georgraphical regions
— We have custom CI/CD tools built on top of Capistrano and Jenkins
— We always did source deployment without artifact generation,we'd
just update source to certain tag
— We went with integrating kubernetes with our existing CI/CD
framework
9
Our experience
— All new services since end of 2015 are
running on kubernetes
— All in-house high churn services
converted to kubernetes by now
— We spent around around 1.5
developer/years to adapt kubernetes in
our existing CI/CD
— We didn't have to change our release
process and it looks the same for both
engineers,QA and Operations
10
Testability of conversion
— Deployment tools and deployments
themselves are usually hardest to test
— If you have shared test or
preproduction environment and your
deployment failed,you can't get"clean"
reproduction on the same
environment
— Skytap built tool that nightly creates
test/preprod environments from
scratch
— We were able to release our
kubernetes conversion changes early
11
Educational problem
— Containers are still new enough that
pushback from core engineers can turn
company against them
— Good education and support for
developers would guarantee smooth
transition
— Retaining CI/CD tools can save bunch
of time regarding re-educating
developers
— New paradigms are still introduced
— Dedicated Slack channel for
12
Skytap experience
— Developers directly responsible for image generation,before they
split os image and dependency management with operations team
— Major areas Skytap Tools team had to teach developers were:
— Dependency management,pinning third-party dependencies to
exact versions during build
— Dockerfile syntax and caching of images for faster builds
— Implementing readiness and liveliness health checks for
kubernetes
— Estimating resource usage and setting correct requests and limits
13
Organizational problem
— Major challenge is creating a team that
can drive kubernetes changes
— Perfect team members would have:
1. Technical ability to understand
kubernetes internals
2. Architectural knowledge
understand existing release
management and deployment
practices and rationale
— Team should be driven enough not to
give up
14
Results
— At this point all the kubernetes enablement is mostly done
— Teams are moving to kubernetes at their own pace
— 2 people on the team consult rest of organization full time
15

More Related Content

What's hot

Enterprise DevOps Adoption LinkedIn
Enterprise DevOps Adoption LinkedInEnterprise DevOps Adoption LinkedIn
Enterprise DevOps Adoption LinkedIn
Gary Stafford
 
7 habits of effective DevOps dev ops il 2015 oded tamir
7 habits of effective DevOps dev ops il 2015 oded tamir7 habits of effective DevOps dev ops il 2015 oded tamir
7 habits of effective DevOps dev ops il 2015 oded tamir
AgileSparks
 

What's hot (20)

Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
 
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
 
DevOps
DevOpsDevOps
DevOps
 
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy EnvironmentsDOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
DOES14: Scott Prugh, CSG - DevOps and Lean in Legacy Environments
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...
DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...
DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...
 
Enterprise DevOps Adoption LinkedIn
Enterprise DevOps Adoption LinkedInEnterprise DevOps Adoption LinkedIn
Enterprise DevOps Adoption LinkedIn
 
DevOps Challenges and Best Practices
DevOps Challenges and Best PracticesDevOps Challenges and Best Practices
DevOps Challenges and Best Practices
 
Continuous Delivery Maturity Model
Continuous Delivery Maturity ModelContinuous Delivery Maturity Model
Continuous Delivery Maturity Model
 
SONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD PipelineSONY - Process as Code: Continuous Delivery of a CD Pipeline
SONY - Process as Code: Continuous Delivery of a CD Pipeline
 
7 habits of effective DevOps dev ops il 2015 oded tamir
7 habits of effective DevOps dev ops il 2015 oded tamir7 habits of effective DevOps dev ops il 2015 oded tamir
7 habits of effective DevOps dev ops il 2015 oded tamir
 
Scrum in dev ops teams - Presentation from Scrum Gathering Bangalore
Scrum in dev ops teams - Presentation from Scrum Gathering BangaloreScrum in dev ops teams - Presentation from Scrum Gathering Bangalore
Scrum in dev ops teams - Presentation from Scrum Gathering Bangalore
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
 
A Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps MetamorphosisA Blueprint for a Successful DevOps Metamorphosis
A Blueprint for a Successful DevOps Metamorphosis
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
How to get started with DevOps
How to get started with DevOps How to get started with DevOps
How to get started with DevOps
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
 
Ralph Jocham, effective agile - Scaled Scrum at Swiss Postal Services | Agile...
Ralph Jocham, effective agile - Scaled Scrum at Swiss Postal Services | Agile...Ralph Jocham, effective agile - Scaled Scrum at Swiss Postal Services | Agile...
Ralph Jocham, effective agile - Scaled Scrum at Swiss Postal Services | Agile...
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 

Similar to How to eat a whale?

Reflections on18monthfederaldevopstransformation2015
Reflections on18monthfederaldevopstransformation2015Reflections on18monthfederaldevopstransformation2015
Reflections on18monthfederaldevopstransformation2015
steelthread
 

Similar to How to eat a whale? (20)

Gopikrishanan
GopikrishananGopikrishanan
Gopikrishanan
 
Kylin Engineering Principles
Kylin Engineering PrinciplesKylin Engineering Principles
Kylin Engineering Principles
 
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
 
Docker in the Enterprise
Docker in the EnterpriseDocker in the Enterprise
Docker in the Enterprise
 
OpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander Dibbo
OpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander DibboOpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander Dibbo
OpenNebulaConf2015 1.07 Cloud for Scientific Computing @ STFC - Alexander Dibbo
 
What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?
 
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseChoosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
 
CM MatchPoint Agile Session
CM MatchPoint Agile SessionCM MatchPoint Agile Session
CM MatchPoint Agile Session
 
A blueprint for enterprise agility
A blueprint for enterprise agilityA blueprint for enterprise agility
A blueprint for enterprise agility
 
DevOps Workshops Fall 2016
DevOps Workshops Fall 2016DevOps Workshops Fall 2016
DevOps Workshops Fall 2016
 
Configuration Management Evolution at CERN
Configuration Management Evolution at CERNConfiguration Management Evolution at CERN
Configuration Management Evolution at CERN
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case study
 
DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together
 
Comp8 unit5 lecture_slides
Comp8 unit5 lecture_slidesComp8 unit5 lecture_slides
Comp8 unit5 lecture_slides
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
 
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
 
Continuous Deployment - Case Study at WIX
Continuous Deployment - Case Study at WIXContinuous Deployment - Case Study at WIX
Continuous Deployment - Case Study at WIX
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Reflections on18monthfederaldevopstransformation2015
Reflections on18monthfederaldevopstransformation2015Reflections on18monthfederaldevopstransformation2015
Reflections on18monthfederaldevopstransformation2015
 

More from Kelly Looney (7)

How do you eat a whale velocity 2017
How do you eat a whale   velocity 2017How do you eat a whale   velocity 2017
How do you eat a whale velocity 2017
 
How do you eat a whale? cloud expo 2017
How do you eat a whale?   cloud expo 2017How do you eat a whale?   cloud expo 2017
How do you eat a whale? cloud expo 2017
 
Continuous Delivery Decision points
Continuous Delivery Decision pointsContinuous Delivery Decision points
Continuous Delivery Decision points
 
The DevOps Journey at bwin.party
The DevOps Journey at bwin.partyThe DevOps Journey at bwin.party
The DevOps Journey at bwin.party
 
Austin product camp 11 Agile - doing vs being
Austin product camp 11   Agile - doing vs beingAustin product camp 11   Agile - doing vs being
Austin product camp 11 Agile - doing vs being
 
Product Pricing: What your pricing says about you
Product Pricing: What your pricing says about youProduct Pricing: What your pricing says about you
Product Pricing: What your pricing says about you
 
Product Negatives to Positives
Product Negatives to PositivesProduct Negatives to Positives
Product Negatives to Positives
 

Recently uploaded

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 

How to eat a whale?

  • 1. How to eat a Whale? One byte at a time… Gettingsoftwaretoabetterplace — Some Ideas and scar tissue — Technology Problem — Educational Problem — Organizational Problem 1
  • 2. Overall Situation: — We have an existing system that works but needs new capabilities — We want to move to Microservices/Containers,Comprehensive Monitoring,Service Discovery,and Advanced Orchestration — Need to get to stateless and immutable services — We don't have time or are scared shitless of a rewrite (for good reason) 2
  • 3. Potentially Fatal Mistakes — Underestimating what you have — Trying to deliver too much at once — Be Agile even if you weren't originally — Not thinking about code,state,and data together — Transient technology choices — Run before walking-complexity — You get better over time,plan for it 3
  • 4. The “Strangler” Pattern https://www.martinfowler.com/bliki/ StranglerApplication.html — A less risky path to modernization by slowly subsuming a legacy application — I'm always surprised at how quickly things move once the ball is rolling 4
  • 6. First Steps: 1. Find a way to run old and new together — And talk to each other… 2. Write new features in the new framework 3. Pick stuff to change or replace 4. Put new tools in the context of existing tools 6
  • 7. A cloud for software not designed for the cloud — VMware,Solaris (ZFS),Linux Infrastructure — Ruby,Python,... — 50 Developers,12 Ops,11 geographical regions and growing — Decision to move (over time) to Docker Containers and Kubernetes — Probably 35-45% there now with the trends clear 7
  • 8. Technology Problem: Dealing with technical change — Developers don't like tools to change — Release management process is usually built into technical tools you're already using — Kube-native vs traditional CI/CD — Fits new deployment paradigm exactly — Require re-education — Hides complexity 8
  • 9. Skytap CI/CD and Kube — Started in 2015,at the time there were almost no native kube CI/CD tools — We deploy ~ 150 third-party and in-house services on ~ 800 machines running in 11 georgraphical regions — We have custom CI/CD tools built on top of Capistrano and Jenkins — We always did source deployment without artifact generation,we'd just update source to certain tag — We went with integrating kubernetes with our existing CI/CD framework 9
  • 10. Our experience — All new services since end of 2015 are running on kubernetes — All in-house high churn services converted to kubernetes by now — We spent around around 1.5 developer/years to adapt kubernetes in our existing CI/CD — We didn't have to change our release process and it looks the same for both engineers,QA and Operations 10
  • 11. Testability of conversion — Deployment tools and deployments themselves are usually hardest to test — If you have shared test or preproduction environment and your deployment failed,you can't get"clean" reproduction on the same environment — Skytap built tool that nightly creates test/preprod environments from scratch — We were able to release our kubernetes conversion changes early 11
  • 12. Educational problem — Containers are still new enough that pushback from core engineers can turn company against them — Good education and support for developers would guarantee smooth transition — Retaining CI/CD tools can save bunch of time regarding re-educating developers — New paradigms are still introduced — Dedicated Slack channel for 12
  • 13. Skytap experience — Developers directly responsible for image generation,before they split os image and dependency management with operations team — Major areas Skytap Tools team had to teach developers were: — Dependency management,pinning third-party dependencies to exact versions during build — Dockerfile syntax and caching of images for faster builds — Implementing readiness and liveliness health checks for kubernetes — Estimating resource usage and setting correct requests and limits 13
  • 14. Organizational problem — Major challenge is creating a team that can drive kubernetes changes — Perfect team members would have: 1. Technical ability to understand kubernetes internals 2. Architectural knowledge understand existing release management and deployment practices and rationale — Team should be driven enough not to give up 14
  • 15. Results — At this point all the kubernetes enablement is mostly done — Teams are moving to kubernetes at their own pace — 2 people on the team consult rest of organization full time 15