SlideShare a Scribd company logo
Eugene Istrati, Technology Partner
Build Web Applications
using Microservices on Node.js and
Serverless AWS
eugene@mitocgroup.com
www.mitocgroup.com
http://www.meetup.com/nodejs/events/226713968
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Eugene Istrati, Partner @ Mitoc Group
Microservices Architecture
for Digital Platforms with AWS Lambda,
Amazon CloudFront, and Amazon DynamoDB
eugene@mitocgroup.com
October 2015
ARC201
Digital Platform Challenges
Note: Credits and thanks are listed at the end of the presentation
…
…
…
Average cost of downtime
• $500K - $1M / hour (IDC, Dec 2014)
• $140K - $540K / hour (Garner, July 2014)
• $474K / hour (Ponemon Inst., Dec 2013)
Most commonly reported
consequences
• Damage to reputation (38%)
• Increase in customer churn (37%)
• Damage to credit rating (28%)
• Increase to insurance premiums (26%)
Digital Platform Challenges
27%
60%
13%
Outage
Degradation
No impact
0% 20% 40% 60% 80%
Impact of DoS/DDoS Attack
Note: Credits and thanks are listed at the end of the presentation
Digital Enterprise End-to-end Platform on AWS
About
Eugene Istrati
• eugene@mitocgroup.com
• Partner @ Mitoc Group Inc
• 15+ years in IT; 7+ years on AWS
• AWS Certified Solutions Architect
(re-certified at re:Invent 2015)
• Companies: Hearst, Amazon,
GrubHub, Tenaris (Europe)
Mitoc Group Inc
• www.mitocgroup.com
• Web Development Studio
• AWS Technology Partner
• Focusing on enterprise
applications and platforms
• Working with customers from
media and entertainment industry
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
Demo: todo.deep.mg
• Go to the GitHub repository
• github.com/MitocGroup/deep
-microservices-todo-app
• Follow the steps from Getting
Started to build and deploy
• todo.deep.com
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
• Requires DevOps with experience
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
• Requires DevOps with experience
• Flexible choice of technology
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
• Requires DevOps with experience
• Flexible choice of technology
• Requires devs with rich skill set
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
• Requires DevOps with experience
• Flexible choice of technology
• Requires devs with rich skill set
• Cost-effective
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
• Requires DevOps with experience
• Flexible choice of technology
• Requires devs with rich skill set
• Cost-effective
• Over-provisioning and over-paying
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
• Requires DevOps with experience
• Flexible choice of technology
• Requires devs with rich skill set
• Cost-effective
• Over-provisioning and over-paying
AWS re:Invent 2014
Note: Credits and thanks are listed at the end of the presentation
AWS Summit NY 2015
Note: Credits and thanks are listed at the end of the presentation
Web Apps Hosting … Reinvented
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity
DB Tier
SQS DynamoDB
LambdaCloudFront
logs
API Gateway
www.example.com
static.example.com
App Tier
AWS Region
RDS Aurora
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
What does “serverless” mean?
Not involving a server; composed only of clients.
http://www.wordsense.eu/serverless
Serverless doesn’t mean servers are no longer
involved. It simply means that developers no
longer have to think "that much" about them.
Computing resources get used as services
without having to manage around physical
capacities or limits.
https://www.quora.com/What-is-Serverless-Computing
Serverless vs. Reference
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity
DB Tier
SQS DynamoDB
LambdaCloudFront
logs
API Gateway
www.example.com
static.example.com
App Tier
AWS Region
RDS Aurora
vs
Serverless Architecture – Web Tier
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity
CloudFront
logs
www.example.com
static.example.com
Availability Zone A Availability Zone B
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
Serverless Architecture – Web Tier
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity
CloudFront
logs
www.example.com
static.example.com
• Static Assets
• Same as in reference architecture
• css, js, docs, images, videos + html
• Dynamic Functionality
• Use JS framework (e.g. Angular)
• SEO-friendly (Custom Error
Response + HTML5 History API)
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
Serverless Architecture – Web Tier
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity
CloudFront
logs
www.example.com
static.example.com
• Static Assets
• Same as in reference architecture
• css, js, docs, images, videos + html
• Dynamic Functionality
• Use JS framework (e.g. Angular)
• SEO-friendly (Custom Error
Response + HTML5 History API)
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
Serverless Architecture – Web Tier
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity
CloudFront
logs
www.example.com
static.example.com
• Static Assets
• Same as in reference architecture
• css, js, docs, images, videos + html
• Dynamic Functionality
• Use JS framework (e.g. Angular)
• SEO-friendly (Custom Error
Response + HTML5 History API)
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
Serverless Architecture – App Tier
Cognito
Identity
SQS
Lambda
API Gateway
App Tier
Availability Zone A Availability Zone B
Auto Scaling Group
app
servers
app
servers
Cognito
Identity
SQS
Lambda
API Gateway
App Tier
• Accelerated Backend
• Write node.js functions and load
into Lambda
• Power up Lambda with RESTful
endpoints on API Gateway
• Cache, throttle, meter, version,
etc.
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
Serverless Architecture – App Tier
• Accelerated Backend
• Write node.js functions and load
into Lambda
• Power up Lambda with RESTful
endpoints on API Gateway
• Cache, throttle, meter, version,
etc.
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
Serverless Architecture – App Tier
Cognito
Identity
SQS
Lambda
API Gateway
App Tier
Availability Zone A Availability Zone B
Serverless Architecture – DB Tier
DB Tier
SQS DynamoDB
RDS Aurora
DB Tier
SQS DynamoDB
RDS Aurora
Serverless Architecture – DB Tier
• First choice – DynamoDB + SQS
• Schema-free
• Scale only reads and writes
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
• Next choice – RDS Aurora
• Relational
• MySQL-like approach, but 5x better
Serverless Architecture – DB Tier
• First choice – DynamoDB + SQS
• Schema-free
• Scale only reads and writes
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
• Next choice – RDS Aurora
• Relational
• MySQL-like approach, but 5x better
DB Tier
SQS DynamoDB
RDS Aurora
Serverless Architecture – DB Tier
• First choice – DynamoDB + SQS
• Schema-free
• Scale only reads and writes
• Completely Serverless
• Pre-scaled
• Low-cost
• Low-maintenance
• Next choice – RDS Aurora
• Relational
• MySQL-like approach, but 5x better
DB Tier
SQS DynamoDB
RDS Aurora
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
Demo: Setup Serverless AWS
1. Security
- Create IAM roles
2. Front-end
- Create S3 bucket
- Enable static website hosting
- Add bucket policy
- Create CloudFront distribution
3. Back-end
- Create Lambda function
- Upload code into Lambda
- Create API Gateway endpoint
4. Database
- Create DynamoDB table
5. Code
- Load code into S3 bucket
- View via CloudFront (S3 as backup)
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity DB Tier
SQS DynamoDB
LambdaCloudFront
logs
API Gateway
www.example.com
static.example.com
App Tier
AWS Region
RDS Aurora
Lessons Learned
• Serverless approach is challengingly awesome
• Frontend is restricted to JS (and JS Frameworks)
• Backend is restricted to Python, Java or JS (for now)
• SOA and APIs are required by design
Lessons Learned
• Serverless approach is challengingly awesome
• Frontend is restricted to JS (and JS Frameworks)
• Backend is restricted to Python, Java or JS (for now)
• SOA and APIs are required by design
• Services must be as small as possible
• AWS Lambda constrains
• Browser limitations (on mobile devices)
Lessons Learned
• Serverless approach is challengingly awesome
• Frontend is restricted to JS (and JS Frameworks)
• Backend is restricted to Python, Java or JS (for now)
• SOA and APIs are required by design
• Services must be as small as possible => microservices
• AWS Lambda constrains
• Browser limitations (on mobile devices)
Let’s Recap
Recap
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Reference architecture for web
application hosting on AWS
Recap
• Reference architecture for web
application hosting on AWS
• Transformed to serverless
architecture on AWS
S3 bucket
CloudFront
distribution
Web Tier
Cognito
Identity
DB Tier
SQS DynamoDB
LambdaCloudFront
logs
API Gateway
www.example.com
static.example.com
App Tier
AWS Region
RDS Aurora
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
What does “microservices” mean?
In computing, microservices is a software
architecture style in which complex applications
are composed of small, independent processes
communicating with each other using language-
agnostic APIs. These services are small, highly
decoupled and focus on doing a small task,
facilitating a modular approach to system-
building.
https://en.wikipedia.org/wiki/Microservices
Microservices Architecture
Keynote GOTO Conference: Microservices by Martin Fowler -
https://www.youtube.com/watch?v=wgdBVIX9ifA
State of the Art in Microservices -
https://www.youtube.com/watch?v=nMTaS07i3jk
Sam Newman at
ThoughtWorks
London 2015:
Deploying and
Operating
Microservices -
https://www.youtube.com/watch?v=OTSlg7_y3bA
Speeding Up Digital Platforms on AWS
Deploy in weeks
Live for years
Deploy in minutes
Live for weeks
Deploy in seconds
Live for minutes/hours
Deploy in milliseconds
Live for seconds
On-Premises Amazon EC2 Amazon ECS AWS Lambda
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
Powered by AWS Lambda
AWS Lambda in Action
• AWS Lambda scaled with no effort for us
• 70M+ invocations / day
• 10K+ concurrent invocations / second
Web Apps Hosting / Reference Architecture
Availability Zone A Availability Zone B
Auto Scaling Group
Auto Scaling Group
www.example.com
static.example.com
web
servers
web
servers
app
servers
app
servers
• Scales in minutes
• Huge challenge for breaking
news, viral content, or attacks
• Reduced operational complexity
• Requires DevOps with experience
• Flexible choice of technology
• Requires devs with rich skill set
• Cost-effective
• Over-provisioning and over-paying
AWS Lambda in Action
• AWS Lambda scaled with no effort for us
• 70M+ invocations / day
• 10K+ concurrent invocations / second
• AWS Lambda made it really easy for us
• Comes pre-scaled and charges in 100ms blocks
• No under- or over-provisioning (by design)
• Developers love it (especially frontend JS folks)
• DevOps still in play mode (learning to build ops code)
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
Tips and Tricks
• AWS Lambda is continuously evolving
• Set up alarms for all 4 Lambda metrics in Amazon CloudWatch
• Avoid S3 throttling by integrating S3 => SNS => Lambda
• Beware of potential infinite loops
Tips and Tricks
• AWS Lambda is continuously evolving
• Set up alarms for all 4 Lambda metrics in Amazon CloudWatch
• Avoid S3 throttling by integrating S3 => SNS => Lambda
• Beware of potential infinite loops
• Microservices are game changers
• The shorter TTL, the more secure it becomes
• First, build a service or a feature
• Next, break it down into microservices
Tips and Tricks – From Monolithic Approach
applicationsdevelopers
Build Test Release
development cycle
Tips and Tricks – To Microservices Approach
applicationsdevelopers
Build Test Release
development cycle
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Build Test Release
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
Demo: todo.deep.mg
• Go to the GitHub repository
• github.com/MitocGroup/deep
-microservices-todo-app
• Follow the steps from Getting
Started to build and deploy
• todo.deep.com
Let’s Recap
Recap
• Reference architecture for web
application hosting on AWS
• Transformed to serverless
architecture on AWS
• Microservices Architecture
Powered by AWS Lambda
Recap
• Reference architecture for web
application hosting on AWS
• Transformed to serverless
architecture on AWS
• Microservices Architecture
Powered by AWS Lambda
• Tips and tricks
applicationsdevelopers development cycle
Agenda
• Web Apps Hosting on AWS
• Reference Architecture
• Serverless Architecture
• Demo: Setup Serverless AWS
• Microservices Architecture
• Powered by AWS Lambda
• Tips and Tricks
• Demo: todo.deep.mg
• Q&A + Next Steps
Q&A + Next Steps
github.com/MitocGroup medium.com/@MitocGroup
beta@deep.mg
www.deep.mg
http://www.meetup.com/nodejs/events/226713968
Thanks:
Matt Walters from Nodejs NYC Meetup
Hosting Team from Shutterstock
Credits and Thanks
• Slide 3: Digital Platforms Challenges
• http://www.buzzfeed.com/daozers/what-its-like-to-work-on-buzzfeeds-tech-team-during-record-t#.axR6WG9Yr
• http://www.dailydot.com/crime/new-york-magazine-ddos-bill-cosby-cover/
• http://www.cio.in/topstory/flipkart%E2%80%99s-cto-explains-the-xiaome-launch-outage
• Slide 4: Digital Platforms Challenges
• http://www.slideshare.net/Radware/radware-cmg2014-tammyevertsslowtimevsdowntime
• http://www.statuscast.com/application-downtime-according-to-idc-gartner-and-others
• https://press.kaspersky.com/files/2014/11/B2B-International-2014-Survey-DDoS-Summary-Report.pdf
• Slide 19: AWS re:Invent 2014
• https://venturebeat.com/wp-content/uploads/2014/11/aws-reinvent-lambda.png
• Slide 20: AWS Summit NY 2015
• https://d0.awsstatic.com/events/aws-hosted-events/2015/AWS-Global-Summit-Series/new-york/press-room/introducing-amazon-api-
gateway.jpg
• Slide 46: Microservices Architecture
• https://www.youtube.com/watch?v=nMTaS07i3jk - State of the Art in Microservices by Adrian Cockcroft
• https://www.youtube.com/watch?v=wgdBVIX9ifA - Microservices by Martin Fowler
• https://www.youtube.com/watch?v=OTSlg7_y3bA - Deploying and Operating Microservices by Sam Newman

