Write Maintainable Integration Tests with Docker


The popularity of microservices and the use of third-party services for non-business critical features have drastically increased the number of integrations that make up the modern application. These days, it is commonplace to use MyS QL, Redis as a key-value store, MongoDB, Postgress, and InfluxDB — and that is all just for the database — let alone the multiple services that make up other parts of the application.

All of these integration points require different layers of testing. Unit tests increase how fast you write code because you can mock all of your dependencies, set the expectation for your function, and iterate until you get the desired transformation; however, we need more. We need to make sure that the integration with Redis, MongoDB or a microservice works as expected, not just that the mock works as we wrote it. Both are important, but the difference is huge.

Why You Can’t Afford to Ignore Distributed Tracing for Observability

Observability is a hot topic, but not a lot of people know what it truly means. Everyone reads about monitoring vs. observability these days, and I have had the chance to experience what I think is the main concept behind this movement.

First of all, monitoring is complicated. Dashboards don't scale because they usually reveal the information you need until only after an outage is experienced, and, at some point, looking for spikes in your graphs becomes a straining eye exercise. And that's not monitoring, it is just a "not very" smart way to understand how something isn't working. In other words, monitoring is just the tip of the iceberg where the solid foundation is the knowledge you have of your system.