An application that is built as a single unit
+---------------+ +-----------------+
| | | |
| | | |
| Application +---------->| Database |
| | | |
| | | |
| | | |
+---------------+ +-----------------+
+---------------+ +-----------------+
| | | |
| | | |
| Application +---------->| Database |
| + | |
| | | |
| | | |
+------+--------+ +-----------------+
+
+---------------+ +-----------------+
| | | Services |
| Caching | |-----------------|
| +-----------+ |
| | | |
| | | |
+---------------+ +-----------------+
+-------------------------------------------------------------------+
| Application |
| +----------+ +--------------+ |
| +----------+ | | | | |
| | | | Component| | Component | |
| | Component| | | | | |
| | | | | | | |
| | | +----------+ | | |
| +----------+ | | |
| +--------------+ |
| |
| +-------------+ +-------------+ |
| | | | | |
| | Component | | | |
| | | | Component | |
| | | | | |
| | | | | +--------------+ |
| +-------------+ | | | | |
| | | | Component | |
| +-------------+ | | |
| | | |
| | | |
| +--------------+ |
| |
+-------------------------------------------------------------------+
+------------+ +--------------+
| | | | +----------------+
| Application| | Component | | |
| | | | | Component |
| | | | | |
| | | | | |
+------------+ +--------------+ | |
| |
+------------+ +----------------+
| |
| |
| Component | +---------------+
| | | |
| | | Component |
| | | | +-----------------+
+------------+ | | | |
| | | Component |
| | | |
+---------------+ | |
+----------------+ | |
| | | |
| Component | +-----------------+
| |
| |
| |
| |
+----------------+
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
+---------------+ +---------------+ +----------------+ +----------------+ +---------------+
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| Designers | | Front End | | Backend Devs | | DevOps | | DBA's |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
+---------------+ +---------------+ +----------------+ +----------------+ +---------------+
+----------------+
| | +-----------------+
| Product A | | |
| | | | +-----------------------------------+
| | | Product C | | Services |
| | | | |-----------------------------------|
+----------------+ | | | |
| | | * Service 1 |
+----------------+ +-----------------+ | * Service 2 |
| | | * Service 3 |
| Product B | | * Service 4 |
| | | |
| | +------------------+ | |
| | | | | |
| | | | | |
+----------------+ | Product D | | |
| | | |
| | | |
| | | |
| | | |
+------------------+ | |
| |
| |
| |
+-----------------------------------+
+-----------------------+ +------------------------+ +-------------------+
| Platform as a Service | | Platform as a Service | | Data Containers |
|-----------------------| |------------------------| |-------------------|
| * App 1 | xxxxxxxx | * Service 1 | | +-------+ |
| * App 2 | xxx xxx | * Service 2 | | | SQL | |
| * App 3 | xx xx | * Service 3 | | | | |
| * App 4 | x x | * Service 4 | | +-------+ |
| | xx x | | | +-------+ |
| | xx x | | | | NoSQL | |
| | xx xx | | | | | |
| | xxx xxx | | | +-------+ |
| | xxxxxxxx | | | +-------+ |
| | | | | | Redis | |
| | Pub/Sub/Log | | | | | |
| | | | | +-------+ |
| | | | | |
| | | | | |
+-----------------------+ +------------------------+ +-------------------+
http://martinfowler.com/articles/microservices.html https://github.com/twilson63/palmettoflow