SlideShare a Scribd company logo
1 of 20
© 2013 Cloud Technology Partners, Inc. / Confidential
1
© 2013 Cloud Technology Partners, Inc. / Confidential
2
Erik.Sebesta@cloudtp.com / Chief Architect and Technology Officer (CATO) / June 12, 2013
API Design for the New Class of
Cloud Enterprise Applications
© 2013 Cloud Technology Partners, Inc. / Confidential
3
{
“Introduction” : “Enterprise Application Maturity Model”,
“Funding” : “Business Case”,
“Design” : “14 API Best Practices”,
“Usage” : “Facilitating Adoption”,
“Management” : “Governance”,
“Audience” : “Questions?”
}
Get Http://cloudtp.com/agenda/06-12-2013
© 2013 Cloud Technology Partners, Inc. / Confidential
4
Four Stages of Line of Business Application Service Maturity
“Introduction” : “The Enterprise Application Maturity Model”
Current application
spaghetti to cloud spaghetti.
No code changes
④ External Shared Services
Deliver and leverage external
shared services
(Advanced PaaS)
③ Portfolio Refactoring② Application Refactoring① Virtualization
Refactor individual applications
into cloud services. Remediate
known violations in current
code and platform
Consolidate portfolio to take
advantage of internal shared
business and technical cloud
services (Basic PaaS)
© 2013 Cloud Technology Partners, Inc. / Confidential
5
“Funding” : “Business Case”
“IT projects are born if
the pain today or in the future
is greater than
the perceived pain of transition”
Chris Perretta
CIO, State Street Bank
© 2013 Cloud Technology Partners, Inc. / Confidential
6
• High cost, tightly coupled, heterogeneous systems
• Redundant functionality
• Lack of agility to innovate
• Slow time to market
• Rising maintenance costs
• Rising regulatory and compliance costs, multiplied by
– heterogeneous systems
– geographic expansion / local laws
• Falling IT budgets
The Pain Today
© 2013 Cloud Technology Partners, Inc. / Confidential
7
Industry-Specific Core and Cross-Business Commodity Shared Services
The Future
To get appropriate attention and funding, successful API programs start
with creating customer or partner focused external shared services.
April 30, 2013
Source: John Musser, Programmable Web
http://blog.programmableweb.com/2012/05/23/which-
apis-are-handling-billions-of-requests-per-day/
© 2013 Cloud Technology Partners, Inc. / Confidential
8
• Be a pessimist – assume everything fails and design backwards.
Love your chaos monkey.
• Put your eggs in multiple baskets – leverage multiple
providers, geographic regions and availability zones to
accommodate for local availability issues. Design for portability.
• Think efficiency - inefficient designs will not scale. Efficient
designs become cheaper as they scale.
• Be paranoid – design for defense in depth and zero tolerance by
building in security at every level and between every component.
Trust no one.
• But not too paranoid – not every application needs the
platinum solution. Architect for different SLA’s, service tiers and
security levels
“Design” : “14 API Best Practices” Part 1/3
© 2013 Cloud Technology Partners, Inc. / Confidential
9
• Divide and conquer - pursue data partitioning and
parallelization wherever possible. Make components as small
and portable as possible including multiple small database
instantiations per services package. Use load balancing
between layers
• Think elasticity - increasing resources should result in a
proportional increase in performance and scalability.
Decreasing resources should have the same effect.
• Hands Off - leverage automation to increase
consistency, quality and reduce response times
• Be dynamic - enable dynamic configuration changes like
autoscaling, failure recovery and resource discovery to adapt to
changing environments, faults and workload volumes
“Design” : “14 API Best Practices” Part 2/3
© 2013 Cloud Technology Partners, Inc. / Confidential
10
• Stay close – reduce latency by moving highly interactive
components and data near each other.
• Don’t talk too much – design service granularity to
minimize chatty network traffic
• Keep it loose - loose coupling, service interfaces, separation
of concerns, abstraction and well defined API’s deliver
flexibility
• Dress for success – separate UI services from functional
services. Provide custom look and feel for popular device
displays
• Be cost aware – autoscaling, data transmission, virtual
software licenses, reserved instances, etc. can rapidly increase
your monthly charges. Monitor your usage closely.
“Design” : “14 API Best Practices” Part 3/3
© 2013 Cloud Technology Partners, Inc. / Confidential
11
Patterns in Successful APIs and API Programs
“Usage” : “Facilitating Adoption”
• Clear API ownership and strong internal evangelism
• Early and consistent vision, strategy, business cases and metrics
• Usage and security policies designed up front. I.e. Content level authorization
• Compelling differentiated API
• Dedicated transformational support staff
– APIs designed for adoption. Easily found by developer community
– Frequent engagement with the developer community
– Clear API documentation to facilitate proper use, avoid misuse
– Easy process to receive feedback to iterate quickly
– Full cloud service development lifecycle (Cloud SDLC) operational support
• Dynamically scalable underlying PaaS and IaaS
Includes some content from: Apigee
http://www.slideshare.net/apigee/10-patterns-in-successful-api-programs-2-8081076
© 2013 Cloud Technology Partners, Inc. / Confidential
12
Provide Great Developer Experience (DX)
Source: John Musser, Programmable Web
http://www.slideshare.net/jmusser/what-makes-a-great-open-api?from_search=2
Plus proactive marketing to potential early adopters, SLAs for service
packages and product-level engineering support
© 2013 Cloud Technology Partners, Inc. / Confidential
13
“Management” : “Governance”
Source: John Musser, Programmable Web http://www.slideshare.net/jmusser/what-makes-a-great-open-api?from_search=2
© 2013 Cloud Technology Partners, Inc. / Confidential
14
Governance must also recognize and reward
“Management” : “Governance”
Internal teams and partners who create highly valuable shared services
• Public praise
• Compensation commensurate with value created
Internal teams, customers, and partners who reuse shared services
• Praise for adoption by internal business units
• Incentives for adoption by internal business units
• Incentives for adoption by customers and partners
© 2013 Cloud Technology Partners, Inc. / Confidential
15
“Audience” : “Questions?”
Erik.Sebesta@cloudtp.com / Chief Architect and Technology Officer (CATO) / June 12, 2013
© 2013 Cloud Technology Partners, Inc. / Confidential
16
Appendix
© 2013 Cloud Technology Partners, Inc. / Confidential
17
Netflix Blog
http://techblog.netflix.com/
What Makes a Great Open API; John Musser, Programmable Web
http://www.slideshare.net/jmusser/what-makes-a-great-open-api?from_search=2
Designing Beautiful REST and JSON APIs; Les Hazlewood, StormPath
http://www.slideshare.net/stormpath/rest-jsonapis?from_search=12
Developer Support Handbook; Pamela Fox, Google
http://developer-support-handbook.appspot.com/intro.html
Suggested Resources for More Details
Great APIs to Emulate list from: Apigee
http://www.slideshare.net/apigee/10-patterns-in-successful-api-programs-2-8081076
© 2013 Cloud Technology Partners, Inc. / Confidential
18
API Protocols
REST vs. SOAP
REST is easier to understand and code against. Less plumbing. Faster
innovation. Http protocol is more portable. SOAP hosted over TCP or pipes
protocols may not translate well between vendor stacks.
© 2013 Cloud Technology Partners, Inc. / Confidential
19
XML= Red, JSON= Blue
XML vs. JSON
Data from Google Trends, June 4, 2013, Internet and Telecom category
© 2013 Cloud Technology Partners, Inc. / Confidential
20

