SlideShare uma empresa Scribd logo
1 de 84
Baixar para ler offline
Scaling Up Lookout
R. Tyler Croy
github.com/rtyler
Hello everybody, welcome to Lookout! I'm excited to be up here talking about
one of my favorite subjects, scaling.
Not just scaling in a technical sense, but scaling *everything*. Scaling
people, scaling projects, scaling services, scaling hardware, everything
needs to scale up as your company grows, and I'm going to talk about what
we've been doing here.
First, I should talk about ->
this guy
Who I am.
- I've spoken a lot before about continuous deployment and automation,
generally via Jenkins. As part of the Jenkins community, I help run the
project infrastructure and pitch in as the marketing events coordinator,
cheerleader, blogger, and anything else that Kohsuke (the founder) doesn't
want to do.
Prior to Lookout I've worked almost entirely on consumer web applications,
not in a controllers and views sense, but rather building out backend
services and APIs to help handle growth
At Lookout, I've worked a lot on the Platform and Infrastructure team, before
promoted, or demoted depending on how you look at it, to the Engineering Lead
for ->
OMG
Serious Business
The Lookout for Business team
I could easily talk for over 30 minutes about some of the challenges building
business products presents, but suffice it to say, it's chock full of tough
problems to be solved.
Not many companies grow to the point to where they're building out multiple
product lines and revenue streams, but at Lookout we've now got Consumer,
Data Platform and now Business projects underway.
It's pretty exciting, but not what I want to talk about.
Let's start by ->
Let's travel back in time
Talking about the past at Lookout. I've been here for a couple years now, so
my timeline starts in ->
2011
2011
In the olden days, we did things pretty differently, in almost all aspects. I
joined as the sixth member of the server engineering team, a group that now
has 20-30 engineers today.
-> Coming in with a background in continuous deployment, the first thing that
caught my eye was
release process
Our release process was like running a gauntlet every couple weeks, and maybe
we'd ship at the end of those two weeks, maybe not. It was terribly
error-prone and really wasn't that great.
James ran the numbers for me at one point, and during this time-period we
were experiencing a "successful" deployment rate of ->
36%
of deployments failed
This means that 1/3 of the time when we would try to deploy code into
production, something would go wrong and we would have to rollback the
deploy and find out what went wrong.
Unfortunately, since it took us two or more weeks to get the release out, we
had on average ->
68
commits per deployment
68 commits per deployment, so one or more commits out of 68 could have caused
the failure.
After a rollback, we'd have to sift through all those commits and find the
bug, fix it and then re-deploy.
Because of this ->
62%
of deployments slipped
About 2/3rds of our deployments slipped their planned deployment dates. As an
engineering organization, we couldn't really tell the product owner when
changes were going to be live for customers with *any* confidence!
There were a myriad of reasons for these problems, including:
- lack of test automation (tests existed, not reliably running, using
Bitten with practically zero developer feedback)
- painful deployment process
To make things more difficult, all our back-end application code was in a ->
monorails
monolithic Rails application.
While it served it's purpose as the company was bootstrapping itself, but was
starting to show its age and prove challenging with more and more developers
interacting with the repository.
The team was at an interesting junction during this time, problems were
readily acknowledged with the way things were done, but finding the bandwidth
and buy-in to fix them were difficult to come by.
I think every startup that grows from 20 to 100 people goes through this
phase when it is in denial of it's own growing pains.
As more people joined the team, we pushed past the denial though and started working
on ->
Scaling the Workflow
Scaling the workflow. Our two-ish week release cycle was first on the
chopping block, we started with what became known as the ->
The Burgess Challenge
The Burgess Challenge. While having beers one night with James and the server team lead
Dave, James asked if we could fix our release process and get us from two-ish
week deployments to *daily* deployments, in ->
60 days
60 days. This was right at the end of the year, with Thanksgiving and
Christmas breaks coming up, we had some slack in the product pipeline and
decided to take the project on, and enter 2012 a different engineering org
than we had left 2011.
We started the process by bringing in some ->
New Tools
New tools, starting with ->
JIRA
JIRA. While I could rant on how much I hate JIRA, I think it's a better tool
than Pivotal Tracker was for us. Pivotal Tracker worked well when the team
and the backlog were much smaller, and less inter-dependent than they were in
late 2011.
Another tool we introduced was ->
Jenkins
Jenkins
- Talk about the amount of work just to get tests passing *consistently* in
Jenkins
- Big change in developer feedback on test runs compared to previously.
We also moved our code from Subversion into ->
Git + Gerrit
Git and Gerrit. Gerrit being a fantastic Git-based code-review tool. At the
time the security team was already using GitHub:Firewall for their work. We
discussed at great length whether the vanilla GitHub branch, pull request, merge
process would be sufficient for our needs and whether or not a "second tool"
like Gerrit would provide any value.
I could, and have in the past, given entire presentations on the benefits of
the Gerrit-based workflow, so I'll try to condense as much as possible into
this slide of our new code workflow ->
describe the new workflow, comparing it to the previous SVN based one (giant
commits, loose reviews, etc)
with Jenkins in the mix, our fancy Gerrit workflow had the added value of
ensuring all our commits passed tests before even entering the main tree.
We doing a much better job of consistently getting higher quality code into
the repository, but we still couldn't get it to production easily
Next on the fix-it-list was ->
The Release Process
The release process itself.
At the time our release process was a mix of manual steps and capistrano
tasks
- Automation through Jenkins
- Consistency with stages (no more update_faithful)
We've managed to change entire engineering organization such that ->
2%
of deployments failed
14
commits per deployment
3%
of deployments slipped
neat
Automating Internal Tooling
Introducing OpenStack to provide developer accessible internal VM management
Managing of Jenkins build slaves via Puppet
Introduction of MI Stages
OpenStack
If you're going to use a pre-tested commit workflow with an active
engineering organization such as ours, make sure plan ahead and have plenty
of hardware, or virtualized hardware for Jenkins
We've started to invest in OpenStack infrastructure and the jclouds plugin
for provisioning hosts to run all our jobs on.
With over a 100 build slaves now, we had to also make sure we had ->
Automated Build Slaves
Automated the management of those build slaves, nobody has time to hand-craft
hundreds of machines and ensure that they're consistent. Additionally, we
didn't want to waste developer time playing the "it's probably the machine's
fault" game every time a test failed.
Per-Developer Test Instances
Scaling the People
Not much to say here, every company is going to be different but you can't
just ignore that there are social and cultural challenges in taking a small
engineering team and growing to 100+ people.
- Transition from talking about the workflow to the tech stack
Scaling the Tech Stack
With regards to scaling the technical stack, I'm not going to spend too much
time on this since the other people here tonight will speak to this in more
detail than I probably should get into, but there are some major highlights
from a server engineering standpoint
Starting with the databases ->
Shard the Love
Global Derpbase woes
Moving more and more data out of non-sharded tables
Experimenting with various connection pooling mechanisms (worth mentioning?)
Undoing Rails Katamari
Diagnosing a big ball of mud
Migrating code onto the first service (Pushcart)
Slowly extracting more and more code from monorails, project which is ongoing
Modern JavaScript
I never thought this would have a big impact on scaling the technical stack,
but modernizing our front-end applications has helped tremendously
The JavaScript community has changed tremendously since the company was
founded, the ecosystem is much more mature and the web in general has
changed.
By rebuilding front-end code as single-page JavaScript applications (read:
Backbone, etc), we are able to reduce complexity tremendously on the backend
by turning everything into more or less JSON API services
Infinity and Beyond
The future at Lookout is going to be very interesting, both technically and
otherwise.
On the technical side of the things we're seeing more of a ->
Diversifying
the
technical portfolio
Diversified technical portfolio. Before the year is out, we'll have services
running running in Java, Ruby and even Node.
TO support more varied services, we're getting much more friendly ->
Hello JVM
with the JVM, either via JRuby or other JVM-based languages. More things are
being developed for and deployed on top of the JVM. Which offers some
interesting some interesting opportunities to change our workflow further
with things like:
- Remote debugging
- Live profiling
- Better parallelism
With an increasingly diverse technical stack, and stratified services
architecture, we're going to be faced with the technical and organization
challenges of operating ->
100 services
100 services at once.
When a team which owns a service is across the office, or across the country,
how does that mean for clearly expressing service dependencies, contracts and
interactions on an on-going basis?
With all these services floating around, how do we maintain our ->
Institutional Knowledge
Institutional knowledge amongst the engineering team
Growth means the size of our infrastructure exceeds the mental capacity of
singular engineers to understand each component in detail.
We're not alone in this adventure, we have much to learn from companies like
Amazon, or Netflix, who have traveled this path before.
I wish I could say that the hard work is over, and that it's just smooth
sailing and printing money from here on out, but that's not true.
There's still a lot of hard work to be done, and difficult problems to talk
about as we move into a much more service-oriented, and multi-product
architecture.
I'd like to ->
Thank you
Thank you for your time, if you have any questions for me, I'll be sticking
around afterwards.
Thank you

