Rapido: Finding the Quickest Route to Success with Google Maps Platform

3882
Of your peers have already read this article.
3:30 Minutes
The most insightful time you'll spend today!
Founded in 2015, Rapido operates a mobile app-based two-wheeler taxi service across more than 40 cities in India. More than 100,000 drivers provide Rapido two-wheeler taxi services, while more than 400,000 current or prospective drivers have downloaded the company’s app. Consumers have downloaded the app more than 5 million times, and the business receives about 5 million orders per month for taxi services.
“If a consumer wants to travel from point A to point B, they simply open up the app on their smartphone, select pickup and dropoff locations, and tap ‘request,'” explains Rishikesh SR, Co-Founder, Rapido. “We can track that request to the nearest available two-wheeler taxi and allocate the job to the right driver.”
Google a compelling opportunity
The business started operations on a cloud service. However, Google presented a compelling opportunity to Rapido to improve its location-based intelligence through a wide range of cloud-based map APIs, infrastructure, and mobile app development services. “Google Maps Platform was particularly interesting to our business and we saw enormous potential to use it to improve our service and gain a competitive edge,” says Rishikesh.
Rapido elected to use Geocoding API to enable its app to convert addresses to geographic coordinates, and the reverse, allowing consumers to identify point A and point B on their journey. The company also uses Directions API to identify the fastest route between pickup and dropoff locations, which enables Rapido to provide users with approximate prices for trips. Distance Matrix API is used to calculate the travel times and distances between locations, and Maps SDKs for Android and iOS to add interactive maps to the app.
Google Cloud Results
- Enables the business to optimize use of Maps Platform APIs
- Takes 5 million orders per month
- Establishes a robust platform for expansion
“Google Maps Platform is particularly useful for us as it identifies optimum routes for two-wheel services,” says Rishikesh. “This saves us time and money, while helping us deliver a better consumer experience.”
In addition, Rapido uses the Snap to Roads service to deliver best-fit geometry for sets of GPS coordinates within the Roads API, which identifies and provides metadata about the roads on which drivers travel. “Snap to Roads in Roads API allows us to optimize the path drivers take and helps ensure the fare charged is accurate,” says Rishikesh.
Improving user experiences
As Rapido matured, Rishikesh considered how to improve the user experience of the app while reducing the business’ costs. In 2017, Rapido asked Google Cloud Premier Partner and Google Maps Platform Partner Searce to help meet these objectives. Searce provided the technical and business advice that prompted Rapido to take advantage of the unlimited API calls, 24-hours-a-day, 7-days-a-week support, and strict SLAs available through the Google Maps APIs Premium Plan for Asset Tracking.
Searce also helped Rapido optimize its API calls and integrate directions and distance calls with the Roads API to smooth out variations in GPS readings received from the handsets of two-wheeler taxi owners. Finally, Searce helped Rapido deploy the Firebase mobile and web development platform to automate the mode configuration of the API keys, rather than maintain a time-consuming manual process. This move also minimized the likelihood of any issues arising if Rapido decided to start multiple projects or add more licenses, or combine Google Maps APIs Premium Plan for Asset Tracking with an external license.
Technical skill and experience
Searce finalized its initial engagement with Rapido last year and provides ongoing support and advice. “Searce’s technical skill with Google Maps Platform put us on the right path to provide a better, more relevant user experience,” says Rishikesh.
Rapido also now uses a range of Firebase services for app development, testing, and modification. The business employs Google Analytics for Firebase to measure customer use of and engagement with its app, enabling the business to make informed decisions about where to direct its resources. In addition, the business is using the Firebase Test Lab app-testing infrastructure to test its Android and iOS apps across a range of device configurations, view the outcomes, and make changes as needed.
Rapido uses Firebase Remote Config to change the app’s behavior and appearance on the fly in response to the results of A/B testing across sections of its user base. Furthermore, Rapido uses Firebase Crashlytics to provide app crash reports to its Firebase console.
Firebase Dynamic Links allows Rapido to direct users to linked content in the iOS or Android version of the app, while Firebase Cloud Messaging enables Rapido to deliver notifications and other messages to users. Cloud Firestore provides a NoSQL cloud database to store and sync data for the Rapido app.
Rapido has also started using the Firebase Realtime Database to store and sync information about customers that can be used to provide a more informed, personalized service.
At the same time, Rapido uses a BigQuery data warehouse to process about 10TB of data every month for analysis and reporting that supports decision-making across the business. The organization is also using application containerization through Google Kubernetes Engine on Google Cloud Platform.
“We are moving our apps from dedicated virtual machines to a scalable containerized environment that consumes fewer resources,” says Rishikesh. “It makes sense to work with Google – the business that designed the Kubernetes container-orchestration system.”
Rapido has also started using the Cloud Functions event-driven serverless compute platform to process smaller jobs. “This is ideal for small use cases in particular as we do not have to spin up virtual machine instances,” says Rishikesh.
Finally, Rapido is using image classification through the Vision AI service to analyze riders’ documentation, such as driving licenses. This allows the business to verify details such as names, addresses, and expiry dates with more than 90 percent accuracy – a high rate in a country where each state has its own license template.
Expanding rapidly to new cities
The Rapido app enables drivers to pick up customers quickly – in most cases, between 2 and 5 minutes.
Overall, the high-quality experience for consumers and drivers delivered by Google Maps Platform, combined with Firebase, has helped power Rapido to robust growth. The business now takes more than 5 million orders per month.
“With Google, we are delivering the right experience to users through Google Maps Platform, Firebase, and Google Cloud Platform services,” concludes Rishikesh. “We have realized our vision faster and now have a robust platform to grow in the future.”
Seven Steps to Making DevOps a Reality