More Related Content

What's hot

What's hot (20)

Cloud Foundry Overview for GITPRO 2013
Cloud Foundry Overview for GITPRO 2013Cloud Foundry Overview for GITPRO 2013
Cloud Foundry Overview for GITPRO 2013
 
Microservice Lifecycle Demo Presentation
Microservice Lifecycle Demo PresentationMicroservice Lifecycle Demo Presentation
Microservice Lifecycle Demo Presentation
 
Microservices Best Practices
Microservices Best Practices Microservices Best Practices
Microservices Best Practices
 
5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices
 
Highly Available and Resilient Multi-Site Deployments Using Spinnaker
Highly Available and Resilient Multi-Site Deployments Using SpinnakerHighly Available and Resilient Multi-Site Deployments Using Spinnaker
Highly Available and Resilient Multi-Site Deployments Using Spinnaker
 
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoftHybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
 
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons LearnedCloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
Cloud Foundry Summit 2015: A Year of Innovation: Cloud Foundry Lessons Learned
 
The Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led ConnectivityThe Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led Connectivity
 
Code to Cloud: Three Trends for Faster, Safer Continuous Delivery
Code to Cloud: Three Trends for Faster, Safer Continuous DeliveryCode to Cloud: Three Trends for Faster, Safer Continuous Delivery
Code to Cloud: Three Trends for Faster, Safer Continuous Delivery
 