Mais conteúdo relacionado

Mais procurados

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsJulien Pivotto
 
Unleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudUnleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudAtlassian
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsPublicis Sapient Engineering
 
DevOps@Morpho for ParisDevOps - 2nd of December 2014
DevOps@Morpho for ParisDevOps - 2nd of December 2014DevOps@Morpho for ParisDevOps - 2nd of December 2014
DevOps@Morpho for ParisDevOps - 2nd of December 2014Jean-Charles JOREL
 
PuppetConf track overview: Windows
PuppetConf track overview: WindowsPuppetConf track overview: Windows
PuppetConf track overview: WindowsPuppet
 
Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019RackN
 
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialJeffrey Sica
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
Built to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolboxBuilt to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolboxKim Moir
 
Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsAtlassian
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approachEder Roger Souza
 
Dockercon2015 bamboo
Dockercon2015 bambooDockercon2015 bamboo
Dockercon2015 bambooSteve Smith
 
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiTap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiZeroTurnaround
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Marcin Grzejszczak
 
Rule jenkins with configuration as code
Rule jenkins with configuration as codeRule jenkins with configuration as code
Rule jenkins with configuration as codeChristian Rasp
 
Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with DockerHanoiJUG
 
Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Andres Almiray
 
Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Andres Almiray
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
 

Mais procurados (20)

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Unleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudUnleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket Cloud
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
 
