InfoQ Homepage News Hubber Codespace Improves Inner-Loop Testing at GitHub
Hubber Codespace Improves Inner-Loop Testing at GitHub
Mar 18, 2024 2 min read
Write for InfoQ
Feed your curiosity. Help 550k+ globalsenior developers
each month stay ahead.Get in touch
GitHub's Developer Experience (DX) team recently unveiled a new tool aimed at streamlining the inner-loop development process within its distributed service ecosystem. Named "Hubber Codespace" (HCS), the solution addresses some challenges posed by integration testing in a modular team structure where different services are developed and operated independently.
Integration testing in a distributed or microservice system such as GitHub quickly becomes complex. As GitHub evolved from a smaller organization to a larger one with hundreds of teams, the traditional approach of iterating within a mono-repo became impractical, with a proliferation of microservices being created. Managing dependencies across all these different services, each with differing requirements and versions, presented a challenge in performing representative testing. To tackle this issue, the DX team embarked on a mission to provide teams with a fast and reliable development cycle that worked around the constraints of a mono-repo setup.
The genesis of this new tool stemmed from a fundamental shift in perspective: rather than bringing developers to the ecosystem, why not bring the ecosystem to the developers? This approach led to the development of HCS, a Docker Compose project designed to locally stand up the entire GitHub ecosystem. By enabling developers to test their code within an integrated environment, HCS facilitates a deeper understanding of how a developer's changes interact with the broader system, increasing the developer's confidence in their deployments.
The DX team evaluated several options as an appropriate orchestrator for HCS, including Minikube and an internal SSH tunnelling tool (Codespace-Compose). Ultimately, Docker Compose emerged as the preferred choice due to its simplicity, robustness, and minimal maintenance overhead. To further enhance the user experience, a user-friendly CLI was developed in Golang, offering seamless integration with HCS and abstracting away the complexities of Docker-Compose commands.
One key challenge HCS addresses is ensuring developers have access to an up-to-date version of the GitHub ecosystem. To achieve this, HCS collects the latest mono-repo release and SHAs for other microservices as part of an automated release process. This ensures that HCS is aligned with the latest GitHub codebase changes, so developers are not working with out-of-date code.
The adoption of HCS has garnered positive feedback from partner teams, with many lauding its impact on their development process. By simplifying integration testing and providing a consistent development environment, HCS has empowered teams to confidently validate their changes, eliminating the need for manual steps and reducing deployment friction.
In conclusion, introducing Hubber Codespace is a significant milestone in GitHub's ongoing efforts to enhance the developer experience. GitHub empowers developers to build, test, and deploy code with increased efficiency and reliability by using containerization and innovative tooling. This gives them the confidence that their changes have been tested appropriately in GitHub's complex collection of mono-repo and microservices.
-
Related Editorial
-
Related Sponsors
-
Popular across InfoQ
-
AWS Introduces ECS Managed Instances for Containerized Applications
-
Producing a Better Software Architecture with Residuality Theory
-
GitHub Introduces New Embedding Model to Improve Code Search and Context
-
Google DeepMind Introduces CodeMender, an AI Agent for Automated Code Repair
-
Building Distributed Event-Driven Architectures across Multi-Cloud Boundaries
-
Mental Models in Architecture and Societal Views of Technology: A Conversation with Nimisha Asthagiri
-
Related Content
The InfoQ Newsletter
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example