SlideShare a Scribd company logo
Individual Serverless Development Environments
Copenhagen AWS User Group Meetup
Søren Peter Nielsen & George Niculae, IoT Systems
October 3rd, 2017
Agenda
• Introduction
− What does IoT Systems do?
− Software Focus
− Architecture
− Built on AWS
• Individual Serverless Development Environments
− AWS Services used
− Build process
− The challenge
− Considered aspects
− Solution
• Developer view
• Infrastructure view
− Q&A
• IoT Systems manufactures
automation equipment for
consumer electronics
• Motion control software &
Automation systems
software(orchestrator)
• Our cloud software solution
“SenseQ” was originally
built to support cloud
connected automation
Semiconductor	
Deployment
Vacuum	Pumps
Our Team Takes IoT Security Seriously
• Security By Design
Security is not an after thought
• Defense in Depth
Layered security mechanisms assure
that one security failure does not provide
an attacker access to the full solution
• Detailed Audit Trail
Enables an Auditor to verify that the
application is operated in a secure manner
• Best practice security organization
Making sure nothing falls “through the cracks”
- All necessary Policies, Processes and Procedures are
documented in our Information Management Security System
https://iotsyst.com/security/
Individual Serverless Development Environments
George Niculae – Head of DevOps
• Agenda
− AWS Services used
− Build process
− The challenge
− Considered aspects
− Solution
• Developer view
• Infrastructure view
− Q&A
AWS Services
- CloudFront
- S3
- API Gateway
- Lambda
functions
- DynamoDB
- EC2
- Elasticsearch
Service
- AWS IoT
- AWS Greengrass
Powered by
IoT Systems Dashboard - CI
- Code hosted in GitHub,
private repository
- Travis CI build on commit
- Travis CI deploy dashboard
application in AWS through
serverless framework
Problem - Developers working on multiple
branches at the same time with need to test
integrated, closer to production setup
Problem
Considered aspects
- Development branches could be or could not be compatible with each other
(e.g. different database schemas, different payload of messages)
- CI process is needed to be performed for each development branch
- Transparent configuration of AWS resources for developers (for both setting up /
tearing down development environment)
- Minimum to no specific configuration should be performed by developers to set
up their own AWS based environment
- Reusing AWS account services and keep AWS resources at minimum usage
(reuse where possible) is a goal
Solution
Solution - from developer point of view
- Create feature branch and instruct Travis to build
branch
- Push branch upstream, Travis start building
- Slack notification containing URL to access is
received when build ends
- Subsequent development cycles and tests take place
- Delete git branch from github to tear down allocated resources
Powered by
Solution - from developer point of view
Solution - Splitting CloudFront and S3 buckets
- For each development branch a separate CloudFront distribution is
created (using CloudFormation stack, through Travis)
- For each development branch an S3 bucket named using iot-
app.dashboard.{branch-name} pattern is created
- CloudFront distribution is set up with S3 Origin to proper bucket
Powered by
Solution - Splitting CloudFront and S3 buckets
Powered by
Solution - Splitting API Gateways and Lambdas
- For each development branch a separate API Gateway
suffixed with branch name is created (using CloudFormation
stack, through Travis)
- Each branch has its own set of Lambda functions, suffixed
with branch name (using serverless customName feature)
- API Gateways are set up to forward request to proper Lambda
functions
- CloudFront distribution is set up with Custom Origin to API
Gateway
Powered by
Solution - Splitting API Gateways and Lambdas
Powered by
Solution - Lambdas and Database Integration
- For each development branch a separate set of DynamoDB
tables suffixed with branch name is created (using
CloudFormation stack, through Travis)
- AWS IoT rules are configured with actions to invoke proper
Lamda functions
Powered by
Solution - Lambdas and Database Integration
Solution - Multiple Inventory Services
- Inventory services share the same EC2 instance running
Docker service
- Travis builds a Docker image is created and properly labeled
for each branch
- Travis deploys Docker container and expose different port on
host
- Each branch gets its own API Gateway suffixed with branch
name created
Powered by
Solution - Multiple Inventory Services
Powered by
Solution - Dashboard Overview
Powered by
Solution - Inventory Service Overview
Powered by
Solution - Tearing down resources
- GitHub repository is set up
with webhook to an API
Gateway
- API Gateway / Lambda
function receives event
from GitHub and tears
down all allocated
resources
(programmatically and by
deleting proper
CloudFormation stack)
Experiences
• Benefits
− Releasing / merging in master branch each week only features that were
tested close to production
• ability to put on hold non finalized features until development ready
− It was not a huge effort to develop this support
− We now have several actively developed branches at the same time;
− Easily adopted by developers
− Each environment is easy to debug,
• separated CloudWatch log streams for each environment / lambda function
• CloudFront distribution taking long time to set up (about 20 minutes)
− We increased default Travis CI time-out, Travis CI is configured to wait for
CloudFront distribution to be set up (only for the first time environment is built)
• We are continuously working to improve the implementation:
− Looking into serverless-aws-alias project for using lambda aliases as an
alternative to create new lambda functions
− We have a mix of serverless deployment (through CloudFormation stacks) and
scripting, looking into refine that – where it makes sense
Q&A
Powered by
Thanks!