DevOps@Morpho for ParisDevOps - 2nd of December 2014
DevOps@Morpho for ParisDevOps - 2nd of December 2014DevOps@Morpho for ParisDevOps - 2nd of December 2014
DevOps@Morpho for ParisDevOps - 2nd of December 2014
 
PuppetConf track overview: Windows
PuppetConf track overview: WindowsPuppetConf track overview: Windows
PuppetConf track overview: Windows
 
Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019Immutable Infrastructure & Rethinking Configuration - Interop 2019
Immutable Infrastructure & Rethinking Configuration - Interop 2019
 
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Git Power Routines
Git Power RoutinesGit Power Routines
Git Power Routines
 
Built to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolboxBuilt to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolbox
 
Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull Requests
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approach
 
Dockercon2015 bamboo
Dockercon2015 bambooDockercon2015 bamboo
Dockercon2015 bamboo
 
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiTap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
Rule jenkins with configuration as code
Rule jenkins with configuration as codeRule jenkins with configuration as code
Rule jenkins with configuration as code
 
Improve your Java Environment with Docker
Improve your Java Environment with DockerImprove your Java Environment with Docker
Improve your Java Environment with Docker
 
Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017Making the most of your gradle build - vJUG24 2017
Making the most of your gradle build - vJUG24 2017
 
Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017Making the most of your gradle build - BaselOne 2017
Making the most of your gradle build - BaselOne 2017
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 

Destaque

2015 Cybersecurity Predictions
2015 Cybersecurity Predictions2015 Cybersecurity Predictions
2015 Cybersecurity PredictionsLookout
 
How to (Safely) Cut the Cord With Your Old iPhone
How to (Safely) Cut the Cord With Your Old iPhoneHow to (Safely) Cut the Cord With Your Old iPhone
How to (Safely) Cut the Cord With Your Old iPhoneLookout
 
Trial by Fire: Security @ DEF CON 21
Trial by Fire: Security @ DEF CON 21Trial by Fire: Security @ DEF CON 21
Trial by Fire: Security @ DEF CON 21Lookout
 
Evolution of the Lookout Logo
Evolution of the Lookout LogoEvolution of the Lookout Logo
Evolution of the Lookout LogoLookout
 
Mobile Privacy
Mobile PrivacyMobile Privacy
Mobile PrivacyLookout
 
