Welcome to Clouding
Cloud automation platform.
For Individual, Startup, Enterprise
Are you aware, that in coming 2 years 90% of IT systems will be running in the Cloud?
Join all of those people, who understand, that there is no point in wasting time and money on manual cloud management.
Infrastructure can be managed in two ways: manually or automatically.
The manual solution takes a lot of time, requires expert knowledge and is error prone.
You can save this time using Clouding - platform designed to automate cloud based environment management. While Clouding operates, you can focus on your core business.
Clouding is a tool that provides complete solution to create/change/version your environments in the cloud. It allows operators to manage environments across multiple clouds (in current version Amazon AWS and Google Cloud is supported, more to come soon)
Clouding is an implementation of ‘Infrastructure as a code’ pattern, with a few extensions. Operator might be simply a developer, devops engineer, or dedicated operations team. The main focus is to integrate environment management as close to the application source code as possible. That results in one, integrated pipeline for deploying applications, all automated.
Clouding is a next step for Continuous Integration and Continuous Delivery (or even deployment) solutions and works very well in conjunction. Can be easily used together with existing systems like Jenkins, Bamboo and other CI/CD tools. That being said, it can also be used as a standalone tool to manage environments only.
The complete environment is described in human readable TOML or YAML files. Such a configuration files describe compute instances (ie. EC2), load balancers (ie. ELB), firewalls (ie. aws security groups), storage (ie. S3), networking, DNS (ie. Route53). It’s also possible to extend configuration to cover most SaaS services. Clouding is using Terraform as a backend solution.
Configuration files live just next to your application code, in the same repository. Everyone responsible for working with application has full overview of the environments that application is using. In such a way Clouding can close the gap between developer and operation teams. That also means a blueprint of datacenter is versioned by design. It is possible to store configuration files in a separate repositories in case that is required for security reasons.
Clouding is using ansible to provision servers. We provide our own ansible galaxy repository with custom roles. It is possible to integrate other provisioning solutions, like Puppet, Salt Stack, Chef etc. It is possible not to use any provisioning tools and still use Clouding to setup the environment on a basic level. In that case operators need to provision machines in some other way.
Operators describe desired environments only once. It can be applied to multiple clouds, multiple times, every time the same. Configuration files create an abstraction layer above Clouding workers. It’s our job to make sure they are applied to the cloud environment correctly.
Clouding makes it possible to describe as many environments as needed. That makes it really easy to test any change that needs to be applied to production environment with confidence, without the risk of breaking existing setup. Every change is applied following the same pattern (algorithm), which makes human error reproducible and debuggable. Every execution is preceded by a dry run with a human readable output.
With Clouding you have full control over firewall rules, access rules to your resources, user accounts in the cloud on multiple permission levels. All of that is part of simple YAML or TOML file that can be reviewed and versioned.
The first step is to design the environment.
In our case, we want to create 4 frontend servers, 4 backend servers, 2 loadbalancers and a database.
We also want to deploy this stack in 2 different availability zones.
At this stage it should not matter which cloud provider we are going to choose later!
Clouding implements "Infrastructure as a Code " pattern.
In this step, we need to describe previously designed environment in TOML or YAML file.
This is infrastructure blueprint. Such a file should be versioned in Git and in next step will be applied to real Cloud Provider.
cloud = "aws" [provisioner] type = "ansible" playbook = "main.yaml" [vpc] name = "CloudingDemo" region = "eu-west-1" cidr = "10.0.0.0/16" public_subnet = [ "10.0.1.0/24", "10.0.2.0/24" ] private_subnet = [ "10.0.3.0/24", "10.0.4.0/24" ] [[server]] role = "frontend" count = 2 private = true disk_size = 17 image = "ami-ed82e39e" type = "t2.nano" [[server.firewall]] from_port = 80 to_port = 80 protocol = "tcp" cidr = ["10.0.0.0/8"] [[loadbalancer]] name = "frontlb" instances = "frontend" monitor_url = "HTTP:80/" [[loadbalancer.firewall]] protocol = "tcp" cidr = ["0.0.0.0/0"] [[loadbalancer.listener]] loadbalancer_port = 80 loadbalancer_protocol = "http" instance_port = 80 instance_protocol = "http"
Now it's time to execute Clouding!
Based on prepared configuration, Clouding will validate, plan and execute requested actions.
In this example, Clouding will apply Ansible provisioner to configure servers.
As a result you will get working environment in choosen Cloud Provider.
Use Clouding to change existing setup.
By editing configuration files, you can scale up, down, add and remove resources. You can change any parameter you like!
You can also stop and start environments by single command.
It is possible to destroy running setup any time, so feel free to experiment.
We have a big backlog of coming features; Stay Tuned!