CPDD: Critical Path Driven Development

Small systems

Growth

Delete all the code?

Static analysis tools

Google Code Search is a Google for Google’s source code.

Critical paths

CPDD (critical path driven development)

  • discovering the critical paths automatically,
  • making them reliable and making them fast,
  • making them debuggable in production.

How?

A learning and debugging tool

Not the end game but the beginning

Challenges

  • An organizational problem: If you need critical path analysis, it becomes a cross-team problem. The entire organization need to agree on the basics. In order to have end-to-end events or traces, they need to agree on a format to propagate identifiers. The load balancers, proxies or other binaries should be able to honor this format. It is unfortunate that we don’t have a good well-defined industry standard for this yet but a draft is in the works.
  • Don’t know where to begin: Most people don’t know where to begin. Start with your network stack, specifically HTTP and RPC. This is where things get easy if you have little fragmentation in terms of frameworks. You can simply instrument frameworks and gather data from there.
  • Infra is a blackbox: Infrastructure and vendor services are designed without considering the observability aspects. We still expect people to learn about the underlying stack by reading the code or the manual. We should instead give them visibility along the request as providers.
  • Instrumentation is expensive: High traffic systems end up having downsampling and cannot 100% depend on critical path analysis. We sometimes miss collecting data for interesting cases such as 99th percentile because downsampling is usually probabilistic.
  • Dynamic capabilities are undermined: The other challenge is how static we used to see instrumentation for a long time in this industry. Dynamic capabilities are important. We ideally want to tweak things and start collecting more data when things go wrong in prod. Being able to do this and do it in a safe way in prod is still not at the reach of everyone.

Conclusion

--

--

--

See rakyll.org for more.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

What is Version Control?

Kotlin Co-routines : Solving asynchronous code spaghetti [part two-> Understanding the coroutine’s…

Microsoft’s WPC — Denver, 2007: Keynote Summary

The Art Dept. & Stack OS Integration

Flutter — Tinder like swipe cards but async infinite

GCP Cloud NAT + Golang’s HTTP client = 🤯

Convert Wikipedia Articles into Mind Maps

Abstraxo’s Auto generated mind map from Wikipedia’s article on dolphins

Spring Boot Basic Authentication step by step implementation

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jaana Dogan

Jaana Dogan

See rakyll.org for more.

More from Medium

In the business perspective: what are the benefits and drawbacks of adopting Kubernetes?

Java SpringBoot gRPC App & Create AWS EKS Cluster Using Terraform As GitLab Infrastructure & CI/CD…

Setup Ephemeral Backend Environments on AWS

DataBase 101