When it comes to Infrastructure as a Service (IaaS) both Amazon and Azure IMO dominates this space. Google also has IaaS offering on their cloud platform called Compute Engine. I have been using compute engine with windows images to run workloads such as SharePoint strictly for testing and learning purposes so I can make better recommendations to my customers who are looking to move their Microsoft workloads to cloud.
Currently there is only Windows Server 2008 R2 Datacenter Edition available as Operating System Images for compute engine instances. If you have google cloud platform SDK installed you can run the command below to see a list of windows images
gcloud compute images list --project windows-cloud --no-standard-images
Just like Azure VM when you create a compute engine instance using windows image you have to pass a username and password. You can have passwords stored in a password file and specify it at the time of creating the virtual machine.
Once the compute engine instance is up and running you can remote into it using an RDP client. From a MAC machine i use the Remote Desktop App which is available free from app store. You do need to enable RDP before you can remote into the compute engine instance. If you haven’t seen my post on this see enabling RDP
If you have done a lot of work on Azure IaaS you will find that there is simply no PowerShell support available natively within GCE. I have been running operations on compute engine from powershell using this PowerShell function below. Within my powershell script I build the arguments for gcloud command line utility and call this function.
$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = "gcloud.cmd"
$pinfo.Arguments = $Arguments
$pinfo.RedirectStandardError = $true
$pinfo.RedirectStandardOutput = $True
$pinfo.UseShellExecute = $false
$pinfo.WorkingDirectory = "c:\program files\google\cloud sdk\google-cloud-sdk\bin"
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$stdout = $p.StandardOutput.ReadToEnd()
$stderr = $p.StandardError.ReadToEnd()
if($p.ExitCode -ne 0)
I would hope Google is working on PowerShell SDK , this would be a nice open source initiative to work on if Google has no plans. Certainly wont be that hard to write a set of custom powershell commandlets that interacts with REST APIs. Would certainly be nice to know if folks are interested.
Remote powershell on windows based compute engine instances
No native remote powershell support is available like Azure, however you can get remote powershell enabled on compute engine instance, if you haven’t seen my post on this check it out here
What can you run on Google cloud platform
You can run server products listed below on compute engine.
- MS Exchange Server
- SharePoint Server
- SQL Server Standard Edition
- SQL Server Enterprise Edition
- Lync Server
- System Center Server
- Dynamics CRM Server
- Dynamics AX Server
- MS Project Server
- Visual Studio Deployment
- Visual Studio Team Foundation Server
- BizTalk Server
- Forefront Identity Manager
- Forefront Unified Access Gateway
- Remote Desktop Services
For SQL Server the number of license required by compute engine instance is tied to the number of virtual cores, so for ex. if you used machine type n1-standard-2 which has two virtual cores you would need 2 SQL Server standard or enterprise license.
Source for the above info is this article. The article also contains lot of information regarding running Microsoft Software on compute engine and provides additional details on process to go through etc.
I’ve seen in forums and online folks talk about windows based compute engine instances start up slow, but I personally have not felt that way. In fact I found windows instances starting up and shut down faster than Azure VMs
Machine type determines the spec for your virtual machine instance such as amount of RAM, number of virtual cores, and persistent disk limits etc. Compute engine has four classes of machine types.
- Standard machine types
- High CPU machine types
- High memory machine types
- Shared-core machine types
You can have up to 16 persistent disks with total disk size up to 10 TB attached to all machine types except shared-code machine types
More info on machine types see this article
Compute engine is priced cheaper compared to Azure VMs but far less options available for machine types. Couple of interesting things here to know are you are changed a minimum of 10 minutes, what this means is if you started an instance and use it for 5 minutes you are still paying for 10 minutes. Apart from being priced competitively Google also offers sustained use discounts. For more info on pricing check out this article
If you are interested in trying out Google cloud platform head over to this link and sign up for trial. You can get a $300 credit to use for 6 months.
If you run into any issues and you need support, ask a question on stackoverflow and tag it with google-compute-engine