2. Micro services
In short, the microservice architectural style is an approach to developing a single
application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource API.
These services are built around business capabilities and independently
deployable by fully automated deployment machinery. There is a bare minimum
of centralized management of these services, which may be written in different
programming languages and use different data storage technologies.
Martin Fowler
3. That annoying part when:
You break the build for 20 other developers.
Some other developer in a different time zone breaks the build and you’re stuck
You’re in the unpleasant position of coordinating a release between multiple teams,
You are stuck with Python 2.6 for the foreseeable future.
You think that language X will be great for feature Y but someone higher up dislikes
the idea.
4. The good
The Unix way:
Do one thing and do it well
‘s/text/http/g’
Small and cross-functional teams (two-pizza teams)
Polyglot application (fun!!)
You build it, you run it
5. The bad
Complicated deployment (don’t under estimate!)
Remote calls are more expensive than in-process calls
Hard to change the allocation of responsibilities
6. Common need of a microservice:
Authentication
Rate limiting
Logging
Security (SSL, IP restriction, etc...)
Analytics & Monitoring
Caching
7. Kong to the rescue!
Kong can provide all the above, and is:
Open Source
Has a large community (~4,500 stars on github)
Built on top of the battle tested Nginx
Plugable
RESTful Interface - easy to configure.
Noam Elfanbaum
Programing in Python for ~5 years
Working@Cloudlock (part time)
The rest of my time I’m:
Teaching Python (see my open course materials at pycubator.com)
Doing consulting work.
Developing Open-Knesset
Helping to organize PywebIL and Pycon
Loves open-source software and Python!
Approach - not a defined structure.
Application as a suit of small services
Communication via HTTP
Independent