DivvyCloud Scalable Deployment¶
The Scalable Deployment, as the name implies, deploys DivvyCloud in a flexible, highly available environment. It uses an AWS CloudFormation Template (CFT) to provision the compute, database, and network infrastructure required to manage and adapt to your cloud accounts.
This deployment architecture is capable of scaling to manage many dozen clouds. It does so by placing two interface servers behind a load balancer, setting up back-end support on separate, highly available MySQL and Redis servers, and separating workers onto different horizontally-scalable instances.
This architecture allows you to scale your worker instances as your cloud infrastructure grows and is tolerant of system failures.
Steps for DivvyCloud Deployment¶
1.) CloudFormation Management Console
Login as an Admin to the AWS console in the account where you wish to deploy DivvyCloud. Access the CloudFormation Management and select a region where:
- There is an SSH key pair
- There is room for a VPC (region limit is typically 5 VPCs)
2.) Use Template
Download our CloudFormation templatecurl -O http://get.divvycloud.com/cft/Divvy-CFT.json
Or view the source CloudFormation template source. Then upload to the CloudFormation console.
3.) Provide Deployment Information
There are several parameters you can specify to customize your DivvyCloud deployment. (Add language suggesting when to select larger sizes?). They are:
- Instance sizes for EC2s, RDS, and Redis
- SSH key pair for EC2s
- RDS username and password (8 character minimum)
You may add tags to your DivvyCloud resources if you wish.
4.) Create DivvyCloud Installation Create!
5.) Monitor Progress
The CloudFormation template provisions compute, database, and network resources and defines relationship among them to deploy DivvyCloud. You can watch the CloudFormation template progress by watching the Events tab. Once the “stack” is complete, you can access your DivvyCloud installation.
6.) Access DivvyCloud
After the CloudFormation process is complete, you can navigate to your provisioned Elastic Load Balancer to copy the DNS name. Use that address to access DivvyCloud. (If the Admin Account login does not appear, it is probable that your EC2s have not completed their software installation. Wait a few minutes and try again.)
7.) Create Admin Account
Upon first login, you will be asked to provide information that will be used to create a Domain Admin account and generate a license. You will need to provide the following:
- Full name
- Email address
- Company name
- Username (does not have to be email address)
- Password (12 character minimum)
Note, the ‘Create Admin’ button will not activate until you have provided the required information and your password matches.
After creating your Domain Admin account, you will be redirected to the default login screen. Login with the information just provided and you’re in!
When you first log in, you are on the ‘Dashboard’. There is a ‘Setup Checklist’ that guides you on useful first steps, specifically:
- Connecting a cloud account
- Adding an Insight
- Creating a Bot
- Connecting your email
- Adding an integration, e.g., Slack
After you have completed some or all of the checklist, we recommend that you examine your cloud infrastructure from the Resources section and start to explore.
You can try any of the 200+ filters available to inspect your infrastructure for specific items of interest. You can layer filters to further refine your focus.
Or, perhaps easier, look at the Insights section to see popular filters and filter combinations that are organized by category, e.g., security, cost optimization, etc.
You can try different Insights, customize them as you see fit, save them for reuse, and use them to create ‘one-click’ Bot templates that enable automated action to enforce policy, whether security or cost management.
The default provisioned components are:
- 2 m4.xlarge
- Ubuntu 16.04
- MySQL 5.7.x
- Multi-availability zone
- Multi-availability zone
DivvyCloud Resiliency and Flexibility¶
Users access DivvyCloud through an Elastic Load Balancer (ELB) that connects to two EC2 instances that each run a web interface process. Given the limited number of concurrent users, two processes are sufficient to ensure DivvyCloud is accessible with high reliability.
DivvyCloud relies upon MySQL to store, analyze, and present its data. It uses AWS’s Relational Database Service with multi-availability zone deployment to ensure high availability. It employs an m4.xlarge to ensure it can handle scale.
DivvyCloud relies upon Redis for fast read-write of its job queues and other ephemeral data. It uses AWS’s Elasticache with multi-availability zone deployment to ensure high availability. It employs a cache.m3.medium to ensure it can handle the scale of tracking job queues.
Finally, DivvyCloud uses multiple types of worker processes to carry out its functions. These processes are most affected by scale. Increasing the number of cloud accounts managed through the system increases worker process requirements and eventually leads to job backlogs.
That is why you can add workers as the number and size of your cloud accounts grow. You can monitor job backlog data as part of system health. Should a job backlog exist for periods of time, you can copy one of your EC2 instances, connect it to the ELB, and you will have increased your worker availability.