Building a DevOps pipeline
for Serverless by using
Mocha, GitHub and Travis
Sami Pippuri
CTO
James Nguyen
Software Developer
Maas Global
MaaS Global is building the future of mobility
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
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
Tech Stacks
MaaS Core
Lambda (Node.js 4.x, ES6)
Serverless
AWS Components*
RESTAPIs
Apps Backend Integrations
MaaS
Schemas
MaaS-API SBUS
* APIGW, S3, DynamoDB, RDS (psql), Route53, IoT, Cognito, CloudFront, CloudWatch, SNS, Kinesis, ML, SWF, IAM, ACM…
SWF background processing
SNS
REST
Infrastructure – Serverless, cloud-native
Whim Apps
API Gatewayapi.maas.global
MaaS Core
MaaS TSP
Trip
Machine
Identity
Kinesis
events
Data
Storage
RDS
Postgres
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/
Project Deployment
Serverless
autoinstall meta
mocha
Webpack
Base toolstack
Travis CI
PROD (Alpha)
Unit &
integration
testing
Deploy to
stages
(4 of them)
PROD
DEV
TEST
Continuous
Deployment (!)
Test harness
Dep sripts
Local test harness
Detailed workflow
Feature
development *
Code review **
Open pull request
**
Merge onto master
**
Release alpha **
Release production
**
Feature testing *
Field test ***
Smoke tests ***
Dev
Developer’s fork
Test
Master branch
Alpha
Alpha branch
Prod
Prod branch
Tagging candidates
Documenting
releases
Change log
Bug fixes *
*Manual testing ** Automated test with Travis *** Application test
Auto deployment in action!
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/
See
Whim Live
whimapp.com
SAMI PIPPURI
CTO, MaaS Global Ltd
sami.pippuri@maas.global
+358 50 487 6829
JAMES NGUYEN
Developer, MaaS Global Ltd
James.nguyen@maas.global

More Related Content

PDF
Drupal 7 performance and optimization
PPTX
RESTful Web services in Drupal 8
PDF
PAC 2019 virtual Mark Tomlinson
PPTX
Introdcution to Adobe CQ
PPTX
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
PDF
Working in harmony
PPTX
Moving to the Cloud: AWS, Zend, RightScale
PPTX
DotNet MVC and webpack + Babel + react
Drupal 7 performance and optimization
RESTful Web services in Drupal 8
PAC 2019 virtual Mark Tomlinson
Introdcution to Adobe CQ
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
Working in harmony
Moving to the Cloud: AWS, Zend, RightScale
DotNet MVC and webpack + Babel + react

What's hot (20)

PDF
Magento caching
PDF
About Caching
PPTX
Setting up a free open source java e-commerce website
PPTX
Improve your web dev workflow in Visual Studio
ODP
Kickstart Jpa
PPTX
Drupal performance
PPT
Configuring Apache Servers for Better Web Perormance
PDF
Working in Harmony: Manchester - Optimize development and content workflows
PDF
Free Online SharePoint Framework Webinar
PPTX
Decoupled Architecture and WordPress
PDF
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
PDF
Scaling a Web Service
PPTX
Supercharge Application Delivery to Satisfy Users
PDF
Speeding up your WordPress Site - WordCamp Toronto 2015
PPT
High Performance WordPress
PPT
ServerBeach and WordPress BlogWorldExpo 2007
PDF
Adobe AEM for Business Heads
PPTX
JS digest. Decemebr 2017
PDF
Metarefresh
PDF
ActiveMQ Performance Tuning
Magento caching
About Caching
Setting up a free open source java e-commerce website
Improve your web dev workflow in Visual Studio
Kickstart Jpa
Drupal performance
Configuring Apache Servers for Better Web Perormance
Working in Harmony: Manchester - Optimize development and content workflows
Free Online SharePoint Framework Webinar
Decoupled Architecture and WordPress
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
Scaling a Web Service
Supercharge Application Delivery to Satisfy Users
Speeding up your WordPress Site - WordCamp Toronto 2015
High Performance WordPress
ServerBeach and WordPress BlogWorldExpo 2007
Adobe AEM for Business Heads
JS digest. Decemebr 2017
Metarefresh
ActiveMQ Performance Tuning
Ad

