SlideShare a Scribd company logo
1 of 35
Download to read offline
Deepak Nadig
Distinguished Architect,Intuit
@deepak_nadig
September 30,2016
Journey to APIs and Microservices:
Best Practices
2
3
Consumers Small Businesses Accounting Professionals
Who we serve:
4
Where we started
Intuit’s journey began over 30 years ago when our founder Scott Cook sat at
his kitchen table and watched his wife as she balanced their checkbook and
thought there must be a better way.
Where we started:
5
Era of the CloudEra of Windows Era of WebEra of DOS
2010+1980s 1990s 2000s
Proven track record: capitalizing on change
Intuit Founded
Quicken
DOS
IPO
Quicken
Window
s
QuickBooks
DOS
TurboTax Online
QuickBooks
Windows
TurboTax Windows
QuickBooks
MobileQuickBooks Online
QuickBooks
Online Global
• Employees: 150
• Customers: 1.3M
• Revenue: $33M
• INTU + 1,400%, NASDAQ + ~500%
• Employees: 4,500
• Customers: 5.6M
• Revenue: $1.04B
• INTU - 20%, NASDAQ - 40%
• Employees: 7,700
• Customers: 50M
• Revenue: $3.1B
• INTU +160%, NASDAQ 90%
INTUshareprice
SnapTax
Competitor
A
Competitor A Competitor C
Competitor A
Competitor A
Competitor B
Competitor
D
Competitor E
6
Recognized as one of the world’s leading companies:
FORTUNE 100 BESTCOMPANIES TO WORK FOR - 15 Years in a Row
MOST ADMIRED: SOFTWARE INDUSTRY MOST INNOVATIVE COMPANIES
13 Years in a Row
2004 2005 2006 2007 2008 2009 2010 2011 2012 2015
WORLD’S MOST
ADMIRED
COMPANIES
2013 2014
2
Ranked
#
2016
2016
34
Ranked
#
7
# 1 Small Business Management.7700
employees.$4.7 Billion in revenue.
QuickBooks has more than 5 million customers.
Online is 1.5 million (41% growth YoY).
26K developers. 2500 third-party apps.15% of
customers use at least one third-party app.
Yearly, 100 million invoices; $1.5 trillion in
commerce; payroll for more than 1 million
employees (1/12 in US).
Small Business Owners spend 4 hours online
every day.
QuickBooks is in 112 countries.
Intuit and QuickBooks by the numbers
8
The capability of rapidly and cost efficiently adapting to changes
- Wikipedia
The ability of an organization to sense environment change and
to respond efficiently and effectively to it
- Gartner
Challenge for businesses today = Agility
9
Architecture Business Cycle
organization (who, together, fashioned the quality-attribute requirements), the technical
environment, and the architect’s experience.
In our adaptation of the ABC, the “influences” have been replaced by a set of forces that
collectively shape the requirements and, over time, the architect’s experience. The
extended ABC is depicted in Figure 1.
Figure 1: Extending the Architecture Business Cycle to Include All Design Forces
Notice that this extended ABC shows the requirements as being categorized into three
overlapping sets: quality-attribute requirements (e.g., the system should initialize itself
in 60 seconds), business requirements (e.g., version 1.0 must be available to our
resellers by August 1), and functional requirements (e.g., the system must provide
monthly sales summaries, broken down by region). These requirements, along with the
Software Engineering Institute http://sei.cmu.edu/
Architecture Business Cycle has impact on Architecture, Business and Culture
10
• Architecture journey
• Business journey
• Culture journey
• Current à Target ABC
S-Curve
Business
Performance
Time
Kickoff
High
Growth
Limits
Reached
ABC
ABC
ABC
(*) ABC = Architecture Business Cycle
11
Flexibility and Extensibility
Flexibility
Ease with which a system or component can be
modifiedfor usein applicationsor environmentsother
than thosefor which it was specificallydesigned
Extensibility
Ease with which a system or component can be
modifiedto increaseits functionalcapacity
IEEE Standard Glossary of Software Engineering Technology
12
Agility is enabled by Flexibility and Extensibility
APIs enable flexibility
Microservices enable extensibility
Why APIs and Microservices?
13
Journey begins as one of the following …
UI and
Business Logic
Web Browser
Web UI
Web Browser
Business Logic
Web UI
Web
Browser
Business Logic
Mobile UI
Mobile
Web UI
Web
Browser
Business
Logic
Mobile UI
Mobile
We need microservices!
Why are we still slow?
We need mobile!
No time to refactor
Develop feature N times
Just wantto tweak UI!
How do we organize?
Yay! Growingfast
One language
Slowing releases
14
Target State
API Definition Internal or External Universal
API Discovery Painful Developer Portal
API Design Project specific API as a Product
Architecture Tightly coupled SOA Loosely coupled SOA
Technology Proprietary Standards based
Integration Expensive TTFHW* < 5 min
(*) TTFHW = Time To First Hello World
15
Portfolio of APIs
aligned by business capabilities,
realized by isolated and encapsulated services,
that can be used by internal and external developers
to develop applicationsand integrations
quicklyand cost effectively
API Platform
16
API Platform Principles
API First
API Design
• Think API before experience
• API is a product
• Externalize-able
• Domain model & Integration scenarios
Developer Experience
• Easy to learn, integrate, diagnose
• Be the ‘developer’
API Quality Attributes
• Response-time
• Availability
Service Architecture
• Encapsulated, Isolated
• Craftsmanship
17
• Know the end user
• Work back from the developer and integration
• Treat 1st party = 2nd party = 3rd party
• Make it easy to integrate
• Zero impact to integration as API evolves
• Loosely coupled services
Elements in building an API Platform
Best Practices
API as a product
API design
Experience vs Capability API
API specification
API documentation
Service granularity
Service development
API testing
API status & support
Developer Portal
19
End users
Understand Segments
Their Experiences
And Expectations
Developers
Know Tools and processes
Their Integration needs
Be Transparent on usage
API as a Product
20
API Portfolio
Define bounded contexts/capabilities
Organize cohesive concepts
Use orthogonality or distance to separate
API Design
Use problem space for domain model
Consider all interactions – Events, Batch
Plan to dog food API (and events)
Share designs (apistylebook.com)
API Design
id
id
/invoicing /payments
/risk
DomainModel à API
• Entities, Attributes
• Verbs
• Relationships
• State machine
21
Capability API
What API teams deliver
Optimizedfor API provider
REST, Batch, …
Experience API
Personalized for end user experience
Make it self-service for developer
Plan for multiple- GraphQL, Groovy
Experience vs Capability API
API Facade
Invoicing Payments Customer
Experience API
Capability API
22
Many choices
OAS*, JSON Schema
Capability,Experience API
Automatic Docs, SDKgeneration
Maintain as code
GitHub, GitFlow(agile versioning)
Pull Request (Governance)
Share it
API Specification
(*) Open API Specification
23
By developers for developers
Developers contribute documentation
Technical writers are editors
Include in release criteria
Maintain as code
GitHub, GitFlow
Should be tested like code
Open it for contributions
API Documentation
24
Why you should care?
Extensibility
Granularity Principles
Team boundary
Cohesion
Security
Rate of change
Scalability
Service Granularity
Credit: Spotify Engineering Culture
25
Getting to microservices
Code complexity vs. change
Pick the first, complete, repeat
Team autonomy, diagnosingissues
New microservice
Plan for multiple languages
Plan for CI
Team (4) > Team (2) (45% more time)*
Service Development
Complexity
Low
High
High
Low
Least priority
Low priority
Impacting cycle
time
Easier to
decompose
Start here
Impacting cycle
time most
Decompose,
then refactor
Change
(*) The team scaling fallacy: Underestimating the declining efficiency of larger teams
26
API Testing
Test independently
API specificationcanhelp bootstrap
Complete scenarios (e.g. Webhooks)
Sandbox
Sandbox = Production
For internal and external developers
Support automatedtesting
API Testing
27
API Status
Developers need to know
Healthdashboard
Report status promptly on issues
Diagnosing issues
Treat developers alike
Provide API logs with messages
Be proactive using API analytics
API Status & Support
28
Complete developer experience
For 1st and 3rd party developers
Time To First Hello World < 5 min
Developer Portal
Culture
30
A way of thinking,behaving, or working
that exists in a place or organization
- Merriam-Webster
Behavior of humanswithin an organization and
the meaning that people attach to those behaviors.
- Wikipedia
What is culture?
31
Application development
Web page design Process
Site design/Portfolio Management
Engineers work with page designs
API development
API DesignProcess
API Portfolio Management
Engineers work with API designs
API Engineering Processes
App. Product
Manager
UED*
Application
Engineering
API Product
Manager
API
Designer
Service
Engineering
(*) UED = User Experience Design
32
Be aware of Conway’s law
Namespace != Organization
Reuse = Coupling
Agreements based on standards
Teams evolve at different rates
Use maturity model to measure
Organization Evolution
How do committees invent?
33
Build something in 24 hours
Internal hackathons
Usability testing for APIs
Pride of ownership for API teams
Developer advocacy
Hackathons
34
• Agility is a business imperative
• Agility comes from flexible and extensible
architectures
• APIs enable flexibility
• Microservices enable extensibility
• Architecture and culture evolve together
Summary
Thank You

