Skip to content
This repository has been archived by the owner on Jul 12, 2022. It is now read-only.
/ charlescd Public archive

CharlesCD is an open source tool that makes deployments more agile, continuous and safe, which allows development teams to perform hypothesis validations with a specific group of users, simultaneously.

License

Notifications You must be signed in to change notification settings

ZupIT/charlescd

The Charles project has been archived by Zup Innovation. It might start again eventually; however, we won't deliver support for now.

build butler build circle-matcher build compass build moove build octopipe build villager codecov License

CharlesCD logo

Table of contents

2.3. Usage




About

CharlesCD is an open source project that deploys quickly, continuously, and securely. It allows development teams to simultaneously perform hypothesis validations with specific groups of users.

It is possible to segment your customers through specific characteristics (circles) and, at the same time, submit several versions of the same application for testing with users of the circles.

Currently, CharlesCD works with these modules:

How was the project created?

The project's concept refers to the theory proposed by biologist Charles Darwin (1809-1882), that evolution occurs through adaptation to a new environment. In the development's case, this logic happens through constant improvements in applications, for example, when you build and test hypotheses to deploy more effective releases.

CharlesCD offers a solution to the community: we want to enhance the deployment and hypotheses testing work, because it will allow you to identify problems faster and execute possible solutions to solve them.

For this reason, we consider CharlesCD a Darwinism's application within the development and programming universe.

What does Charles do?

  • Simple segmentation of users based on their profile or even demographic data;
  • Creation of deployment strategies in an easier and more sophisticated way using circles;
  • Easy version management in case of multiple releases in parallel in the production environment;
  • Monitoring the impacts of each version using metrics defined during the creation of the deployment.

Getting Started

Requirements

To install Charles your environment needs the following requisites:

  • Kubernetes
  • Helm
  • Istio (version>= 1.7 and enabled sidecar injection on the deploy namespace of your application).
  • Prometheus, in case you want to use metrics.

Installation

CharlesCD's installation considers these components:

  1. Charles' architecture specific modules;
  2. Keycloak, used for the project's authentication and authorization. However, if you already have an Identity Manager (IDM) and you want to use it, you have just to configure it during Charles' installation;
  3. A PostgreSQL database for backend modules (charlescd-moove, charlescd-butler,charlescd-villager, charlescd-gate e charlescd-compass) and Keycloak;
  4. A Redis to be used by Circle Matcher module (charlescd-circle-matcher);
  5. A RabbitMQ for charlescd-hermes module's use.
  6. Ingress which is used to expose the HTTP and HTTPS routes outside the cluster to services inside the cluster. When you install Charles, it already has a default ingress, however, you can use your own.

Usage

For more details, check out the documentation.

Documentation

You can find Charles's documentation on our website.

Contributing

Help us to evolve CharlesCD

Check out our contributing guide to learn about our development process, how to propose bug fixes and improvements, build and test your changes to Charles.

Developer Certificate of Origin - DCO

This is a security layer for the project and for the developers. It is mandatory.

Follow one of these two methods to add DCO to your commits:

1. Command line Follow the steps: Step 1: Configure your local git environment adding the same name and e-mail configured at your GitHub account. It helps to sign commits manually during reviews and suggestions.

git config --global user.name “Name”
git config --global user.email “email@domain.com.br”

Step 2: Add the Signed-off-by line with the '-s' flag in the git commit command:

$ git commit -s -m "This is my commit message"

2. GitHub website You can also manually sign your commits during GitHub reviews and suggestions, follow the steps below:

Step 1: When the commit changes box opens, manually type or paste your signature in the comment box, see the example:

Signed-off-by: Name < e-mail address >

For this method, your name and e-mail must be the same registered on your GitHub account.

Code of Conduct

Please follow the Code of Conduct in all your interactions with our project.

License

Apache License 2.0.

Community

Do you have any question or suggestion about Charles? Let's chat in our forum.

Keep evolving.

Security

Check out our security policies.

About

CharlesCD is an open source tool that makes deployments more agile, continuous and safe, which allows development teams to perform hypothesis validations with a specific group of users, simultaneously.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published