Home > AWS, Cloud, Containers, re:Invent, Serverless > AWS re:Invent 2017: What’s New in Serverless – SRV305

AWS re:Invent 2017: What’s New in Serverless – SRV305

Tim Wagner the AWS Serverless GM and Jeet Kaul from FICO

This session was about new things in serverless.

Tim reiterated how mazing Lambda is coming, its even inside a camera which was announced in the keynote as well as the top memory size being doubled to 3Gb which also doubled the CPU power.

2017-11-30 15.18.52Magic!

There was a mini magic show which was apparently a nod to something they did last year.

The idea is to show disappearing servers, as there are more and more serverless offerings, this means more and more disappearing servers.

Serverless Application Repository.

It’s worth looking at the recently announces Serverless Application Repository, its a marketplace of serverless functions published by AWS and others.

You can search and browse for any kind of function you want and then just fill in the details which may be environmental variables such as a S3 bucket name and the rest of the function is then ready to be deployed.

This gives you an easy head start to get going, you can also more easily customise them and the even decide to share them privately or publicly.

You can even monetise your APIs using the AWS marketplace. I’ve said previously this is a very important model going forward for serverless. You won’t always have to write your functions yourself and could in effect rent clever functions run by others. All manner of serverless offerings will be dreamed up and they’re only an API invocation away.

Serverless Application Model (SAM)

SAM is an extension to CloudFormation just for serverless.

This allows packaging, deployment and most importantly testing of functions locally even with Docker.

No Prototyping

Once you write and test a function once you don’t need to worry about scale. Whether you run it once or 1000 times you don’t need to worry about taking a prototype and refactoring it for scale. Your prototype can be production with automatic scaling.

For performance, there is some more cold start optimisation, they say there’s an 80% reduction in start times for larger functions.

Lambda Console

The Lambda console has been updated a lot today. There is a new designer area with a visual mapping showing your triggers on the left. There is also a visualisation of the execution role for everything the function can access be it S3 buckets or CloudWatch Logs which is handy to see the potential scope of your function.

A mini version of the Cloud9 IDE which was announced in the keynote this morning is native in the Lambda console called the Lambda Function Editor.

2017-11-30 15.25.35 2017-11-30 15.26.46

Visual Designer Area                               Lambda Function Editor

You can edit multiple files at once and create new files for existing packages.

Most usefully is you can run tests and view the results directly in the IDE without leaving the editor. You can easily view the logs particular to the function via “grab and go logs” which is a quick jump link to the logs.

Cloud9 IDE

Tim then went through the fuller Cloud 9 IDE which can then be used locally.

It runs in a browser and is a full functioning IDE:

  • built-in Github support
  • built-in Lambda blueprint support
  • built-in SAM local which is the local runtime which is also available as a Docker image.

This means you can do local testing of Lamdba functions which is super useful.

SAM Local also works with IDEs, including Visual Studio Code for offline access.

CI/CD

You can now more easily set up a CodePipeline to build automatically on updates.

This is to be able to more safely deploy functions, roll them back automatically if there are issues and more easily co-ordinate multple function deployment

Blue/Green Deployments

Weighted aliases which was mentioned before the show allows you to set a percentage of traffic between two versions of the same function.

This is basically blue-green deployments and you can watch traffic to your new function and tweak the percentage as you’re more confident you’re getting what you expect.

API Gateway also now has Sub Stages for incremental deployment so you have blue-green deployments for different versions of your API and share traffic between them.

Concurrency

To connect to enterprise systems and monitor and limit concurrency, you can hook up to APIC based services with auditing and logging.

To protect the capacity of a Lambda function from others running in the same account, say running a load test which can cause a production system to brown out you can use concurrency based on metrics. This could be used for example to limit concurrency to a legacy system which can’t always handle more load or even limit throughput to a small RDS instance type.

Another use case is to use concurrency to develop functions with limited billing and stop runaway processes.

2017-11-30 15.49.15VPC Private Link integrations

This allows you to access services and data in your VPC from an API.

Regional endpoints allow you to build multi-region APIs with lower latency for users.

There is better structured logging for APIs with CloudTrail support for lambda functions to track every invocation.

Lambda for devices has expanded with Greengrass including the option to run Greengrass with Lambda on vSphere as well as the existing Snowball Edge

Language

Language support has been expanded to include favourite Go.

You can take any Go program and put it into Lambda function by adding 2 lines of code.

Lambda for Windows is also coming soon with .Net CoreCLR 2.0

Ecosystem

AWS isn’t doing everything itself and the rich ecosystem which has developed is being encouraged.

2017-11-30 16.10.15

You can see there’s lots of work on making Lambda and API Gateway more functionally rich. This will be the default programming model in 5-10 years so start planning for it now so you don’t make too many limiting choices using other ways even containers.

The session video has now been posted: :

 

  1. No comments yet.
  1. No trackbacks yet.
 

Time limit is exhausted. Please reload the CAPTCHA.