Defining Microservices
Defining MicroservicesDefining Microservices
Defining Microservices
 
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
 
Vancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff SessionVancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff Session
 
Spring Cloud on Kubernetes
Spring Cloud on KubernetesSpring Cloud on Kubernetes
Spring Cloud on Kubernetes
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy Modernization
 
PaaS for App Dev and Deployment
PaaS for App Dev and DeploymentPaaS for App Dev and Deployment
PaaS for App Dev and Deployment
 
Deloitte & Mulesoft : The Right Mix
Deloitte & Mulesoft : The Right MixDeloitte & Mulesoft : The Right Mix
Deloitte & Mulesoft : The Right Mix
 
Anypoint platform in a mobile-centric world
Anypoint platform in a mobile-centric worldAnypoint platform in a mobile-centric world
Anypoint platform in a mobile-centric world
 
Practical Guide to Platform-as-a-Service
Practical Guide to Platform-as-a-Service Practical Guide to Platform-as-a-Service
Practical Guide to Platform-as-a-Service
 
Cloud Native Runtime Platform
Cloud Native Runtime Platform Cloud Native Runtime Platform
Cloud Native Runtime Platform
 
Modern App Architecture - Microservices, API Friendly
Modern App Architecture - Microservices, API FriendlyModern App Architecture - Microservices, API Friendly
Modern App Architecture - Microservices, API Friendly
 

Viewers also liked

API Management architect presentation
API Management architect presentationAPI Management architect presentation
API Management architect presentation
sflynn073
 

Viewers also liked (9)

Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
Getting Started with Serverless Architectures - August 2016 Monthly Webinar S...
 
Why API Management is Not Enough
Why API Management is Not EnoughWhy API Management is Not Enough
Why API Management is Not Enough
 
eServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API Management
 
Deep-Dive: Secure API Management
Deep-Dive: Secure API ManagementDeep-Dive: Secure API Management
Deep-Dive: Secure API Management
 
Salesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinarSalesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinar
 
API Management architect presentation
API Management architect presentationAPI Management architect presentation
API Management architect presentation
 
API Management - Practical Enterprise Implementation Experience
API Management - Practical Enterprise Implementation ExperienceAPI Management - Practical Enterprise Implementation Experience
API Management - Practical Enterprise Implementation Experience
 
Pre-Con Ed: CA Live API Creator: How to Create, Deploy, Secure and Scale an E...
Pre-Con Ed: CA Live API Creator: How to Create, Deploy, Secure and Scale an E...Pre-Con Ed: CA Live API Creator: How to Create, Deploy, Secure and Scale an E...
Pre-Con Ed: CA Live API Creator: How to Create, Deploy, Secure and Scale an E...
 
API Management and Kubernetes
API Management and KubernetesAPI Management and Kubernetes
API Management and Kubernetes
 

Similar to Cloud service api design rules presentation

Becomming a cloud governance ninja linthicum interop fall 2013
Becomming a cloud governance ninja linthicum interop fall 2013Becomming a cloud governance ninja linthicum interop fall 2013
Becomming a cloud governance ninja linthicum interop fall 2013
David Linthicum
 
Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013
David Linthicum
 
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdfImprove_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
منیزہ ہاشمی
 

Similar to Cloud service api design rules presentation (20)

HP Discover - Developing new applications for the cloud
HP Discover - Developing new applications for the cloudHP Discover - Developing new applications for the cloud
HP Discover - Developing new applications for the cloud
 
Value of Enterprise DevOps
Value of Enterprise DevOpsValue of Enterprise DevOps
Value of Enterprise DevOps
 
CloudExpo NY 2014: Moving Mission Critical Applications to the Cloud
CloudExpo NY 2014: Moving Mission Critical Applications to the CloudCloudExpo NY 2014: Moving Mission Critical Applications to the Cloud
CloudExpo NY 2014: Moving Mission Critical Applications to the Cloud
 
Implementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile ProjectsImplementing Cloud-Based DevOps for Distributed Agile Projects
Implementing Cloud-Based DevOps for Distributed Agile Projects
 
Becomming a cloud governance ninja linthicum interop fall 2013
Becomming a cloud governance ninja linthicum interop fall 2013Becomming a cloud governance ninja linthicum interop fall 2013
Becomming a cloud governance ninja linthicum interop fall 2013
 
Cloud Customer Architecture for Hybrid Integration
Cloud Customer Architecture for Hybrid IntegrationCloud Customer Architecture for Hybrid Integration
Cloud Customer Architecture for Hybrid Integration
 
Information on Cloud-native Applications
Information on Cloud-native ApplicationsInformation on Cloud-native Applications
Information on Cloud-native Applications
 
From Workspace Empowering Employees
From Workspace Empowering EmployeesFrom Workspace Empowering Employees
From Workspace Empowering Employees
 
Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentation
 
Cloud Customer Architecture for API Management
Cloud Customer Architecture for API ManagementCloud Customer Architecture for API Management
Cloud Customer Architecture for API Management
 
PaaS in the Real World
PaaS in the Real WorldPaaS in the Real World
PaaS in the Real World
 
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdfImprove_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
 
Applying systems thinking to AWS enterprise application migration
Applying systems thinking to AWS enterprise application migrationApplying systems thinking to AWS enterprise application migration
Applying systems thinking to AWS enterprise application migration
 
Accelerate Cloud Migrations - Introduction to PaaSLane
Accelerate Cloud Migrations - Introduction to PaaSLaneAccelerate Cloud Migrations - Introduction to PaaSLane
Accelerate Cloud Migrations - Introduction to PaaSLane
 
The new developer experience
The new developer experienceThe new developer experience
The new developer experience
 
The Many Faces of PaaS
The Many Faces of PaaSThe Many Faces of PaaS
The Many Faces of PaaS
 
IRJET- Proficient Business Solutions through Cloud Services
IRJET- Proficient Business Solutions through Cloud ServicesIRJET- Proficient Business Solutions through Cloud Services
IRJET- Proficient Business Solutions through Cloud Services
 
Developing applications for the cloud
Developing applications for the cloudDeveloping applications for the cloud
Developing applications for the cloud
 
