SafeScale
SafeScale copied to clipboard
SafeScale: multicloud management platform
SafeScale: Infrastructure and Platform as Code tool
SafeScale is an Infrastructure and Platform as Code tool.
Table of content
-
Description
- SafeScale Infra
- SafeScale Platform
- Available features
- Contributing
- License
Description
SafeScale offers an APIs and a CLI tools to deploy versatile computing clusters that span multiple Clouds. These APIs and CLIs are divided in 2 service layers:
- SafeScale Infra to manage Cloud infrastructure (IaaS - Infrastructure as a Service)
- SafeScale Platform to manage Cloud computing platforms (PaaS - Platform as a Service)
SafeScale Infra
SafeScale Infra offers an API to completely abstract the IaaS services offered by Cloud platforms providers. It allows to:
- Create / Destroy private networks, Create routers, Manage firewall
- Create / Destroy hosts,
- Create / Destroy block and object storage,
- Mount / Unmount object storage as file system,
- Create / Destroy shares, Connect / Disconnect host to/from shares,
- Create / Destroy clusters
- Add / Remove "features" (software components) on hosts and clusters
SafeScale Infra provides a complete abstraction overlay over underlying IaaS APIs to mask their heterogeneity.
SafeScale Platform
Safescale Platform provides PaaS (Platform as a Service) capabilities:
- deploy a standard cluster
- deploy a specific cluster, deployment commands are executed in parallel to improve the speed
Platform can deploy a standard cluster with minimal features:
- cluster management environment: BOH (Bunch Of Hosts, ie cluster without workload orchestrator like Kubernetes), K8S (with Kubernetes)
- one or two gateways, including :
- a reverse proxy (Kong) with only SSH and HTTPS access allowed by default
- an internal load balancer over the cluster
- the remote desktop
For example the following command creates a Kubernetes cluster named k8s-cluster
using Normal
complexity (3 masters and 3 nodes):
$ safescale cluster create --flavor k8s --complexity Normal k8s-cluster
Supplemental software and/or configurations can be installed in 3 ways on SafeScale Hosts or Clusters:
-
using ssh command (the old and manual way):
$ safescale ssh run -c "apt install nginx" my-host
-
using "SafeScale
Feature
", that can be seen as the "ansible" for SafeScale:$ safescale cluster feature add mycluster ntpclient
-
and using ansible, which is the PREFERRED method to install your software in a SafeScale cluster: installing a simple script:
$ safescale cluster ansible playbook my-cluster my-ansible-script.yml
where my-ansible-script.yml is something like:
---
- hosts: nodes
tasks:
- name: Install golang
become: yes
apt:
pkg:
- golang
- bison
or a more complex one (put all your files in a .zip)
$ safescale cluster ansible playbook my-cluster my-zipped-scripts.zip
A "SafeScale Feature
" is a file in YAML format that describes the operations to check/add/remove software and/or configuration on a target (Host or Cluster).
A Feature
can describe operations using bash snippets.
Additionally, a Feature
is able to apply:
- reverse proxy rules
Available features
SafeScale is currently under active development and does not yet offer all the abilities planned. However, we are already publishing it with the following ones:
-
SafeScale Infra:
- Create / Destroy private networks
- Create / Destroy hosts,
- Create / Destroy block and object storage,
- Mount object storage on file system,
- Create Shares, Connect/disconnect host to share,
- Create / Update/Destroy Security Groups,
-
SafeScale Platform:
- Create / Destroy clusters composed of a network, servers and services
currently supported:
- BOH = Bunch Of Hosts (without any cluster management layer)
- Kubernetes
- Add / Remove "features" on host and clusters
- Create / Destroy clusters composed of a network, servers and services
currently supported:
-
Supported Cloud providers:
- OVH Public Cloud
- FlexibleEngine
- CloudFerro
- Generic OpenStack
- AWS
- GCP (Google Cloud Platform)
- Outscale
- Azure (Work In Progress)
Contributing
We are looking for new contributors.
If you wish to contribute you can fork the project, make your changes, commit to your repository, and then create a pull request. The development team can then review your contribution and commit it upstream as appropriate.
As much as possible, try following these guides:
For bugs and feature requests, please create an issue.
Build
See Build file
Usage
See Usage file
License
SafeScale is distributed by CS Systemes d'Information under the Apache License, Version 2.0. Please see the third-party notices file for additional copyright notices and license terms applicable to portions of the software.