More Related Content

PPTX
Ibm cloud nativenetflixossfinal
PPTX
OpenStack DevOps Workflows with TOSCA
PDF
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
PDF
Container orchestration k8s azure kubernetes services
PPTX
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
PDF
Spinnaker workshop
PDF
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
PDF
Making Sense of Serverless Computing
Ibm cloud nativenetflixossfinal
OpenStack DevOps Workflows with TOSCA
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Container orchestration k8s azure kubernetes services
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
Spinnaker workshop
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
Making Sense of Serverless Computing

What's hot (20)

PPT
Sebastien goasguen cloud stack the next year
PPTX
How kubernetes operators can rescue dev secops in midst of a pandemic updated
PDF
NetflixOSS and ZeroToDocker Talk
PDF
Containers & Cloud Native Ops Cloud Foundry Approach
PPTX
DevOps and AWS - Code PaLOUsa 2017
PPTX
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
PPTX
Serverless Pune meetup 3
PDF
Nginx conference 2015
PPTX
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
PPTX
Azure Update, July 2016
PDF
Accelerating DevOps Pipelines with AWS
PPTX
Netflix Cloud Architecture and Open Source
PDF
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
PDF
Rohit yadav cloud stack internals
PPTX
Azure PaaS (WebApp & SQL Database) workshop solution
PDF
DevOps Toolbox: Infrastructure as code
PPTX
Structured Container Delivery by Oscar Renalias, Accenture
PDF
Best practices deploying Sitecore to Microsoft Azure
PDF
Connect + Docker + AWS = Bitbucket Pipelines
PPTX
Going Serverless with Kubeless In Google Container Engine (GKE)
Sebastien goasguen cloud stack the next year
How kubernetes operators can rescue dev secops in midst of a pandemic updated
NetflixOSS and ZeroToDocker Talk
Containers & Cloud Native Ops Cloud Foundry Approach
DevOps and AWS - Code PaLOUsa 2017
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
Serverless Pune meetup 3
Nginx conference 2015
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Azure Update, July 2016
Accelerating DevOps Pipelines with AWS
Netflix Cloud Architecture and Open Source
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Rohit yadav cloud stack internals
Azure PaaS (WebApp & SQL Database) workshop solution
DevOps Toolbox: Infrastructure as code
Structured Container Delivery by Oscar Renalias, Accenture
Best practices deploying Sitecore to Microsoft Azure
Connect + Docker + AWS = Bitbucket Pipelines
Going Serverless with Kubeless In Google Container Engine (GKE)
Ad

Similar to Individual Serverless Development Environments for AWS (20)