More Related Content

What's hot (20)

PDF
AWS Summit Seoul 2023 | AWS로 구축한 피플펀드의 신용평가 MLOps 플랫폼 개발 여정
Amazon Web Services Korea
 
PDF
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Web Services Korea
 
PDF
개인화 추천 및 시계열 예측을 위한 신규 AI 서비스 살펴보기 - 남궁영환 AI/ML 스페셜리스트 솔루션즈 아키텍트 :: AWS Inno...
Amazon Web Services Korea
 
PDF
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWS
Amazon Web Services Korea
 
PDF
Keeping Movies Running Amid Thunderstorms!
Sid Anand
 
PDF
API Maturity Model (Webcast with Accenture)
Apigee | Google Cloud
 
PDF
Whitepaper Robotic Process Automation
Sandeep Maurya 8800719707
 
PDF
apidays New York 2022 - From API Catalogs to API Marketplaces into the Metave...
apidays
 
PDF
AWS Summit Seoul 2023 | AWS의 관리형 VDI 서비스! 알고 계셨나요?
Amazon Web Services Korea
 
PPTX
RPA
ssuserbce5be
 
PDF
Modern Enterprise 여정의 핵심 – SAP on AWS 마이그레이션-장현, AWS SAP Architect / 강병수, AWS...
Amazon Web Services Korea
 
