Skip to content

Commit

Permalink
Simplified the initial paragraph
Browse files Browse the repository at this point in the history
tried to make it "punchier" a'la Georg
  • Loading branch information
jcpoyser authored Dec 20, 2024
1 parent 4c3555e commit 9436cd2
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions docs/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,29 @@ slug: /

# 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.
Codezero introduces an innovative overlay network that transforms VMs / Kubernetes clusters into Teamspaces, enhancing collaborative development.

**Teamspaces:** These are specialized development environments where developers can work together seamlessly. Teamspaces facilitate real-time collaboration by allowing developers to:

- **Consume Services:** Developers can access and utilize services listed in a Service Catalog. This Catalog includes services running either within a Kubernetes cluster / VM or on a team member's local machine, ensuring that all team members have access to the necessary components for development and testing.
- **Serve Local Variants:** Team members can temporarily share their own local versions (or Variants) of Services. By serving these local variants through the Service Catalog, developers can test and iterate on their work in a shared environment, promoting rapid feedback and integration.

This simplifies the development process and bridges the gap between Local development and Remote deployment, allowing developers to focus **_more on coding_** and **_less on managing network configurations_**.

<center>
<h3>Development Cluster</h3>
</center>

```mermaid
flowchart LR
subgraph Kubernetes
subgraph Kubernetes or VMs
direction LR
Frontend((Service A)) <--> Core
Core((Service B)) <--> Database((Service C))
end
```

Consider the application above. Services A, B and C are deployed to a development cluster or namespace. You would either have to replicate the entire application locally or, replace Service B with the new version in the development environment in order to test.
Consider the application above. Services A, B and C are deployed to a development cluster, vm or namespace. You would either have to replicate the entire application locally or, replace Service B with the new version in the development environment in order to test.

:::tip
The version of the app one experiences is determined by the path a ray of traffic takes across the services.
Expand All @@ -32,7 +39,7 @@ The version of the app one experiences is determined by the path a ray of traffi

```mermaid
flowchart LR
subgraph Kubernetes
subgraph Kubernetes or VMs
direction LR
Frontend((Service A)) <--> Core
Core((Service B)) <--> Database((Service C))
Expand All @@ -44,13 +51,13 @@ flowchart LR
end
```

With a Teamspace, in order to work on Service B, you simply run the service locally. This _Local_ Service B Variant receives traffic based on [_Conditions_](../references/serve#condition-types) you specify. The Local Variant then delivers traffic back by [Consuming](../references/consume) Service C. Traffic that does not meet the specified condition flows through the _Default_ Service B Variant running in the cluster untouched.
With a Teamspace, to work on Service B, just run a copy of the Service locally. This _Local_ Service B Variant receives traffic based on [_Conditions_](../references/serve#condition-types) you specify. The Local Variant then delivers traffic back by [Consuming](../references/consume) Service C. Traffic that does not meet the specified condition flows through the _Default_ Service B Variant running in the cluster untouched.

Local Variants 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.
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.
You do not have to be a Kubernetes/VM Admin or a networking guru to develop using a Teamspace. Once set up, most developers usually don't need any direct knowledge of, or access to the underlying Kubernetes Clusters.

## Getting Started

Expand All @@ -62,7 +69,7 @@ The [Tutorial](../tutorial) focuses on how to use Codezero to connect your local

## Concepts

We strive to limit the jargon that developers have to learn to benefit from our tooling. While words like Services and Environments are commonplace, we felt it would help to clarify this terminology within the Codezero and Kubernetes context. We cover various terms in the "Concepts" section of this documentation.
We have tried hard limit the jargon that developers have to learn to benefit from our tooling. While words like Services and Environments are commonplace, we felt it would help to clarify this terminology within the Codezero and Kubernetes/VMs context. We cover various terms in the "Concepts" section of this documentation.

## How-to Guides

Expand Down

0 comments on commit 9436cd2

Please sign in to comment.