Cloud-native - it’s a big buzzword these days, but what does it mean for me?
Tags: cloud, cloudnative
Published: 2022-08-02 18:34:28

Cloud-native is a word we hear everywhere in the web industry these days. Cloud-native apps. cloud-native hosting. “Make your site cloud-native!”. But what does that mean, and what does it mean for you? What makes something cloud-native? Why is that important - and is it important?

Let’s start with some definitions. What is the “cloud,” anyway? You might have heard “the cloud is just someone else’s computer,” and that’s not far off. When we talk about the cloud, we’re talking about a model where storage, servers, networking, tools, and applications all exist on the internet - not on your own computer, or connecting directly to one other computer. In this blog post, we’ll mostly be talking about web applications, since Lagoon is a web application delivery platform. 

So what’s the difference between something just being online and being in the cloud? Let’s use an example. Say we have an e-commerce website: cuteguineapigs.com. Our site is hosted on a server with some hosting company. When people visit our website, they’re going to that server. But one day, our cute guinea pig merch goes viral, and suddenly we have millions of people visiting our site. Our server can’t support that! Our support engineers are now struggling to get more servers up and running to support the traffic, but that takes time, and in the meantime, our site has gotten overwhelmed and is now down, and no one can get any cute guinea pig merch. Even Netflix, in their early days, had to run to the PC store weekly to buy more hardware to meet their growing demand!

Now we’ve learned our lesson, and we’re going to host our website in the cloud. In this case, the cloud hosting company has already got a ton of hardware provisioned, and ready-to-go, whenever someone needs it. We can also make some simple code changes to our site, to make sure that it can use this new hardware more quickly. Because we can now more easily add hardware when traffic increases, going viral doesn’t take down our site, and everyone gets to buy our cute guinea pig merch! That’s a really simple example, but it’s a common one, and demonstrates a really good use case for why you’d want to put your site in the cloud. 

We now know how the cloud can benefit an e-commerce website - but how about an application? It’s the same thing. Think about the amount of traffic an application like GitHub gets. Or Facebook. They have to deal with traffic spikes, too. And it’s not only traffic, but also outages - sometimes there are major internet outages to huge areas, or outages to major data centers. Putting your application in the cloud can protect against that, by having multiple availability zones - say there’s a datacenter outage in the east coast region of the US, but not everything is down - that region is divided into multiple availability zones, so that if some of the region goes down, not everything comes down with it. 

That’s a really brief introduction to the cloud - so what does cloud-native mean? Well, to host an application in the cloud, you need to configure it differently than you would if you were just plopping it on a server or two. Think about the way you need to configure a site differently if you’re putting it on a Linux server or a Windows server. It’s kind of like that. The underlying infrastructure is different, so some expertise is needed to make your app work properly in the cloud. Think of cloud-native more as an ecosystem for success, rather than a single application and you start to see the picture.

What goes into making your application cloud-native depends on what you’re doing and where you’re hosting it, which can be a lot of variables requiring a lot of specialized knowledge. You need to have an understanding of the platform you’re using - AWS, Microsoft Azure, Google, etc - as well as technologies running on them. Kubernetes is fast becoming the dominant platform, but you also need to consider databases, storage, monitoring, logging, backups and a whole lot more. And that’s just to get it going. You also need to know how to secure, maintain, and troubleshoot all of this. 

That’s where Lagoon comes in. Lagoon can take your application - say, a Drupal website - and with a little bit of configuration, deploy it to the cloud without any expertise needed. This takes a lot of the stress off of your web team, and you don’t need a dedicated team to deploy your application(s) to the cloud. Lagoon is a web application delivery platform that lets you deploy and manage your applications in the cloud without needing any specialized knowledge. You edit a couple of files, configure some webhooks, and we get everything else going for you. If you want to know more, [check out our documentation](https://docs.lagoon.sh/), [join us on Discord](https://discord.gg/te5hHe95JE), or [reach out to us on Twitter!](https://twitter.com/uselagoon)