More Related Content

What's hot

Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Nordic APIs
 
Getting Started with the WSO2 manager
Getting Started with the WSO2  managerGetting Started with the WSO2  manager
Getting Started with the WSO2 manager
WSO2
 

What's hot (20)

Tools and techniques for APIs
Tools and techniques for APIsTools and techniques for APIs
Tools and techniques for APIs
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)
 
API Management @ Haufe
API Management @ HaufeAPI Management @ Haufe
API Management @ Haufe
 
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin DunglasINTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
 
Api Gateway
Api GatewayApi Gateway
Api Gateway
 
Getting Started with the WSO2 manager
Getting Started with the WSO2  managerGetting Started with the WSO2  manager
Getting Started with the WSO2 manager
 
SOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and TacticsSOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and Tactics
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
 
What is an API Gateway?
What is an API Gateway?What is an API Gateway?
What is an API Gateway?
 
apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...
apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...
apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...
 
StrongLoop DevOps Overview
StrongLoop DevOps OverviewStrongLoop DevOps Overview
StrongLoop DevOps Overview
 
API Management 101: The New API Experience with WSO2
API Management 101: The New API Experience with WSO2API Management 101: The New API Experience with WSO2
API Management 101: The New API Experience with WSO2
 
API Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation SlidesAPI Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation Slides
 
