Our Cloud Deployment Setup on Digital Ocean.

This is a quick run through on how we set up our cloud deployment setup on digital ocean. We decided to spin up seven VM’s for our cloud setup. This is a simple setup and can be scaled out by adding more code servers, load balancers, and a secondary database server. I wanted to share this as I have found documentation on how to set up a cloud server lacking visual documentation and I thought that this might assisting for those that are more visually orientated. The mail server was probably the hardest thing to setup correctly in the system.

Cloud Deployment Servers

  1. Code Servers We can spin up multiple versions of this VM to expand our infrastructure as needed.
  2. Load Balancing Server Distributes the load between the code servers and the file server.
  3. Database Server All code servers connect to this instance.
  4. Mail Server Serves up mail for all our clients.
  5. Continuous Integration Server distributes code between our code servers using jenkins and also hosts our git repository.
  6. File Server mounted used NFS on each of our code servers for all dynamic content uploaded through CMS’s etc, our load balancers also pull images directly from this server.
  7. Dev Server for our testing environment.
Our Cloud Deployment

Our Cloud Deployment

 

 Process

Currently we have three branches in git for each project. develop, stage and the master branch. When we commit to develop and stage the continuous integration server deploys to the dev server. When we commit to production the continuous integration deploys across each code server. We use phing to help with syntax checking, unit testing and database deployments. We use public caching which is served up by Nginx, making for an incredibly fast server. This system seems to work fairly well so far. If you have any suggestions or improvements I would like to hear from you.

Leave a Reply

Your email address will not be published. Required fields are marked *