PDF
AWS Single Sign-On (SSO) 서비스 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon Web Services Korea
 
PPTX
Serverless CQRS in Azure!
BizTalk360
 
PPTX
AWS VS AZURE VS GCP.pptx
Raneesh Ramesan
 
PDF
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
Amazon Web Services Korea
 
PDF
AWS Summit Seoul 2023 | 클라우드 환경에서 두 마리 토끼잡기 : 비즈니스 서비스 품질 향상 & 모니터링 비용 최적화
Amazon Web Services Korea
 
PPTX
How to design RPA performance metrics
ARJUN S MEDA
 
PDF
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례
Amazon Web Services Korea
 
PDF
[금융사를 위한 AWS Generative AI Day 2023] 7_다양한 AI 워크로드를 위한 최적의 ...
AWS Korea 금융산업팀
 
PDF
RPA (ROBOTIC PROCESS AUTOMATION)
ssuser9a50211
 
AWS Summit Seoul 2023 | AWS로 구축한 피플펀드의 신용평가 MLOps 플랫폼 개발 여정
Amazon Web Services Korea
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Web Services Korea
 
개인화 추천 및 시계열 예측을 위한 신규 AI 서비스 살펴보기 - 남궁영환 AI/ML 스페셜리스트 솔루션즈 아키텍트 :: AWS Inno...
Amazon Web Services Korea
 
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWS
Amazon Web Services Korea
 
Keeping Movies Running Amid Thunderstorms!
Sid Anand
 
API Maturity Model (Webcast with Accenture)
Apigee | Google Cloud
 
Whitepaper Robotic Process Automation
Sandeep Maurya 8800719707
 
apidays New York 2022 - From API Catalogs to API Marketplaces into the Metave...
apidays
 
AWS Summit Seoul 2023 | AWS의 관리형 VDI 서비스! 알고 계셨나요?
Amazon Web Services Korea
 
Modern Enterprise 여정의 핵심 – SAP on AWS 마이그레이션-장현, AWS SAP Architect / 강병수, AWS...
Amazon Web Services Korea
 
AWS Single Sign-On (SSO) 서비스 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon Web Services Korea
 
Serverless CQRS in Azure!
BizTalk360
 
AWS VS AZURE VS GCP.pptx
Raneesh Ramesan
 
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
Amazon Web Services Korea
 
AWS Summit Seoul 2023 | 클라우드 환경에서 두 마리 토끼잡기 : 비즈니스 서비스 품질 향상 & 모니터링 비용 최적화
Amazon Web Services Korea
 
How to design RPA performance metrics
ARJUN S MEDA
 
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례
Amazon Web Services Korea
 
[금융사를 위한 AWS Generative AI Day 2023] 7_다양한 AI 워크로드를 위한 최적의 ...
AWS Korea 금융산업팀
 
RPA (ROBOTIC PROCESS AUTOMATION)
ssuser9a50211
 

Viewers also liked (20)

PPTX
Serverless Microservices - Real life story of a Web App that uses AngularJS, ...
Mitoc Group
 
PDF
Anatomy of a Modern Node.js Application Architecture
AppDynamics
 
PPTX
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Mitoc Group
 
PDF
Webconf nodejs-production-architecture
Ben Lin
 
PPTX
An Unexpected Solution to Microservices UI Composition
Dr. Arif Wider
 
PDF
amazon-cognito-auth-in-minutes
Vladimir Budilov
 
PDF
MicroService Architecture
Fred George
 
PPTX
Microservices Architecture for Web Applications using Amazon AWS Cloud
Mitoc Group
 
PPTX
Microservices Architecture for Web Applications using AWS Lambda and more
Mitoc Group
 
PPTX
Amazon Web Services for Application Hosting | SugarCon 2011
SugarCRM
 
PDF
AngularJS advanced project management
Corley S.r.l.
 
PDF
Keymetrics pm2
Alexandre Strzelewicz
 
PDF
Personagraph introduction 11252014
Personagraph
 
