Faster Deployment for Large Services, Support for Node.js 6.10 Runtime with Serverless v1.10

Mar 29, 2017

We've just released v1.10 of the Serverless Framework! Let's take a look at all the new features.

Highlights of 1.10.0

Note: You can find a complete list of all the updates in the changelog.

Support for Node.js 6.10 Runtime

AWS recently announced that Lambda now supports Node.js 6.10.

Serverless has got you covered. All the new Node.js services you create with the help of the serverless create --template aws-nodejs command ship with the new Node.js 6.10 runtime out of the box.

However, if you've got an old service and want to use the new runtime you simply need to update the runtime property in your serverless.yml file:

provider:
  name: aws
- runtime: nodejs4.3
+ runtime: nodejs6.10

Note: Please make sure to check the breaking changes an update to nodejs6.10 introduces so that your service still works flawlessly.

Breaking changes between v4 and v5 Breaking changes between v5 and v6

AWS Groovy Gradle Template

You can now use the aws-groovy-gradle template option when creating a new service:

serverless create --template aws-groovy-gradle

This creates a basic Serverless service for Groovy on the JVM which uses the gradle build tool.

Faster Deploy Times for Large Services

The Serverless Framework relies on CloudFormation to deploy the service with its infrastructure in a consistent and reliable way.

CloudFormation itself uses a graph representation to identify how and in which order the infrastructure components should be deployed.

v1.10 of the Serverless Framework includes an improvement where resources are defined in a way which helps CloudFormation to deploy them in parallel rather than sequentially. Making the deployment process faster.

Especially large Serverless services will be deployed in significantly less time.

Entrypoints for Plugins

Plugin authors can now specify entrypoints for their plugins which makes it possible for other plugins to hook into those specific lifecycle events.

Here's a simple plugin definition which utilizes the new entrypoint property:

this.commands = {
  package: {
    // uppermost command is an entrypoint other plugins can use
    type: 'entrypoint',
    commands: {
      build: {
        lifecycleEvents: [
          'prepare',
        ],
      },
      deploy: {
        lifecycleEvents: [
          'upload',
        ],
      },
    },
  },
};

This makes something like the following hook usage possible:

'package:build:prepare': () => BbPromise.bind(this)
  .then(this.validate)
  .then(this.mergeCustomProviderResources),

If you're interested in the motivation of this plugin enhancement then you should definitely read the blog post about extending the core lifecycle events by Frank Schmid who PRed this change.

Note: This change will make it possible to introduce the package and deploy commands in a non-breaking way!

Enhancements & Bug Fixes

This release also fixes some other bugs and introduces several enhancements.

Thanks for reporting bugs and opening issues!

Upcoming Breaking Changes

Here's a list of all the breaking changes that will be introduced in Serverless v1.11.

There are currently no breaking changes planned for v1.11

You'll always get the most recent list of breaking changes in the upcoming milestone.

Contributors

This release contains lots of hard work from our awesome community and wouldn't have been possible without passionate people contributing to Serverless.

Here's a list of all the contributors who've submitted changes for this release:

  • Assaf Lavie
  • Doug Moscrop
  • Frank Schmid
  • James Manners
  • Rowell Belen
  • Ryan S. Brown
  • horike37
  • marcusmolchany

Get Involved

Serverless has a really helpful, vibrant and awesome community. Want to help us develop the best Serverless tooling out there?

Contributing isn't just about code! Chime in on discussion, help with documentation updates or review PRs.

Just filter by our labels such as easy-pick, help-wanted or needs-feedback to find areas where you can help us!

Using "Scope" to Contribute

We use our own Serverless open Source tool called "Scope" to manage the Frameworks development process:

Serverless Framework Status Board

Here you can see all the current discussions, to-be-reviewed PRs and recently closed issues and PRs.

You can use this status board to see all the important things currently happening in the Framework development phase.

Next Steps

We've already started filling in the next milestones. Check out the 1.11 milestone to see what we've planned for the next release.

We hope that you like the new release! Let us know if you have any questions or feedback in our Forum or GitHub Issues.

Serverless Examples

The Serverless Examples Repository is an excellent resource if you want to explore some real world examples and learn more about what Serverless architectures look like.

Subscribe to our newsletter to get the latest product updates, tips, and best practices!

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.