Accelerating government agility with cloud computing v1
Accelerating government agility with cloud computing v1Accelerating government agility with cloud computing v1
Accelerating government agility with cloud computing v1
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Cloud service api design rules presentation

  • 1. © 2013 Cloud Technology Partners, Inc. / Confidential 1
  • 2. © 2013 Cloud Technology Partners, Inc. / Confidential 2 Erik.Sebesta@cloudtp.com / Chief Architect and Technology Officer (CATO) / June 12, 2013 API Design for the New Class of Cloud Enterprise Applications
  • 3. © 2013 Cloud Technology Partners, Inc. / Confidential 3 { “Introduction” : “Enterprise Application Maturity Model”, “Funding” : “Business Case”, “Design” : “14 API Best Practices”, “Usage” : “Facilitating Adoption”, “Management” : “Governance”, “Audience” : “Questions?” } Get Http://cloudtp.com/agenda/06-12-2013
  • 4. © 2013 Cloud Technology Partners, Inc. / Confidential 4 Four Stages of Line of Business Application Service Maturity “Introduction” : “The Enterprise Application Maturity Model” Current application spaghetti to cloud spaghetti. No code changes ④ External Shared Services Deliver and leverage external shared services (Advanced PaaS) ③ Portfolio Refactoring② Application Refactoring① Virtualization Refactor individual applications into cloud services. Remediate known violations in current code and platform Consolidate portfolio to take advantage of internal shared business and technical cloud services (Basic PaaS)
  • 5. © 2013 Cloud Technology Partners, Inc. / Confidential 5 “Funding” : “Business Case” “IT projects are born if the pain today or in the future is greater than the perceived pain of transition” Chris Perretta CIO, State Street Bank
  • 6. © 2013 Cloud Technology Partners, Inc. / Confidential 6 • High cost, tightly coupled, heterogeneous systems • Redundant functionality • Lack of agility to innovate • Slow time to market • Rising maintenance costs • Rising regulatory and compliance costs, multiplied by – heterogeneous systems – geographic expansion / local laws • Falling IT budgets The Pain Today
  • 7. © 2013 Cloud Technology Partners, Inc. / Confidential 7 Industry-Specific Core and Cross-Business Commodity Shared Services The Future To get appropriate attention and funding, successful API programs start with creating customer or partner focused external shared services. April 30, 2013 Source: John Musser, Programmable Web http://blog.programmableweb.com/2012/05/23/which- apis-are-handling-billions-of-requests-per-day/
  • 8. © 2013 Cloud Technology Partners, Inc. / Confidential 8 • Be a pessimist – assume everything fails and design backwards. Love your chaos monkey. • Put your eggs in multiple baskets – leverage multiple providers, geographic regions and availability zones to accommodate for local availability issues. Design for portability. • Think efficiency - inefficient designs will not scale. Efficient designs become cheaper as they scale. • Be paranoid – design for defense in depth and zero tolerance by building in security at every level and between every component. Trust no one. • But not too paranoid – not every application needs the platinum solution. Architect for different SLA’s, service tiers and security levels “Design” : “14 API Best Practices” Part 1/3
  • 9. © 2013 Cloud Technology Partners, Inc. / Confidential 9 • Divide and conquer - pursue data partitioning and parallelization wherever possible. Make components as small and portable as possible including multiple small database instantiations per services package. Use load balancing between layers • Think elasticity - increasing resources should result in a proportional increase in performance and scalability. Decreasing resources should have the same effect. • Hands Off - leverage automation to increase consistency, quality and reduce response times • Be dynamic - enable dynamic configuration changes like autoscaling, failure recovery and resource discovery to adapt to changing environments, faults and workload volumes “Design” : “14 API Best Practices” Part 2/3
  • 10. © 2013 Cloud Technology Partners, Inc. / Confidential 10 • Stay close – reduce latency by moving highly interactive components and data near each other. • Don’t talk too much – design service granularity to minimize chatty network traffic • Keep it loose - loose coupling, service interfaces, separation of concerns, abstraction and well defined API’s deliver flexibility • Dress for success – separate UI services from functional services. Provide custom look and feel for popular device displays • Be cost aware – autoscaling, data transmission, virtual software licenses, reserved instances, etc. can rapidly increase your monthly charges. Monitor your usage closely. “Design” : “14 API Best Practices” Part 3/3
  • 11. © 2013 Cloud Technology Partners, Inc. / Confidential 11 Patterns in Successful APIs and API Programs “Usage” : “Facilitating Adoption” • Clear API ownership and strong internal evangelism • Early and consistent vision, strategy, business cases and metrics • Usage and security policies designed up front. I.e. Content level authorization • Compelling differentiated API • Dedicated transformational support staff – APIs designed for adoption. Easily found by developer community – Frequent engagement with the developer community – Clear API documentation to facilitate proper use, avoid misuse – Easy process to receive feedback to iterate quickly – Full cloud service development lifecycle (Cloud SDLC) operational support • Dynamically scalable underlying PaaS and IaaS Includes some content from: Apigee http://www.slideshare.net/apigee/10-patterns-in-successful-api-programs-2-8081076
  • 12. © 2013 Cloud Technology Partners, Inc. / Confidential 12 Provide Great Developer Experience (DX) Source: John Musser, Programmable Web http://www.slideshare.net/jmusser/what-makes-a-great-open-api?from_search=2 Plus proactive marketing to potential early adopters, SLAs for service packages and product-level engineering support
  • 13. © 2013 Cloud Technology Partners, Inc. / Confidential 13 “Management” : “Governance” Source: John Musser, Programmable Web http://www.slideshare.net/jmusser/what-makes-a-great-open-api?from_search=2
  • 14. © 2013 Cloud Technology Partners, Inc. / Confidential 14 Governance must also recognize and reward “Management” : “Governance” Internal teams and partners who create highly valuable shared services • Public praise • Compensation commensurate with value created Internal teams, customers, and partners who reuse shared services • Praise for adoption by internal business units • Incentives for adoption by internal business units • Incentives for adoption by customers and partners
  • 15. © 2013 Cloud Technology Partners, Inc. / Confidential 15 “Audience” : “Questions?” Erik.Sebesta@cloudtp.com / Chief Architect and Technology Officer (CATO) / June 12, 2013
  • 16. © 2013 Cloud Technology Partners, Inc. / Confidential 16 Appendix
  • 17. © 2013 Cloud Technology Partners, Inc. / Confidential 17 Netflix Blog http://techblog.netflix.com/ What Makes a Great Open API; John Musser, Programmable Web http://www.slideshare.net/jmusser/what-makes-a-great-open-api?from_search=2 Designing Beautiful REST and JSON APIs; Les Hazlewood, StormPath http://www.slideshare.net/stormpath/rest-jsonapis?from_search=12 Developer Support Handbook; Pamela Fox, Google http://developer-support-handbook.appspot.com/intro.html Suggested Resources for More Details Great APIs to Emulate list from: Apigee http://www.slideshare.net/apigee/10-patterns-in-successful-api-programs-2-8081076
  • 18. © 2013 Cloud Technology Partners, Inc. / Confidential 18 API Protocols REST vs. SOAP REST is easier to understand and code against. Less plumbing. Faster innovation. Http protocol is more portable. SOAP hosted over TCP or pipes protocols may not translate well between vendor stacks.
  • 19. © 2013 Cloud Technology Partners, Inc. / Confidential 19 XML= Red, JSON= Blue XML vs. JSON Data from Google Trends, June 4, 2013, Internet and Telecom category
  • 20. © 2013 Cloud Technology Partners, Inc. / Confidential 20

