Google Cloud for Startups
On July 20, 2017, I had a talk at Google Cloud Vancouver Meetup about Google Cloud for Startups, and why startups should seriously consider using GCP to resolve their common issues. In this post I’m going to re-iterate over those points and expand on them where necessary.
What Startups Want
When it comes to Cloud, tech startup want to leverage it as much as possible to deliver their products to market faster and start making money. There are 4 factors that startups pay attention to when it comes to choosing the right cloud solution:
- Faster development
- Cheaper solutions
- Higher scalability
- Flexibility: being cloud agnostic.
The faster your development time, the less money you have to spend on development. You can start selling your solution/product faster. So this is an important factor.
When you are a startup, you usually don’t have a lot of money to spend and every dollar matters. Every dollar that you spend on your cloud infrastructure, is a dollar you are not spending on your sales or marketing. Every dollar counts!
Scalability is something that startups often forget about, until it’s too late. One of the reasons they forget about it (or not pay enough attention to) is that scalability in general is considered a hard problem to solve. That’s why it goes to the pile of “We’ll take care of it when we have to”. This is the reason many startups fail, so it’s important that they focus on scalability from day 1. This means they can grow their business faster.
Another important factors for startups is flexibility. As a startup, you should not be tied to a platform. You need to build a solution that is cloud agnostic and can be run from anywhere.
Google Cloud Platform Services
Google Cloud Platform(GCP) was started in 2008 by introduction of App Engine which was the first platform as a service solution on the cloud. A few reasons why you should pay attention to GCP are:
- GCP is built on Google’s core infrastructure.
- Google is committed to open source
- GCP is priced very well – on average 60% cheaper than other solutions such as AWS.
- GCP provides great support.
Google Cloud Platform divides their services into 9 groups but to save time I’m going to explain about the following 6:
- Compute – Compute Engine, App Engine, Container Engine, …
- Storage & Databases – Cloud Storage, Cloud SQL, Cloud Bigtable, …
- Networking – Compute Virtual Network, Cloud CDN, …
- Big Data – BigQuery, Cloud Dataflow, …
- IoT & Machine Learning – Cloud IoT Core, Cloud ML Engine, Cloud Vision API, …
- Management Tools – Stackdriver, Monitoring …
The first 3 are the big blocks of any Cloud platform, the 4th and 5th one are some of the main differentiators of GCP and the 6th one is a group of very useful tools they have to make the cloud management easier.
GCP compute has App Engine and App Engine Flex which are the platform as a service (PaaS) offering of Google. Google will operate them for you and you don’t need your own Ops team to use them. You just code and deploy, they will take care of the rest.
Compute Engine is infrastructure as a service. It provides Virtual Machines that you can deploy anything on. It’s similar to Amazon’s EC2
Container Engine is a Google’s managed Kubernetes. You can build a truly global app using it and Google’s team will manage and run it for you.
Storage & Databases
- Cloud Storage (Object Storage)
- Cloud SQL (Mysql & PostgreSQL)
- Cloud Bigtable & Cloud Datastore (NoSQL)
- Cloud Spanner (Distributed SQL)
- and more
- Virtual Private Cloud
- Cloud Load Balancing
- Cloud CDN
- Cloud DNS
- and more
This is where the power of Google comes to play especially around data. If you look at all the services that Google provides, there is big focus on data and there’s a reason for that. A lot of applications are going towards having more and more data.
- BigQuery (Analytics Data Warehouse)
- Cloud Dataflow (Batch & Stream Data Processing)
- Cloud Dataproc (Managed Spark & Hadoop)
- Cloud Datalab (Data Insight)
- Cloud Pub/Sub (Messaging Service)
- Cloud Dataprep BETA (Data Processing and Cleaning)
IoT and Machine Learning
If you are working on any internet of thing (IoT) project, you should look at the IoT core. It’s one of those platforms that if you use from the start of your project, you’re going to save a lot of time.
- Cloud IoT Core
- Cloud ML Engine (Managed TensorFlow)
- Cloud APIs
- Video Intelligence BETA
Cloud APIs is the part that makes Google different. All those very complicated algorithms that you can implement yourself, they have it out of the box for you. So instead of writing all of that, deploying and managing them to make sure it’s all running, you can just make an API call to have access to NLP, Speech, Translation, Vision and Video Intelligence algorithms. When we are thinking about faster development and getting your product out as fast as possible, these are the things that could help.
- Stackdriver: Can handle a lot of different scenarios. Alerting, Monitoring, Logging, Error handling
- Monitoring & Logging
- Debugger: If you want to really debug your code on the cloud, there are tools there that I haven’t seen on any other platform. You can put breakpoint in your code that is deployed in production.
- Cloud Deployment Manager
How can Google Cloud Platform help Startups?
We started with 4 factors that are important for Startups. Now we are going to look how GCP can help Startups in those 4 areas.
- Compute: On Compute you have App Engine and App Engine flex. Using those tools you can focus on developing your product/solution. You will just code and Google will run and manage it for you. You don’t do anything other than coding and you can have an app up and running in the cloud very fast. No-ops + on demand scaling out of the box for you.
- App Engine (PaaS) – No Ops Deployment + on Demand Scaling
- Storage & Database: You can easily integrate them with compute engine or app engine flex or any other platform because they have internal integration
- Cloud Storage
- Cloud SQL and/or Cloud Datastore
- Cloud DNS , Cloud CDN
- Machine Learning
- Cloud APIs: You can add intelligence to your app with one API call.
- 60% cheaper (on average): If you want to save money, GCP is the solution for you
- Sustained use discounts (automatically, up to 30%): You don’t have to commit to use an instance but when you use an instance for a month, you get 30% discount on that
- Per minute billing: When you bring up and instance and use it for 5 minutes, you don’t have to pay for a full hour of an instance time and if you do a lot of on demand start and stop of instances, the cost adds up
- Committed use discounts (up to 57% without upfront fees or instance type lock-in): You commit to use an instance time but you are not locked in to use any particular instance type and you don’t have to pay fees upfront and can get 57% discount
- Compute: I’m a software architect so it is very important for me to be able to go from platform as a service to infrastructure as a service as easily as possible. Sometimes you can get a solution out of the box but you have to fine tune it to get the best usage of your resources. With GCP you have a very easy flow to get from App Engine Flex to Compute Engine or Container Engine. The path for you to scale your architecture is so straightforward.
- App Engine Flexible -> Compute Engine or Container Engine
- Storage & Database -> Big Data: When you scale data, the power of Google comes to play. As I said Google focuses on Big Data and Big Query. You can easily start from Cloud SQL or Cloud Datastore and easily move to Bigtable and run analytics. You can use Dataflow, Big Query and Data proc to scale your data
- Cloud SQL and/or Cloud Datastore -> Bigtable
- Dataflow , Big Query, Dataproc, …
- Cloud SQL and/or Cloud Datastore -> Bigtable
- On Google’s Infrastructure: You don’t have issues with higher scalability because you are on Google’s Infrastructure, the biggest private network in the world.
- Machine Learning: You can start with Google APIs but what happens when you get more sophisticated and you have more sophisticated solutions you want to develop and more algorithms you want to put together for example you want to use natural language processing with video processing with the vision API. There is ML Engine there. You have scalability not only on the power of cloud but on infrastructure as well.
- Cloud ML Engine
- Open Source: The fact that Google is committed to open source is very important and this is where it comes to play. It means that you can move away from Google platform if you want to. You are not tied to GCP
- Kubernetes: Open source
- Tensorflow: Open source
- CloudSpanner: Open source through a white paper
- Docker based: You can move away and deploy docker on any docker engine you want
- App Engine Flexible
- Compute Engine
- Cloud Credits: Being a Startup there are a lot of perks when signing up with Google.
You don’t need to use Google Cloud Platform for your startup, but with the benefits I explained here you should seriously consider it.
Let us know if you have any question about GCP and we might be able to help you.