The Back to School Smartphone Guide
The Back to School Smartphone GuideThe Back to School Smartphone Guide
The Back to School Smartphone GuideLookout
 
3 Ways to Protect the Data in Your Apple Account
3 Ways to Protect the Data in Your Apple Account3 Ways to Protect the Data in Your Apple Account
3 Ways to Protect the Data in Your Apple AccountLookout
 
Spring Cleaning for Your Smartphone
Spring Cleaning for Your SmartphoneSpring Cleaning for Your Smartphone
Spring Cleaning for Your SmartphoneLookout
 
Relentless Mobile Threats to Avoid
Relentless Mobile Threats to AvoidRelentless Mobile Threats to Avoid
Relentless Mobile Threats to AvoidLookout
 
Automatic vehicle location
Automatic vehicle locationAutomatic vehicle location
Automatic vehicle locationSeminar Links
 
What Is Spyware?
What Is Spyware?What Is Spyware?
What Is Spyware?Lookout
 
automatic vehicle location
automatic vehicle locationautomatic vehicle location
automatic vehicle locationAkhil Kumar
 
Vehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniquesVehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniquesBharath Chapala
 

Destaque (15)

2015 Cybersecurity Predictions
2015 Cybersecurity Predictions2015 Cybersecurity Predictions
2015 Cybersecurity Predictions
 
How to (Safely) Cut the Cord With Your Old iPhone
How to (Safely) Cut the Cord With Your Old iPhoneHow to (Safely) Cut the Cord With Your Old iPhone
How to (Safely) Cut the Cord With Your Old iPhone
 
Trial by Fire: Security @ DEF CON 21
Trial by Fire: Security @ DEF CON 21Trial by Fire: Security @ DEF CON 21
Trial by Fire: Security @ DEF CON 21
 
Evolution of the Lookout Logo
Evolution of the Lookout LogoEvolution of the Lookout Logo
Evolution of the Lookout Logo
 
Mobile Privacy
Mobile PrivacyMobile Privacy
Mobile Privacy
 
The Back to School Smartphone Guide
The Back to School Smartphone GuideThe Back to School Smartphone Guide
The Back to School Smartphone Guide
 
3 Ways to Protect the Data in Your Apple Account
3 Ways to Protect the Data in Your Apple Account3 Ways to Protect the Data in Your Apple Account
3 Ways to Protect the Data in Your Apple Account
 
Spring Cleaning for Your Smartphone
Spring Cleaning for Your SmartphoneSpring Cleaning for Your Smartphone
Spring Cleaning for Your Smartphone
 
Relentless Mobile Threats to Avoid
Relentless Mobile Threats to AvoidRelentless Mobile Threats to Avoid
Relentless Mobile Threats to Avoid
 
Automatic vehicle location
Automatic vehicle locationAutomatic vehicle location
Automatic vehicle location
 
What Is Spyware?
What Is Spyware?What Is Spyware?
What Is Spyware?
 
automatic vehicle location
automatic vehicle locationautomatic vehicle location
automatic vehicle location
 
Spyware
SpywareSpyware
Spyware
 
spyware
spywarespyware
spyware
 
Vehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniquesVehicle tracking system using gps and gsm techniques
Vehicle tracking system using gps and gsm techniques
 

Semelhante a Scaling Up Lookout

2012 - A Release Odyssey
2012 - A Release Odyssey2012 - A Release Odyssey
2012 - A Release OdysseyErnest Mueller
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyMike Brittain
 
10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocolsVivek Parihar
 
Scaling Engineering with Docker
Scaling Engineering with DockerScaling Engineering with Docker
Scaling Engineering with DockerTom Leach
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...André Goliath
 
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing Stacey Whitney
 
Build an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateBuild an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateWill Button
 
Continuous Deployment to the Cloud - Topher Bullock
Continuous Deployment to the Cloud - Topher BullockContinuous Deployment to the Cloud - Topher Bullock
Continuous Deployment to the Cloud - Topher BullockVMware Tanzu
 
PuppetConf track overview: Case Studies
PuppetConf track overview: Case StudiesPuppetConf track overview: Case Studies
PuppetConf track overview: Case StudiesPuppet
 
