01 - First page of the slides

Hii! This is the start!

CloudHarness is a base infrastructure facilitator for microservice based applications deployed on Kubernetes. Can scaffold and maintain your cloud solution on top of Cloudharness without writing Kubernetes templates, with in place common utilities and applications already configured for you.

What building your cloud solution with CloudHarness gives to you:
- Common framework and utilities to develop and deploy micro-service application
- Helm chart automatic generation
- deployments
- services
- ingress configuration
- databases
- backup cron jobs
- access gatekeepers configuration
- secrets
- templated config maps from files
* Automatic build and push of images
* REST-API scaffolding building based on OpenApi
* Continuous deployment script generation
* Debug backend applications running on Kubernetes
* Python cluster access utilities
* Prebuilt support applications and shared library to:
* Log in and user management - based on Keycloak
* Submit batch and asynchronous workflows - based on Argo
* Orchestrate microservices - based on Kafka
* Assign compute workspaces to users - based Jupyterhub
* Testing framework to help you write and run tests
* Unit tests
* API integration tests
* End to End tests (with Puppeteer)
* CI/CD pipelines generation

Why CloudHarness?

The microservice architecture is a great to get code separation and flexible development, but may not be of easy implementation, especially for small development teams/projects.
In particular, these questions may rise:
- How do I create a deployment for my microservices?
- How do I orchestrate my microservices?
- How to create consistent api documentation?
- Do I need to be an experienced devops to create a micro-service based application?
- Wouldn't it be nice to develop a plain database/backend/frontend application without infrastructure boilerplate but still be able to configure everything I want when needed?
- How to run batch operations like ETL processes easily and efficiently in a cloud environment?
- How to manage databases without being locked to a specific vendor solution?
- How to perform database backups?
- How to manage secret data?
- What about having a precounfigured account management application?
- Sooner rather than later I'll need an orchestration queue. Why not have that just ready to use?

Command line tools

CloudHarness provides the following command line tools to help application scaffolding and deployment.

* `harness-deployment` - generate the helm chart to deploy on Kubernetes.
* `harness-application` - create a new CloudHarness REST application.
* `harness-generate` - generates server and client code for all CloudHarness REST applications.
* `harness-test` - run end to end tests

Operative system

Cloudharness can be used on all major operative systems.
- Linux: supported and tested
- MacOS: supported and tested
- Windows/WSL2: supported and tested
- Windows native: mostly working, unsupported

### Python
Python 3.9 must be installed.

It is recommended to setup a virtual environment.
With conda:
```bash
conda create --name ch python=3.9
conda activate ch
```

1 You can join these references when you fetch the document(s) containing a Portable Text field. Let's say you have a document type named article which has a body field containing an array of blocks. The following query would expand all the asset fields within the array:


1/3