Upload
chetan-desai
View
122
Download
0
Embed Size (px)
Citation preview
Size as an Advantage: How Big Enterprises can Move Fast Vinay Kumar (@sdvinay) Chetan Desai (@chetanddesai) Intuit
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?
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.
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
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
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
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
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.
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
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
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
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)
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
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
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
Thanks! � Vinay Kumar
� https://www.linkedin.com/in/sdvinay
� @sdvinay
� Chetan Desai � https://www.linkedin.com/in/chetanddesai
� @chetanddesai