Viewers also liked (12)

PDF
Tracking Huge Files with Git LFS
PDF
Scaling Without Expanding: a DevOps Story
PDF
Takeaways From Migrating to Git and Bitbucket Server
PDF
Continuous Delivery in the Cloud with Bitbucket Pipelines
PDF
Verifying Microservice Integrations with Contract Testing
PDF
Popular Git Workflows You Haven't Heard About
PDF
Bitbucket Pipelines: Serverless CI/CD That Will Save Your Life
PDF
Releasing the Monolith On a Daily Basis
PDF
Mock Servers - Fake All the Things!
PDF
Scaling Your First 1000 Containers with Docker
PDF
Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop
PDF
WordPress Café: Making a Future-Media
Tracking Huge Files with Git LFS
Scaling Without Expanding: a DevOps Story
Takeaways From Migrating to Git and Bitbucket Server
Continuous Delivery in the Cloud with Bitbucket Pipelines
Verifying Microservice Integrations with Contract Testing
Popular Git Workflows You Haven't Heard About
Bitbucket Pipelines: Serverless CI/CD That Will Save Your Life
Releasing the Monolith On a Daily Basis
Mock Servers - Fake All the Things!
Scaling Your First 1000 Containers with Docker
Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop
WordPress Café: Making a Future-Media
Ad

Similar to Building a DevOps pipeline for Serverless by using Mocha, GitHub and Travis (20)

PDF
Whim and Serverless DevOps with Mocha, Github and Travis
PDF
Microservices and Serverless for Mega Startups - DevOps IL Meetup
PDF
Čtvrtkon #64 - AWS Serverless - Michal Haták
PPTX
Serverless applications
PDF
Serverless cecilia.cho
PDF
Serverless Empowering people
PDF
Learning Serverless Design Develop and Deploy with Confidence 1st Edition Jas...
PDF
Serverless Node.js
PDF
Servereless Jobs with AWS Lambda
PDF
Serverless On Stage - Serverless URL Shortener
PDF
Building Serverless Microservices with AWS
PDF
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
PDF
The future will be Serverless (FrontConf Munich 2017)
PDF
Dhaval Nagar - ServerlessDays Bengaluru 2023
PDF
Writing and deploying serverless python applications
PDF
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
PDF
Devops - Continuous delivery patterns with serverless stack
PDF
PyConIE 2017 Writing and deploying serverless python applications
PDF
Building APIs the serverless way
PDF
20180111 we bde-bs - serverless url shortener
Whim and Serverless DevOps with Mocha, Github and Travis
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Čtvrtkon #64 - AWS Serverless - Michal Haták
Serverless applications
Serverless cecilia.cho
Serverless Empowering people
Learning Serverless Design Develop and Deploy with Confidence 1st Edition Jas...
Serverless Node.js
Servereless Jobs with AWS Lambda
Serverless On Stage - Serverless URL Shortener
Building Serverless Microservices with AWS
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
The future will be Serverless (FrontConf Munich 2017)
Dhaval Nagar - ServerlessDays Bengaluru 2023
Writing and deploying serverless python applications
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Devops - Continuous delivery patterns with serverless stack
PyConIE 2017 Writing and deploying serverless python applications
Building APIs the serverless way
20180111 we bde-bs - serverless url shortener

More from Exove (20)

