By Mayank Bhagya．Jul 25, 2016
Startups are fundamentally different from enterprises. While enterprises try to sustain and expand their business, primary objective of startups is to figure out a product-market fit. Hence, they need to be agile. They should be able to experiment with their product at a rapid pace. To achieve such a pace, startups need a tech strategy that aligns with this goal of moving fast. An enterprise, with practically infinite resources at disposal, can afford to be selective about every single component that goes into their tech stack and can recreate the entire wheel. However, for startups, time is gold! Their choice of technology should help them maximize their number of ‘build-&-measure’ iterations and yet should never hinder the product design.
We, at Siftr, were at this very juncture exactly a year from today. After looking at plenty of options like AWS, Azure, Heroku et cetera, we finally chose Google’s AppEngine (GAE) as our cloud provider. After a year of working with GAE, when I look back, I find that this was one of our best decisions. Some of the reasons for the same are mentioned below…
Just after starting up, founders want to get to the Minimum Viable Product (MVP) as soon as possible. Once the MVP comes to life, only then other processes at a startup can begin to function fully. Without that, there is no customer validation and no improvement cycles. Thus time to build the MVP is extremely crucial. With GAE, we could focus completely on writing our application logic from day zero. There was NO setup involved. After we were finished writing our first set of APIs, with just one command, our server was live! And it came with all the necessary scaffolding: a monitoring tool, a log management system and my favorite, a live debugger.
No devops, no downtime
Every software service needs a devops engineer (or a team) to ensure smooth delivery of software from developers’ hands to the production environment. This person’s job is to ensure that the new software gets going without any service disruptions or downtimes. GAE offers hassle-free rolling deployments for up to 10,000 times a day! Hence without having someone solely responsible for devops, application developers can run the deployment command and relax! GAE automatically deploys the latest version in a way such that there is no downtime.
Performance is critical to every software product. It can make or break the user experience. With GAE, one has an option of deploying the app in US and/or Europe to optimize latencies across continents. Files that are marked static, are distributed to all Google’s edge nodes across the world and can be served at a much lower latency. Besides, there is a 1 GB high-performance in-memory cache, for faster data access, available for free to all GAE users. We never had any complaints regarding performance when it comes to GAE.
When a startup does well, the last thing one wants to think about is the complications of sharding and tuning the database. That is the time to provide more and more value for retaining the users. GAE comes with Datastore, a highly (or always) available document store that provides full transaction support. We have used it extensively and have never seen it go down. Besides, there is a Blobstore, which is an object store, empowered by the same technology as Google Drive. GAE also provides a distributed message queue as a part of the package which is equally reliable as the Datastore. It provides both push & pull workflows and does not require any setup to get going.
On a particular day in May this year, we got a sudden spike in traffic. We saw an increase of 20X on our analytics dashboard. When we looked at our monitoring system closely, we could find that Google spawned more than 100 instances within a few seconds to handle the load. This is the real beauty of GAE. It scales in SECONDS. Google has really become an expert at handling peak loads in all these years. Besides with GAE, there are many ways to express a scaling policy that can help your startup save some dollars.
GAE offers a free trial under which all users receive $300 for 60 days to try out their cloud platform. Once that is over, there still remains a free quota of usage for which GAE doesn’t charge anything. That is an excellent feature for startups looking to validate stuff before going full scale. And once a startup reaches full scale, there are sustained usage discounts on all the resources that are heavily used.
Value added services
With GAE, all the code runs on Google’s infrastructure. It’s the same infrastructure that has been empowering their search engine for years. If you choose to run on this infra, you don’t have to think about things like security and DoS attacks because Google solved this problem quite some time ago. The uptime and availability are world class. Besides there are many things that GAE users enjoy for free: location identification, a fast image CDN, authentication & identity services, traffic splitting for A/B testing etc.
Today, with a team of just 3 engineers, we have been able to build and support the entire backend. To give you an idea of scale, Siftr has processed more than 100M images in less than 90 days. The backend empowers our mobile app and 10,000 photographer websites, all of which are served via GAE.
Overall, our experience with GAE has been pretty satisfying. It has saved us a lot of time & energy, both of which are very critical for startups!
The original article published on Medium.