PPTX
RESTful Web API
Faramarz Salehpour
 
PDF
Ember,js: Hipster Hamster Framework
Billy Shih
 
PDF
Build an AngularJS, Java, MongoDB Web App in an hour
Trisha Gee
 
PDF
Getting Started with the Node.js LoopBack APi Framework
Jimmy Guerrero
 
PPT
Aws Lambda Cart Microservice Server Less
Dhanu Gupta
 
PPTX
Recording and media manipulation of WebRTC streams
Luis Lopez
 
ODP
Node.js architecture (EN)
Timur Shemsedinov
 
Serverless Microservices - Real life story of a Web App that uses AngularJS, ...
Mitoc Group
 
Anatomy of a Modern Node.js Application Architecture
AppDynamics
 
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Mitoc Group
 
Webconf nodejs-production-architecture
Ben Lin
 
An Unexpected Solution to Microservices UI Composition
Dr. Arif Wider
 
amazon-cognito-auth-in-minutes
Vladimir Budilov
 
MicroService Architecture
Fred George
 
Microservices Architecture for Web Applications using Amazon AWS Cloud
Mitoc Group
 
Microservices Architecture for Web Applications using AWS Lambda and more
Mitoc Group
 
Amazon Web Services for Application Hosting | SugarCon 2011
SugarCRM
 
AngularJS advanced project management
Corley S.r.l.
 
Keymetrics pm2
Alexandre Strzelewicz
 
Personagraph introduction 11252014
Personagraph
 
RESTful Web API
Faramarz Salehpour
 
Ember,js: Hipster Hamster Framework
Billy Shih
 
Build an AngularJS, Java, MongoDB Web App in an hour
Trisha Gee
 
Getting Started with the Node.js LoopBack APi Framework
Jimmy Guerrero
 
Aws Lambda Cart Microservice Server Less
Dhanu Gupta
 
Recording and media manipulation of WebRTC streams
Luis Lopez
 
Node.js architecture (EN)
Timur Shemsedinov
 
Ad

Similar to Build Web Applications using Microservices on Node.js and Serverless AWS (20)

PPTX
Microservices Architecture for Web Applications using Serverless Computing wi...
Mitoc Group
 
PPTX
Microservices Architecture for Digital Platforms using Serverless AWS
Mitoc Group
 
PPTX
Microservices Architecture for MEAN Applications using Serverless AWS
Mitoc Group
 
PPTX
ARC201 Microservices Architecture @ AWS re:Invent 2015
Mitoc Group
 
PPTX
Building Scalable Web Applications using Microservices Architecture and Serve...
Mitoc Group
 
PPTX
Serverless Microservices - Real life story of a Web App that uses AWS Lambda
Mitoc Group
 
PPTX
Microservices Architecture for Content Management Systems using AWS Lambda an...
Mitoc Group
 
PPTX
Microservices Architecture for Content Management Systems using AWS Lambda an...
Mitoc Group
 
PDF
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Boaz Ziniman
 
PPTX
How Serverless Computing Enables Microservices and Micropayment
Mitoc Group
 
PPTX
How Serverless Computing Enables Microservices and Micropayment
Mitoc Group
 
PPTX
Serverless applications
mbaric
 
PDF
Microservices and serverless for MegaStartups - DLD TLV 2017
Boaz Ziniman
 
PDF
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Boaz Ziniman
 
PPTX
What is Serverless Computing?
AIMDek Technologies
 
PDF
Serverless Applications on AWS
Dean Bryen
 
PDF
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
NodejsFoundation
 
PDF
Build an app on aws for your first 10 million users (2)
AWS Vietnam Community
 
PPT
Fowa Miami 09 Cloud Computing Workshop
Mark Masterson
 
PDF
Wildrydes Serverless Workshop Tel Aviv
Boaz Ziniman
 
Microservices Architecture for Web Applications using Serverless Computing wi...
Mitoc Group
 
Microservices Architecture for Digital Platforms using Serverless AWS
Mitoc Group
 
Microservices Architecture for MEAN Applications using Serverless AWS
Mitoc Group
 
ARC201 Microservices Architecture @ AWS re:Invent 2015
Mitoc Group
 
Building Scalable Web Applications using Microservices Architecture and Serve...
Mitoc Group
 
Serverless Microservices - Real life story of a Web App that uses AWS Lambda
Mitoc Group
 
Microservices Architecture for Content Management Systems using AWS Lambda an...
Mitoc Group
 
Microservices Architecture for Content Management Systems using AWS Lambda an...
Mitoc Group
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Boaz Ziniman
 
How Serverless Computing Enables Microservices and Micropayment
Mitoc Group
 
How Serverless Computing Enables Microservices and Micropayment
Mitoc Group
 
Serverless applications
mbaric
 
Microservices and serverless for MegaStartups - DLD TLV 2017
Boaz Ziniman
 
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Boaz Ziniman
 
What is Serverless Computing?
AIMDek Technologies
 
Serverless Applications on AWS
Dean Bryen
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
NodejsFoundation
 
Build an app on aws for your first 10 million users (2)
AWS Vietnam Community
 
Fowa Miami 09 Cloud Computing Workshop
Mark Masterson
 
Wildrydes Serverless Workshop Tel Aviv
Boaz Ziniman
 
Ad

Recently uploaded (20)

PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
PPTX
How Cloud Computing is Reinventing Financial Services
Isla Pandora
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PPTX
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
How Cloud Computing is Reinventing Financial Services
Isla Pandora
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
Import Data Form Excel to Tally Services
Tally xperts
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 