PDF
Drupalcamp Finland – Measuring Front-end Energy Consumption
PDF
Data security in the age of GDPR – most common data security problems
PDF
Provisioning infrastructure to AWS using Terraform – Exove
PDF
Advanced custom fields in Wordpress
PDF
Introduction to Robot Framework – Exove
PDF
Jenkins and visual regression – Exove
PDF
Server-side React with Headless CMS – Exove
PDF
WebSockets in Bravo Dashboard – Exove
PDF
Diversity in recruitment
PDF
Saavutettavuus liiketoimintana
PDF
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
PDF
Mitä saavutettavuusdirektiivi pitää sisällään
PDF
Creating Landing Pages for Drupal 8
PDF
GDPR for developers
PDF
Managing Complexity and Privacy Debt with Drupal
PDF
Life with digital services after GDPR
PDF
GDPR - no beginning no end
PDF
Developing truly personalised experiences
PDF
Customer Experience and Personalisation
PDF
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Drupalcamp Finland – Measuring Front-end Energy Consumption
Data security in the age of GDPR – most common data security problems
Provisioning infrastructure to AWS using Terraform – Exove
Advanced custom fields in Wordpress
Introduction to Robot Framework – Exove
Jenkins and visual regression – Exove
Server-side React with Headless CMS – Exove
WebSockets in Bravo Dashboard – Exove
Diversity in recruitment
Saavutettavuus liiketoimintana
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Mitä saavutettavuusdirektiivi pitää sisällään
Creating Landing Pages for Drupal 8
GDPR for developers
Managing Complexity and Privacy Debt with Drupal
Life with digital services after GDPR
GDPR - no beginning no end
Developing truly personalised experiences
Customer Experience and Personalisation
Adventures In Programmatic Branding – How To Design With Algorithms And How T...

Recently uploaded (20)

PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PPTX
Build Your First AI Agent with UiPath.pptx
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
Statistics on Ai - sourced from AIPRM.pdf
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
Five Habits of High-Impact Board Members
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Convolutional neural network based encoder-decoder for efficient real-time ob...
Build Your First AI Agent with UiPath.pptx
A proposed approach for plagiarism detection in Myanmar Unicode text
Custom Battery Pack Design Considerations for Performance and Safety
Final SEM Unit 1 for mit wpu at pune .pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
UiPath Agentic Automation session 1: RPA to Agents
Credit Without Borders: AI and Financial Inclusion in Bangladesh
Basics of Cloud Computing - Cloud Ecosystem
Statistics on Ai - sourced from AIPRM.pdf
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Module 1.ppt Iot fundamentals and Architecture
Enhancing plagiarism detection using data pre-processing and machine learning...
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
Five Habits of High-Impact Board Members
Benefits of Physical activity for teenagers.pptx
Zenith AI: Advanced Artificial Intelligence
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx

Building a DevOps pipeline for Serverless by using Mocha, GitHub and Travis

  • 1. Building a DevOps pipeline for Serverless by using Mocha, GitHub and Travis Sami Pippuri CTO James Nguyen Software Developer Maas Global
  • 2. MaaS Global is building the future of mobility
  • 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
  • 5. Tech Stacks MaaS Core Lambda (Node.js 4.x, ES6) Serverless AWS Components* RESTAPIs Apps Backend Integrations MaaS Schemas MaaS-API SBUS * APIGW, S3, DynamoDB, RDS (psql), Route53, IoT, Cognito, CloudFront, CloudWatch, SNS, Kinesis, ML, SWF, IAM, ACM… SWF background processing SNS REST
  • 6. Infrastructure – Serverless, cloud-native Whim Apps API Gatewayapi.maas.global MaaS Core MaaS TSP Trip Machine Identity Kinesis events Data Storage RDS Postgres
  • 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/
  • 8. Project Deployment Serverless autoinstall meta mocha Webpack Base toolstack Travis CI PROD (Alpha) Unit & integration testing Deploy to stages (4 of them) PROD DEV TEST Continuous Deployment (!) Test harness Dep sripts Local test harness
  • 9. Detailed workflow Feature development * Code review ** Open pull request ** Merge onto master ** Release alpha ** Release production ** Feature testing * Field test *** Smoke tests *** Dev Developer’s fork Test Master branch Alpha Alpha branch Prod Prod branch Tagging candidates Documenting releases Change log Bug fixes * *Manual testing ** Automated test with Travis *** Application test
  • 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/
  • 12. See Whim Live whimapp.com SAMI PIPPURI CTO, MaaS Global Ltd [email protected] +358 50 487 6829 JAMES NGUYEN Developer, MaaS Global Ltd [email protected]

Editor's Notes

  • #3: What if all transportation was converged, and sold as a tailored package with price and service level you can expect?