27
Handling Scale on AWS July 10, 2016 David Ilievsky, R&D Director

Handling scale on AWS

Embed Size (px)

Citation preview

Handling Scale on AWSJuly 10, 2016David 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