-
Notifications
You must be signed in to change notification settings - Fork 0
Microservices
Chris Busse edited this page Jul 28, 2015
·
1 revision
Ted Epstein
- Inspired by Martin Fowler article - intent to be part of an application architecture, not necessarily and enterprise architecture
- Typical pre-Microservice architecture: ESB, Data Services, CRUD
- What is definition of Microservice? A tightly cohesive group of methods bound around one context...
- Debate ensures about, in an enterprise architecture, where do Microservices live and what qualifies as a "Microservice" ... not just being fine grained?
Microservice:
- Minimal dependencies
- DB Only
- Stands Alone
- Real-time
- Composed Async (through higher level)
Not Microservice:
- Dependencies on: 3rd-party App
- Batch Process(?)
Database Pattern
- Replication ("Buffered Dependency")
- Aggregation
- Scaling on Demand
- Is the database required to scale or just the serving of the APIs?
Data Modeling
- References: IDs, Hyperlinks
- Microservices, culturally, may resist attempts to standardize. Enterprise will want standardization & governance
- Standardization is very much an open question - could apply to data or just meta data
- Discussion of continuing to use message queues vs. direct http communication between microservice APIs
- ...continuing MQ reliance can be due to complication of scaling & legacy constraints
Motivations
- Scalability
- Separation of concerns
- Speed of development & maintainability
Process Patterns
Pipeline / Front-to-back - is this an appropriate thing to use microservices for when there is a chain of operations? ... every stage in the pipeline having its own MQ ... queued dependencies
Antipatterns
- Distributed Transactions (ACID) ... some debate around this... maybe ok if you have coordination taking place on a higher level
- Low latency
- Direct dependencies on each other / sync / interdependecies
Microgateways (looks like APIs all the way down) - Dave Mehi
- security down
- analytics up
- allows you to spread out APIs to be "local" in different places
- (this seemed to be a new concept to many here ... lots of questions generated)
Microservices as it relates to hardware (needs to be scalable). Needs CI/CD, automated testing & deployment.
Can you half-way do microservices to solve a pain point? (implied maybe not fully CI/CD ready) Sure... easier to make changes to system, easier for devs to understand what is going on in your apps