The Product Manager's Guide to Cloud & Serverless Computing 101

Welcome to my monthly newsletter. I'm an experienced software engineer, a tech mentor to product managers, and the founder of Skiplevel. Every month I share:

  • technical skills and knowledge you should know

  • tips for working with and collaborating with dev teams

  • tips for non-engineers struggling with confidence in technology

  • tips for managers looking to build a more technically literate team

Ask me anything (yep, anything) and I'll cover it in an upcoming newsletter issue!

Connect with me on LinkedIn and Twitter and follow Skiplevel on LinkedIn, Twitter, and Instagram.

Step into a world of Product-Led Geekiness!Expect product and growth frameworks, colour commentary, mental models, hot takes and tales from a 20+ year product career - all delivered with candour and an occasional splash of British humour.

Guide to Cloud & Serverless Computing 101 for Product Managers

Got a burning technical question? Ask me anything & I'll answer it in an upcoming issue!

The first step to building software applications is deciding how to architect the system. Infrastructure decisions are a big piece of this puzzle—where do we “host” the app? How do we scale it? What’s easiest to implement and maintain? These are just a few of the questions your engineering team must answer as part of building that new feature or product you’re asking for as the product manager.

Luckily, computing trends and software infrastructure solutions have come a long way in the past two decades. Along with these changes came a whole new suite of solutions for how we host, scale, architect, build, and maintain software. Specifically, this new suite of solutions come in the form of cloud and serverless computing.

So why this topic and why is it important for you as a product manager? For many reasons, one of which is that computing trends are an important part of software development, especially modern software development, and you want to be able to converse on the topic and understand its core concepts.

In this article, we’ll explore the historical computing trends starting with “on-premise” hosting, moving into cloud computing and finally serverless computing. I’ll explain what the differences are between them and how these trends have changed the way we build software in modern times.

Note: This article requires some basic technical acumen though I’ll do my best to explain technical concepts and lingo as we go. Consider enrolling in the Skiplevel program if you’re serious about leveling up your technical skills and knowledge.

On-premise hosting

All software are hosted on physical machines called “servers”. Early internet companies hosted their websites on servers located on-site, hence the term “on-premise” hosting. The companies were responsible for maintaining and managing these machines. This meant not only were they responsible for building the website and what goes inside of it (i.e. operating system), they were also responsible for the hardware and physical internet infrastructure. Managing hardware is costly in a myriad of ways including financially, time, physical effort, and complexity. Imagine having to manually install and uninstall machines whenever traffic goes up and down so the company can save on costs since keeping servers running can be expensive!

Hence you can imagine what a big hamper to scaling managing physical infrastructure is. It wasn’t until the advent of cloud computing that the internet really exploded and we see the rich web experiences that we see today.

Cloud Computing

The first big shift in computing is cloud computing.

Cloud computing can be a confusing term but at its core, cloud computing just means instead of managing physical infrastructure yourself, someone else—namely cloud providers—manage your servers and the computing needs of your application for you.

Gone are the days of having to manually scale physical machines. Cloud providers like Amazon Web Services, Google Cloud, and Microsoft Azure can automatically detect shifts in your application’s traffic needs and within minutes “provision” (set up or make available) new hosts to serve your app. Cloud computing also offer many security protocols that otherwise is difficult to set up and maintain.

Cloud Computing allows us to quickly scale and manage servers compared to on-premise hosting.

This is a turning point for the internet because it means companies no longer need to manage and maintain physical infrastructure! This frees resources up to innovate and develop the beautiful applications and interfaces we enjoy today.

Cloud companies offer a myriad of tools and solutions for companies. Terms like “AWS Cloud” or “Oracle Cloud Infrastructure” refer to Amazon Web Services’ (AWS) collection of data warehouses and special tools they offer to host, run, deploy, and scale their application. The same goes for Oracle Cloud Infrastructure and the many cloud providers out there.

Here are some popular cloud products your engineering team may be using:

  • AWS EC2:

  • Heroku Dynos

  • Google Compute Engine

  • Digital Ocean App Platform

  • Azure Virtual Machines

  • CloudFlare

💡 Challenge: Leave a comment with which cloud provider you use (or ask an engineer on your team if you’re not sure!)

Serverless Computing

The second big shift in computing is serverless computing.

Serverless computing is actually a type of cloud computing since they both remove the need to manage hardware. But serverless takes the automation trend of cloud computing a few steps further by...

Got a question? Ask me anything & I'll cover it in an upcoming issue!

💡 Tech Term You Should Know (TTYSK)

"Single Page Application (SPA)"

A Single Page App is a modern type of app that does not require page reloading during use. This is different from traditional websites that require reloading a page whenever new data is loaded. SPAs are popular since there's no wait time due to page reloads, making them faster and a more superior user experience.

The way SPAs work is by loading as much content as possible, including content in links, at the first initial load. Any other data that needs to be retrieved from the server is done through AJAX (Asynchronous JavaScript and XML) — a method of exchanging data via APIs and updating in the application without refreshing the page. When you click on a link, SPAs use JavaScript to update the UX so it looks like the page as reloaded when it actually hasn't.

Example of SPAs:

Gmail, Facebook, Airbnb, Netflix, PayPal, Google Maps

What you need to know about SPAs as a PM:

Single Page Applications are undoubtedly a faster and better user experience, but there are also lots of drawbacks that require you and your engineering team to make intentional decisions about.

Here are a few of the cons:

Compared to the traditional application, SPA is less secure. Due to Cross-Site Scripting (XSS), it enables attackers to inject client-side scripts into the web application by other users.

It requires JavaScript to be present and enabled. If any user disables JavaScript in his or her browser, it won’t be possible to present application and its actions in a correct way.

Another big consideration is your product timeline since building single page applications overall takes longer and is more complex to build compared to traditional apps. Still, it's worth it to have a conversation with your dev team about whether the pros outweigh the cons and how much/if any extra development time is needed to build an SPA vs. a traditional app.

Want to feel more confident in your technical skills?

Become more technical in just 5 weeks, without learning to code. We also train teams. Find out more at skiplevel.co/teams and book a call with me to get started.

As always, connect with me on LinkedIn and Twitter and follow Skiplevel on LinkedIn, Twitter, and Instagram.