About Me

My photo
Rohit is an investor, startup advisor and an Application Modernization Scale Specialist working at Google.

Tuesday, October 29, 2019

Architecture & Services Review Template for 360 degree healthcheck of a Microservice

Do you want to review the health of your system of microservices ? Need a checklist of things to look at as you evaluate the architecture and implementation. Take a look at this all encompassing checklist of things to examine the production readiness and scale of your system of microservices. 

  • Libraries
    • How many unused libraries are there?
    • Are there any libraries that could be replaced by features included with Spring?
  • Connection Pooling
    • How is concurrency handled ?
  • Latency
    • How long does the app take to start up?
    • Is there a meaningful difference in data transmission speed with a high load when using rsockets vs. https?
    • Is there a meaningful difference in data transmission speed when using a reactive tech stack vs. a traditional tech stack?
    • Are there any noticeable areas with inefficient HTTP calls?
    • What is the average response time for the app's network calls?
  • Memory/CPU
    • How much memory does the app use under a high load?. Does it need JVM GC tuning ?
    • How many threads does the app use under a high load?
    • What is the top constraint ? (CPU. Mem, Disk, Network,)
  • Error/Exception Handling
    • How many exceptions does the app usually throw under a high load?
    • What is the mean time between failures?
    • How long does an outage usually last?
  • Code Complexity/Cleanliness
    • What is the highest level of cyclomatic complexity within the app?
    • How many unused classes are in the app?
    • How many unused methods are in the app?
    • Compliance with 15 Factors ?
    • High frequency of code change heat map
    • Sev 1 Production Incidents Review
  • Spring
    • Is there Classpath dependency bloat ?
    • Upgrade to s-boot 2.2 and concomitant dependencies possible ?
  • Resiliency
    • Are circuit breakers and HTTPClients configured correctly
    • Are metrics from Circuit Breakers put in the firehose via micrometer
    • Failure Mode analysis.
  • Observability
    • Are applications logging at the right level
    • Are applications emitting metrics at the right level
    • Is spring-cloud-sleuth enabled for distributed traces ?
    • Configure http healthchecks for the app in Cloud Foundry
  • Performance
    • Is application startup time acceptable. Can this be reduced.
    • Is autoscaling behavior understood in context of downstream dependencies.
    • Policy for autoscaling up and down
  • Higher level Architecture Review

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.