Build Web Applications using Microservices on Node.js and Serverless AWS

  • 1. Eugene Istrati, Technology Partner Build Web Applications using Microservices on Node.js and Serverless AWS [email protected] www.mitocgroup.com http://www.meetup.com/nodejs/events/226713968
  • 2. © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Eugene Istrati, Partner @ Mitoc Group Microservices Architecture for Digital Platforms with AWS Lambda, Amazon CloudFront, and Amazon DynamoDB [email protected] October 2015 ARC201
  • 3. Digital Platform Challenges Note: Credits and thanks are listed at the end of the presentation … … …
  • 4. Average cost of downtime • $500K - $1M / hour (IDC, Dec 2014) • $140K - $540K / hour (Garner, July 2014) • $474K / hour (Ponemon Inst., Dec 2013) Most commonly reported consequences • Damage to reputation (38%) • Increase in customer churn (37%) • Damage to credit rating (28%) • Increase to insurance premiums (26%) Digital Platform Challenges 27% 60% 13% Outage Degradation No impact 0% 20% 40% 60% 80% Impact of DoS/DDoS Attack Note: Credits and thanks are listed at the end of the presentation
  • 6. About Eugene Istrati • [email protected] Partner @ Mitoc Group Inc • 15+ years in IT; 7+ years on AWS • AWS Certified Solutions Architect (re-certified at re:Invent 2015) • Companies: Hearst, Amazon, GrubHub, Tenaris (Europe) Mitoc Group Inc • www.mitocgroup.com • Web Development Studio • AWS Technology Partner • Focusing on enterprise applications and platforms • Working with customers from media and entertainment industry
  • 7. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 8. Demo: todo.deep.mg • Go to the GitHub repository • github.com/MitocGroup/deep -microservices-todo-app • Follow the steps from Getting Started to build and deploy • todo.deep.com
  • 9. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 10. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes
  • 11. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks
  • 12. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity
  • 13. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity • Requires DevOps with experience
  • 14. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity • Requires DevOps with experience • Flexible choice of technology
  • 15. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity • Requires DevOps with experience • Flexible choice of technology • Requires devs with rich skill set
  • 16. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity • Requires DevOps with experience • Flexible choice of technology • Requires devs with rich skill set • Cost-effective
  • 17. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity • Requires DevOps with experience • Flexible choice of technology • Requires devs with rich skill set • Cost-effective • Over-provisioning and over-paying
  • 18. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity • Requires DevOps with experience • Flexible choice of technology • Requires devs with rich skill set • Cost-effective • Over-provisioning and over-paying
  • 19. AWS re:Invent 2014 Note: Credits and thanks are listed at the end of the presentation
  • 20. AWS Summit NY 2015 Note: Credits and thanks are listed at the end of the presentation
  • 21. Web Apps Hosting … Reinvented Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers S3 bucket CloudFront distribution Web Tier Cognito Identity DB Tier SQS DynamoDB LambdaCloudFront logs API Gateway www.example.com static.example.com App Tier AWS Region RDS Aurora
  • 22. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 23. What does “serverless” mean? Not involving a server; composed only of clients. http://www.wordsense.eu/serverless Serverless doesn’t mean servers are no longer involved. It simply means that developers no longer have to think "that much" about them. Computing resources get used as services without having to manage around physical capacities or limits. https://www.quora.com/What-is-Serverless-Computing
  • 24. Serverless vs. Reference Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers S3 bucket CloudFront distribution Web Tier Cognito Identity DB Tier SQS DynamoDB LambdaCloudFront logs API Gateway www.example.com static.example.com App Tier AWS Region RDS Aurora vs
  • 25. Serverless Architecture – Web Tier S3 bucket CloudFront distribution Web Tier Cognito Identity CloudFront logs www.example.com static.example.com Availability Zone A Availability Zone B Auto Scaling Group www.example.com static.example.com web servers web servers
  • 26. Serverless Architecture – Web Tier S3 bucket CloudFront distribution Web Tier Cognito Identity CloudFront logs www.example.com static.example.com • Static Assets • Same as in reference architecture • css, js, docs, images, videos + html • Dynamic Functionality • Use JS framework (e.g. Angular) • SEO-friendly (Custom Error Response + HTML5 History API) • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance
  • 27. Serverless Architecture – Web Tier S3 bucket CloudFront distribution Web Tier Cognito Identity CloudFront logs www.example.com static.example.com • Static Assets • Same as in reference architecture • css, js, docs, images, videos + html • Dynamic Functionality • Use JS framework (e.g. Angular) • SEO-friendly (Custom Error Response + HTML5 History API) • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance
  • 28. Serverless Architecture – Web Tier S3 bucket CloudFront distribution Web Tier Cognito Identity CloudFront logs www.example.com static.example.com • Static Assets • Same as in reference architecture • css, js, docs, images, videos + html • Dynamic Functionality • Use JS framework (e.g. Angular) • SEO-friendly (Custom Error Response + HTML5 History API) • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance
  • 29. Serverless Architecture – App Tier Cognito Identity SQS Lambda API Gateway App Tier Availability Zone A Availability Zone B Auto Scaling Group app servers app servers
  • 30. Cognito Identity SQS Lambda API Gateway App Tier • Accelerated Backend • Write node.js functions and load into Lambda • Power up Lambda with RESTful endpoints on API Gateway • Cache, throttle, meter, version, etc. • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance Serverless Architecture – App Tier
  • 31. • Accelerated Backend • Write node.js functions and load into Lambda • Power up Lambda with RESTful endpoints on API Gateway • Cache, throttle, meter, version, etc. • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance Serverless Architecture – App Tier Cognito Identity SQS Lambda API Gateway App Tier
  • 32. Availability Zone A Availability Zone B Serverless Architecture – DB Tier DB Tier SQS DynamoDB RDS Aurora
  • 33. DB Tier SQS DynamoDB RDS Aurora Serverless Architecture – DB Tier • First choice – DynamoDB + SQS • Schema-free • Scale only reads and writes • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance • Next choice – RDS Aurora • Relational • MySQL-like approach, but 5x better
  • 34. Serverless Architecture – DB Tier • First choice – DynamoDB + SQS • Schema-free • Scale only reads and writes • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance • Next choice – RDS Aurora • Relational • MySQL-like approach, but 5x better DB Tier SQS DynamoDB RDS Aurora
  • 35. Serverless Architecture – DB Tier • First choice – DynamoDB + SQS • Schema-free • Scale only reads and writes • Completely Serverless • Pre-scaled • Low-cost • Low-maintenance • Next choice – RDS Aurora • Relational • MySQL-like approach, but 5x better DB Tier SQS DynamoDB RDS Aurora
  • 36. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 37. Demo: Setup Serverless AWS 1. Security - Create IAM roles 2. Front-end - Create S3 bucket - Enable static website hosting - Add bucket policy - Create CloudFront distribution 3. Back-end - Create Lambda function - Upload code into Lambda - Create API Gateway endpoint 4. Database - Create DynamoDB table 5. Code - Load code into S3 bucket - View via CloudFront (S3 as backup) S3 bucket CloudFront distribution Web Tier Cognito Identity DB Tier SQS DynamoDB LambdaCloudFront logs API Gateway www.example.com static.example.com App Tier AWS Region RDS Aurora
  • 38. Lessons Learned • Serverless approach is challengingly awesome • Frontend is restricted to JS (and JS Frameworks) • Backend is restricted to Python, Java or JS (for now) • SOA and APIs are required by design
  • 39. Lessons Learned • Serverless approach is challengingly awesome • Frontend is restricted to JS (and JS Frameworks) • Backend is restricted to Python, Java or JS (for now) • SOA and APIs are required by design • Services must be as small as possible • AWS Lambda constrains • Browser limitations (on mobile devices)
  • 40. Lessons Learned • Serverless approach is challengingly awesome • Frontend is restricted to JS (and JS Frameworks) • Backend is restricted to Python, Java or JS (for now) • SOA and APIs are required by design • Services must be as small as possible => microservices • AWS Lambda constrains • Browser limitations (on mobile devices)
  • 42. Recap Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Reference architecture for web application hosting on AWS
  • 43. Recap • Reference architecture for web application hosting on AWS • Transformed to serverless architecture on AWS S3 bucket CloudFront distribution Web Tier Cognito Identity DB Tier SQS DynamoDB LambdaCloudFront logs API Gateway www.example.com static.example.com App Tier AWS Region RDS Aurora
  • 44. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 45. What does “microservices” mean? In computing, microservices is a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language- agnostic APIs. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system- building. https://en.wikipedia.org/wiki/Microservices
  • 46. Microservices Architecture Keynote GOTO Conference: Microservices by Martin Fowler - https://www.youtube.com/watch?v=wgdBVIX9ifA State of the Art in Microservices - https://www.youtube.com/watch?v=nMTaS07i3jk Sam Newman at ThoughtWorks London 2015: Deploying and Operating Microservices - https://www.youtube.com/watch?v=OTSlg7_y3bA
  • 47. Speeding Up Digital Platforms on AWS Deploy in weeks Live for years Deploy in minutes Live for weeks Deploy in seconds Live for minutes/hours Deploy in milliseconds Live for seconds On-Premises Amazon EC2 Amazon ECS AWS Lambda
  • 48. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 49. Powered by AWS Lambda
  • 50. AWS Lambda in Action • AWS Lambda scaled with no effort for us • 70M+ invocations / day • 10K+ concurrent invocations / second
  • 51. Web Apps Hosting / Reference Architecture Availability Zone A Availability Zone B Auto Scaling Group Auto Scaling Group www.example.com static.example.com web servers web servers app servers app servers • Scales in minutes • Huge challenge for breaking news, viral content, or attacks • Reduced operational complexity • Requires DevOps with experience • Flexible choice of technology • Requires devs with rich skill set • Cost-effective • Over-provisioning and over-paying
  • 52. AWS Lambda in Action • AWS Lambda scaled with no effort for us • 70M+ invocations / day • 10K+ concurrent invocations / second • AWS Lambda made it really easy for us • Comes pre-scaled and charges in 100ms blocks • No under- or over-provisioning (by design) • Developers love it (especially frontend JS folks) • DevOps still in play mode (learning to build ops code)
  • 53. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 54. Tips and Tricks • AWS Lambda is continuously evolving • Set up alarms for all 4 Lambda metrics in Amazon CloudWatch • Avoid S3 throttling by integrating S3 => SNS => Lambda • Beware of potential infinite loops
  • 55. Tips and Tricks • AWS Lambda is continuously evolving • Set up alarms for all 4 Lambda metrics in Amazon CloudWatch • Avoid S3 throttling by integrating S3 => SNS => Lambda • Beware of potential infinite loops • Microservices are game changers • The shorter TTL, the more secure it becomes • First, build a service or a feature • Next, break it down into microservices
  • 56. Tips and Tricks – From Monolithic Approach applicationsdevelopers Build Test Release development cycle
  • 57. Tips and Tricks – To Microservices Approach applicationsdevelopers Build Test Release development cycle Build Test Release Build Test Release Build Test Release Build Test Release Build Test Release Build Test Release
  • 58. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 59. Demo: todo.deep.mg • Go to the GitHub repository • github.com/MitocGroup/deep -microservices-todo-app • Follow the steps from Getting Started to build and deploy • todo.deep.com
  • 61. Recap • Reference architecture for web application hosting on AWS • Transformed to serverless architecture on AWS • Microservices Architecture Powered by AWS Lambda
  • 62. Recap • Reference architecture for web application hosting on AWS • Transformed to serverless architecture on AWS • Microservices Architecture Powered by AWS Lambda • Tips and tricks applicationsdevelopers development cycle
  • 63. Agenda • Web Apps Hosting on AWS • Reference Architecture • Serverless Architecture • Demo: Setup Serverless AWS • Microservices Architecture • Powered by AWS Lambda • Tips and Tricks • Demo: todo.deep.mg • Q&A + Next Steps
  • 64. Q&A + Next Steps github.com/MitocGroup medium.com/@MitocGroup [email protected] www.deep.mg http://www.meetup.com/nodejs/events/226713968 Thanks: Matt Walters from Nodejs NYC Meetup Hosting Team from Shutterstock
  • 65. Credits and Thanks • Slide 3: Digital Platforms Challenges • http://www.buzzfeed.com/daozers/what-its-like-to-work-on-buzzfeeds-tech-team-during-record-t#.axR6WG9Yr • http://www.dailydot.com/crime/new-york-magazine-ddos-bill-cosby-cover/ • http://www.cio.in/topstory/flipkart%E2%80%99s-cto-explains-the-xiaome-launch-outage • Slide 4: Digital Platforms Challenges • http://www.slideshare.net/Radware/radware-cmg2014-tammyevertsslowtimevsdowntime • http://www.statuscast.com/application-downtime-according-to-idc-gartner-and-others • https://press.kaspersky.com/files/2014/11/B2B-International-2014-Survey-DDoS-Summary-Report.pdf • Slide 19: AWS re:Invent 2014 • https://venturebeat.com/wp-content/uploads/2014/11/aws-reinvent-lambda.png • Slide 20: AWS Summit NY 2015 • https://d0.awsstatic.com/events/aws-hosted-events/2015/AWS-Global-Summit-Series/new-york/press-room/introducing-amazon-api- gateway.jpg • Slide 46: Microservices Architecture • https://www.youtube.com/watch?v=nMTaS07i3jk - State of the Art in Microservices by Adrian Cockcroft • https://www.youtube.com/watch?v=wgdBVIX9ifA - Microservices by Martin Fowler • https://www.youtube.com/watch?v=OTSlg7_y3bA - Deploying and Operating Microservices by Sam Newman

