microservices practitioner summit jan '15 - maximizing developer productivity in a...

36
MAXIMIZING Developer Productivity in a Microservices Environment Tom Petr // @tpetr

Upload: datawire

Post on 16-Apr-2017

624 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

MAXIMIZINGDeveloper Productivity

in a

Microservices EnvironmentTom Petr // @tpetr

Page 2: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Over 100 engineers

Over 1,600 deployables

~300 daily deploys

From git push to Productionin about 10 minutes

Page 3: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

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.

Page 4: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

PaaS is all aboutempowering engineers.

Give them good toolsand a solid foundation so they

can focus on what they do best.

Page 5: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Microservices allow us to scale and move fast.

Page 6: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Maps well to our teams.

Minimizes merge conflicts.

Compartmentalizes failures.

Page 7: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

✨ Everyone works on their own thing! ✨

Page 8: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

AWS

Java

HTTP + JSON

Page 9: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Reliable Message Delivery

Page 10: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Make HTTP easy

Page 11: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Decouple code and configuration

Page 12: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

@Inject @Named(“my.config.value”) private Value<String> myConfigValue;

myConfigValue.get();

Page 13: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Monitor everything!

Page 14: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 15: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 16: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Decouple build process from build system

Page 17: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Decouple frontend from backend

Page 18: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Automate deployments and infrastructure

Page 19: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

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

Page 20: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

After:1. Develop locally2. Deploy to QA3. Test4. Deploy to PROD5. 🎉

Page 21: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 22: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 23: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 24: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 25: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 26: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Worry about some optimizations later

Page 27: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Invest inonboarding early

Page 28: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 29: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Things will fall through the cracks

Page 30: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot
Page 31: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

0

100

200

300

400

Sept 2010 July 2011 May 2012 Mar 2013 Jan 2014 Nov 2014 Sept 2015

Unique Web APIs Active Developers

Page 32: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

0

75

150

225

300

May 2012 Jan 2013 Sept 2013 May 2014 Jan 2015 Sept 2015

Average monthly commits per user

Page 33: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

0

13

26

39

52

May 2013 Sep 2013 Jan 2014 May 2014 Sep 2014 Jan 2015 May 2015

Users operating infrastructure

Page 34: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

0

200

400

600

800

May 2013 Sep 2013 Jan 2014 May 2014 Sep 2014 Jan 2015 May 2015

App Servers Mesos Slaves

Page 35: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

You don’t have to build this all from scratch!

Page 36: Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity in a Microservices Environment - Thomas Petr, Hubspot

Thanks!

github.com/HubSpot