CS-SI / SafeScale

SafeScale: multicloud management platform
Apache License 2.0
42 stars 15 forks source link

SafeScale: Infrastructure and Platform as Code tool

License Version Downloads

Contributors Forks Stars

Go Report Card Go Versions CodeSizeInBytes

Packages Documentation

SafeScale is an Infrastructure and Platform as Code tool.

Table of content

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

SafeScale Infra offers an API to completely abstract the IaaS services offered by Cloud platforms providers. It allows to:

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:

Platform can deploy a standard cluster with minimal features:

For example the following command creates a Kubernetes cluster named k8s-clusterusing Normalcomplexity (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:


  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

 - 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](https://help.github.com/forking/), make your changes, commit to your repository, and then [create a pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/). The development team can then review your contribution and commit it upstream as appropriate.

As much as possible, try following these guides:
- [godoc documentation tool formalism](https://blog.golang.org/godoc-documenting-go-code).
- [Go style guide](https://github.com/golang/go/wiki/CodeReviewComments)
- [Effective Go](https://golang.org/doc/effective_go)

For bugs and feature requests, [please create an issue](https://github.com/CS-SI/SafeScale/issues/new/choose).

## Build
  [See Build file](doc/build/BUILDING.md)

## Usage
  [See Usage file](doc/USAGE.md)

## License

SafeScale is distributed by [CS Systemes d'Information](http://csgroup.eu) under the [Apache License, Version 2.0](LICENSE). Please see the [third-party notices](NOTICE) file for additional copyright notices and license terms applicable to portions of the software.