Editor's Notes

  • #2: Hello everybody and welcome! Thank you for taking the time to attend this session. I feel very humble and honored to be here today to talk about Building Web Applications... The more I dive into microservices, the more it reminds me of the joke: That any software program can be reduced to one line of code ... that has a bug. I hope my presentation is better than my joke :)
  • #3: This talk is an evolution from my last month presentation at AWS re:Invent conference.
  • #4: The fundamental role of every web application and digital platform is to be up and running 24/7. But if you are an employee of BuzzFeed, or New York Media, or Flipkart, you have most probably experienced recently a high level of stress and pressure. In BuzzFeed’s case it was caused by traffic peak generated by the famous article “what is the color of this dress?”. In case of New York Magazine, it was an attack led by some extremist individuals. In case of Flipkart, it was an exclusive launch of a low-cost smartphone that lots of customers wanted. Please raise your hand if you have been in similar situation before? PAUSE. Me too, I have personally experienced a similar situation when Michael Jackson died in 2009 and the breaking news brought down our entire digital platform for a couple of hours. Yes, it was painful.
  • #5: It is a big concern for us that 87% of attacks affect our digital platforms. The average downtime costs us hundreds of thousands and millions of dollars per hour, not to mention damages in reputation and credit rating, customer churn and insurance increases. So is there something, that we can easily improve in our architecture, that will solve these problems fundamentally? Well yes, otherwise I wouldn’t be here :)
  • #6: We’ve been doing it for a while, constantly helping customers on AWS, business owners or decisions makers, architects or developers, technical or none technical, we help everybody improve their digital platforms. That is how we ended up using abstracted services from AWS and building Platform-as-a-Service that we call Digital Enterprise End-to-end Platform.
  • #7: My name is Eugene Istrati. I’m the Technology Partner at Mitoc Group. I have been in IT for over 15 years, with last 7 years working on AWS. I am certified solution architect who worked at companies like Hearst, Amazon, GrubHub and Tenaris. Mitoc Group is a web development studio that focuses on enterprise applications and platforms. We are official AWS Technology Partner and most of our customers are media and entertainment companies.
  • #8: So let’s get started with web applications hosting on AWS.
  • #9: My goal today is to show you hands on the value of microservices. At the end of this talk, I will demo some steps from our development process, based on the code that runs on todo.deep.mg. Because the initial provisioning takes some time, I’ll fire it up now, at the beginning of the presentation and spend the rest of the time explaining and showing.
  • #10: What is the reference architecture for web applications hosting on AWS?
  • #11: By the show of hands, let’s see how many of us are using this 3 tier architecture? PAUSE. Awesome! In a nutshell, the infrastructure spreads across multiple availability zones, which means it is running in separate physical datacenters that are millisecond latency apart from each other. Therefore it is no surprise that this architecture scales in minutes.
  • #12: But if you have experienced before breaking news, or viral content, or various attacks on your digital platforms, you know that scaling in minutes is just not enough. We had to build by ourselves additional complexity to scale the infrastructure faster and meet the spiking demands.
  • #13: Using this architecture on AWS makes it easier for us to maintain and support. Less operations makes the platform less complex.
  • #14: But we still needed experienced devops engineers to do so.
  • #15: As developers, we can choose whatever technology stack we would like to use: Java or C#, Python or Ruby, Scala or Go, JavaScript or JavaScript.
  • #16: But we had to recruit and hire developers with rich skillset, who are able to build and support the entire technology stack.
  • #17: And, of course, this architecture is cost effective, if we implement it properly. We are paying only for resources that we are using.
  • #18: But when the infrastructure doesn’t scale fast enough to meet the demand, our engineering teams are over-provisioning to solve short-term problems and buy time until they figure out long-term solutions. Please raise your hand if you have done it before. PAUSE. Don’t tell my boss, but I did it as well.
  • #19: While we were trying to solve these problems, two major events happened that changed everything.
  • #20: 1. Last year, at the re:Invent, Amazon launched AWS Lambda, an event-driven computing service for dynamic applications.
  • #21: And 2. This year, at NY Summit, AWS launched Amazon API Gateway, a fully managed service for scalable API endpoints.
  • #22: These two new services enabled us to reinvent the reference architecture in a completely serverless approach.
  • #23: So let’s dive into serverless architecture next.
  • #24: What does serverless mean? Intuitively, there should be something related to “no servers”. And it is. Developers don’t need to deal with servers and all associated operations to keep them up and running at scale. Instead, developers get abstracted services that are highly secure and highly available, pre-scaled and pre-provisioned, so there is no need to worry about under-provisioning or over-provisioning.
  • #25: So, the main question is: How can we get to the serverless architecture from the reference one? Let me show you how we did it, layer by layer.
  • #26: First question, how can we transform the web tier into a serverless one? Most of us think of S3 as a storage service available over the Internet. We think of S3 as a cluster of web servers behind load balancers that have turned off server side scripting modules. It is secured through IAM and there is no need to worry about underlying infrastructure.
  • #27: As we are doing this transformation, the static component stays exactly the same as in reference architecture. We load everything into S3: css, javascript, documents, images, videos. And even html, which usually is served by EC2.
  • #28: Because S3 doesn’t allow server side scripting, we use client side languages like JavaScript to add dynamic functionality. Modern JavaScript frameworks like AngularJS caught up a lot lately to other popular web frameworks. They provide similar patterns and best practices like Symfony, or Django, or Rails. And they are very friendly with search engines, allowing indexing of both new applications and legacy applications.
  • #29: But the biggest benefit – it is completely serverless. The infrastructure comes pre-scaled at AWS size, which is virtually infinite. I have heard some people saying quote: “You will reach your budget faster than AWS will reach its physical limits”. And the bigger it is, the better it gets and the lower it costs.
  • #30: Now let’s see how we transformed our app tier into a serverless one. AWS Lambda can roughly be described as a node.js environment running in a docker container. It deploys in milliseconds and executes code in seconds. Like in case of web tier, it is secured through IAM and there is no need to worry about underlying infrastructure.
  • #31: Because of the way Lambda is designed, we get out of the box an accelerated backend that has short time to live. We are writing small functions, loading them into Lambda, and consuming them through API Gateway. It is also possible to call Lambda directly, but then you need to build by yourself caching and throttling, metering and versioning. Why would you do that, when this comes pre-built into API Gateway?
  • #32: And like in case of web tier, it is completely serverless.
  • #33: How do we transform the database tier into a serverless one? We encourage all of us to use DynamoDB because the only operations you care about are reads per second and writes per second. And like in case of both web tier and app tier, it is secured through IAM and there is no need to worry about underlying infrastructure.
  • #34: DynamoDB is an amazing schema-less key-value database like CassandraDB or MongoDB. We only increase or decrease, reads or writes, independently from each other. But at scale, by itself, DynamoDB could be cost intensive. Did anyone hear of Shazam, a mobile app that recognizes music and tv around you? I think they were the first to blog about offloading writes to SQS. We virtually put SQS in front of DynamoDB and store datasets into the queue that later gets asynchronously saved into the database. Apparently, this “eventual consistency” pattern saved Shazam 50% of their database cost.
  • #35: And again, guess what? It is completely serverless.
  • #36: But if you are for some reason coupled to relational databases, try out RDS Aurora. It is a MySQL like database, cloud native and scales seamlessly.
  • #37: I hope you guys are excited enough to see a demo of a serverless environment.
  • #38: In this demo I will setup from scratch a serverless environment in my AWS account by going through these 5 steps. I will be mindful of our time and setup only most relevant AWS services and features. This will enable my account to run my web application that I have in my GitHub. Provisioning in CloudFront could take up to 15 minutes, so if it will not be ready, I will show the website from S3. Cool? Ok, let’s do it.
  • #39: What did we learn? Well, serverless approach is awesome and has its own challenges. Some developers might find these challenges unpleasant and unwanted. We actually appreciate them a lot because it enabled us to achieve more by doing less. For example, dealing only with JavaScript allowed us to focus and avoid endless programming languages flame wars. Or, another example, not having alternatives to Services Oriented Architecture and Application Programming Interfaces forced everybody on the team to commit and build SOA and APIs.
  • #40: SOA also means we build services. But a service on AWS Lambda is constrained by design to 300 seconds execution time and 1.5G of memory. Not to mention browsers limitations with responsive design, especially on mobile devices.
  • #41: That is why we have turned to microservices architecture, which I will be talking about next.
  • #42: But before doing that, let’s recap what we have covered so far.
  • #43: Reference architecture for web application hosting on AWS.
  • #44: Transformed to serverless architecture on AWS. Any questions so far? Let’s take only 2 questions, since we have a Q&A session at the end.
  • #45: Alright. Now the cherry on the top of the cake. Microservices architecture.
  • #46: What does microservices mean? In a nutshell, it’s an architectural pattern that can be applied nowadays almost anywhere, either we are talking about infrastructure, or platform, or application. Think of it like a shredder for the monoliths, that makes complex into simple and difficult into easy. If it’s software driven, it could be designed as microservices.
  • #47: Microservices architecture is the new trend that makes all of us curious and excited. My favorite speakers on this topic are Adrian Cockcroft, Martin Fowler and Sam Newman.
  • #48: I mentioned Adrian Cockcroft for two reasons: 1. He is Netflix former Chief Architect, famous for pioneering and evangelizing microservices architecture and 2. In his presentation State of the Art in Microservices, Adrian is talking about how to speed up platforms. The milliseconds in deployment time and seconds in execution time really pushed us and turned us into early adopters of AWS Lambda.
  • #49: Let me show you Microservices Architecture powered by AWS Lambda.
  • #50: This is the diagram of our 3rd iteration of deployment workflow, which by the way we have completely messed up in the first 2 iterations. If you would like to hear the story of those iterations, please ask me after the session, because it is kind of embarrassing. Back to 3rd iteration, the context here is that our digital asset management customers have lots of assets, microsites and static marketing websites. We helped them to migrate on AWS with just one click. The source code was in GitHub, or Subversion, or internal infrastructure, somewhere really hard to get. Either way, we have build a series of Lambda functions that a) get raw files into inbound S3 bucket, b) process / extract / transform / load into DynamoDB or S3, and c) move processed files into outbound S3 bucket.
  • #51: That being said, AWS Lambda scaled for us with absolutely no effort whatsoever. It is not BuzzFeed’s 670 thousands requests per second, but we are getting there.
  • #52: And remember the challenges that I have pointed out in the first part of this presentation?
  • #53: AWS Lambda solved them all out of the box. We love its pre-scaled nature that enables us to avoid under-provisioning and over-provisioning. Our developers grew a particular attraction for AWS Lambda because it is designed for simplicity. While DevOps team is experimenting and rethinking the ops code.
  • #54: Let me share with you some tips and tricks.
  • #55: AWS Lambda is about one year old, so be open minded while building code and expect the unexpected. Make sure you setup alarms in CloudWatch. You will thank me later for that. Also, SNS has a nice “delivery policy” feature that avoids at scale some throttling between S3 and Lambda direct integration. And beware of potential infinite loops, which happened to us in version 1 of the deployment workflow. We had 2 developers built 3 Lambda functions that ended up calling each other forever. This is one of those embarrassing stuff.
  • #56: Microservices are game changers that enable speed and security, because it is much harder to figure out how to attack something that quickly disappears. But if you are coming from monolithic architecture, a practical approach is to build a service or feature first and then break it down into microservices.
  • #57: So if your development workflow looks something like this.
  • #58: Microservices architecture empowers and enables developers to be independent, self sufficient, highly decoupled and focused on small and simple. I personally love it and would never go back to monolithic architecture.
  • #59: Alright, and there we are, at the final demo.
  • #60: In this demo, I will achieve the same goal as in the previous demo, only this time it is completely automated. I will go to GitHub and follow the steps from README, Getting Started section. After couple of command line executions, I will load in the browser the clone of todo.deep.mg, that will be running my own AWS account as an web application. Let’s see what happens.
  • #61: Let’s recap what we have covered so far.
  • #62: AWS Lambda in action.
  • #63: Tips and tricks, with a practical example.
  • #64: And that concludes our presentation and opens up the floor to more questions.