3922
Of your peers have already read this article.
2:30 Minutes
The most insightful time you'll spend today!
When it comes to creating a business that can thrive in the digital age, the benefits of DevOps are clear. In a recent survey sponsored by Google Cloud, Harvard Business Review Analytic Services found that about two-thirds of the respondents who use DevOps have seen benefits that impact their bottom line, including increased speed to market (identified by 70% of the respondents), productivity (67%), customer relevance (67%), innovation (66%) and product/service quality (64%). Not only do these factors deliver profitability, but they’re precisely what cements a winning reputation among customers – the ultimate payoff.
We’ve seen these benefits within Google where DevOps helped us build secure products used and loved by billions of people across the world. However, as head of DevOps practices at Google, I know firsthand how daunting implementing a new model can be, even if it’s worthwhile. Intrigued but unsure of where to begin, customers constantly ask me: “How can I make DevOps a reality?”
Implementing DevOps can be really hard. Getting people to work differently doesn’t happen overnight. From our own journey toward embracing what are now known as DevOps practices, we learned seven critical lessons essential to adopting a DevOps model:
1. Pilot a small project. This provides a low-stakes opportunity to master key DevOps capabilities, such as building small, diverse teams with shared goal. A few small wins will provide evidence to the rest of organization that DevOps works. Soon others will want to follow suit.
2. Be an open-source player. Leveraging open-source tools and engaging in the community keeps you up-to-date on the best solutions and practices and attracts top talent. It also flattens your company’s learning curve and speeds up release cycles. According to a recent DORA study, 58% of businesses made extensive use of open source.
3. Embed security within software development process. By addressing potential security issues as early as possible, you’ll avoid pushing those issues out to production. Over half of participants in the Harvard Business Review Analytic Services survey look for holistic approaches to improve security while automating the DevOps toolchain. In addition, the recent DORA study also found that top performers who build security into software development conduct security reviews and complete changes in just days.
4. Apply DevOps best practices. Use Site Reliability Engineering (SRE) principles to help build collaboration, reduce waste, and increase efficiency. Also look for ways to implement end-to-end automation. Not only does automation enable higher productivity, it frees organizations up to focus on what really matters: delivering value and driving performance.
5. Provide immersive training. People will only commit to organizational change when they understand its premise and are given the resources and opportunity to put new tech to work. That’s why three-quarters of the top-performing DevOps teams in the Harvard Business Review Analytic Services survey, as well as Google, provide immersive, hands-on DevOps coaching and training, such as code labs and quick-start projects.
6. Establish a no-blame culture. By running blameless post-mortem meetings in a safe environment built on trust, we learn from our mistakes. Because let’s face it, defects and coding errors happen when building software. By presenting mistakes as opportunities, you enable people to relate to one another and solve problems together, while ensuring that the same mistake won’t happen again. That’s how the DevOps model can evolve faster.
7. Build a culture that supports DevOps. I’m underlining this because the rest is worthless without it. When people feel like they have each other’s backs, they’re more likely to take smart risks; more likely to create; more likely to move faster. Trust comes down to these principles:
- Data-driven decisions: Look at data from code, logs, and traces, and use that data to arrive at decisions.
- Transparency: Choose sharing over secrecy and siloing. Everyone sees the same data means everyone feels comfortable and confident.
- Shared goals: Constantly collaborate so developers and operators are working toward a common goal.
Those are the basics. Reading the Harvard Business Review Analytic Services survey in its entirety will help flesh out the details. The report is full of proven tactics used by the most successful DevOps-based businesses, as well as statistics that demonstrate why it’s a worthy investment. After you’ve digested those facts and figures, consider my own intangible observation: there’s something magical about understanding what makes people productive, collaborating with them, and then empowering them to deliver value. Hope you get as much out of this transformation as we did.
How TapClicks’ Google Cloud Migration Makes Life Easy for Marketers

