If you are a GoGrid customer, you recently received the April GoGrid newsletter that talks about one of the exciting new features coming from GoGrid, specifically “Personal Server Images” which we call “MyGSIs.”
First, it probably would be helpful to understand some of the new & current terms we are using:
- Base GoGrid Server Image is a standard GoGrid server images (e.g., Windows or Linux) that is created by GoGrid and currently available within the GoGrid system for deploying servers
- Image Sandbox is a development environment where you can create a “MyGSI.” Server Images created within the Sandbox are unique in that they have a predefined RAM allocation and hard drive sizes and are only used temporarily to create a Server Image. Images created within the Sandbox contain any and all custom code or applications that you choose to put on them.
- MyGSIs are based on either a Base GoGrid Server Image or other MyGSIs but where you have the ability to personally configure, customize and save it to your liking from the Image Sandbox environment. They are used to spawn or instantiate new custom servers within GoGrid, with all your customizations, code and applications present.
Think of MyGSIs as originals that can be used to make copies, much the way you would have a Golden Master CD and you would make copies or clones based off of that Golden Master.
From a high level, creating a Sandbox Image can be done in 3 easy steps:
- Add an Image Sandbox;
- Install, Configure & Prepare (bundling scripts) your Image Sandbox for imaging;
- Save your Server Image from your Image Sandbox to your personal Images repository on Cloud Storage.
With a bit more granularity, it is a way for you to build and save a custom and personal server image. MyGSIs are created like this:
- Add an Image Sandbox (an Image Sandbox has a server “development environment” of 2 GB of RAM and 20 GB of storage);
- Remotely log in to the Server you are creating within the Image Sandbox via SSH or RDC (just as you would with a normal Cloud Server on GoGrid) and upload your applications or code. Configure the server to your exact specifications and lastly run “bundling scripts” which we provide to prepare the Image Sandbox for imaging;
- Save new, MyGSIs from your Image Sandbox to GoGrid Cloud Storage. Note: you can store unlimited server images in Cloud Storage;
- Deploy new server instances using the saved MyGSI which are great for rapid horizontal scaling, changing RAM allocations, or re-imaging a server (see “High-level Use Cases” below)
The monthly price to store a MyGSI relates to the amount of data in the contained within that Image. For example, if your Image contains 5 GB of data (your code and Operating System), you pay roughly $0.45/month. We compress the Image before it goes to Cloud Storage, so your 5 GB Server Image becomes roughly 3 GB, saving you some money in the process. GoGrid Cloud Storage costs $0.15/GB and the first 10 GB are free.
A Personal Server Image can be deployed as a new Server Instance by simply selecting the appropriate image from your repository, configuring the amount of RAM and the IP address of the new server instance, naming it and deploying. It really is that simple.
However, there are some IMPORTANT changes to workflow that you should start considering now.
Current Workflow (Pre-MyGSIs)
Right now, with GoGrid, a common workflow might consist of the following:
- Create Web/App Servers individually based on Base GoGrid Server Images
- Create DB Servers individually based on Base Server GoGrid Images
- Configure Web/App Servers individually
- Configure DB Server individually
- Create Load Balancer
- Tie it all together via a private network
While this is very straight forward and easy to do currently on GoGrid, if you are deploying and configuring large infrastructures, this process can become a bit time consuming and increases the chance of mis-configuration or human errors. We understand this and thus MyGSIs were born.
Future Workflow (MyGSIs)
It is VERY IMPORTANT to review this new workflow model. Following it will save you time and money as well as reduce the possibility for error.
In the current workflow (pre-MyGSIs), you focus on creating an infrastructure “live”, that is to say, configuring servers real-time that will be used in production. It’s a one-to-one setup, one server at a time. Once MyGSIs are rolled out, you can prototype and develop your server configurations within a specialized environment and create “masters” of which copies are spawned to production. This is more of a one-to-many setup where one “Golden Image” or “Golden Master” can be used to deploy multiple copies, all based on the original. This allows for better and faster scalability and much easier management of your infrastructure.
The new workflow would consist of:
- Create & Configure a Web/App within the Image Sandbox and save as a MyGSI
- Create & Configure a DB within the Image Sandbox and save as a MyGSI
- Deploy multiple instances of new GoGrid Web/App Servers based on the MyGSI
- Deploy multiple instances of new GoGrid DB Servers based on the MyGSI
- Create Load Balancer
- Tie it all together via a private network
Note: once you save your MyGSI, your Image Sandbox is “destroyed” and the Image is copied to Cloud Storage as a server image.
While this is the same amount of steps, if you are creating a redundant & high availability environment (see “How to Set Up High Availability Web Applications in the Cloud using GoGrid“), you actually eliminate some steps because you only have to configure your servers (the MyGSIs) once and then deploy multiple server instances based on that MyGSI with a couple of clicks. In the pre-MyGSI workflow, you would need additional steps for each server you configure and deploy.
So, the important thing to consider as you plan for this exciting release is that you will start your workflow within the Image Sandbox and then move from there. Unfortunately, there will not be a way with this first release to turn actively deployed GoGrid servers into Personal Server Image.
High-level Use Cases
There are several use cases that come to mind that will be simplified with the MyGSI release. While I will not go into the details, here are a few that people should consider:
- True Horizontal Scaling
- Changing & Optimizing RAM Allocations
- Re-imaging Servers
- Disaster Recovery & Failover Environments
I will explore some of these use cases in subsequent posts.
Lastly, for those of you ready to try out GoGrid, I encourage you to set up a GoGrid account NOW. You will be able to familiarize yourself with its workings, test out the different images and templates currently available and then design your strategy for when MyGSIs roll out.
Be sure to check the GoGrid blog for updates on this release which is expected to roll out at the end of July. I hope you are as excited as I am about this upcoming feature release!
Latest posts by Michael Sheehan (see all)
- Get Your Game On in the Cloud - June 11, 2013
- How Software Defined Networking Delivers Next-Generation Success - June 5, 2013
- James Gosling to Speak on Innovation at GoGrid Cloud Meetup on 5/22 - May 16, 2013