apidays Paris 2019 - How Do Async APIs Survive in a Rest World? by Luca Ferra...
apidays Paris 2019 - How Do Async APIs Survive in a Rest World? by Luca Ferra...apidays Paris 2019 - How Do Async APIs Survive in a Rest World? by Luca Ferra...
apidays Paris 2019 - How Do Async APIs Survive in a Rest World? by Luca Ferra...
 
API Management Platform Technical Evaluation Framework
API Management Platform Technical Evaluation FrameworkAPI Management Platform Technical Evaluation Framework
API Management Platform Technical Evaluation Framework
 
WSO2 API Platform: Vision and Roadmap
WSO2 API Platform: Vision and RoadmapWSO2 API Platform: Vision and Roadmap
WSO2 API Platform: Vision and Roadmap
 
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
 
Architecting an Enterprise API Management Strategy
Architecting an Enterprise API Management StrategyArchitecting an Enterprise API Management Strategy
Architecting an Enterprise API Management Strategy
 

Viewers also liked

STC Summit 2015: API Documentation, an Example-Based Approach
STC Summit 2015: API Documentation, an Example-Based ApproachSTC Summit 2015: API Documentation, an Example-Based Approach
STC Summit 2015: API Documentation, an Example-Based Approach
Lois Patterson
 
QCon San Francisco 2011: Agility in eBay
QCon San Francisco 2011: Agility in eBayQCon San Francisco 2011: Agility in eBay
QCon San Francisco 2011: Agility in eBay
Deepak Nadig
 
Optimizing eBay - Improving customer experience at the world’s online marketp...
Optimizing eBay - Improving customer experience at the world’s online marketp...Optimizing eBay - Improving customer experience at the world’s online marketp...
Optimizing eBay - Improving customer experience at the world’s online marketp...
Deepak Nadig
 

Viewers also liked (19)

MicroServices for Java Developers
MicroServices for Java Developers MicroServices for Java Developers
MicroServices for Java Developers
 