8553
Of your peers have already read this article.
2:00 Minutes
The most insightful time you'll spend today!
Editor’s note: In this blog post we learn how TapClicks migrated to Google Cloud to offer their marketing customers a unified platform for data management, operations, insights, and analysis.
TapClicks is a smart marketing cloud, powered by data, that unifies our customer’s marketing. By choosing to migrate our core applications last year to Google Cloud, we cut costs, solved data-sharing concerns for our customers, and opened our stack up to a new ecosystem of possibilities.
The core problem that we’re solving for our customers is how to manage their marketing infrastructures data and operations. Life isn’t easy for marketers now. There are 7,000 different vendors servicing this space today – creating much complexity between digital agencies, media, and brands. Marketers face challenges in navigating all of these systems, logging in and out, understanding pacing goals, and managing the flow of marketing data so they can analyze and report internally as well as to their clients at scale.
We unify omnichannel campaign data (250 API connectors and 6000 Smart Connectors ™ ) from a plethora of marketing sources on an automated data warehousing solution, creating simplicity for organizations. Over 4,000 agencies, media companies, and brands use our Marketing Operations and Data Management Platform, which imports data at scale and creates an automatic data warehouse on Google Cloud. Teams can also leverage TapClicks, like our world class Facebook connector, to import data directly into Google Data Studios. Beyond importing and storing, we also provide data exporting to other Google solutions like Google Data Studio and Google Sheets. We also create interactive dashboards that let stakeholders and clients analyze their data, as well as automated, multi-channel reports that go out to clients at specified times. So channel comparisons, optimizations, attribution, and calculations are easily performed. Some of our customers are able to generate hundreds of thousands of individual reports and dashboards for their clients.
Although we may be best known for our reporting and analytics, we also empower teams managing the marketing operations workflow from customers and internal stakeholders, especially at scale. Our user-friendly, configurable system helps manage their orders and campaigns. Through automation of this process, we deliver tremendous amounts of efficiency, time saving, cost savings, and reduction of errors. The combination of these solutions makes up our unified platform, with additional capabilities like marketing intelligence that offers competitive and brand-level analysis. This is a disruptive solution in use by all leading media companies, agencies and many brands.
Partnering for possibilities
We faced a few challenges with our original tech stack, which included a mix of the leader in web services revenue, leaders in high performance data warehousing, as well as vendors on bare metal servers.
- One challenge was around costs, which were growing.
- Second, many of our customers work with multiple brands, and are very hesitant to share their data with the leader in web services, who’s often viewed as their competitor.
- Third, these vendors are more focused on their own revenue rather than a true long term partnership that would enable their customers to enjoy similar success as they have experienced.
When looking at other cloud providers, Google Cloud emerged for us as the front runner. They were competitive on costs, and their native Kubernetes support was superior— a big selling point for our DevOps team. There’s also a movement in the marketing and advertising industry away from AWS toward Google Cloud because of the data-sharing concern. Finally, most of our customers are already using Google Cloud tools, so there’s brand recognition and familiarity there, and easier integrations with their own systems.
Migrating to Google Cloud
Our migration, which took about five months, involved moving a significant chunk of our infrastructure, including our core applications, using Google Kubernetes Engine (GKE). In our legacy architecture, each of our clients was assigned to one of our virtual machines (VMs), and there was a lot of unused capacity because we had to provision for the max usage. We appreciated GKE’s cloud native capabilities, especially autoscaling, a huge benefit for our web application. We have varying usage patterns during the day, and though our application is mostly used during business hours, there are also days in the month of higher usage, and autoscaling saves us time and costs. GKE also makes deployments much easier, and we anticipate a lot of benefits there for our developer environments. We’ve moved some of our microservices into GKE and plan to move more in the future. All in all, we were able to migrate our core products and the bulk of our AWS spend successfully to Google Cloud.
We also moved from our other vendors Relational Database Service (RDS) to running MySQL on our own VMs on Google Cloud, which gives us more flexibility in terms of settings and fine tuning. We’re still trying to find the best mix as we’re modernizing our infrastructure, and we took this opportunity to migrate from MySQL 5.7 to 8.0.
Our next stage is exploring more of the capabilities and services of Google Cloud, including BigQuery, which we’re considering for our own data warehouse. The fact that we could also run Snowflake on Google Cloud, if needed, was another selling point for our migration.
We’re especially interested in BigQuery ML’s machine learning and natural language processing capabilities, which enabled better predictive insights. Our customers want insights from their campaigns— which are working, which are paying off, where should they invest next? Using our platform, they’re looking not only to generate reporting, but also identify opportunities to improve campaign performance. We plan to use AI and ML to improve those capabilities, so that our customers can seamlessly unlock insight and intelligence from their marketing data and campaigns.
Double-clicking on Google Cloud
For us, being able to deeply leverage and partner with Google Cloud to deliver those solutions on a single stack is critical, and we think our customers will love it. We see TapClicks and Google Cloud partnering at a level beyond what you typically see in a cloud provider relationship. Already, fifty percent of our company is working with various Google Cloud solutions, and we envision TapClicks and Google Cloud as extensions of each other, providing a single, powerful platform solution.
Google Cloud understands the partnership concept, and their team was able to shine a light on their services and what they could bring to the table. Compared to our previous experiences, dealing with the Google Cloud team has been a true pleasure. Now that we’ve migrated, we’re ready to take our next steps into the services available to us in the Google Cloud ecosystem, and the problems we’ll continue to solve for our customers. Learn more about TapClicks and BigQuery ML.
How Eventrac and Workflows Integration Helps Implement Hybrid Architecture in Google Cloud

