Case Study: Hosting Scalable web apps on Google Cloud (Get Cooking in Cloud)

Welcome to “Get Cooking in Cloud,” where
we share the best recipes to apply in your Cloud kitchen. I’m Priyanka Vergadia,
and in this episode, we will talk about two
very unique businesses and their website
hosting challenges. [MUSIC PLAYING] My friend Christine
is an amazing baker and started this bakery
called Cloudy Bakers, where she sells her baked
goods in her newly rented store in California. After a few weeks in business,
she asked for some help. She wanted to build an online
presence for her business to spread the word
about her treats and grow beyond California. Now, it makes sense to start
a website with a fixed menu to be displayed, along with
her contact information and some other details. So that’s what we did. We needed to create
a static website with her branding, logo, and a
beautiful picture of her very tasty menu items. In order to accomplish
this, we started by purchasing a domain
called cloudybakers.com on Google Domains. Now, with this
domain, we officially have an online business name. Since all we needed was to
establish an online presence and make sure that people
know what Cloudy Bakers sells, we decided to use
Google Cloud Storage to host the static website. We created a Cloud
Storage bucket called www.cloudybakers.com
and uploaded all the HTML, JavaScript,
and images, like the menu and the logos, in it. Once done, we made sure that
all the files in the bucket are publicly accessible, so
the users can see the website. This was great, but
after about six months, Christine called me again. Her business had
grown, and she was getting more and more
interest in her baked goods. And her customers were
now looking for options to purchase online. But she had to work
with some constraints. She had very limited
help from a developer to update the site to
take online orders. She was anticipating a higher
volume of cookie orders in December because, holidays. And budget was also tight. Given these challenges,
she had to pick an option to host the site such
that she does not have to worry about
infrastructure needs if the products got popular and
traffic grew from a few users to thousands of users. So I recommended that she use
managed compute platform Cloud Run. Since Cloud Run
is serverless, it abstracts away all the
infrastructure management so she could focus on
what matters most, selling more of her amazing cookies. We pointed this newly created
website to the domain name, and Cloudy Bakers could
now take online orders. This recipe provided
them a wide range of features that
made scalability, load balancing, logging,
monitoring, and security much easier than if she had
to build and manage this website herself. Cloud Run also provided her
business the flexibility to code in any
programming language, because the application is
deployed as a container, and Google seamlessly
launches and scales the application as needed. Christine’s business is
off to a great start, and she’s very
happy that she chose Cloud Run to host the
website so she could focus all her attention on baking. If you would like to learn how
to build websites on Cloud Run, we’ve got a video for that. Check it out. Now, let’s consider XpressFood. XpressFood is an online
grocery shopping platform. They’re a market leader and have
been around for a long time. They currently host
their website on premise and are looking
to move to cloud. The CEO is convinced
that this move will lead to benefits in
total cost of ownership, operational expenditures,
and allow the teams to focus on their core business. XpressFood has a complex
website with varying server configurations with specific
memory, SSD, and GPU requirements. Given this specificity,
it was clear that they needed more options
and control than a managed platform could offer. So I proposed a lift-and-shift
approach using Compute Engine. This recipe was
apt for XpressFood, because the teams had
complete control of the system and flexibility. They also had familiarity
with the virtual machine configurations from
on-premise world and can continue to apply
the concepts in Google Cloud Platform without having
to learn new concepts. They migrated the web
server, application server, the database, to Google Cloud by
creating Google Compute Engine instances and mapping the
memory and CPU of the currently used on-premise instances. XpressFood sees variable
traffic patterns depending on the seasons
and the times of the day. So we also applied autoscaling
policies in conjunction with load balancing by
setting up an autoscaler that scales based on
load on the instances. The CEO is happy
that moving to cloud led to reduced
operational expenses as a result of autoscaling,
and the engineering team is happy that they don’t have to
capacity plan for the purchase of new hardware, a win-win
situation for the XpressFood team. But still, there was a
challenge they were facing. Their feature launch
speed was really slow. Digging further, we found that
they had large development teams working on different
features, but most of them were not able to launch due
to dependencies on each other. Since the website
was a huge monolith, the feature rollouts had
to be combined together. That’s just not
efficient, especially for the teams and features
that are small, quick updates. To solve this
issue, I recommended that XpressFood
create microservices so that teams can work
on individual services, removing the rollout
dependencies on each other. Breaking the monolith
into different services to componentize is best achieved
through containerization. So the next logical
move for XpressFood was to containerize the
services of the web application. This didn’t just
increase the speed with which they were
able to innovate, but also provided portability
and manageability. If you’re looking to use GKE
to deploy your web application, follow the link in
the description below. All right. So let’s summarize
what we learned today. We saw how Cloudy Bakers
was able to establish their online presence by
creating a static website on Google Cloud Storage,
and then utilized Cloud Run to expand their online
presence with minimum resources and effort. We also learned how
XpressFood used Google Compute Engine to host their existing
legacy on-premise website on Google Cloud in the least
amount of effort possible, and eventually containerized
the website following the microservices
architectural principles, leading to rapid
deployment and efficiency. That’s all for today on
“Get Cooking in Cloud.” Here’s hoping you can
whip up something great. Join us in the
next episode, where we will cook a new dish,
disaster recovery on Google Cloud. If you would like to share
your feedback on this series, write a comment
below or tweet us. And if you would like to
see more such content, then don’t forget to like
and subscribe to our channel. [MUSIC PLAYING]

Leave a Reply

Your email address will not be published. Required fields are marked *