Voxxed Belgrade 2016
Voxxed Belgrade 2016Voxxed Belgrade 2016
Voxxed Belgrade 2016
 
STC Summit 2015: API Documentation, an Example-Based Approach
STC Summit 2015: API Documentation, an Example-Based ApproachSTC Summit 2015: API Documentation, an Example-Based Approach
STC Summit 2015: API Documentation, an Example-Based Approach
 
QCon San Francisco 2011: Agility in eBay
QCon San Francisco 2011: Agility in eBayQCon San Francisco 2011: Agility in eBay
QCon San Francisco 2011: Agility in eBay
 
Kubernetes for Java Developers
 Kubernetes for Java Developers Kubernetes for Java Developers
Kubernetes for Java Developers
 
Optimizing eBay - Improving customer experience at the world’s online marketp...
Optimizing eBay - Improving customer experience at the world’s online marketp...Optimizing eBay - Improving customer experience at the world’s online marketp...
Optimizing eBay - Improving customer experience at the world’s online marketp...
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)
 
Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)
 
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
 
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
 
High Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices EnvironmentHigh Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices Environment
 
Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)
 
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
 
Microservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsMicroservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and Jenkins
 
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
 
Microservices Best Practices
Microservices Best Practices Microservices Best Practices
Microservices Best Practices
 

Similar to Journey to APIs and Microservices: Best Practices

Similar to Journey to APIs and Microservices: Best Practices (20)

The Need for Speed
The Need for SpeedThe Need for Speed
The Need for Speed
 
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
Pitney Bowes Uses Development and Testing Tools to Drive Early API Developmen...
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloud
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
 
APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...
APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...
APIdays Singapore 2019 - Business of APIs: From Integration to Monetisation, ...
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
 
Top 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementationTop 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementation
 
Octo API-days 2015
Octo API-days 2015Octo API-days 2015
Octo API-days 2015
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions
 
Modernize Development with Agile Engineering Practices
Modernize Development with Agile Engineering PracticesModernize Development with Agile Engineering Practices
Modernize Development with Agile Engineering Practices
 
INTERFACE by apidays 2023 - Digital Platforms, Taking API to production, Micr...
INTERFACE by apidays 2023 - Digital Platforms, Taking API to production, Micr...INTERFACE by apidays 2023 - Digital Platforms, Taking API to production, Micr...
INTERFACE by apidays 2023 - Digital Platforms, Taking API to production, Micr...
 
Accelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft AzureAccelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft Azure
 
Infrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsInfrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale Organizations
 
apidays Australia 2022 - Accelerating API Engineering, Jason D'Souza & Andrew...
apidays Australia 2022 - Accelerating API Engineering, Jason D'Souza & Andrew...apidays Australia 2022 - Accelerating API Engineering, Jason D'Souza & Andrew...
apidays Australia 2022 - Accelerating API Engineering, Jason D'Souza & Andrew...
 
Application Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedApplication Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and Succeed
 
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD PipelinesCollision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
 
João Emilio Santos Bento da Silva - Estratégia de APIs
João Emilio Santos Bento da Silva - Estratégia de APIsJoão Emilio Santos Bento da Silva - Estratégia de APIs
João Emilio Santos Bento da Silva - Estratégia de APIs
 
Discover - Innovating With Speed and Agility
Discover - Innovating With Speed and AgilityDiscover - Innovating With Speed and Agility
Discover - Innovating With Speed and Agility
 
É possível medir se um gigante é ágil?
É possível medir se um gigante é ágil?É possível medir se um gigante é ágil?
É possível medir se um gigante é ágil?
 

Recently uploaded

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 