Five Ways Automation Has Increased Application Deployment and Changed Culture
Five Ways Automation Has Increased Application Deployment and Changed CultureFive Ways Automation Has Increased Application Deployment and Changed Culture
Five Ways Automation Has Increased Application Deployment and Changed CultureXebiaLabs
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye codeKim Moir
 
Dev Ops @ Envato
Dev Ops @ EnvatoDev Ops @ Envato
Dev Ops @ EnvatoJohn Barton
 
Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador Labs
 
A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014Pete Cheslock
 
Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)Konstantin Gredeskoul
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsMike Brittain
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsHal Rottenberg
 

Semelhante a Scaling Up Lookout (20)

2012 - A Release Odyssey
2012 - A Release Odyssey2012 - A Release Odyssey
2012 - A Release Odyssey
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols10 Deployments a day - A brief on extreme release protocols
10 Deployments a day - A brief on extreme release protocols
 
Scaling Engineering with Docker
Scaling Engineering with DockerScaling Engineering with Docker
Scaling Engineering with Docker
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
 
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
Mage Titans USA 2016 - Jonathan Bownds - Magento CI and Testing
 
Build an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateBuild an Infra Product with AWS Fargate
Build an Infra Product with AWS Fargate
 
Continuous Deployment to the Cloud - Topher Bullock
Continuous Deployment to the Cloud - Topher BullockContinuous Deployment to the Cloud - Topher Bullock
Continuous Deployment to the Cloud - Topher Bullock
 
PuppetConf track overview: Case Studies
PuppetConf track overview: Case StudiesPuppetConf track overview: Case Studies
PuppetConf track overview: Case Studies
 
Micro services
Micro servicesMicro services
Micro services
 
Five Ways Automation Has Increased Application Deployment and Changed Culture
Five Ways Automation Has Increased Application Deployment and Changed CultureFive Ways Automation Has Increased Application Deployment and Changed Culture
Five Ways Automation Has Increased Application Deployment and Changed Culture
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
Dev Ops @ Envato
Dev Ops @ EnvatoDev Ops @ Envato
Dev Ops @ Envato
 
Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy
 
A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014
 
Yatoto-technical
Yatoto-technicalYatoto-technical
Yatoto-technical
 
Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data Analytics
 

Mais de Lookout

The New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
The New Assembly Line: 3 Best Practices for Building (Secure) Connected CarsThe New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
The New Assembly Line: 3 Best Practices for Building (Secure) Connected CarsLookout
 
Looking Forward and Looking Back: Lookout's Cybersecurity Predictions
Looking Forward and Looking Back: Lookout's Cybersecurity PredictionsLooking Forward and Looking Back: Lookout's Cybersecurity Predictions
Looking Forward and Looking Back: Lookout's Cybersecurity PredictionsLookout
 
5 Ways to Protect your Mobile Security
5 Ways to Protect your Mobile Security5 Ways to Protect your Mobile Security
5 Ways to Protect your Mobile SecurityLookout
 
Feds: You have a BYOD program whether you like it or not
Feds: You have a BYOD program whether you like it or notFeds: You have a BYOD program whether you like it or not
Feds: You have a BYOD program whether you like it or notLookout
 
Mobile Security: The 5 Questions Modern Organizations Are Asking
Mobile Security: The 5 Questions Modern Organizations Are AskingMobile Security: The 5 Questions Modern Organizations Are Asking
Mobile Security: The 5 Questions Modern Organizations Are AskingLookout
 
The New NotCompatible
The New NotCompatibleThe New NotCompatible
The New NotCompatibleLookout
 
When Android Apps Go Evil
When Android Apps Go EvilWhen Android Apps Go Evil
When Android Apps Go EvilLookout
 
Scaling Mobile Development
Scaling Mobile DevelopmentScaling Mobile Development
Scaling Mobile DevelopmentLookout
 
Visualizing Privacy
Visualizing PrivacyVisualizing Privacy
Visualizing PrivacyLookout
 
Hiring Hackers
Hiring HackersHiring Hackers
Hiring HackersLookout
 
3 Ways to Protect the Data in Your Google Account
3 Ways to Protect the Data in Your Google Account3 Ways to Protect the Data in Your Google Account
3 Ways to Protect the Data in Your Google AccountLookout
 
Mobile Security at the World Cup
Mobile Security at the World CupMobile Security at the World Cup
Mobile Security at the World CupLookout
 
