Handling Scale on AWS
July 10, 2016
David Ilievsky, R&D Director
Agenda
WalkMe - the product, the business
Challenges
Solutions
What and where we deploy
Deployment challenges
How do we deploy
Monitoring
New Challenges
WalkMe - The product
3
WalkMe - The product
4
▪ Live Demo
▪ B2B
▪ Improve employee productivity
▪ Improve engagement
▪ Lower support costs
▪ Simplify business processes
▪ Analytics and Insights
5
Basic Architecture
6
The challenges
7
The Challenges
8
▪ Supporting the traffic of all our customers
▪ Be unnoticeable on customers’ site
▪ Existing js frameworks / libraries on customers site
▪ Backward compatibility
▪ Cross browsers support
▪ Cross domain support
▪ Security - sensitive customers
Solutions
9
Basic Architecture
10
Customer - Content Owner End users
Customers’ web server
Original web site content
Analytics audits
WalkMe static files
audits
WalkMe Data
Publish Data
Solutions
11
▪ Static files coming from Cloudfront
▪ Browser cache
▪ Elastic Beanstalk
▪ Automation
▪ Development processes
▪ CI / CD
▪ Performance monitoring
▪ Assistance tools
▪ Culture !
▪ VPC
What and where do we
deploy
12
What and where do we deploy
13
▪ Server applications
▪ EC2
▪ Elastic Beanstalk
▪ Client side
▪ S3
▪ Modify DB (meta data)
▪ DB Changes
▪ Lambda functions
AWS usage summary
14
Deployment Challenges
15
Deployment Challenges
16
▪ Downtime
▪ Cache
▪ Security
▪ Quality
▪ Go back anytime
▪ Time consumption
Deploying client side
17
▪ Preparations
▪ Merge all files to one
▪ Remove debug info
▪ Imprint version
▪ Compile templates
▪ Compile css (saas)
▪ Obfuscate (source maps)
▪ Copy to S3
▪ Set permissions
▪ Set http headers
▪ Update relevant DB tables
Deploying Server
18
▪ EC2
▪ Windows (C#)
▪ Ubuntu Server (Node.js)
▪ Load balancing
▪ Elastic Beanstalk
▪ Deployment tools by AWS
▪ Windows vs. Linux
▪ VPC
▪ DB Changes
▪ (non) Breaking changes
▪ lots of risks involved
▪ sql files
▪ Lambda functions
▪ AWS CLI
More Deployments
19
Deployment
20
How do we deploy
21
▪ Node.js based deployment apps
▪ AWS SDK
▪ 4 main environments
▪ TeamCity
▪ Deployment Tool
▪ flywayDB
▪ Post Production
Monitoring
22
Monitoring
23
▪ No scale without monitoring !
▪ Deployment process
▪ Applications
▪ Servers
▪ Server / Client performance
▪ End users experience
▪ Differentiate between error types and severity
How do we monitor
24
New Challenges
25
New Challenges
26
▪ Behavior Analysis
▪ Much higher throughput
▪ Digesting millions of events and providing real time feedback
Handling scale on AWS

Handling scale on AWS

  • 1.
    Handling Scale onAWS July 10, 2016 David Ilievsky, R&D Director
  • 2.
    Agenda WalkMe - theproduct, the business Challenges Solutions What and where we deploy Deployment challenges How do we deploy Monitoring New Challenges
  • 3.
    WalkMe - Theproduct 3
  • 4.
    WalkMe - Theproduct 4 ▪ Live Demo ▪ B2B ▪ Improve employee productivity ▪ Improve engagement ▪ Lower support costs ▪ Simplify business processes ▪ Analytics and Insights
  • 5.
  • 6.
  • 7.
  • 8.
    The Challenges 8 ▪ Supportingthe traffic of all our customers ▪ Be unnoticeable on customers’ site ▪ Existing js frameworks / libraries on customers site ▪ Backward compatibility ▪ Cross browsers support ▪ Cross domain support ▪ Security - sensitive customers
  • 9.
  • 10.
    Basic Architecture 10 Customer -Content Owner End users Customers’ web server Original web site content Analytics audits WalkMe static files audits WalkMe Data Publish Data
  • 11.
    Solutions 11 ▪ Static filescoming from Cloudfront ▪ Browser cache ▪ Elastic Beanstalk ▪ Automation ▪ Development processes ▪ CI / CD ▪ Performance monitoring ▪ Assistance tools ▪ Culture ! ▪ VPC
  • 12.
    What and wheredo we deploy 12
  • 13.
    What and wheredo we deploy 13 ▪ Server applications ▪ EC2 ▪ Elastic Beanstalk ▪ Client side ▪ S3 ▪ Modify DB (meta data) ▪ DB Changes ▪ Lambda functions
  • 14.
  • 15.
  • 16.
    Deployment Challenges 16 ▪ Downtime ▪Cache ▪ Security ▪ Quality ▪ Go back anytime ▪ Time consumption
  • 17.
    Deploying client side 17 ▪Preparations ▪ Merge all files to one ▪ Remove debug info ▪ Imprint version ▪ Compile templates ▪ Compile css (saas) ▪ Obfuscate (source maps) ▪ Copy to S3 ▪ Set permissions ▪ Set http headers ▪ Update relevant DB tables
  • 18.
    Deploying Server 18 ▪ EC2 ▪Windows (C#) ▪ Ubuntu Server (Node.js) ▪ Load balancing ▪ Elastic Beanstalk ▪ Deployment tools by AWS ▪ Windows vs. Linux ▪ VPC
  • 19.
    ▪ DB Changes ▪(non) Breaking changes ▪ lots of risks involved ▪ sql files ▪ Lambda functions ▪ AWS CLI More Deployments 19
  • 20.
  • 21.
    How do wedeploy 21 ▪ Node.js based deployment apps ▪ AWS SDK ▪ 4 main environments ▪ TeamCity ▪ Deployment Tool ▪ flywayDB ▪ Post Production
  • 22.
  • 23.
    Monitoring 23 ▪ No scalewithout monitoring ! ▪ Deployment process ▪ Applications ▪ Servers ▪ Server / Client performance ▪ End users experience ▪ Differentiate between error types and severity
  • 24.
    How do wemonitor 24
  • 25.
  • 26.
    New Challenges 26 ▪ BehaviorAnalysis ▪ Much higher throughput ▪ Digesting millions of events and providing real time feedback