6549
Of your peers have already read this article.
3:00 Minutes
The most insightful time you'll spend today!
I previously talked about Eventarc for choreographed (event-driven) Cloud Run services and introduced Workflows for orchestrated services.
Eventarc and Workflows are very useful in strictly choreographed or orchestrated architectures. However, you sometimes need a hybrid architecture that combines choreography and orchestration.
For example, imagine a use case where a message to a Pub/Sub topic triggers an automated infrastructure workflow or where a file upload to a Cloud Storage bucket triggers an image processing workflow. In these use cases, the trigger is an event but the actual work is done as an orchestrated workflow.
How do you implement these hybrid architectures in Google Cloud? The answer lies in Eventarc and Workflows integration.
Eventarc triggers
To recap, an Eventarc trigger enables you to read events from Google Cloud sources via Audit Logs and custom sources via Pub/Sub and direct them to Cloud Run services:

One limitation of Eventarc is that it currently only supports Cloud Run as targets. This will change in the future with more supported event targets. It’d be nice to have a future Eventarc trigger to route events from different sources to Workflows directly.
In absence of such a Workflows enabled trigger today, you need to do a little bit of work to connect Eventarc to Workflows. Specifically, you need to use a Cloud Run service as a proxy in the middle to execute the workflow.
Let’s take a look at a couple of concrete examples.
Eventarc Pub/Sub + Workflows integration
In the first example, imagine you want a Pub/Sub message to trigger a workflow.
Define and deploy a workflow
First, define a workflow that you want to execute. Here’s a sample workflows.yaml that simply decodes and logs the Pub/Sub message body:
main:params: [args]steps:- init:assign:- headers: ${args.headers}- body: ${args.body}...- pubSubMessageStep:call: sys.logargs:text: ${"Decoded Pub/Sub message data is " + text.decode(base64.decode(args.body.message.data))}severity: INFODeploy the workflow with a single command:gcloud workflows deploy ${WORKFLOW_NAME} --source=workflow.yaml --location=${REGION}
Deploy a Cloud Run service to execute the workflow
Next, you need a Cloud Run service to execute this workflow. Workflows has an execution API and client libraries that you can use for your favorite language. Here’s an example of the execution code from a Node app.js file. It simply passes the received HTTP request headers and body to the workflow and executes it:
const execResponse = await client.createExecution({parent: client.workflowPath(GOOGLE_CLOUD_PROJECT, WORKFLOW_REGION, WORKFLOW_NAME),execution: {argument: JSON.stringify({headers: req.headers, body: req.body})}});
Deploy the Cloud Run service with the Workflows name and region passed as environment variables:
gcloud run deploy ${SERVICE_NAME} \--image gcr.io/${PROJECT_ID}/${SERVICE_NAME} \--region=${REGION} \--allow-unauthenticated \--update-env-vars GOOGLE_CLOUD_PROJECT=${PROJECT_ID},WORKFLOW_REGION=${REGION},WORKFLOW_NAME=${WORKFLOW_NAME}
Connect a Pub/Sub topic to the Cloud Run service
With Cloud Run and Workflows connected, the next step is to connect a Pub/Sub topic to the Cloud Run service by creating an Eventarc Pub/Sub trigger:
gcloud eventarc triggers create ${SERVICE_NAME} \--destination-run-service=${SERVICE_NAME} \--destination-run-region=${REGION} \--location=${REGION} \--event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
This creates a Pub/Sub topic under the covers that you can access with:
export TOPIC_ID=$(basename $(gcloud eventarc triggers describe ${SERVICE_NAME} --format='value(transport.pubsub.topic)'))
Trigger the workflow
Now that all the wiring is done, you can trigger the workflow by simply sending a Pub/Sub message to the topic created by Eventarc:
gcloud pubsub topics publish ${TOPIC_ID} --message="Hello there"
In a few seconds, you should see the message in Workflows logs, confirming that the Pub/Sub message triggered the execution of the workflow:

