Gett is an Israeli-based startup that connects people with taxi drivers. Customers in cities across the globe can order a taxi through the company’s website or a GPS-based mobile app. Gett operates in more than 50 major cities, including New York, London, and Moscow, in addition to 13 cities in Israel.
Gett is a fast-growing company, with several million people using the service in cities around the world. “We are growing at a rate of 300 percent per year right now,” says Lior Bar-On, the company’s chief architect. “We are expanding quickly throughout Europe and adding new cities all the time.” To support this rapid growth, Gett requires the ability to quickly scale its website and mobile app back end. “We continuously need to add more compute to meet customer demand,” Bar-On says.
As it continues to expand, Gett strives to deliver better app performance at a lower price. “We want to be able to augment capacity for performance, but we’re still a startup and are always looking to reduce our costs,” Bar-On says. Gett also wants to get more out of its data. “We need to have a strong data-analysis solution, so we can make more informed business decisions based on data from the field,” says Bar-On.
In addition, the company needs flexibility for both its production and development environments. “When it comes to production, we need to be able to make changes immediately, whether it’s adding compute or memory, trying a new technology quickly, or setting up a Hadoop cluster with hundreds of nodes for a few days,” Bar-On says. “We also need to try out new configurations and set up new systems for our developers to test before we push them live.”
To meet its business requirements, Gett chose to launch its web and mobile platforms on the Amazon Web Services (AWS) Cloud. “AWS is the most advanced cloud technology company and offers the widest range of services,” says Bar-On. “That’s why our company chose to be on AWS from day one.”
Gett runs its website and mobile app on several hundred Amazon Elastic Compute Cloud (Amazon EC2) instances. The company uses Auto Scaling to scale its EC2 capacity up or down automatically, based on user demand. Recently, Gett chose to reduce some of its costs by taking advantage of Amazon EC2 Spot Instances, which give customers the opportunity to use spare Amazon EC2 capacity at a discounted price via a bidding process. Amazon EC2 Spot Instances begin running when a bid price is higher than the spot-instance price. The company runs the Amazon Elastic MapReduce (EMR) service on Amazon EC2 Spot Instances to help them process huge amounts of data.
Gett also uses Amazon Redshift as its primary data warehouse. “We put all kinds of business activity data into Redshift, including change logs, transactions, and ride data,” says Bar-On. Additionally, Gett uses AWS CodeCommit as a backup and disaster-recovery service for several of its DevOps processes. Using AWS CodeCommit, Gett does not have to manage its own source-control system for those processes.
Using AWS, Gett can scale its mobile app and website to meet an ever-growing number of users. “We’re growing at 300 percent annually, and we have the ability to meet that growth using AWS. We can scale our service as much as we need to and as fast as we need to,” says Bar-On. “We can provision new servers in just a few minutes, so we know we’ll be able to quickly keep pace with our rapid business growth.”
Gett is able to augment capacity to optimize performance, while significantly lowering costs, by using Amazon EC2 Spot Instances. Approximately 90 percent of the company’s non-production Amazon EC2 instances are EC2 Spot Instances, with 65 percent of production instances running as EC2 Spot Instances. “We are saving $800,000 annually by taking advantage of Amazon EC2 Spot Instances,” says Bar-On. “We can now increase our capacity very cost-effectively.”
Gett uses Amazon Redshift and EMR to gain new business insights from its data. “Using Amazon Redshift as our data warehouse, we can get important key performance indicators and metrics about our data,” Bar-On says. “For example, we can analyze past events such as the connection between showing drivers the destination in earlier stages of the matching process versus the driver being willing to accept all ride types. We are using these metrics to improve our service to our customers and improve our business overall.”
Gett also has more operational flexibility. “Using EMR, we can set up hundreds of nodes in our Hadoop cluster whenever we need, and we can shut the cluster down when we don’t need to use it,” Bar-On says. “We can also push data into AWS CodeCommit for some of our secondary DevOps processes, which gives us the flexibility to deploy code from either GitHub or CodeCommit. That supports our DevOps approach, which depends on agility and flexibility.” As Gett grows, the company looks to use additional AWS services to help drive that growth. “AWS is improving and innovating all the time, and the platform keeps evolving rapidly,” says Bar-On. “We’re excited to follow AWS into the future.”