16
Size as an Advantage: How Big Enterprises can Move Fast Vinay Kumar (@sdvinay) Chetan Desai (@chetanddesai) Intuit

Size as an Advantage: How Big Enterprises Can Move Fast

Embed Size (px)

Citation preview

Page 1: Size as an Advantage: How Big Enterprises Can Move Fast

Size as an Advantage: How Big Enterprises can Move Fast Vinay Kumar (@sdvinay) Chetan Desai (@chetanddesai) Intuit

Page 2: Size as an Advantage: How Big Enterprises Can Move Fast

Postulate: Startups are nimble, Enterprises are slow. � Lots to lose

�  Existing revenue and customers

� Legacy Technology and Systems �  Services with proprietary APIs

�  Data in silos

� Security Standards

Why?

Page 3: Size as an Advantage: How Big Enterprises Can Move Fast

Some things suck for service developers at our company �  Provisioning hardware

�  Configuring load balancers (pools, health checks, ACLs)

�  Integrating with authentication

�  Security Reviews/Standards

�  Versioning

�  Build and Deploy (getting bits onto servers, configuration management)

�  Differences between AWS and internal hosting

Time spent working on these problems is time not spent solving core customer problems.

Page 4: Size as an Advantage: How Big Enterprises Can Move Fast

Cu

sto

me

r Pr

ob

lem

-il

itie

s

Service 1

Cu

sto

me

r Pr

ob

lem

-il

itie

s

Service 2

Cu

sto

me

r Pr

ob

lem

-il

itie

s

Service 3

Cu

sto

me

r Pr

ob

lem

-il

itie

s

Service n

Page 5: Size as an Advantage: How Big Enterprises Can Move Fast

Now add node to the mix � Perfect use case for node:

�  New application services, implementing business logic and orchestrating backend services

� We’re good at doing the “-ilities” in Java, but it’s all new to us in node

Page 6: Size as an Advantage: How Big Enterprises Can Move Fast

Can we use our size as an advantage? Economies of Scale:

�  Dedicate a team to solve these problems once

�  Leverage solutions across many teams building services

We started with: •  Three new services, developed by independent teams •  A Service Platform team for solving common problems

Page 7: Size as an Advantage: How Big Enterprises Can Move Fast

Cu

sto

me

r Pr

ob

lem

-il

itie

s

Service 1

Platform

Cu

sto

me

r Pr

ob

lem

Service 2

Cu

sto

me

r Pr

ob

lem

Service 3

Cu

sto

me

r Pr

ob

lem

Page 8: Size as an Advantage: How Big Enterprises Can Move Fast

Dividing and Conquering “Collaboration via SLA”: Be explicit about which problems each team is responsible for solving

�  Platform team solves common problems once.

�  Service developers focus on their service’s functionality

Not every problem will be solved perfectly initially, but as we get better over time, all services get improvements.

Page 9: Size as an Advantage: How Big Enterprises Can Move Fast

Platform Design Strategy �  Identify & front-load long lead time items (slow enterprise) �  Abstraction from hardware, flexibility on where to place

services on an as-need basis. �  Wide-ranges & uncertainty on service’s footprint

�  Define an SLA so that: �  Build & deploy is “free” �  Logging, monitoring is “free”

Remove the pain from service developers

Page 10: Size as an Advantage: How Big Enterprises Can Move Fast

Scope of V1 TurboTax is a very seasonal business:

�  Major product release December 1 for new Tax Year

�  Customers arrive Jan-April

So we had to constrain our scope to deliver for this tax season:

�  Hosting in internal data centers (no AWS)

�  Three services (all dev teams in San Diego)

�  All services built on Node

�  No Docker or other container technology

Page 11: Size as an Advantage: How Big Enterprises Can Move Fast

Platform Implementation �  Long lead time identification:

�  Allocate hosting VMs up-front �  Load balance pool setup up-front

�  Flexibility: �  Allocate 20 ports per service across all platform VMs �  Multi-tenancy: where services live and # of instances is a

config change.

�  Provide solutions for SLA: �  Common health-check, logging, monitoring

Page 12: Size as an Advantage: How Big Enterprises Can Move Fast

Common Build & Deploy �  Template-based CI and Release build jobs

�  Deployment through CDD �  Allows developers to sign off

& promote new versions

�  Re-usable chef cookbooks for: �  Deployment of node service code

�  Upstart configuration (process management) �  Log management (logrotate & Splunk forwarding)

Page 13: Size as an Advantage: How Big Enterprises Can Move Fast

Reflections on V1 Live in production this week, can reflect on development of V1

Worked Well

�  Multi-tenancy

�  Up-front Load balancer configuration

�  Reusable Build & Deploy

Learned �  DevOps is

fundamental �  Lots of small

modules is ok �  Make it easy

to onboard

Needs Work �  Private npm

repo �  Share npm

modules �  Open

Source

Page 14: Size as an Advantage: How Big Enterprises Can Move Fast

Growing our node expertise Problem: Teams building services are learning node as they go. We envision many more teams building services on node. Opportunity: Center of excellence of node knowledge.

How do we share and build up teams? �  “Embed an expert” model �  “Meetingless collaboration” model �  Enterprises can afford to do both

Page 15: Size as an Advantage: How Big Enterprises Can Move Fast

Wrap Up: How do enterprises move fast. �  Identify and prepare for slow-moving tasks

�  Divide & Conquer – lots of expertise in a large size

�  Service developers have a tradeoff between control & conformity in a platform �  Create a platform that’s not “take it or leave it” �  Conformity made easy with open-collaboration

npm modules �  People like to adopt easy-to-use things

Page 16: Size as an Advantage: How Big Enterprises Can Move Fast

Thanks! � Vinay Kumar

�  https://www.linkedin.com/in/sdvinay

�  @sdvinay

� Chetan Desai �  https://www.linkedin.com/in/chetanddesai

�  @chetanddesai