PDF
Building CI/CD Pipelines for Serverless Applications
PPTX
AWS Serverless concepts and solutions
PDF
Serverless Computing, AWS Way: SourceFuse Technologies
PDF
Serverless Computing, AWS Way by SourceFuse Technologies
PDF
Serverless presentation
PDF
Ben Kehoe - Serverless Architecture for the Internet of Things
PPTX
Serverless at Lifestage
PDF
Serverless use cases with AWS Lambda - More Serverless Event
PDF
Writing and deploying serverless python applications
PDF
Microservices and Serverless for Mega Startups - DevOps IL Meetup
PDF
How AWS builds Serverless services using Serverless
PDF
AWSomeDay Zurich 2018 - How to go serverless
PDF
Serverless Days Ahmedabad - Dhaval Nagar.pptx.pdf
PPTX
Serverless Generative AI on AWS, AWS User Groups of Florida
PDF
Flying Server-less on the Cloud with AWS Lambda
PDF
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
PDF
PyConIT 2018 Writing and deploying serverless python applications
PDF
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
PDF
Serverless Frameworks.pdf
PPTX
Serverless - DevOps Lessons Learned From Production
Building CI/CD Pipelines for Serverless Applications
AWS Serverless concepts and solutions
Serverless Computing, AWS Way: SourceFuse Technologies
Serverless Computing, AWS Way by SourceFuse Technologies
Serverless presentation
Ben Kehoe - Serverless Architecture for the Internet of Things
Serverless at Lifestage
Serverless use cases with AWS Lambda - More Serverless Event
Writing and deploying serverless python applications
Microservices and Serverless for Mega Startups - DevOps IL Meetup
How AWS builds Serverless services using Serverless
AWSomeDay Zurich 2018 - How to go serverless
Serverless Days Ahmedabad - Dhaval Nagar.pptx.pdf
Serverless Generative AI on AWS, AWS User Groups of Florida
Flying Server-less on the Cloud with AWS Lambda
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
PyConIT 2018 Writing and deploying serverless python applications
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
Serverless Frameworks.pdf
Serverless - DevOps Lessons Learned From Production
Ad

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
medical staffing services at VALiNTRY
PPTX
history of c programming in notes for students .pptx
PPT
JAVA ppt tutorial basics to learn java programming
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
ai tools demonstartion for schools and inter college
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Complete React Javascript Course Syllabus.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
System and Network Administraation Chapter 3
PPTX
Essential Infomation Tech presentation.pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PTS Company Brochure 2025 (1).pdf.......
medical staffing services at VALiNTRY
history of c programming in notes for students .pptx
JAVA ppt tutorial basics to learn java programming
How to Choose the Right IT Partner for Your Business in Malaysia
Materi_Pemrograman_Komputer-Looping.pptx
Odoo POS Development Services by CandidRoot Solutions
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
ai tools demonstartion for schools and inter college
Operating system designcfffgfgggggggvggggggggg
How to Migrate SBCGlobal Email to Yahoo Easily
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Complete React Javascript Course Syllabus.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
How Creative Agencies Leverage Project Management Software.pdf
System and Network Administraation Chapter 3
Essential Infomation Tech presentation.pptx