Mobile Threats, Made to Measure
Mobile Threats, Made to MeasureMobile Threats, Made to Measure
Mobile Threats, Made to MeasureLookout
 
Security & Privacy at the Olympics
Security & Privacy at the OlympicsSecurity & Privacy at the Olympics
Security & Privacy at the OlympicsLookout
 
5 Types of Shady Apps
5 Types of Shady Apps5 Types of Shady Apps
5 Types of Shady AppsLookout
 
10 Beautiful Enterprise Products
10 Beautiful Enterprise Products10 Beautiful Enterprise Products
10 Beautiful Enterprise ProductsLookout
 
Hacking the Internet of Things for Good
Hacking the Internet of Things for GoodHacking the Internet of Things for Good
Hacking the Internet of Things for GoodLookout
 
What is a Mobile Threat?
What is a Mobile Threat?What is a Mobile Threat?
What is a Mobile Threat?Lookout
 
Dragon lady
Dragon ladyDragon lady
Dragon ladyLookout
 
Dragon Lady
Dragon LadyDragon Lady
Dragon LadyLookout
 

Mais de Lookout (20)

The New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
The New Assembly Line: 3 Best Practices for Building (Secure) Connected CarsThe New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
The New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
 
Looking Forward and Looking Back: Lookout's Cybersecurity Predictions
Looking Forward and Looking Back: Lookout's Cybersecurity PredictionsLooking Forward and Looking Back: Lookout's Cybersecurity Predictions
Looking Forward and Looking Back: Lookout's Cybersecurity Predictions
 
5 Ways to Protect your Mobile Security
5 Ways to Protect your Mobile Security5 Ways to Protect your Mobile Security
5 Ways to Protect your Mobile Security
 
Feds: You have a BYOD program whether you like it or not
Feds: You have a BYOD program whether you like it or notFeds: You have a BYOD program whether you like it or not
Feds: You have a BYOD program whether you like it or not
 
Mobile Security: The 5 Questions Modern Organizations Are Asking
Mobile Security: The 5 Questions Modern Organizations Are AskingMobile Security: The 5 Questions Modern Organizations Are Asking
Mobile Security: The 5 Questions Modern Organizations Are Asking
 
The New NotCompatible
The New NotCompatibleThe New NotCompatible
The New NotCompatible
 
When Android Apps Go Evil
When Android Apps Go EvilWhen Android Apps Go Evil
When Android Apps Go Evil
 
Scaling Mobile Development
Scaling Mobile DevelopmentScaling Mobile Development
Scaling Mobile Development
 
Visualizing Privacy
Visualizing PrivacyVisualizing Privacy
Visualizing Privacy
 
Hiring Hackers
Hiring HackersHiring Hackers
Hiring Hackers
 
3 Ways to Protect the Data in Your Google Account
3 Ways to Protect the Data in Your Google Account3 Ways to Protect the Data in Your Google Account
3 Ways to Protect the Data in Your Google Account
 
Mobile Security at the World Cup
Mobile Security at the World CupMobile Security at the World Cup
Mobile Security at the World Cup
 
Mobile Threats, Made to Measure
Mobile Threats, Made to MeasureMobile Threats, Made to Measure
Mobile Threats, Made to Measure
 
Security & Privacy at the Olympics
Security & Privacy at the OlympicsSecurity & Privacy at the Olympics
Security & Privacy at the Olympics
 
5 Types of Shady Apps
5 Types of Shady Apps5 Types of Shady Apps
5 Types of Shady Apps
 
10 Beautiful Enterprise Products
10 Beautiful Enterprise Products10 Beautiful Enterprise Products
10 Beautiful Enterprise Products
 
Hacking the Internet of Things for Good
Hacking the Internet of Things for GoodHacking the Internet of Things for Good
Hacking the Internet of Things for Good
 
What is a Mobile Threat?
What is a Mobile Threat?What is a Mobile Threat?
What is a Mobile Threat?
 
Dragon lady
Dragon ladyDragon lady
Dragon lady
 
Dragon Lady
Dragon LadyDragon Lady
Dragon Lady
 

Último

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 

Último (20)

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 

