Cindy Sridharan
medium.com/@copyconstruct · Personal blog · on HN since 2017
Cindy Sridharan writes about distributed systems, microservices, observability, and testing in production.
What HN saysCommenters point to her posts on testing microservices and testing in production, and to her guide to the socat tool.
41HN people shared it
6linked it in comments
58stories submitted
382story points
6 years agolast shared
2017people per year2026
Most-shared posts
- 1Testing in Production: The Hard Parts7 people · 17 points · first shared 2019 · discussion on HN
- 2Post-Commit Reviews4 people · 51 points · first shared 2020 · 35 comments on HN
- 3Small Functions considered Harmful4 people · 36 points · first shared 2017 · 23 comments on HN
- 4Health Checks and Graceful Degradation in Distributed Systems4 people · 12 points · first shared 2018 · 1 comments on HN
- 5Testing Microservices the sane way3 people · 163 points · first shared 2017 · 45 comments on HN
- 6Distributed tracing – we've been doing it wrong3 people · 9 points · first shared 2019 · discussion on HN
- 7Best of 2018 in Tech Talks3 people · 8 points · first shared 2019 · discussion on HN
- 8Testing in Production, the safe way3 people · 7 points · first shared 2018 · discussion on HN
- 9API versioning and evolution with proxies3 people · 6 points · first shared 2018 · discussion on HN
- 10The Method to epoll Madness3 people · 6 points · first shared 2017 · discussion on HN
- 11Technical Decision Making3 people · 4 points · first shared 2017 · discussion on HN
- 12Monitoring in the time of Cloud Native3 people · 3 points · first shared 2017 · discussion on HN
- 13Effective Mental Models for Code and Systems2 people · 6 points · first shared 2019 · discussion on HN
- 14A Decade in Review in Tech2 people · 5 points · first shared 2020 · discussion on HN
- 15Fundamentals of non blocking I/O on Linux/BSD2 people · 5 points · first shared 2017 · 3 comments on HN
What HN people wrote when they linked it
penagwin · 2020-01-17
For sure. There's dozens of types of tests (although many don't apply to certain use cases). In a healthy system you should be using a lot of them. And they don't stop at deployment, you need to be tracking exceptions (after all, production is the final, and best test environment).
This article has some nice diagrams of the different kinds of tests https://medium.com/@copyconstruct/testing-in-production-the-safe-way-1…
josh_overseer · 2017-10-13
Solid point! I agree that it's super important to know your system well enough to know what your key metrics/kpis are without us. We are no substitute for that. One of the key places we try to fit in is after you may already know something is going on (ex, your kpis are being affected) and you want to drill down deeper to understand what's going on at a more detailed level. With a deep enough understanding of your system, you may have some ideas about where to look for more info, but there can sometimes be so many places to look that it's hard to know where to start. That's where we come in. One of the articles that really influences how I personally think about this stuff is here, it's a great read if you have the time: https://medium.com/@copyconstruct/monitoring-in-the-time-of-cloud-nati… . In the words of the article, we fit in between the overview and debugging part of the monitoring pyramid.
fla · 2020-05-18
There's a very nice write up about the socat command line interface here [1] in case anyone is interested.
[1] https://medium.com/@copyconstruct/socat-29453e9fc8a6
djhaskin987 · 2018-03-17
Sure. What I mean by that is that if you use kubernetes, you will be using kubernetes service Discovery, endpoints, ingress, and volumes, where nomad is strictly the scheduler. For example you can easily set up nomad with consul service discovery and then use the same consul instance for service discovery of services living outside nomad, such as legacy applications. It's hard to do something like that with Kube services because kubernetes comes with its own service discovery mechanism.
For more comparison between the two schedulers coming from the point of view of someone who chose Nomad, look at this article https://medium.com/@copyconstruct/schedulers-kubernetes-and-nomad-b0f2… . I especially found his idea of incremental infrastructure improvement interesting, near the bottom if of the article.
simplesleeper · 2018-03-13
Why not move to just a production environment? Arguments are well presented here: https://medium.com/@copyconstruct/testing-microservices-the-sane-way-9…
thaumaturgy · 2020-06-26
> src/Grouchy/MessageStream.php:17: Class has too many methods: 12. Can be up to 10 methods.
> src/Grouchy/MessageStream.php:66: Your function is too long. Currently using 40 lines. Can be up to 20 lines.
sigh.
One of the annoyances of modern PHP practices is the tendency to write one class, per file, which extends or implements one other class, and adds one or two functions to it. Every single logical abstraction in a PHP project can have somewhere between one to thirty different classes associated with it, and larger PHP projects end up with a thousand or more files. All of this is enabled by composer's PSR-4 autoloading support, so as long as you give your classes the right kind of names and put the files in the right places, you don't have to think about what it means to hit the disk that many times on a page load. Consequently, there are more and more harebrained caching schemes showing up to kind of paper over this architectural problem. And tracking some unexpected behavior through that many different pieces just suuuuuuucks.
I fully get that god objects are bad. But metrics like these are making complex PHP projects worse, not better. PHP is not, and should not be, Java. Java has already shown us what the end result of these practices looks like. Let's not do that.
I desperately want a good code analysis tool for PHP: something that can look behind whether there's exactly one space before a '*' in a comment block and into deeper things like, "hey, on this line…