7

I am aware that Google cloud has an IaaS offering which allows point click installation of drupal sites using Bitnami. But I am wondering how this compares with using App Engine or container engine (instead of IaaS).

Per OP-- Large is defined as: "upto 1 million daily users visits to the website and growing"

Rushikumar
  • 1,774
  • 5
  • 18
  • 28
naveen k
  • 91
  • 1
  • 4
  • your question is vague; define "large" – Rushikumar Jun 21 '17 at 11:31
  • Also, you can always opt for elastic hosting---i.e. your environment's memory/hdd can grow as your site grows... this might actually end up being cost effective approach, in the event you really have no hard numbers – Rushikumar Jun 21 '17 at 11:33
  • i mean upto 1 million daily users visits to the website and growing – naveen k Jun 21 '17 at 11:34

1 Answers1

21

App Engine, Kubernetes Engine (formerly Container Engine), and Compute Engine are tools that solve different problems.

From what you have shared about your use case, you have the following requirements:

  1. Migrate a large (single) Drupal website
  2. Ensure that it scales beyond 1 million user visits per day

All 3 products will support these requirements.

The important factors that you will need to consider when evaluating these products are:

  1. Cost
  2. Maintenance Effort

When evaluating the products against these two factors in the context of your requirements, you might reach a clearer winner.

For the cost ratings below, it is a best guess using you high level requirements.

Google App Engine - allows you to easily deploy, scale, and update your application. It takes care of all of the "system administration" tasks for you. Rolling out updates to deployed services is also done quite easily via the command line.

Cost is "medium" when compared to running a small single Compute Engine VM but App Engine only provisions what it believes you need to serve the traffic you are receiving, as Drupal requires a DB (can be managed by Google Cloud SQL), this will need to be provisioned separately and will add to the total cost.

Maintenance Effort is "low" because App Engine handles all of the operations tasks.

Google Kubernetes Engine - is a managed Kubernetes providing "Container Infrastructure as a Service". Great for when you have various sized services and you want to bin pack and utilize a cluster of machines for different services. Given you are running a single sized application - a Drupal website, you won't really be taking advantage of this. Scaling and administration is also a little bit more complicated as you will need to scale your Pod as well as the Kubernetes Engine cluster.

Cost is "low" as Kubernetes Engine zonal masters are free and you are only charged for the compute resources of the nodes.

Maintenance Effort is "high" as you will have to configure scaling of your cluster and pods. Operate the Kubernetes Engine cluster and manage your application through the Kubernetes API. A lot more moving parts, when compared to App Engine.

Google Compute Engine - as mentioned, there are Cloud Launcher options to run Drupal. However, once the instance is deployed, you will need to take care of updating. Also, that particular Cloud Launcher version deploys to a single VM. You will probably want to setup Load Balancing, a Managed Instance Group, and Cloud SQL to ensure it is highly available and will scale.

Cost is "low" as you could run your Drupal application and DB on a single small VM, however it may not scale.

Maintenance Effort is "high" as at a minimum, you will have to apply OS patches. To have High Availability and scaling you will have to configure a managed instance group, load balancer, and a startup script/VM image.

In conclusion, if you are an experienced System Administrator, you might prefer to deploy to Compute Engine and manage the system yourself for a potentially lower cost.

If you don't want any operational overhead, App Engine is the way to go.

Kubernetes Engine is too sophisticated a tool for the problem you are solving.

Henry Lawson
  • 401
  • 2
  • 6
  • Thank you for the response. That is very useful @Henry Lawson. My understanding however is that in case I use App engine. there are two options in it, flexible and standard, and it appears that the flexible environment essentially used compute engines underneath! Flexible is what I think I would need potentially because the website has very high loads during peak hours. So, do you think I should still consider app engine as opposed to compute engine if i want to avoid the operational overhead? – naveen k Jun 21 '17 at 16:23
  • not true that appengine cost is high compared to GCE. – Zig Mandel Jun 22 '17 at 02:32
  • @ZigMandel, I have adjusted my answer to note that if choosing App Engine, you may like to also use Cloud SQL, which adds a little bit to the cost, with GCE it can all run on your instance, whether or not it works out more expensive then GCE is hard to argue without historical data, my estimate above is my experience, I have also adjusted it from "high" to "medium" to be more conservative – Henry Lawson Jun 22 '17 at 07:06
  • @naveenk, yes I think App Engine flexible or standard is the way to go, flexible does use VMs underneath however the pricing is slightly different and always changing (going down) https://cloud.google.com/appengine/pricing and https://cloud.google.com/compute/pricing – Henry Lawson Jun 22 '17 at 07:07
  • @HenryLawson, thank you. i have looked at those pages. very useful content indeed. one last thing i want to clarify is what do you exactly mean when you say "maintenance" in the compute engine option. Do you mean maintaining the server status, OS patches etc? or something else? – naveen k Jun 22 '17 at 13:10
  • @HenryLawson thank you. Last question, i promise :) as part of moving data from my existing on premise website which is actively used (publishers adding content) what would be the best approach to migration with minimal loss of data and availability? should one be using a GCP partner for that or are there any do it yourself options? – naveen k Jun 22 '17 at 13:58
  • This should be a seperate Stack Overflow question :) – Henry Lawson Jun 22 '17 at 14:03
  • @HenryLawson - had to put it here: https://serverfault.com/questions/857289/how-to-migrate-drupal-website-content-with-no-data-loss-into-gcp-cloud-sql-and-c – naveen k Jun 22 '17 at 14:20