Scaling Up Lookout

  • 1. Scaling Up Lookout R. Tyler Croy github.com/rtyler
  • 2. Hello everybody, welcome to Lookout! I'm excited to be up here talking about one of my favorite subjects, scaling. Not just scaling in a technical sense, but scaling *everything*. Scaling people, scaling projects, scaling services, scaling hardware, everything needs to scale up as your company grows, and I'm going to talk about what we've been doing here. First, I should talk about ->
  • 4. Who I am. - I've spoken a lot before about continuous deployment and automation, generally via Jenkins. As part of the Jenkins community, I help run the project infrastructure and pitch in as the marketing events coordinator, cheerleader, blogger, and anything else that Kohsuke (the founder) doesn't want to do. Prior to Lookout I've worked almost entirely on consumer web applications, not in a controllers and views sense, but rather building out backend services and APIs to help handle growth At Lookout, I've worked a lot on the Platform and Infrastructure team, before promoted, or demoted depending on how you look at it, to the Engineering Lead for ->
  • 6. The Lookout for Business team I could easily talk for over 30 minutes about some of the challenges building business products presents, but suffice it to say, it's chock full of tough problems to be solved. Not many companies grow to the point to where they're building out multiple product lines and revenue streams, but at Lookout we've now got Consumer, Data Platform and now Business projects underway. It's pretty exciting, but not what I want to talk about. Let's start by ->
  • 8. Talking about the past at Lookout. I've been here for a couple years now, so my timeline starts in ->
  • 10. 2011 In the olden days, we did things pretty differently, in almost all aspects. I joined as the sixth member of the server engineering team, a group that now has 20-30 engineers today. -> Coming in with a background in continuous deployment, the first thing that caught my eye was
  • 12. Our release process was like running a gauntlet every couple weeks, and maybe we'd ship at the end of those two weeks, maybe not. It was terribly error-prone and really wasn't that great. James ran the numbers for me at one point, and during this time-period we were experiencing a "successful" deployment rate of ->
  • 14. This means that 1/3 of the time when we would try to deploy code into production, something would go wrong and we would have to rollback the deploy and find out what went wrong. Unfortunately, since it took us two or more weeks to get the release out, we had on average ->
  • 16. 68 commits per deployment, so one or more commits out of 68 could have caused the failure. After a rollback, we'd have to sift through all those commits and find the bug, fix it and then re-deploy. Because of this ->
  • 18. About 2/3rds of our deployments slipped their planned deployment dates. As an engineering organization, we couldn't really tell the product owner when changes were going to be live for customers with *any* confidence!
  • 19.
  • 20. There were a myriad of reasons for these problems, including: - lack of test automation (tests existed, not reliably running, using Bitten with practically zero developer feedback) - painful deployment process To make things more difficult, all our back-end application code was in a ->
  • 22. monolithic Rails application. While it served it's purpose as the company was bootstrapping itself, but was starting to show its age and prove challenging with more and more developers interacting with the repository.
  • 23.
  • 24. The team was at an interesting junction during this time, problems were readily acknowledged with the way things were done, but finding the bandwidth and buy-in to fix them were difficult to come by. I think every startup that grows from 20 to 100 people goes through this phase when it is in denial of it's own growing pains. As more people joined the team, we pushed past the denial though and started working on ->
  • 26. Scaling the workflow. Our two-ish week release cycle was first on the chopping block, we started with what became known as the ->
  • 28. The Burgess Challenge. While having beers one night with James and the server team lead Dave, James asked if we could fix our release process and get us from two-ish week deployments to *daily* deployments, in ->
  • 30. 60 days. This was right at the end of the year, with Thanksgiving and Christmas breaks coming up, we had some slack in the product pipeline and decided to take the project on, and enter 2012 a different engineering org than we had left 2011. We started the process by bringing in some ->
  • 33. JIRA
  • 34. JIRA. While I could rant on how much I hate JIRA, I think it's a better tool than Pivotal Tracker was for us. Pivotal Tracker worked well when the team and the backlog were much smaller, and less inter-dependent than they were in late 2011. Another tool we introduced was ->
  • 36. Jenkins - Talk about the amount of work just to get tests passing *consistently* in Jenkins - Big change in developer feedback on test runs compared to previously. We also moved our code from Subversion into ->
  • 38. Git and Gerrit. Gerrit being a fantastic Git-based code-review tool. At the time the security team was already using GitHub:Firewall for their work. We discussed at great length whether the vanilla GitHub branch, pull request, merge process would be sufficient for our needs and whether or not a "second tool" like Gerrit would provide any value. I could, and have in the past, given entire presentations on the benefits of the Gerrit-based workflow, so I'll try to condense as much as possible into this slide of our new code workflow ->
  • 39.
  • 40. describe the new workflow, comparing it to the previous SVN based one (giant commits, loose reviews, etc)
  • 41.
  • 42. with Jenkins in the mix, our fancy Gerrit workflow had the added value of ensuring all our commits passed tests before even entering the main tree. We doing a much better job of consistently getting higher quality code into the repository, but we still couldn't get it to production easily Next on the fix-it-list was ->
  • 44. The release process itself. At the time our release process was a mix of manual steps and capistrano tasks - Automation through Jenkins - Consistency with stages (no more update_faithful) We've managed to change entire engineering organization such that ->
  • 48. neat
  • 50. Introducing OpenStack to provide developer accessible internal VM management Managing of Jenkins build slaves via Puppet Introduction of MI Stages
  • 52. If you're going to use a pre-tested commit workflow with an active engineering organization such as ours, make sure plan ahead and have plenty of hardware, or virtualized hardware for Jenkins We've started to invest in OpenStack infrastructure and the jclouds plugin for provisioning hosts to run all our jobs on. With over a 100 build slaves now, we had to also make sure we had ->
  • 54. Automated the management of those build slaves, nobody has time to hand-craft hundreds of machines and ensure that they're consistent. Additionally, we didn't want to waste developer time playing the "it's probably the machine's fault" game every time a test failed.
  • 57. Not much to say here, every company is going to be different but you can't just ignore that there are social and cultural challenges in taking a small engineering team and growing to 100+ people.
  • 58.
  • 59. - Transition from talking about the workflow to the tech stack
  • 61. With regards to scaling the technical stack, I'm not going to spend too much time on this since the other people here tonight will speak to this in more detail than I probably should get into, but there are some major highlights from a server engineering standpoint Starting with the databases ->
  • 63. Global Derpbase woes Moving more and more data out of non-sharded tables Experimenting with various connection pooling mechanisms (worth mentioning?)
  • 65. Diagnosing a big ball of mud Migrating code onto the first service (Pushcart) Slowly extracting more and more code from monorails, project which is ongoing
  • 67. I never thought this would have a big impact on scaling the technical stack, but modernizing our front-end applications has helped tremendously The JavaScript community has changed tremendously since the company was founded, the ecosystem is much more mature and the web in general has changed. By rebuilding front-end code as single-page JavaScript applications (read: Backbone, etc), we are able to reduce complexity tremendously on the backend by turning everything into more or less JSON API services
  • 68.
  • 70. The future at Lookout is going to be very interesting, both technically and otherwise. On the technical side of the things we're seeing more of a ->
  • 72. Diversified technical portfolio. Before the year is out, we'll have services running running in Java, Ruby and even Node. TO support more varied services, we're getting much more friendly ->
  • 74. with the JVM, either via JRuby or other JVM-based languages. More things are being developed for and deployed on top of the JVM. Which offers some interesting some interesting opportunities to change our workflow further with things like: - Remote debugging - Live profiling - Better parallelism
  • 75.
  • 76. With an increasingly diverse technical stack, and stratified services architecture, we're going to be faced with the technical and organization challenges of operating ->
  • 78. 100 services at once. When a team which owns a service is across the office, or across the country, how does that mean for clearly expressing service dependencies, contracts and interactions on an on-going basis? With all these services floating around, how do we maintain our ->
  • 80. Institutional knowledge amongst the engineering team Growth means the size of our infrastructure exceeds the mental capacity of singular engineers to understand each component in detail.
  • 81.
  • 82. We're not alone in this adventure, we have much to learn from companies like Amazon, or Netflix, who have traveled this path before. I wish I could say that the hard work is over, and that it's just smooth sailing and printing money from here on out, but that's not true. There's still a lot of hard work to be done, and difficult problems to talk about as we move into a much more service-oriented, and multi-product architecture. I'd like to ->
  • 84. Thank you for your time, if you have any questions for me, I'll be sticking around afterwards. Thank you