This document represents an overview of CirrusGrid PaaS fundamental concepts, a versatile solution for hosting inside Public, Private, Hybrid, or Multi-Cloud. The reference below is targeted at those who are new to CirrusGrid and helps to understand the overall landscape of the Platform.
Here, we offer a consistent outline of the underlying CirrusGrid components with pointers to the corresponding documentation, namely:
- Cloudlet
- Container
- Layer
- Environment
- Application
- Host
- Environment Region
- CirrusGrid Installation (Platform)
Being informed about the basic components and how they interrelate, you can proceed with more complex scenarios available within CirrusGrid PaaS.
Cloudlet
Cloudlet is the smallest CirrusGrid infrastructure component. It is a special resource unit that equals to 128 MiB of RAM and 400 MHz of CPU power simultaneously. Such high granularity of resources allows the system to allocate the exactly required capacity for each instance in the environment. This ensures the truly fair usage-based pricing, so that only the really consumed resources are being paid.
There are two types of cloudlet at CirrusGrid:
- Reserved Cloudlets are fixed amount of resources reserved in advance and charged irrespective of the actual usage. Reserved cloudlets are cheaper than dynamic and recommended to be used when the application load is permanent.
- Dynamic Cloudlets are added and removed automatically according to the amount of resources required by your application (assigned when load goes up and removed as soon as it drops down). Dynamic cloudlets are recommended to be used for applications with variable load or when it cannot be predicted in advance, ensuring the truly usage-based charging model. In such a way, so that you pay based on your actual resource usage within the scaling limit.
Note: When calculating cloudlet usage, the system considers only the larger of RAM or CPU usage per hour (not both combined). E.g. if during one hour your average CPU usage is 2400 MHz (6 cloudlets), and your peak RAM usage is 1024 MiB (8 cloudlets), you pay for 8 cloudlets – not the combined total (14 cloudlets).
Both reserved and dynamic cloudlets functionality provides auto discounts for the usage volume – the more is used, the cheaper is the base price.
Container
Container (node) is an isolated virtualized instance, provisioned for software stack handling (like application servers, databases, load balancers etc) and placed on a particular host. Each container can be automatically scaled, both vertically and horizontally, making hosting of applications truly flexible.
The platform provides certified containers for Java, PHP, Ruby, Node.js, Python, Go, .NET and the ability to deploy custom Docker containers. Each container has its own private IP and unique DNS record, whilst public IP can be easily attached within UI dashboard.
Layer
Layer, also referred to as a Node group, is a set of similar containers in a single environment. There is a set of predefined layers within CirrusGrid topology wizard for certified containers, such as:
- load balancer (LB)
- compute (CP)
- database (DB)
- data storage (DS)
- cache
- VPS
- build node
- extra (custom layer; multiple ones can be added for Docker-based environments)
The layers are designed to perform different actions with the same type of containers at once. For example, the nodes can be simultaneously restarted or redeployed, as well as horizontally scaled:
- manually via dashboard
- automatically based on the load triggers
Also, it is possible to check the common logs and stats, or make the required configurations via file manager for all containers in a layer.
In addition, the containers of one layer are distributed across different hosts using anti-affinity rules, ensuring even more reliability and high-availability for hosted applications.
Environment
Environment is a collection of isolated containers for running particular application services. CirrusGrid provides built-in tools for convenient environment management (i.e. configuration, monitoring, troubleshooting, etc).
There is a number of actions that can be performed for the whole environment, such as stop, start, clone, migrate to another region, share with team members for collaborative work, track resource consumption and so on.
Each environment has its own internal 3rd level domain name by default. A custom external domain can be easily bound via CNAME or A record, and even further swapped with another environment for traffic redirection.
Application
Application is a combination of environments for running one project. A simple application with one or two stacks can be run inside a single environment.
Tip: Applications with more complex topology usually require more flexibility during deploy or update processes, so it is better to distribute different types of servers across several environments, to be able to maintain them independently.
Application source code or built binaries can be deployed from:
- GIT/SVN repository, which allows to benefit on the automatic updates
- local archive (zip, war, ear, etc) via UI dashboard or FTP
- custom Docker template
Also, a number of already prepackaged applications can be found within CirrusGrid Marketplace, to be set up in just a few clicks.
Host
Host is a physical server or a big virtual machine that is virtualized via KVM, ESXi, Hyper-V, etc.
Hosts are sliced into small isolated containers that are used to build environments. Such partition provides the industry-leading multitenancy, as well as high density and smart resource utilization with the help of containers distribution according to the load across hosts.
Environment Region
Environment region is a set of hosts orchestrated within a single isolated network.
Each environment region has its own capacity in a specific data centre, predefined pool of private and public IP addresses and corresponding resource pricing. Moreover, the initially chosen location can be effortlessly changed by migrating the project between available regions.
CirrusGrid Installation (Platform)
CirrusGrid Platform is a group of environment regions (where each one can be physically located in a separate Data Center, representing an isolated Cloud) and cluster orchestrator to control and act like a single system. This provides versatile possibilities to develop, deploy, test, run, debug and maintain applications due to the multiple options while selecting hardware – different capacity, pricing, location, etc.
As a result, you get a multi-data center or even multi-cloud solution for running your applications within a single panel. Moreover, each Platform is maintained by a separate hosting service provider with its local support team.