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.
In order to meet their business requirements, how should HipLocal store their application state?
Click on the arrows to vote for the correct answer
A. B. C. D.B.
HipLocal is a community application that needs to expand its existing services in new regions to better serve its global customers. To achieve this goal, they need to hire and train a new team to support these regions in their time zones, ensure the application scales smoothly, and provide clear uptime data. The company's technical environment is a mix of on-premises hardware and infrastructure running in Google Cloud Platform.
In order to meet their business requirements, HipLocal needs to determine the best approach to store their application state. The state is currently stored in a single MySQL database in GCP. They require a solution that can expand availability, increase the number of concurrent users, ensure consistent user experience, and comply with regulations in new regions.
Option A - Using local SSDs to store state: This option may not be the best choice for HipLocal because it may not scale well for the desired expansion. Local SSDs are attached to the virtual machine instance running the application, and if the application needs to be scaled up or down, the state needs to be copied or moved, which may cause downtime.
Option B - Putting a memcache layer in front of MySQL: This option can help to increase performance by caching frequently accessed data in memory, but it does not address the scalability requirements. Additionally, memcache is not a persistent storage solution, which means that if the server is restarted or fails, the cache data is lost.
Option C - Moving the state storage to Cloud Spanner: Cloud Spanner is a horizontally scalable, globally distributed relational database that can provide high availability and strong consistency. This solution could be a good fit for HipLocal's requirements, as it can provide the scalability, consistency, and compliance with regulations in new regions that are needed. However, migrating from MySQL to Cloud Spanner may require significant effort and changes to the application code, which could cause downtime.
Option D - Replacing the MySQL instance with Cloud SQL: Cloud SQL is a fully managed relational database service that can provide high availability, automated backups, and scalability. This solution is easy to use and can provide the scalability, consistency, and compliance with regulations in new regions that are needed. Additionally, Cloud SQL