Eventarc Audit Log-Storage + Workflows integration
In the second example, imagine you want a file creation event in a Cloud Storage bucket to trigger a workflow. The steps are similar to the Pub/Sub example with a few differences.
Define and deploy a workflow
As an example, you can use this workflow.yaml that logs the bucket and file names:
main:params: [args]steps:...- log:call: sys.logargs:text: ${"Workflows received event from bucket " + bucket + " for file " + file}severity: INFO
Deploy a Cloud Run service to execute the workflow
In the Cloud Run service, you read the CloudEvent from Eventarc and extract the bucket and file name in app.js using the CloudEvent SDK and the Google Event library:
const cloudEvent = HTTP.toEvent({ headers: req.headers, body: req.body });//"protoPayload" : {"resourceName":"projects/_/buckets/events-atamel-images-input/objects/atamel.jpg}";const logEntryData = toLogEntryData(cloudEvent.data);const tokens = logEntryData.protoPayload.resourceName.split('/');const bucket = tokens[3]
Executing the workflow is similar to the Pub/Sub example, except you don’t pass in the whole HTTP request but rather just the bucket and file name to the workflow:
const execResponse = await client.createExecution({parent: client.workflowPath(GOOGLE_CLOUD_PROJECT, WORKFLOW_REGION, WORKFLOW_NAME),execution: {argument: JSON.stringify({bucket: bucket, file: file})}});
Connect Cloud Storage events to the Cloud Run service
To connect Cloud Storage events to the Cloud Run service, create an Eventarc Audit Logs trigger with the service and method names for Cloud Storage:
gcloud eventarc triggers create ${SERVICE_NAME} \--destination-run-service=${SERVICE_NAME} \--destination-run-region=${REGION} \--location=${REGION} \--event-filters="type=google.cloud.audit.log.v1.written" \--event-filters="serviceName=storage.googleapis.com" \--event-filters="methodName=storage.objects.create" \--service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com
Trigger the workflow
Finally, you can trigger the workflow by creating and uploading a file to the bucket:
echo "Hello World" > random.txtgsutil cp random.txt gs://${BUCKET}/random.txt
In a few seconds, you should see the workflow log the bucket and object name.
Conclusion
In this blog post, I showed you how to trigger a workflow with two different event types from Eventarc. It’s certainly possible to do the opposite, namely, trigger a Cloud Run service via Eventarc with a Pub/Sub message (see connector_publish_pubsub.workflows.yaml) from Workflows or a file upload to a bucket from Workflows.
All the code mentioned in this blog post is in eventarc-workflows-integration. Feel free to reach out to me on Twitter @meteatamel for any questions or feedback.
Reference Guide to Get You Started with Development on GKE

