Why Serverless?
Tags: serverless, javascript, webdev, beginners
Published: 2020-06-22 10:50:11

Serverless is making big changes to how we operate, deploy, architect, and run applications. There are many benefits that serverless brings, the ones below are just a few.

![Server management](https://i.imgur.com/4Q5JyYV.png[/img])

###**Forget about server management**

Servers are still there, but they are abstracted away and managed by your cloud provider. They are not your problem anymore, the same goes for load balancers and autoscaling.

![Stop paying for stuff you don't use](https://i.imgur.com/l4M7aaY.png[/img])

###**Stop paying for stuff you don't use**

Pay for each function execution. This means you don’t need to over-provision and thus over-pay for infrastructure. Especially for those periods of peak demand.

![Build things faster](https://i.imgur.com/5SsMJFj.png[/img])

###**Build things faster**

Because all you need to do is deploy your code, you won't lose time on spinning up and configuring servers. As a result you’ll iterate and launch products faster.


![No more scaling headaches](https://i.imgur.com/knZvC27.png[/img])

###**No more scaling headaches**
Serverless functions spin up in milliseconds the moment there is a demand increase. The newly created functions are immediately ready to handle new requests. And you, just sit and relax.

##**There Are Some Challenges Going Serverless, but Webiny Helps Solve Those**

###**Right tools and processes**

**Challenge**: How do you structure your project, how do you deploy it, and how do you access it?

**Solution**: Webiny has a ready-made structure that works for any type of project, be that a website, an app or an API. To deploy and access a project, Webiny comes with a CLI that automates that for you. It takes a single command line to deploy the project. Using a CDN URL that you get back, you can access the project.


![Right tools and processes](https://i.imgur.com/uu4dbzO.png[/img])

###**Where to start?**

**Challenge**: Often jumping into new technology is scary. Especially if you need to go through a series of tutorials just to get to hello world.

**Solution**: Webiny comes with several ready-made serverless apps with a simple install process. Right away you'll have a working app that you can interact with. It’s much more satisfying than having a hello world on your screen.

![Right tools and processes](https://i.imgur.com/GgWAOz9.png[/img])

###**What’s the right architecture?**

**Challenge**: What architecture should I use for my project and how do I put it in place?

**Solution**: We architected and coded Webiny from ground up for the serverless environment. Your applications directly benefit by running on top of this stack. No need to experiment, lose time, and learn the hard way. Use a proven and test solution.

![Right tools and processes]
(https://i.imgur.com/lCU2Vmr.png[/img])

###**How do I manage users and their permissions?**

**Challenge**: Creating an ACL is hard. Doing one inside a serverless function has its own set of unique challenges.

**Solution**: Webiny has a built-in ACL that comes with a GraphQL integration. It has the ability to create users, roles, groups, and API tokens. It's all controlled via a friendly user interface. The whole logic is running inside a dedicated serverless function.

![Manage users and their permissions]
(https://i.imgur.com/6dHT4oF.png[/img])

###**But my site requires server-side render**

**Challenge**: How do you do SSR inside a serverless function and get that full SEO value?

**Solution**: Webiny comes with a dedicated function that handles SSR. No need to configure or install anything separately. Everything is already included and pre-configured for you.

![Server-side render]
(https://i.imgur.com/7wi8kjq.png[/img])

###**How do I install and run everything locally?**
**Challenge**: A serverless function is a cloud-native service. So how do you replicate the whole setup on your local development environment?

**Solution**: You don't. There are a plethora of services, and differences in them between the cloud providers. The only way to get a 1:1 environment is to deploy your functions and test them inside the cloud. Our development setup does just that. This way you can rest assured that what you test in development, is how it will behave in production.

![Server-side render]
(https://i.imgur.com/uImG23d.png[/img])