HipLocal - Global Expansion and Scalability

HipLocal's Expansion and Scalability Solutions

Question

Case Study - Company Overview - HipLocal is a community application designed to facilitate communication between people in close proximity.

It is used for event planning and organizing sporting events, and for businesses to connect with their local communities.

HipLocal launched recently in a few neighborhoods in Dallas and is rapidly growing into a global phenomenon.

Its unique style of hyper-local community communication and business outreach is in demand around the world.

Executive Statement - We are the number one local community app; it's time to take our local community services global.

Our venture capital investors want to see rapid growth and the same great experience for new local and virtual communities that come online, whether their members are 10 or 10000 miles away from each other.

Solution Concept - HipLocal wants to expand their existing service, with updated functionality, in new regions to better serve their global customers.

They want to hire and train a new team to support these regions in their time zones.

They will need to ensure that the application scales smoothly and provides clear uptime data.

Existing Technical Environment - HipLocal's environment is a mix of on-premises hardware and infrastructure running in Google Cloud Platform.

The HipLocal team understands their application well, but has limited experience in global scale applications.

Their existing technical environment is as follows: " Existing APIs run on Compute Engine virtual machine instances hosted in GCP.

" State is stored in a single instance MySQL database in GCP.

" Data is exported to an on-premises Teradata/Vertica data warehouse.

" Data analytics is performed in an on-premises Hadoop environment.

" The application has no logging.

" There are basic indicators of uptime; alerts are frequently fired when the APIs are unresponsive.

Business Requirements - HipLocal's investors want to expand their footprint and support the increase in demand they are seeing.

Their requirements are: " Expand availability of the application to new regions.

" Increase the number of concurrent users that can be supported.

" Ensure a consistent experience for users when they travel to different regions.

" Obtain user activity metrics to better understand how to monetize their product.

" Ensure compliance with regulations in the new regions (for example, GDPR)

" Reduce infrastructure management time and cost.

" Adopt the Google-recommended practices for cloud computing.

Technical Requirements - " The application and backend must provide usage metrics and monitoring.

" APIs require strong authentication and authorization.

" Logging must be increased, and data should be stored in a cloud analytics platform.

" Move to serverless architecture to facilitate elastic scaling.

" Provide authorized access to internal apps in a secure manner.

HipLocal wants to reduce the number of on-call engineers and eliminate manual scaling.

Which two services should they choose? (Choose two.)

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D. E.

BC.

Based on the given case study and the technical and business requirements, the two services that HipLocal should choose are:

B. Use serverless Google Cloud Functions. D. Use Google Kubernetes Engine for automated deployments.

Here's the explanation why:

A. Google App Engine services are a platform as a service (PaaS) offering that provides a fully managed environment for developing, deploying, and scaling web applications. However, this service may not be the best fit for HipLocal's requirements because they want to move to a serverless architecture to facilitate elastic scaling, and App Engine is not a serverless offering. Moreover, App Engine may not provide the flexibility and control needed for customizing the application infrastructure to meet their specific needs.

B. Serverless Google Cloud Functions is a compute service that allows developers to run code in response to events without having to worry about the underlying infrastructure. This service is a better fit for HipLocal because it allows for a serverless architecture that facilitates elastic scaling. Moreover, Cloud Functions can be used to trigger other services in Google Cloud Platform, such as Cloud Pub/Sub, Cloud Storage, and Cloud Firestore, to build a complete event-driven architecture. This would allow HipLocal to easily integrate different services and build a highly scalable, flexible, and modular application infrastructure.

C. Knative is a platform that provides a set of building blocks for building serverless applications on Kubernetes. While Knative can be a useful tool for deploying serverless applications, it may not be the best fit for HipLocal's requirements because it requires a more complex setup and configuration than Google Cloud Functions. Additionally, HipLocal may not have the expertise and resources needed to manage and maintain a Kubernetes cluster, which is required for using Knative.

D. Google Kubernetes Engine (GKE) is a fully managed Kubernetes service that allows developers to deploy, manage, and scale containerized applications. This service is a good fit for HipLocal's requirements because it allows for automated deployments and can be used to deploy serverless applications using Kubernetes-based serverless frameworks like Kubeless and Knative. Moreover, GKE provides a highly available and scalable infrastructure that can meet HipLocal's need for high availability and scalability.

E. Using a large Google Compute Engine (GCE) cluster for deployments may not be the best fit for HipLocal's requirements because it would require manual scaling, which is something they want to eliminate. Additionally, GCE is not a serverless offering, which means HipLocal would have to manage and maintain the underlying infrastructure themselves, which could be time-consuming and costly.

In summary, HipLocal should choose serverless Google Cloud Functions and Google Kubernetes Engine for their automated deployments to meet their technical and business requirements.