Individual Serverless Development Environments for AWS

  • 1. Individual Serverless Development Environments Copenhagen AWS User Group Meetup Søren Peter Nielsen & George Niculae, IoT Systems October 3rd, 2017
  • 2. Agenda • Introduction − What does IoT Systems do? − Software Focus − Architecture − Built on AWS • Individual Serverless Development Environments − AWS Services used − Build process − The challenge − Considered aspects − Solution • Developer view • Infrastructure view − Q&A
  • 3. • IoT Systems manufactures automation equipment for consumer electronics • Motion control software & Automation systems software(orchestrator) • Our cloud software solution “SenseQ” was originally built to support cloud connected automation
  • 5. Our Team Takes IoT Security Seriously • Security By Design Security is not an after thought • Defense in Depth Layered security mechanisms assure that one security failure does not provide an attacker access to the full solution • Detailed Audit Trail Enables an Auditor to verify that the application is operated in a secure manner • Best practice security organization Making sure nothing falls “through the cracks” - All necessary Policies, Processes and Procedures are documented in our Information Management Security System https://iotsyst.com/security/
  • 6. Individual Serverless Development Environments George Niculae – Head of DevOps • Agenda − AWS Services used − Build process − The challenge − Considered aspects − Solution • Developer view • Infrastructure view − Q&A
  • 7. AWS Services - CloudFront - S3 - API Gateway - Lambda functions - DynamoDB - EC2 - Elasticsearch Service - AWS IoT - AWS Greengrass
  • 8. Powered by IoT Systems Dashboard - CI - Code hosted in GitHub, private repository - Travis CI build on commit - Travis CI deploy dashboard application in AWS through serverless framework
  • 9. Problem - Developers working on multiple branches at the same time with need to test integrated, closer to production setup
  • 11. Considered aspects - Development branches could be or could not be compatible with each other (e.g. different database schemas, different payload of messages) - CI process is needed to be performed for each development branch - Transparent configuration of AWS resources for developers (for both setting up / tearing down development environment) - Minimum to no specific configuration should be performed by developers to set up their own AWS based environment - Reusing AWS account services and keep AWS resources at minimum usage (reuse where possible) is a goal
  • 13. Solution - from developer point of view - Create feature branch and instruct Travis to build branch - Push branch upstream, Travis start building - Slack notification containing URL to access is received when build ends - Subsequent development cycles and tests take place - Delete git branch from github to tear down allocated resources
  • 14. Powered by Solution - from developer point of view
  • 15. Solution - Splitting CloudFront and S3 buckets - For each development branch a separate CloudFront distribution is created (using CloudFormation stack, through Travis) - For each development branch an S3 bucket named using iot- app.dashboard.{branch-name} pattern is created - CloudFront distribution is set up with S3 Origin to proper bucket
  • 16. Powered by Solution - Splitting CloudFront and S3 buckets
  • 17. Powered by Solution - Splitting API Gateways and Lambdas - For each development branch a separate API Gateway suffixed with branch name is created (using CloudFormation stack, through Travis) - Each branch has its own set of Lambda functions, suffixed with branch name (using serverless customName feature) - API Gateways are set up to forward request to proper Lambda functions - CloudFront distribution is set up with Custom Origin to API Gateway
  • 18. Powered by Solution - Splitting API Gateways and Lambdas
  • 19. Powered by Solution - Lambdas and Database Integration - For each development branch a separate set of DynamoDB tables suffixed with branch name is created (using CloudFormation stack, through Travis) - AWS IoT rules are configured with actions to invoke proper Lamda functions
  • 20. Powered by Solution - Lambdas and Database Integration
  • 21. Solution - Multiple Inventory Services - Inventory services share the same EC2 instance running Docker service - Travis builds a Docker image is created and properly labeled for each branch - Travis deploys Docker container and expose different port on host - Each branch gets its own API Gateway suffixed with branch name created
  • 22. Powered by Solution - Multiple Inventory Services
  • 23. Powered by Solution - Dashboard Overview
  • 24. Powered by Solution - Inventory Service Overview
  • 25. Powered by Solution - Tearing down resources - GitHub repository is set up with webhook to an API Gateway - API Gateway / Lambda function receives event from GitHub and tears down all allocated resources (programmatically and by deleting proper CloudFormation stack)
  • 26. Experiences • Benefits − Releasing / merging in master branch each week only features that were tested close to production • ability to put on hold non finalized features until development ready − It was not a huge effort to develop this support − We now have several actively developed branches at the same time; − Easily adopted by developers − Each environment is easy to debug, • separated CloudWatch log streams for each environment / lambda function • CloudFront distribution taking long time to set up (about 20 minutes) − We increased default Travis CI time-out, Travis CI is configured to wait for CloudFront distribution to be set up (only for the first time environment is built) • We are continuously working to improve the implementation: − Looking into serverless-aws-alias project for using lambda aliases as an alternative to create new lambda functions − We have a mix of serverless deployment (through CloudFormation stacks) and scripting, looking into refine that – where it makes sense
  • 27. Q&A