What is an API-first enterprise? Where do APIs fit into modern application architecture? Are they just new terms for SOA? Presentation from Apigee's City Tour in Paris 23 June 2016.
9. API CITY TOUR 9
Modern server-side app
• Often runs in an app server
• Monolithic presentation and business logic
• Hosted in an environment
(often a virtualized container)
• Increasingly lightweight
13. API CITY TOUR 13
Cloud business services
• Database-as-a-Service
• Storage-as-a-Service
• Email-as-a-Service
• MQ-as-a-Service
• All are already in widespread use …
14. API CITY TOUR 14
Internal resources
• Many new resource services already are API-based
• Developers prefer to use APIs even with the added
work of learning APIs versus ESB approaches
15. API CITY TOUR 15
Mobile API architecture
SDK
API
Device-side
app
logic
Server-side
application logic &
infrastructure
17. API CITY TOUR 17
API
Backend
API
App APIAPI AppApp
Internal
External
Front end
18. API CITY TOUR 18
App-to-app
• API-centric: app developers expose their own
APIs and learns others’ APIs
• Integration: normalized data interchange
• Agility trade-off
19. API CITY TOUR 19
API
Front end
Backend
API
App
Partner
App
3rd Party
App
Internal
External
20. API CITY TOUR 20
Okay, we have to talk about microservices
21. API CITY TOUR 21
Internal
API
Front end
Backend
API
APIAPI AppApp
Service Service Service
Service Service Service
Service Service Service
APIs
APIs
Microservice architecture
External
22. API CITY TOUR 22
Microservices
• Components are services, not in-process objects
• Allows polyglot programming
• Easier to scale component services individually
24. API CITY TOUR 24
Monolithic web app
Web apps
App server
Backend
services
25. API CITY TOUR 25
API-adapted Web Apps
Consumption-focused
Web Apps
App Server
Backend
Services
Other apps
API
26. API CITY TOUR 26
API-adapted SOA
Exposure-focused
Web apps
App server
Internal
services
Other apps
API
ESB
27. API CITY TOUR 27
API-first enterprise
Web apps
App servers
Backend
services
ESB
Mobile apps
API tier
All apps
Security AnalyticsPersistence Orchestration
Other apps
29. API CITY TOUR 29
API mass customization
App “B”
App servers
Backend
services
ESB
App “A”
API Tter
App “C”
API “B”API “A” API “C”
30. API CITY TOUR 30
API tier analytics
All channels
API Tier
All backends
All interactions
Analytics
Correlations
Cohorts
Conversions
Segmentation
A/B & multivariate
31. API CITY TOUR 31
API tier with analytics
• API adaptations needed for apps
• Enable developers for business
• Security for app-to-API
• App and behavior analytics
• APIs architected for abstraction
• Enable developers for API use
• Security for API-to-backend
• API analytics
APIAPI
App consumption API exposure
App server ServicesApp
Analytics
32. API CITY TOUR 32
Summary
• “A” is for Apps
• APIs are not SOA++
• Microservices?
• How to get to an API-centric architecture
- Term in use for a long time
Originally meant application programming interface
Some may feel it’s synonymous with “SDK”
We all understand it’s a way to handle disconnected or remote calls
If we look at a monolith web app that may be using an api the API is what’s allowing that webapp to talk to the app server
But the A in API should really stand for APPS and and Application… And in this sense it’s evolved from old school rich clients to the web clients we knew in the early two thousands and back to rich clients like what we see on mobile now.
So .. What’s an app… mobile app? A web app... In the J2E days we had all kinds of assemblies with Apps... Web “application” archive, Enterrpise application archive?
One type of app, referring back to the monolithic web app from above, is that first entry point into the internal network. That WebApp is the APP here in this context and is what the browser is consuming….
An app is quite simply something that consumes services
But an APP could be itself consuming a backend
And traditionally these “apps” did more integration things…. DB, Email, FTP... But increasingly we’re seeing these as decidedly API oriented in nature
These are already in use everywhere as SaaS solutions today and they expose APIs for mass consumption
That mass of consumption patterns from the internet is being applied internally now as well.
Mobile developers may use SDK’s generated from API descriptions for their entire backend operations… Quickly becoming a pattern in it’s own right
This is good and can mean massive expansion capabilities in terms of increased functionality…. Patterns involving location services via google in concert with other services are a great example of this
Y
And this is, in general, a microservices style approach
The larger APPs for consumption may themselves be comprised of microservices all handling internal comm via APIs
Now .. Let’s talk about an API first approach to the world we’ve discussed up until now.