5573
Of your peers have already read this article.
1:30 Minutes
The most insightful time you'll spend today!
Getting started with Kubernetes is often harder than it needs to be. While working with a cluster “from scratch” can be a great learning exercise or a good solution for some highly specialized workloads, often the details of cluster management can be made easier by utilizing a managed service offering. Google Kubernetes Engine (GKE) allows for an easier end-to-end developer experience with convenient tooling and built-in integrations along with the convenience of offering Kubernetes clusters as a managed service.
GKE is the most mature container orchestration service available today, delivering a fully-managed service and hands-off experience with the GKE Autopilot mode of operation. GKE provides industry-first capabilities such as release channels, multi-cluster support, unique four-way auto scaling, node auto repair, and can support up to 15K nodes in a single cluster.
Our modern, end-to-end platform is built on cloud-native principles you are already familiar with and prioritizes speed, security, and flexibility, in ways that are highly differentiated from other cloud platforms.
We have put together a new reference guide for you as you begin your journey developing on GKE. It covers every step of your journey from writing, running, operating, to managing code. Even if it isn’t your first time using GKE, this e-book will be a valuable resource highlighting important considerations and best practices. By implementing the technical recommendations, following the steps, and utilizing the tools described, you can reach the following goals:
- Write, deploy, and debug code faster with Cloud Code and Cloud Shell
- Continuously integrate and deliver updates with Cloud Build
- Run easily, securly, cost effectively at scale with GKE
- Monitor and troubleshoot with Google Cloud’s operations suite
Kick-start your journey by downloading the e-book and join us live June 22 at 9am PDT for our half-day Cloud OnBoard event: Getting Started with Google Kubernetes Engine.
3531
Of your peers have already watched this video.
1:30 Minutes
The most insightful time you'll spend today!
Building a Software Delivery Platform with Anthos
Understand the architecture of a GitOps based CI/CD pipeline. In a CI/CD pipeline, there are three different personas — developers, operators, and security engineers.
This demo includes common developer, operator, and security engineer tasks to show how the patterns can improve your company’s software delivery performance.
More Relevant Stories for Your Company

Shifting Down: A New Way to Cloud for Developers
Application developers are the backbone of the modern cloud economy. The role of developers is felt in the seen and the unseen, from the smartphone apps we use every day to the network optimization that is powering a sustainable future. Given your importance in transforming so many fundamental aspects of

Indian Retailer Figures Optimizes Hyperlocal Delivery to Increase Customer Experience
Anyone who follows the Indian e-commerce scene knows that one of the largest challenges these companies face is hyperlocal delivery. That was a problem facing Wellness Forever, a retail chain of pharmacies with 150-plus stores across India. “Exactly a year ago, we started our journey of hyperlocal deliveries. This optimization

Introducing a strong alternative to CentOS: Rocky Linux Optimized for Google Cloud
As CentOS 7 reaches end of life, many enterprises are considering their options for an enterprise-grade, downstream Linux distribution on which to run their production applications. Rocky Linux has emerged as a strong alternative that, like CentOS, is 100% compatible with Red Hat Enterprise Linux. In April 2022, we announced

ShareChat Builds its Diverse, Hyperlocal Social Network. Thanks to Google Cloud
Editor’s note: Today’s guest post comes from Indian social media platform ShareChat. Here’s the story of how they improved performance, app development, and analytics for serving regional content to millions of users using Google Cloud. How do you create a social network when your country has 22 major official languages and






