3. GET /who HTTP/1.1
Host: www.ahmadnassri.com
Accept: application/json
HTTP/1.1 200 OK
Date: Thu, 11 Feb 2016 10:00:00 CET
Content-Type: application/json
{
"name": "Ahmad Nassri",
"website": "ahmad.codes",
"twitter": "@AhmadNassri",
"city": "Toronto, Canada",
"hometown": "Damascus, Syria",
"bio": "Technologist, Entrepreneur, Dog Lover",
"work": {
"company": " ",
"role": "VP, Engineering"
}
}
Mashape.com
AHMAD NASSRIAHMAD NASSRI
Live in Toronto, work in San Francisco / Silicon Valley.
4. Adopted in every major industry including finance, healthcare, military, agriculture, insurance, government, media, e-commerce, retail, aviation, manufacturing and
telecom.
6. MICROSERVICES?MICROSERVICES?
Martin Fowler - a definition of this
new architectural term:
bit.ly/ms-definition
Microservice architecture
patterns and best practices
bit.ly/ms-patterns
Resources & Reading List
bit.ly/ms-resources
if you're not familiar with microservices, here's your home work (links at the last slide)
8. EXPECTATIONEXPECTATION
as a team starts to venture into building a new product, they might start thinking about the architectural design pattern and see it in abstract terms
9. EXTENDED EXPECTATIONSEXTENDED EXPECTATIONS
as development intensifies, the initial theory quickly evolves, more microservices are discovered (they're like pokemons, new ones keep showing up!)
and throughout more tooling is introduced (cranes in pic)
14. SCALING SIMPLE MOVIESCALING SIMPLE MOVIE
RECCOMENDATIONSRECCOMENDATIONS
LB
LB LB
LB
enter load balancers, service registery and discovery tools
15. GROWTH STAGEGROWTH STAGE
microservices quickly increase in number to serve different business functions
teams start forming around or from microservices and APIS
18. SECURITY & AUTHENTICATIONSECURITY & AUTHENTICATION
V2 V2 V2 V2
security can be achieved on the network layer, but also through authentication to ensure user action impersonation
19. LOGGING?LOGGING?
V2 V2 V2 V2
you wanna know what's going on, don't you?
and how about debugging a user transaction across all those microservices?
21. DONT REPEAT YOURSELFDONT REPEAT YOURSELF
Logging
Load Balancing
Authentication
Security
Monitoring
Rate Limiting
...
D.R.Y
all common functionality and tooling should be extracted, including:
22. ENTER KONGENTER KONG
V2 V2 V2 V2
GETKong.org
Kong is designed to solve the problem of abstracting common microservices & API management functionality
23. WHAT IS KONG?WHAT IS KONG?
$ curl -X POST 127.0.0.1:8001/apis
--data 'name=movies.v1'
--data 'upstream_url=http://lb1.movies/'
--data 'request_path=/v1/movies'
$ curl -X POST 127.0.0.1:8001/apis
--data 'name=movies.v2'
--data 'upstream_url=http://lb2.movies/'
--data 'request_path=/v2/movies'
Open-source management layer for APIs
Built with Nginx, OpenResty, Lua
Configurable Through a RESTful API
add powerful functionality through plugins
kong nodes are stateless and horizontally scalable, with built-in auto-discovery and clustering
24. KONG PLUGINSKONG PLUGINS
$ http POST :8001/apis/movies.v1/plugins
name=loggly config.key=SECRET
$ http POST :8001/apis/movies.v1/plugins
name=rate-limiting config.hour=500 config.minutes=100
$ http POST :8001/apis/movies.v1/plugins
name=cors config.origin=* config.methods=GET,PUT
$ http POST :8001/apis/movies.v1/plugins
name=galileo config.service_token=SECRET
$ http POST :8001/apis/movies.v1/plugins
name=ssl config.cert=@/local/path/to/cert.pem
config.key=@/local/path/to/cert.key
$ http POST :8001/apis/movies.v1/plugins
name=oauth2 config.scopes=email,phone,address
config.mandatory_scope=true
plugins are functional lua modules that are triggered at certain points during the request life-cycle with the ability to inspect, modify, and transform the request and
response objects
(here I'm using HTTPie for the examples)
25. SCENARIOSSCENARIOS
VPN Vendors
- as external facing api gateway
- as internal microservices orchestration
- as vendor shield
- can even chain kong
27. GAIN INSIGHTGAIN INSIGHT
Timeseries Charts
See trends data down to the minute with
our timeseries charting that shows how
usage is changing and visually spot any
anomalies.
Error View
Keep track of client and server errors and
who is causing them so you can debug and
handle the issue before it becomes a
problem.
28. GAIN INSIGHTGAIN INSIGHT
Custom Filtering
Filter the data down to exactly what you
care about and learn how clients are
requesting your services and how servers
are responding.
Consumer Usage
Get a clear picture of an individual
consumers requests to figure out how they
are using your services and which
endpoints are most important.
29. GELATOGELATO
Removes all the hassle of creating and maintaining
technical docs, and makes onboarding developers easy
30. GELATOGELATO
Automatic API Explorer, Markdown Editor, Developer Onboarding, Code
Generation, Import Swagger or API-blueprint
gelato is packed with features