Editor's Notes

  1. Be a pessimist – assume everything fails and design backwards. Love your chaos monkey Graceful error handling and retry logic is a must! Make your applications/APIs robust! (sorry for the rhyme.)Expect and handle scenarios like “what if this disk my application is writing to suddenly wasn’t there?”… or is writing to disk even necessary? Maybe a form of cloud storage is a better option.Put your eggs in multiple baskets – leverage multiple providers, geographic regions and availability zones to accommodate for local availability issues. Design for portabilityFor portability between clouds, design your apps/APIs to be loosely coupled. At a minimum, interactions with proprietary cloud APIs implementations should be wrapped and injected. As a developer this is necessary so when your boss wants you to migrate an API to a different platform (or support multiple cloud providers) you can actually pull it off.“What’s that? I need to migrate my service’s caching layer to use a different distributed cache? No problem! I properly decoupled the layers of my application so I can easily swap in an implementation that makes use of the new platform’s cache API.”Think efficiency - inefficient designs will not scale. Efficient designs become cheaper as they scale. Also, inefficient designs cost more money to run in the cloud because they consume more resources, and are therefore more likely to force elastic scale out to occur sooner. It is more important than ever for developers to pay attention to following best-practice with regards to memory and resource management in code.But not too paranoid – not every application needs the platinum solution. Architect for different SLA’s, service tiers and security levels(The above point ties back to your slides regarding maturity model: Ideally, as an organization, your first foray into cloud application development should not be with an application that requires a “platinum solution”. Walk before you run.)
  2. Divide and conquer - pursue data partitioning and parallelization wherever possible. Make components as small and portable as possible including multiple small database instantiations per services package. Use load balancing between layersSmall portable components can help get better utilization of instance resources because you can more densefaster startup times when scaling out new component instancesThink elasticity - increasing resources should result in a proportional increase in performance and scalability. Decreasing resources should have the same effect. Stateless services are important here. Stateless services scale easier, and applications not originally developed with cloud in mind can have trouble effectively maintaining state across elastically scaling instances/environments.
  3. Keep it loose - loose coupling, service interfaces, separation of concerns, abstraction and well defined API’s deliver flexibilityFrom a developers perspective, this may be the most key point. SOA may be turning into a four letter word nowadays, but following these good practices will reap benefits in the cloud. For devs, this is still where a lot of the magic happens. It helps enable many of the other bullet points in this list.
  4. Discuss Service Bus & Service Registries
  5. why REST is winning the battle for API supremacy:Easy to understand and code against  Faster innovate, and faster to market. Less time with plumbing.Http protocol  No proprietary protocols means more portable(Although SOAP service stacks support Http, SOAP services are also often hosted over TCP or pipes protocols that don’t always translate well between vendor stacks. HTTP is well known to all.)