How to Develop and Test Microservices Effectively
Developing and testing microservices can be complex, especially when they are part of a larger system. Microservices often rely on other services, like databases, message brokers, or additional microservices. Therefore, understanding how to develop and test microservices efficiently is crucial for any modern developer.
In this article, we explore inner loop development challenges and demonstrate how Quarkus, Docker, and related technologies can simplify the process. Additionally, we will show how ZippyOPS can help organizations with consulting, implementation, and managed services across DevOps, Cloud, DevSecOps, and more.

Understanding the Inner Loop
Software development is inherently iterative. The inner loop covers all tasks a developer performs locally before committing code. This includes writing, building, and testing code. In modern workflows, it may also involve multiple commits to a Git pull request until a feature is complete.
While the term “local” traditionally referred to a developer’s machine, it now also applies to remote environments like GitHub Codespaces, Red Hat OpenShift Dev Spaces, or Gitpod. The inner loop transitions to the outer loop when code reaches CI/CD pipelines for automated build, test, and deployment processes.
Challenges When Develop and Test microservices Locally
Developing a single microservice in isolation can be tricky if it depends on other services. While mocking or using in-memory databases (like H2) can help, running a complete local environment is often impractical. Companies like Netflix and Twitter have hundreds of microservices, making local replication impossible. Even Lyft found that trying to reproduce all services locally was not scalable (Future.com).
Container-Based Solutions
Containers offer an effective way to speed up inner loop development. They allow developers to isolate dependencies and run local instances of required services. Popular solutions include:
Docker Compose
Docker Compose can run dependent services like databases and message brokers locally. It enables developers to start, stop, and inspect logs easily. However, it has limitations:
- Requires separate maintenance from the application code.
- Developers are often locked into Docker binaries, with limited options for alternatives like Podman.
Testcontainers
Testcontainers provides lightweight, disposable container instances for testing. It integrates directly into unit or integration tests, but it’s usually not part of production dependencies.
Quarkus
Quarkus is a Kubernetes-native Java framework designed to enhance developer productivity. It reduces startup time, optimizes memory usage, and simplifies the inner loop workflow. Quarkus focuses on three key areas:
Dev Mode
Quarkus Dev Mode allows live coding. Changes are immediately reflected in the running application, merging write, build, and run steps into a seamless process.
Dev Services
Quarkus Dev Services automatically provisions databases, message brokers, and other dependencies. It uses Testcontainers behind the scenes but abstracts all configuration, allowing developers to focus on coding.
Continuous Testing
Continuous testing in Quarkus reruns only relevant tests when code changes. This instant feedback streamlines development and improves code quality.
Remote Development and Distributed Systems
For larger systems, replicating all services locally may be impossible. Remote development, or “remocal,” enables developers to run microservices locally while connecting to a remote cluster. Quarkus Remote Development synchronizes code changes with the remote environment, providing instant feedback without the “works on my machine” problem.
Skupper further enhances this setup by enabling secure communication between local and remote services across Kubernetes clusters. It makes local services appear as if they are part of the remote system, allowing developers to test changes in a realistic environment.
ZippyOPS: Supporting Modern Development Workflows
At ZippyOPS, we provide consulting, implementation, and managed services to help organizations streamline development and operations. Our expertise spans:
- DevOps, DevSecOps, DataOps, Cloud, Automated Ops, AIOps, MLOps
- Microservices architecture and management
- Infrastructure and security solutions
We offer a full range of services, products, and solutions to support your business:
By integrating these services, teams can accelerate development, improve security, and optimize operations across local, remote, and cloud-based environments.
Conclusion for Develop and Test microservices
Effectively developing and testing microservices requires a combination of the right tools and practices. Quarkus, containers, and remote development techniques streamline the inner loop, while solutions like Skupper enable testing in distributed systems. At the same time, ZippyOPS helps organizations implement these strategies with expert guidance, managed services, and comprehensive support.
To learn more or request a consultation, contact us at sales@zippyops.com.



