+ All Categories
Home > Technology > Measuring Micro-services. Richard Rodger

Measuring Micro-services. Richard Rodger

Date post: 21-Jan-2018
Category:
Upload: future-insights
View: 569 times
Download: 0 times
Share this document with a friend
32
Pulse. Temperature. Blood Pressure. Microservice systems have emergent properties too.
Transcript
Page 1: Measuring Micro-services. Richard Rodger

Pulse. Temperature. Blood Pressure. Microservice systems have emergent properties too.

Page 2: Measuring Micro-services. Richard Rodger

nearForm & microservices 50+ production systems. The good, the bad, and the ugly.

Page 3: Measuring Micro-services. Richard Rodger

What are Microservices? Independent processes that exchange messages.

Page 4: Measuring Micro-services. Richard Rodger

Messages are fundamental. Message behaviour has emergent properties.

Page 5: Measuring Micro-services. Richard Rodger

Message flow rate. Easy to measure. Tells you a lot. Independent of services.

Page 6: Measuring Micro-services. Richard Rodger

Deploy a new Microservice. Does the new version break anything?

Page 7: Measuring Micro-services. Richard Rodger

Is your microservice system healthy? Measure changes to message flow rates to find out.

Page 8: Measuring Micro-services. Richard Rodger

Microservice message patterns. What to measure? Here’s what we’ve found useful…

Page 9: Measuring Micro-services. Richard Rodger

Actor. A pool of services share message load evenly (round-robin, say).

Page 10: Measuring Micro-services. Richard Rodger

Subscriber. Many services all listen for the same set of message types.

Page 11: Measuring Micro-services. Richard Rodger

Chain. An initial message causes a chain of serial message steps.

Page 12: Measuring Micro-services. Richard Rodger

Tree. An initial message causes a flowering of child messages.

Page 13: Measuring Micro-services. Richard Rodger

Why? It's the risk, stupid! Monoliths put everybody in danger.

Page 14: Measuring Micro-services. Richard Rodger

Risk. Reduction can be measured. Leave elimination to Machiavelli.

Page 15: Measuring Micro-services. Richard Rodger

Our "best practices" for risk. Unit tests; code reviews; standards. Do we have good measures?

Page 16: Measuring Micro-services. Richard Rodger

We've just made things worse! Microservices also have emergent failure modes.

Page 17: Measuring Micro-services. Richard Rodger

Let's attack both sides. And we'll find a way to connect both attacks.

Formal Methods

“Best Practices”Measurement

Page 18: Measuring Micro-services. Richard Rodger

Dynamic measurement. Measure health of the system. Exposes unknown unknowns.

Page 19: Measuring Micro-services. Richard Rodger

Formal methods. Correctness proofs are impractical. Incomplete execution traces? FTW!

* http://research.microsoft.com/en-us/um/people/lamport/tla/tla.html

TLA+ Leslie Lamport *

Page 20: Measuring Micro-services. Richard Rodger

Invariants. Some things should never change. Measure them to make sure!

Page 21: Measuring Micro-services. Richard Rodger

Example. E-commerce shopping cart. add-item msgs == sales-tax msgs

Page 22: Measuring Micro-services. Richard Rodger

Invariants in practice? Finding invariants is easy: use the microservice patterns to cheat!

Page 23: Measuring Micro-services. Richard Rodger

Actor. n actors means each actor sees 1⧸n of the messages.

Page 24: Measuring Micro-services. Richard Rodger

Subscriber. n subscribers means each sees n messages.

Page 25: Measuring Micro-services. Richard Rodger

Chain. n inbound messages over k links means n k chained messages.

Page 26: Measuring Micro-services. Richard Rodger

Tree. n inbound messages over k leaves means n k leaf messages.

Page 27: Measuring Micro-services. Richard Rodger

Look for cause/effect relationships. These are by design! Validate your message patterns in production.

“ask not what can go wrong, ask what must go right…”

Chris Newcombe, AWS*

* http://research.microsoft.com/en-us/um/people/lamport/tla/amazon.html

Page 28: Measuring Micro-services. Richard Rodger

When should you rollback? Invariants should be the same before and after deployment.

Page 29: Measuring Micro-services. Richard Rodger

Is the system correct? Business rules are invariants too! Express as message relationships.

Page 30: Measuring Micro-services. Richard Rodger

Are you about to be blindsided? Combine individual indicators to get a deeper measure of risk.

Page 31: Measuring Micro-services. Richard Rodger

Measure what counts. Find invariants. Measure them. Follow: senecajs.org

Page 32: Measuring Micro-services. Richard Rodger

Thank You! Richard Rodger @rjrodger nearform.com


Recommended