Overview
Codezero is an overlay network that empowers development teams to turn Kubernetes clusters into Teamspaces. A Teamspace is a collaborative development environment where developers can locally Consume services discoverable in a Service Catalog. Services featured in the catalog operate either within the Kubernetes cluster, or on a team member's local machine. Developers can Serve local Variants of services through this catalog to other team members.
Teamspace
In the above diagram, a developer is running the Service B Variant locally. This local Service B Variant:
- is Served in the Teamspace and
- Receives traffic from Service A
- based on Conditions specified by the developer.
The local Service B Variant then:
- delivers traffic back into the Teamspace
- by Consuming Service C.
Traffic that does not meet the condition flows through the Teamspace untouched. Variants running locally need not be containerized. They are simply services running on a local port but through the service catalog appear like they are deployed to the Kubernetes cluster. Developers can, therefore, use preferred local tooling like IDEs, debuggers, profilers and test tools (e.g. Postman) during the development process.
Teamspaces are language agnostic and operate at the network level. Any authorized member can define Conditions that reshape traffic across the services available in the catalog to instantly create a Logical Ephemeral Environment. While the Teamspace is long running, this temporary traffic shaped environment comprising of a mix of remote and local services can be used to rapidly build and test software before code is pushed.
You do not have to be a Kubernetes admin or a networking guru to develop using a Teamspace. Once set up, most developers need not have any direct knowledge of, or access to the underlying Kubernetes Clusters.
Getting Started
This documentation is geared to both Kubernetes Admins who want to create Teamspaces as well as Developers who simply want to work with Teamspaces.
We recommend you go through this documentation in the order it is presented as we build on previously defined concepts. Happy Learning!
Guides
The Guides cover setting up and administering a Teamspace. You will require a Kubernetes Cluster to create a Teamspace. The Kubernetes QuickStart has several options to get started if you do not currently have a custer. Due to inherent limitations, you cannot use a local cluster like Minikube or Kind with Codezero.
Tutorials
The Tutorials focus on using a Teamspace once setup. We have a Sample Kubernetes Project that comprises some of the most common Microservices Patterns you would encounter in a Kubernetes cluster. This project is used across all the Tutorials and Videos in this documentation.
The Tutorials walk you through scenarios you will encounter in just about any modern microservices application development.