microservices practitioner summit jan '15 - maximizing developer productivity in a...
TRANSCRIPT
MAXIMIZINGDeveloper Productivity
in a
Microservices EnvironmentTom Petr // @tpetr
Over 100 engineers
Over 1,600 deployables
~300 daily deploys
From git push to Productionin about 10 minutes
Engineers own the end-to-end success of their products.
They make most tech decisions;they wear the pagers.
We don’t have an “ops” team.
PaaS is all aboutempowering engineers.
Give them good toolsand a solid foundation so they
can focus on what they do best.
Microservices allow us to scale and move fast.
Maps well to our teams.
Minimizes merge conflicts.
Compartmentalizes failures.
✨ Everyone works on their own thing! ✨
AWS
Java
HTTP + JSON
Reliable Message Delivery
Make HTTP easy
Decouple code and configuration
@Inject @Named(“my.config.value”) private Value<String> myConfigValue;
myConfigValue.get();
Monitor everything!
Decouple build process from build system
Decouple frontend from backend
Automate deployments and infrastructure
Before:1. Develop locally2. Provision QA hardware3. Deploy via local Python script4. Provision PROD hardware5. Deploy via local Python script…6. Replace hardware at 4am
After:1. Develop locally2. Deploy to QA3. Test4. Deploy to PROD5. 🎉
Worry about some optimizations later
Invest inonboarding early
Things will fall through the cracks
0
100
200
300
400
Sept 2010 July 2011 May 2012 Mar 2013 Jan 2014 Nov 2014 Sept 2015
Unique Web APIs Active Developers
0
75
150
225
300
May 2012 Jan 2013 Sept 2013 May 2014 Jan 2015 Sept 2015
Average monthly commits per user
0
13
26
39
52
May 2013 Sep 2013 Jan 2014 May 2014 Sep 2014 Jan 2015 May 2015
Users operating infrastructure
0
200
400
600
800
May 2013 Sep 2013 Jan 2014 May 2014 Sep 2014 Jan 2015 May 2015
App Servers Mesos Slaves
You don’t have to build this all from scratch!
Thanks!
github.com/HubSpot