Node.js Café 7.12.2016 presentation by James & Sami / MaaS Global
Life on the bleeding edge is not always easy. In building the Whim service with Serverless, we ended up building a DevOps pipeline, too. Here we’ll show how it works.
3. System Goals
Goals
• Scalable, cloud-based
• Mobile-first customer experience
• Utilizing readymade cloud APIs
• Infrastructure-as-code
• Establish industry standard APIs where they
don’t exist yet
• Open for ecosystem partners
• Create enthusiasm in the wider ecosystem –
enable e.g. Universities and smaller developer
houses around the world
Non-Goals
• Closed architecture or
lock-ins (except AWS)
• Exclusive deals
• Server infrastructure
• Intermediate, all-
encompassing
frameworks
• Something for everybody
4. Loosely coupled Microservice API integrations –
flexible inclusion into MaaS framework
Routing
Traffic Operator
Traffic Operator
Traffic Operator
Transport Operator
Weather
Subscription Payment
Identity
Business Rules
Customer Support
Whim backend
APIGW
Whim Apps
7. What is Serverless?
- Is:
- Open source.
- Not really server-less.
- A framework centralized in managing
AWS Lambda, API Gateway and
CloudFormation.
- Robust, auto-scaling, fast and reliable.
- Extensible in itself with a nice plugin
system as well as having big supports
from the community
- Is not:
- A server.
- Helping you writing the code.
- Yet possible to be run on-premise
Check out at https://serverless.com/
11. Some Resources
• MaaS Transport Service Provider API: http://www.maas-api.org
• Serverless Mocha test plugin: https://github.com/SC5/serverless-mocha-plugin
• Meta Sync plugin: https://github.com/serverless/serverless-meta-sync (superceded in sls 1.3)
• Webpack plugin (fork) for faster cold starts: https://github.com/laurisvan/serverless-webpack-plugin
• Request-promise-lite, smaller version of request-promise to keep Lambda size down: https://github.com/laurisvan/request-
promise-lite
• Serverless v1.x boilerplate https://github.com/SC5/sc5-serverless-v1-boilerplate
• Knex / Objection.js for an easy ORM on Nodejs: http://vincit.github.io/objection.js/