E74: Dev-First Testing with AtomicJar & Testcontainers

Topics covered
Popular Clips
Episode Highlights
Cloud Development
AtomicJar's Testcontainers Cloud leverages cloud resources to enhance local and CI development environments. explains how the platform connects developer machines to the cloud, offering a seamless experience akin to local environments but powered remotely 1. This approach ensures consistency across local and CI environments, with a tiny agent facilitating the connection to cloud resources 2. Egorov highlights the importance of minimizing latency, drawing parallels with cloud gaming, to provide a smooth development experience.
We try to keep it global, so that everyone has the same experience and get the best of two worlds.
---
This innovative setup allows developers to focus on writing and running tests without the hassle of managing container environments.
  Â
Testcontainers
Testcontainers, an open-source project, simplifies testing by allowing developers to run self-contained tests without additional commands. clarifies that Testcontainers does not mimic databases but uses Docker to start actual instances of technologies like PostgreSQL and Kafka 3. This approach eliminates the need for staging environments, which Egorov finds problematic due to past experiences. The project, originally created by Richard Norris, addresses inconsistencies in testing environments and enhances developer productivity 4.
No need to run with me, no need to start additional commands, just clone and run.
---
Testcontainers' philosophy focuses on real-world testing scenarios, providing a robust solution for developers.
  Â
Kafka Challenges
Integrating Kafka into Testcontainers presented unique challenges due to its complex protocol. describes the difficulty of running Kafka on random ports, a necessity for avoiding conflicts during testing 5. The solution required deep understanding of both Docker and Kafka's configuration to dynamically update ports. This intricate process underscores the importance of comprehending underlying technologies to provide seamless abstractions for users.
Knowing how Docker works, you also need to know how all these underlying technologies work.
---
Ultimately, Testcontainers simplifies the user experience by handling these complexities internally, allowing developers to focus on their core tasks.
Related Episodes


E146: Inventing Virtual Kubernetes Clusters
Answers 383 questions

E86: Building Secure Containers Faster with Slim AI
Answers 383 questions

E79: Spin Up Production-Like Dev Environments With Okteto
Answers 383 questions

E92: Application Delivery for Kubernetes with Akuity
Answers 383 questions

E100: Reimagining Load Testing with Artillery
Answers 383 questions

E63: Mobile.dev's New Mobile Testing Framework Maestro
Answers 383 questions

E26: Cube.dev - Open Source Headless BI for Building Data Apps
Answers 383 questions

E5: Open-Sourcing Kubernetes & Building a Company (Heptio) Around It
Answers 383 questions

E117: Taking on Datadog with Open Source Observability
Answers 383 questions

E82: Creating Apache Iceberg & Headless Data Warehouse Tabular
Answers 383 questions

E97: What Modern Application Delivery Looks Like With Loophole Labs
Answers 383 questions

E83: Developer-First Security with Snyk
Answers 383 questions

E34: Open-Source WebAssembly Tools with Fermyon
Answers 383 questions

E42: Earthly, a CI/CD Framework that Can Run Anywhere
Answers 383 questions

E105: Bringing Great Developer Experience to Data Teams with Dagster
Answers 383 questions