Journey to APIs and Microservices: Best Practices

  • 1. Deepak Nadig Distinguished Architect,Intuit @deepak_nadig September 30,2016 Journey to APIs and Microservices: Best Practices
  • 2. 2
  • 3. 3 Consumers Small Businesses Accounting Professionals Who we serve:
  • 4. 4 Where we started Intuit’s journey began over 30 years ago when our founder Scott Cook sat at his kitchen table and watched his wife as she balanced their checkbook and thought there must be a better way. Where we started:
  • 5. 5 Era of the CloudEra of Windows Era of WebEra of DOS 2010+1980s 1990s 2000s Proven track record: capitalizing on change Intuit Founded Quicken DOS IPO Quicken Window s QuickBooks DOS TurboTax Online QuickBooks Windows TurboTax Windows QuickBooks MobileQuickBooks Online QuickBooks Online Global • Employees: 150 • Customers: 1.3M • Revenue: $33M • INTU + 1,400%, NASDAQ + ~500% • Employees: 4,500 • Customers: 5.6M • Revenue: $1.04B • INTU - 20%, NASDAQ - 40% • Employees: 7,700 • Customers: 50M • Revenue: $3.1B • INTU +160%, NASDAQ 90% INTUshareprice SnapTax Competitor A Competitor A Competitor C Competitor A Competitor A Competitor B Competitor D Competitor E
  • 6. 6 Recognized as one of the world’s leading companies: FORTUNE 100 BESTCOMPANIES TO WORK FOR - 15 Years in a Row MOST ADMIRED: SOFTWARE INDUSTRY MOST INNOVATIVE COMPANIES 13 Years in a Row 2004 2005 2006 2007 2008 2009 2010 2011 2012 2015 WORLD’S MOST ADMIRED COMPANIES 2013 2014 2 Ranked # 2016 2016 34 Ranked #
  • 7. 7 # 1 Small Business Management.7700 employees.$4.7 Billion in revenue. QuickBooks has more than 5 million customers. Online is 1.5 million (41% growth YoY). 26K developers. 2500 third-party apps.15% of customers use at least one third-party app. Yearly, 100 million invoices; $1.5 trillion in commerce; payroll for more than 1 million employees (1/12 in US). Small Business Owners spend 4 hours online every day. QuickBooks is in 112 countries. Intuit and QuickBooks by the numbers
  • 8. 8 The capability of rapidly and cost efficiently adapting to changes - Wikipedia The ability of an organization to sense environment change and to respond efficiently and effectively to it - Gartner Challenge for businesses today = Agility
  • 9. 9 Architecture Business Cycle organization (who, together, fashioned the quality-attribute requirements), the technical environment, and the architect’s experience. In our adaptation of the ABC, the “influences” have been replaced by a set of forces that collectively shape the requirements and, over time, the architect’s experience. The extended ABC is depicted in Figure 1. Figure 1: Extending the Architecture Business Cycle to Include All Design Forces Notice that this extended ABC shows the requirements as being categorized into three overlapping sets: quality-attribute requirements (e.g., the system should initialize itself in 60 seconds), business requirements (e.g., version 1.0 must be available to our resellers by August 1), and functional requirements (e.g., the system must provide monthly sales summaries, broken down by region). These requirements, along with the Software Engineering Institute http://sei.cmu.edu/ Architecture Business Cycle has impact on Architecture, Business and Culture
  • 10. 10 • Architecture journey • Business journey • Culture journey • Current à Target ABC S-Curve Business Performance Time Kickoff High Growth Limits Reached ABC ABC ABC (*) ABC = Architecture Business Cycle
  • 11. 11 Flexibility and Extensibility Flexibility Ease with which a system or component can be modifiedfor usein applicationsor environmentsother than thosefor which it was specificallydesigned Extensibility Ease with which a system or component can be modifiedto increaseits functionalcapacity IEEE Standard Glossary of Software Engineering Technology
  • 12. 12 Agility is enabled by Flexibility and Extensibility APIs enable flexibility Microservices enable extensibility Why APIs and Microservices?
  • 13. 13 Journey begins as one of the following … UI and Business Logic Web Browser Web UI Web Browser Business Logic Web UI Web Browser Business Logic Mobile UI Mobile Web UI Web Browser Business Logic Mobile UI Mobile We need microservices! Why are we still slow? We need mobile! No time to refactor Develop feature N times Just wantto tweak UI! How do we organize? Yay! Growingfast One language Slowing releases
  • 14. 14 Target State API Definition Internal or External Universal API Discovery Painful Developer Portal API Design Project specific API as a Product Architecture Tightly coupled SOA Loosely coupled SOA Technology Proprietary Standards based Integration Expensive TTFHW* < 5 min (*) TTFHW = Time To First Hello World
  • 15. 15 Portfolio of APIs aligned by business capabilities, realized by isolated and encapsulated services, that can be used by internal and external developers to develop applicationsand integrations quicklyand cost effectively API Platform
  • 16. 16 API Platform Principles API First API Design • Think API before experience • API is a product • Externalize-able • Domain model & Integration scenarios Developer Experience • Easy to learn, integrate, diagnose • Be the ‘developer’ API Quality Attributes • Response-time • Availability Service Architecture • Encapsulated, Isolated • Craftsmanship
  • 17. 17 • Know the end user • Work back from the developer and integration • Treat 1st party = 2nd party = 3rd party • Make it easy to integrate • Zero impact to integration as API evolves • Loosely coupled services Elements in building an API Platform
  • 18. Best Practices API as a product API design Experience vs Capability API API specification API documentation Service granularity Service development API testing API status & support Developer Portal
  • 19. 19 End users Understand Segments Their Experiences And Expectations Developers Know Tools and processes Their Integration needs Be Transparent on usage API as a Product
  • 20. 20 API Portfolio Define bounded contexts/capabilities Organize cohesive concepts Use orthogonality or distance to separate API Design Use problem space for domain model Consider all interactions – Events, Batch Plan to dog food API (and events) Share designs (apistylebook.com) API Design id id /invoicing /payments /risk DomainModel à API • Entities, Attributes • Verbs • Relationships • State machine
  • 21. 21 Capability API What API teams deliver Optimizedfor API provider REST, Batch, … Experience API Personalized for end user experience Make it self-service for developer Plan for multiple- GraphQL, Groovy Experience vs Capability API API Facade Invoicing Payments Customer Experience API Capability API
  • 22. 22 Many choices OAS*, JSON Schema Capability,Experience API Automatic Docs, SDKgeneration Maintain as code GitHub, GitFlow(agile versioning) Pull Request (Governance) Share it API Specification (*) Open API Specification
  • 23. 23 By developers for developers Developers contribute documentation Technical writers are editors Include in release criteria Maintain as code GitHub, GitFlow Should be tested like code Open it for contributions API Documentation
  • 24. 24 Why you should care? Extensibility Granularity Principles Team boundary Cohesion Security Rate of change Scalability Service Granularity Credit: Spotify Engineering Culture
  • 25. 25 Getting to microservices Code complexity vs. change Pick the first, complete, repeat Team autonomy, diagnosingissues New microservice Plan for multiple languages Plan for CI Team (4) > Team (2) (45% more time)* Service Development Complexity Low High High Low Least priority Low priority Impacting cycle time Easier to decompose Start here Impacting cycle time most Decompose, then refactor Change (*) The team scaling fallacy: Underestimating the declining efficiency of larger teams
  • 26. 26 API Testing Test independently API specificationcanhelp bootstrap Complete scenarios (e.g. Webhooks) Sandbox Sandbox = Production For internal and external developers Support automatedtesting API Testing
  • 27. 27 API Status Developers need to know Healthdashboard Report status promptly on issues Diagnosing issues Treat developers alike Provide API logs with messages Be proactive using API analytics API Status & Support
  • 28. 28 Complete developer experience For 1st and 3rd party developers Time To First Hello World < 5 min Developer Portal
  • 30. 30 A way of thinking,behaving, or working that exists in a place or organization - Merriam-Webster Behavior of humanswithin an organization and the meaning that people attach to those behaviors. - Wikipedia What is culture?
  • 31. 31 Application development Web page design Process Site design/Portfolio Management Engineers work with page designs API development API DesignProcess API Portfolio Management Engineers work with API designs API Engineering Processes App. Product Manager UED* Application Engineering API Product Manager API Designer Service Engineering (*) UED = User Experience Design
  • 32. 32 Be aware of Conway’s law Namespace != Organization Reuse = Coupling Agreements based on standards Teams evolve at different rates Use maturity model to measure Organization Evolution How do committees invent?
  • 33. 33 Build something in 24 hours Internal hackathons Usability testing for APIs Pride of ownership for API teams Developer advocacy Hackathons
  • 34. 34 • Agility is a business imperative • Agility comes from flexible and extensible architectures • APIs enable flexibility • Microservices enable extensibility • Architecture and culture evolve together Summary