This course prepares you to implement serverless environments fully, or simply experiment with serverless engineering patterns so you can evaluate the benefits for yourself.

It's been estimated that somewhere between 50-80% of the time and money you spend building, deploying, and maintaining applications on-premise is spent on "undifferentiated heavy lifting" – the provisioning, maintenance, and hardware refreshes of underlying servers, routers, load balancers, and disk drives. Only by jettisoning these outdated practices can you realize the full cost savings and agility potential of the cloud. Serverless practices make provisioning and modification of resources as simple as a few minutes or few seconds of effort, and by providing auto-scaling, auto-rebalancing, HA and DR out of the box, serverless architectures allow your team to spend nearly 100% of their efforts on tasks that really move the needle for your business -- building new products and features that customers and users will love.

Get hands-on practice and go back to work ready to immediately apply or improve your own serverless architecture patterns, as well as communicating with management about their benefits.

This class is designed to be a practical workshop which goes beyond concepts and gives you tangible engineering skills you can apply in your own IT organization. Much of the class is spent in our enterprise lab environment, giving you hands-on practice with the tools and technologies behind serverless architecture. Guided by a senior engineering instructor, you’ll have the opportunity to tinker and test in a safe classroom environment so you can learn what’s really applicable to your own teams.

In this course, you will learn how to:

Design use cases and business benefits that are attainable using serverless architecture

Articulate the value of serverless architectures and how they fit into related architectural patterns of today’s world, such as microservices, cloud, PaaS, etc.

Comprehensively understand individual serverless components (both in and out of AWS)

Use at least 4-5 disparate architectures which use serverless components for every aspect of the architecture

Decide how, when, and where to deploy serverless components in architectures of your own

Lab #1:Cost-benefit analysis for serverless adoption – Calculate costs of EC2 vs Lambda-backed web services, and discuss as a class the tradeoffs associated with this type of use case.

Comparing the major solutions (AWS, GCP, Azure, IBM)

CAP Theorem and "eventual consistency"

Security and Tagging (AWS IAM and tags)

Lab #2: Access control with tags – We will immediately prioritize security in serverless environments and will continue to do so throughout the rest of class. In this exercise, you will walk through best practices for access control, and use tags to tie access control to security policy.

Building RESTFul interfaces to Lambda

Lambda capabilities and using Lambda

Setting up and using API gateways

Best practices for APIs

Putting it all together

Reference architecture walkthroughs

3 tier web app

Big data processing

Content delivery

IoT

Mobile Applications

Serverless Analytics

Kinesis

Athena

Step Functions

Lab #3: Use Athena to analyze ELB logs – One of the most immediate sources of value and cost savings associated with serverless patterns is automatically understanding and managing the load. In this exercise, we will use AWS Athena to demonstrate a few of the simplest techniques for doing so.

Functional Programming Core Concepts

Serverless compute

Lambda

Lambda@Edge

Other services

Applying features & functionality of Lambda and Lambda-like tools

Compare / contrast Python, Java, .NET, Node

Lab #4: Create and call your first Lambda function – This exercise will have us working like functional programmers. Depending on needs of the class, we’ll use lab examples in Python, Java, .NET and/or Node.