• This repository has been archived on 12/Jul/2022
  • Stars
    star
    336
  • Rank 125,564 (Top 3 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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.

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

1. About

2. Getting Started

2.1. Requirements

2.2. Installation

2.3. Usage

3. Documentation

4. Contributing

4.1. Developer Certificate of Origin - DCO

5. Code of Conduct

6. License

7. Community

8. Security




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 protected]

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.

More Repositories

1

horusec

Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.
Go
1,014
star
2

beagle

A framework to help implement Server-Driven UI in your apps natively.
Shell
684
star
3

ritchie-cli

Ritchie CLI is an open-source tool that allows to create, store and share any kind of automation, executing them through command lines, to run operations or start workflows ⚙️ 🖥 💡
Go
560
star
4

ritchie-formulas

This repository contains the community formulas that can be executed through Ritchie CLI once imported. This tool is an open source product that allows you to create, store and share any kind of automations, executing them through command lines, to run operations or start workflows ⚙️ 🖥 💡
Go
104
star
5

horusec-platform

Horusec Platform is a set of web services that integrate with the Horusec CLI to facilitate the visualization and management of found vulnerabilities.
Go
54
star
6

pact-framework-examples

39
star
7

beagle-web-core

Project: Produto - Beagle
TypeScript
24
star
8

beagle-web-react

Project: Produto - Beagle
TypeScript
22
star
9

horusec-engine

Horusec analysis engine
Go
21
star
10

zup-checkstyle-java

20
star
11

beagle-web-angular

Project: Produto - Beagle
TypeScript
20
star
12

beagle-ios

Swift
19
star
13

beagle-android

Kotlin
19
star
14

ritchie-formulas-demo

This repository contains some demonstration formulas that can be executed through Ritchie CLI once imported. This tool is an open source product that allows you to create, store and share any kind of automations, executing them through command lines, to run operations or start workflows ⚙️ 🖥 💡
Shell
18
star
15

nimbus-compose

Library for enabling Server Driven UI in Jetpack Compose
Kotlin
17
star
16

horusec-vscode-plugin

Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command. Now you can usage extension for vscode.
TypeScript
17
star
17

QueroTrabalharNaZUP

16
star
18

nimbus-swiftui

Library for enabling Server Driven UI in SwiftUI
Swift
14
star
19

nimbus-docs

14
star
20

vagas

vagas
14
star
21

horusec-docs

Horusec oficial documentation
HTML
11
star
22

horusec-examples-vulnerabilities

Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.
Elixir
11
star
23

horusec-operator

Horusec Kubernetes Operator
Go
9
star
24

beagle-docs

Beagle Documentation
HTML
8
star
25

owldency

Action that checks if your application uses dependencies with known vulnerabilities.
JavaScript
7
star
26

nimbus

Libraries for enabling Server Driven UI in Jetpack Compose and SwiftUI
Kotlin
7
star
27

beagle-examples

Project: Produto - Beagle
Kotlin
7
star
28

horusec-devkit

Repository containing several Horusec abstractions and reusable codes.
Go
7
star
29

nimbus-layout-compose

Layout components for Nimbus Compose (SDUI)
Kotlin
7
star
30

beagle-flutter

Dart
7
star
31

horusec-admin

Go
7
star
32

beagle-adoption-demo

Project:beagle-adoption-demo
Kotlin
7
star
33

opensource-tech-radar

The Zup Open Source Tech Radar
HTML
6
star
34

charlescd-c4model

Documentation of CharlesCD architecture using C4Model
JavaScript
5
star
35

horusec-c4model

JavaScript
4
star
36

beagle-backend-kotlin

Kotlin
4
star
37

beagle-backend-ts

TypeScript
4
star
38

beagle-helpers

beagle-helpers
Kotlin
4
star
39

horusec-intellij-plugin

Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command. Now you can usage extension for intellij.
Makefile
4
star
40

go-vault-session

Project: Produto - Microservicos
Go
3
star
41

nimbus-layout-swiftui

Layout components for Nimbus SwiftUI (SDUI)
Swift
3
star
42

horusec-jenkins-sharedlib

Horusec Library to integrate with jenkins
Groovy
3
star
43

beagle-tests

Kotlin
3
star
44

charlescd-operator

An operator that enables Hypothesis-Driven Testing
Go
3
star
45

nimbus-backend-ts

Backend library in Typescript for Nimbus SDUI
TypeScript
3
star
46

ritchie-docs

This repository contains Ritchie CLI documentation ⚙️ 🖥 💡
CSS
3
star
47

charlescd-docs

CharlesCD repository documentation.
2
star
48

ritchie-templates

Repository containing Ritchie CLI formulas templates
Shell
2
star
49

horusec-action

GitHub action for Horusec
JavaScript
2
star
50

nimbus-core-binaries

Binaries for core Nimbus Library, which is used for enabling Server Driven UI in SwiftUI
Objective-C
2
star
51

horusec-charts

Project: Core Shield - 239 SRE
2
star
52

beagle-intellij-plugin

Project:beagle-intellij-plugin-ce
Kotlin
1
star
53

horusec-docs-hugo-theme

horusec-docs-hugo-theme
CSS
1
star
54

YogaKit

Project:376 Produto - Beagle
C++
1
star
55

header-license-checker

JavaScript
1
star
56

beagle-grpc

beagle-grpc
TypeScript
1
star
57

charlescd-local-cluster

Install CharlesCD via Terraform in your local environment.
HCL
1
star
58

docs-charles

CharlesCD Documentation
HTML
1
star
59

horusec-adr

Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.
Makefile
1
star