Building Universal Servers (On-prem meets Azure PAAS)

34
Automating visual software testing BUILDING UNIVERSAL SERVERS ON-PREM MEETS AZURE PAAS Adam Carmi Applitools Co-Founder & CTO

Transcript of Building Universal Servers (On-prem meets Azure PAAS)

Page 1: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

BUILDINGUNIVERSALSERVERSON-PREM MEETS AZURE PAAS

Adam CarmiApplitools Co-Founder & CTO

Page 2: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

ABOUT ME

Page 3: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

AGENDA

• About Applitools

• Why Azure?

• Applitools’ universal server

• Q&A

Page 4: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

WHAT IS VISUAL TESTING?

A quality assurance activity aimed to verify that a Graphical User Interface appears correctly to users

Page 5: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

Page 6: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

Page 7: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

THE WORKFLOWDrive the AUT and take screenshots

Compare screenshots with baseline images

Report differences

Update the baseline

Page 8: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

DEMO

Page 9: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

AGENDA

• About Applitools

• Why Azure?

• Applitools’ universal server

• Q&A

Page 10: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

OPERATIONAL REQUIREMENTS• A 30K tenant public cloud• 5M CPU and memory intensive tests / month• Multiple single tenant dedicated clouds• On-Prem installations• Massive image uploads that are rarely fully downloaded• 1Y data retention• Permanent availability• Growing 50% Q/Q

Page 11: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

SYSTEM ARCHITECTURE

API Server

Tests, Image processing, Tasks, Auth, Admin, Externals, App

APP Server

Tests, Image processing, Tasks, Auth, Admin, Externals, App

SDK

Data+

State

Eyes Server (On-Prem / Azure Web-Role) User

APP

Tests

Page 12: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

AZURE WEB-ROLEA collection of identical, auto-managed, load-balanced VMs that run IIS compatible web-applications• Same web-apps (binaries and resources)

• Same configuration

Page 13: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

WHY AZURE WEB-ROLE?• Infinite scale and high availability• Extremely reliable• No hardware / OS maintenance concerns• Rolling deployments• Immediate emergency rollback to staging• A thin wrapper around a standard IIS web-site (VS Project)• .NET

Page 14: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

AGENDA

• About Applitools

• Why Azure?

• Applitools’ universal server

• Q&A

Page 15: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

APPLITOOLS’ UNIVERSAL SERVER• Design• Deployment• Runtime• Storage• Framework• Testability

Page 16: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

DESIGN TOWARDS THE WEB-ROLE• Multiple stateless instances (scale-out, rolling

upgrades)• Optimistic concurrency and eventual consistency• Data partitioning• Automatic instance recycling• Transient local storage• Async long running tasks (hard timeouts)

Page 17: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

BUT DEPEND ON AS FEW PAAS ARTIFACTS AS POSSIBLE...In order to keep the On-Prem deployment simple.

Page 18: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

APPLITOOLS’ UNIVERSAL SERVER• Design• Deployment• Runtime• Storage• Framework• Testability

Page 19: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

ON-PREM DEPLOYMENT

Page 20: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

CLOUD-SERVICE DEFINITION

Packaging

Page 21: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

• Deployed together with a cloud-service package• Initial instance count

• SSL certificate

• Configuration settings

CLOUD-SERVICE CONFIGURATION

Page 22: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

PUBLISHING OPTIONS• Visual Studio• Azure management portal• REST APIs• Programmatically• Azure PowerShell

Page 23: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

APPLITOOLS’ UNIVERSAL SERVER• Design• Deployment• Runtime• Storage• Framework• Testability

Page 24: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

RUNTIME ABSTRACTION

IServiceRuntime• Access configuration settings

• Access local file storage paths

• Get the instance name (for logging)

• Register runtime event listeners

Page 25: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

APPLITOOLS’ UNIVERSAL SERVER• Design• Deployment• Runtime• Storage• Framework• Testability

Page 26: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

NOSQL?• Infinite storage• High availability• Speed• Pricing• No schema migration

Page 27: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

NOSQL STORAGE ABSTRACTIONS

IObjectStore<T>, IByteStore, …

• Key/value based

• Atomic update/create with optimistic concurrency

• In-memory, File System, Entity Framework, Azure Table, Azure Blob implementations

Page 28: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

STORAGE CONFIGURATIONWeb-Role

On-Prem

Page 29: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

APPLITOOLS’ UNIVERSAL SERVER• Design• Deployment• Runtime• Storage• Framework• Testability

Page 30: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

FRAMEWORK SERVICES

• Framework services are built on top of the storage abstraction• Access control

• Counters

• Named locks

• Notifications

• Long running tasks

Page 31: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

APPLITOOLS’ UNIVERSAL SERVER• Design• Deployment• Runtime• Storage• Framework• Testability

Page 32: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

TESTABILITY• Run any version of the server on your local machine

with a simple SVN update command.• Execute thousands of API tests in less than a minute by

using in-memory storage.• Easily debug local code changes step-by-step running

against production data.

Page 33: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

SUMMARYUniversalScaleAvailabilityDeploymentTestabilityCost (storage)×Design complexity (storage, PaaS services)

Page 34: Building Universal Servers (On-prem meets Azure PAAS)

Automating visual software testing

QUESTIONS?

Adam CarmiApplitools Co-Founder & CTO