talk

Full Stack Development in the Era of Serverless Computing

As the costs associated with software development continue to increase, companies & developers are looking for ways to increase their efficiency & do more with their existing skillset. Meanwhile, in the serverless movement, there has been an evolution in the...

As the costs associated with software development continue to increase, companies & developers are looking for ways to increase their efficiency & do more with their existing skillset. Meanwhile, in the serverless movement, there has been an evolution in the way companies think about the way they are building applications, reducing the initial cost of development by taking advantage of managed services like Auth0, Cloudinary, Firebase, & AWS Lambda instead of building & maintaining their own servers & service implementations.

When people speak about serverless, they typically tend to think about a collection of functions calling each other when in reality the best serverless applications consist of thick client code handling all interaction logic, heavy use of managed services & small glue functions to fill in the missing pieces.

In this talk, I’ll introduce a workflow that allows front end developers to build full stack applications using JavaScript by taking advantage of managed services, implementing real-world features like authentication, managed GraphQL APIs, serverless Lambda functions, & chatbots using a CLI based workflow.

Summary

Nader discusses the impact serverless infrastructure and technology will have on full-stack development. He introduces the workflow that gives front-end developers the tools needed to build full-stack applications.

About the Speaker

Nader Dabit is a Developer Advocate at Amazon Web Services. He recently published a book called Full Stack Serverless that will be released in Novemeber 2020. You can check his book out here.

Abstractions in Web Development

A lot of the things we have to do in web development require a lot of work, time, and effort. Abstractions help lessen the amount of work we have to do. We want most efficient abstraction.

We can get ahead by focusing on best abstractions.

Front-end Abstractions

The old front end stack looks COMPLETELY different from what we use now.

The old stack was HTML, CSS, jQuery.

The new stack is huge. We still use HTML and CSS. But there are so many tools, languages, and frameworks front end developers are expected to know a whole lot of different things.

Why has front end engineering become so complex?

Why Front-end Is So Complex

There are few things that have contributed to the high expectations employers, fellow developers, and users have for front-end developers.

Why We Need Front-end Abstractions

Is there a way to solve these problems easily? How can smaller teams with small budgets meet these expectations? This is where front-end abstractions come in.

Here's a list of some of the front-end abstractions you might be familiar with.

These abstractions don't mean that there's no need to know how these things work under the hood.

Back-end Abstractions

Back-end development used to look a lot different than what it does today.

Servers and infrastructure was often in house. But thre are problems that come with have on premise servers and infrastructure.

Why We Need Back-end Abstractions

Having everything on premise meant...

How were these issues solved?

Cloud and Serverless

Cloud and serverless technologies are how we're able to solve these problems.

With cloud...

With serverless...

Serverless is becoming the better solution

What's Next After Serverless

What's next after serverless?

Cloud Computing Simplified- A Berkeley View on Serverless Computing is an interesting read on this subject.

Nader's biggest takeway from this paper is that serverless computing is made of two componesnts - functions as a service (FaaS) and back-end as a service (BaaS).

Examples of BaaS include...

These are all Managed Services

The Berkely paper also predicts that...

Serverless is a Spectrum

Serverless is more of a spectrum than a concrete standard. Ben Kehoe is a huge propenent of this idea.

Here are some things to check for when it comes to the serverless spectrum:

Serverless Functions and Servicefull Services

Serverless functions and servicefull services are two things on the serverless spectrum. But what do they do?

With both serverless functions and servicefull services ...

Servicefull services give us some extra capabilities.

The great thing about this is that you can do a lot with a just a few resources. On the flip side, these things could also limit you if you need to do something out of service scope.

Here are some examples of servicefull services:

These are managed services.

GraphQL

Data is very important. But it's a bit more difficult to abstract that layer away. How can we do that?

This is where GraphQL comes in. GraphQL offers a menu of what's available. What does this mean? It means that it makes it easier to digest data.

Microservice Architecture

Microservice architecture is becoming very popular and whidely used. API gateways have improved with microservice architecture.

Without microservice architecuture, API Gateway have end points that send requests to microservices. The problem with this is that there are different implementation details that differ across different services. This slows down developer velocity becuase there is no consistetnt API data on the backend.

GraphQL can help solve these problems. GraphQL gives us a consistent API gateway. GraphQL abstracts away the API layer, increasing developer velocity.

GraphQL also offers schema centric development. This means we have...

Full Stack Serviceless

What exactly is full stack serverless? Here are some key characteristics of full stack serverless:

Full Stack Serverless Assumptions and Acknowledgements

Benefits of Full Stack Serverless

Here are some of the benefits of FSS:

Drawbacks of Full Stack Serverless

Here are some of the drawbacks of FSS:

What You Need to Build a Full Stack Serverless App

How can we build FSS apps? There are 4 pieces

  1. Manages Services

  2. Serverless GraphQL

  3. Serverless functions

  4. Web/mobile framework

Full-stack Serverless Tools

What are some FSS tools?

  1. Cloudinary, AuthO, Algolia

  2. Hasura, CosmoDB, AppSync

  3. Netlify, Now, Azure/GCP/AWS

Conclusion

In conclusion, we can define full-stack in the era of serverless computing like this:

✏️ Edit on GitHub