FAQ's

FAQ's: Frequently Asked Questions

Q: What is Codezero?

A: Codezero is a development platform designed to streamline the development and testing of applications and microservices in a Kubernetes (or VPC / VM) environment. It allows developers to connect their local development environment to services running in a remote Kubernetes cluster or VM, enabling faster iteration and debugging.

Q: How do I get started with Codezero?

A: To get started with Codezero, you simply need to follow these steps:
  1. Identify or create a Kubernetes cluster or VM to use as a Teamspace.
  2. Create a Codezero account and Organization on the Codezero Hub.
  3. Install the Codezero Space Agent on your Kubernetes cluster (or VM) to certify it as a Teamspace.
  4. Invite your team members to the Organization. (Individual developers then install the Codezero Local Agent (or just CLI) on their local machine to connect to the Teamspace.)

Q: How Does Codezero Work?

A: Codezero is an intelligent overlay network [we call Zero Environment Development (ZED)] That makes it really easy to work with remote services, as though they were local. This includes hybrid and multi-clouds, VM’s, VPC’s and various microservices architectures.

Q: What is Codezero Consume?

A: Codezero’s Consume function enables developers to access and interact with Kubernetes cluster-based services as if they were running locally on their laptop. Consume allows developers to:

  • Access cluster services using their actual in-cluster DNS names (instead of localhost)
  • Route traffic to services based on namespace, service name, or port
  • Experience real round-robin load balancing just like in the cluster
  • Continue working even if pods crash or restart, unlike traditional port-forwarding (or Telepresence's Teleport)
For more details on how it works check out Consume: How It Works

Q: What is the Codezero Serve?

A: Codezero’s Serve function allows developers to run a service locally on their machine and make it appear as if it's deployed within the Kubernetes cluster. This is achieved by serving a local "Variant" of the service. When a local variant is served, Codezero manages traffic routing so that specific requests can be directed to the developer's local service instance instead of the in-cluster version, enabling testing of local changes without requiring a full deployment to the cluster. For more details, check out  Serve: What's Happening Under the Hood

Q: What is the Codezero Space Agent?

A: The Codezero Space Agent is installed on your Kubernetes cluster or VM to certify it as a Codezero Teamspace. It facilitates the connection between the cluster environment and the individual developers' local machines running the Local Agent.

Q: What is the Codezero Local Agent?

A: The Codezero Local Agent is a tool installed on a developer's local machine (macOS, Windows 10+, or Ubuntu 18.x+) that allows them to connect to a Codezero Teamspace. It works with a Command-Line Interface (CLI) and/or a Desktop application to assist in the development and testing of Kubernetes applications.

Q: How is Codezero's Consume different than kubectl port-forward?

A: Using Consume means you don't need to have access to Kubernetes credentials (Kubeconfig).

Codezero routes to Services (unlike port-forwarding which binds to Pods) which means:

  • Consume provides the real round-robin experience that the Frontend service gets in cluster
  • Pods can crash or restart and you will not have to re-establish your port-forward!
  • You get to use the proper in-cluster DNS name of the Socket and Core services, instead of changing your code to use localhost
Consume also performs better, because it uses far fewer resources when trying to consume many services within a cluster. For more info see: https://docs.codezero.io/concepts/consume#why-not-use-kubectl-port-forward

Q: Can I Use Codezero to Consume Remote Databases?

A: Yes. Codezero's documentation provides steps for consuming external databases that are accessible to your cluster but might not be directly accessible to your local development environment. This typically involves configuring Codezero to route traffic to the external database through the Teamspace.

Q: How can I Use Codezero to debug in-cluster Services?

A: Codezero enables developers to debug production issues locally by replicating pre-production environments on their laptops, eliminating configuration drift and speeding up development with secure, real-time, production-like testing. Mark Allen from EveryDay Devops wrote a great description here: https://www.markcallen.com/debugging-with-codezero/

Q: Can I try out Codezero without a Kubernetes cluster for installation?

A: Yes. Codezero has a kubernetes cluster with a live tutorial app running that you can try out to learn how to use Codezero to bridge your local development environment with cloud-based services. You’ll also see how to debug those services along the way. Just visit https://docs.codezero.io/tutorial and install the Codezero Local Agent to give it a try! 

Q: What's a good starting "use case" to try ZED at our company?

A: A great way to start Zero Environment Development [ZED] with Codezero is to pilot it with a developer or a small team working on a single microservice that's part of a larger application already running in a shared Kubernetes development environment. Why this works well:
  1. Focused Scope: The developer needs to modify or debug just their specific service locally.
  2. Real-world Interaction: Codezero connects this local service to its dependent services and resources (like databases) that are running in your shared Kubernetes cluster (now a Codezero "Teamspace").
  3. Immediate Benefits:
    • Faster Iteration: Devs can run/test code changes locally in the context of the full application without slow deploys to shared environments.
    • Simplified Local Setup: No need to replicate the entire application stack locally; only the service being worked on.
    • Collaborative & Non-disruptive: Developers can test their changes without impacting others using the same shared Teamspace, thanks to Codezero's traffic routing.

This allows teams to quickly experience Codezero's core value (developing and testing locally as if your service is running directly within the Kubernetes cluster) with minimal initial overhead. Want more details?

Q: Can I [devops] remove someone else's Serve session?

A: Yes. If you have permissions / access to the cluster you can terminate a Variant that someone else is Serving.  See https://docs.codezero.io/guides/troubleshooting/#terminate-a-served-variant-in-the-cluster for detailed info.

Q: I like the concept of ZED but DevOps is hesitant. How do I help DevOps understand the benefits of Codezero?

A: It's understandable your DevOps team wants to thoroughly vet any new tools (especially those interacting with your Kubernetes clusters). Codezero's ZED enhances developer productivity while working with Kubernetes, and here's how to help DevOps understand its impact. Key DevOps Benefits with Codezero:
  • Reduced Cluster Access Needs: Removes direct kubectl access for developers, improving security & reducing  overhead for DevOps.
  • Simpler Dev Environments: Enables local development on individual microservices connected to a shared cluster, decreasing demand for numerous, fully replicated environments.
  • Consistent Service Interaction: Harmonizing fewer clusters into consistent Codezero TeamSpaces promotes a uniform approach for developers to access and test services in Dev, or Staging.

Q: How does Codezero provide logical separation for requests to developers serving different Variants in a shared Dev Cluster?

A: Codezero performs this magic through our "Serve Conditions" feature. This allows developers to define specific rules for how network traffic is routed between the in-cluster versions of services and the local Variants running on their machines. Developers can work on their individual versions without impacting others or the base environment. Concept: https://docs.codezero.io/concepts/serve/ Advanced: https://docs.codezero.io/references/serve/

In essence, Codezero acts as an intelligent "traffic cop", inspecting requests and, based on predefined conditions (User, Header), directing them to the appropriate variant, whether it's on a developer's local machine or the shared in-cluster service. This ensures that each developer can operate in an isolated logical space while still interacting with a live, shared environment.

Q: How Does Codezero Compare to Telepresence?

A: Codezero is a dedicated development & testing solution built for resilience and enterprise-grade stability, with significant stability and reliability enhancements over Telepresence. Telepresence is an open-source project with an uncertain future, and its Enterprise version referred to as "legacy". Codezero is actively supported with a robust roadmap, adding patented, new security features like Credential Infusion based on industry needs.

Q: How Does Codezero Compare to Signadot?

A: Signadot is a great tool - but Codezero takes a more shift-left, flexible approach. Codezero does not require you to change your CI/CD pipelines or deployment processes.  We've purposely designed Codezero to be as simple to implement and adopt as possible - because we know how hard it is to change deployment processes and infrastructure.  We complement, rather than replacing the way you deploy today.