extending on premise applications to the cloud

45
Extending On-Premise Applications to the cloud Andrew Still Technical Director

Upload: intechnica

Post on 30-Jun-2015

772 views

Category:

Technology


0 download

DESCRIPTION

Intechnica Technical Director Andy Still describes the process of using a cloud solution to extend on-premise applications to the cloud.

TRANSCRIPT

Page 1: Extending on premise applications to the cloud

Extending On-Premise Applications to the cloud

Andrew Still Technical Director

Page 2: Extending on premise applications to the cloud

Intechnica: Digital Performance

• develop complex, business critical bespoke online systems• engineer performance into existing systems and• develop processes and approaches to manage performance

effectively

Intechnica helps companies to:

Page 3: Extending on premise applications to the cloud

Intechnica: Digital Performance

Cloud pedigree:

Cloud based tool for creating on-demand cloud testing environments

Cloud based tool for generating load for performance tests

Run North West AWS User Group

Page 4: Extending on premise applications to the cloud

The Problem

Page 5: Extending on premise applications to the cloud

Andy!I want a mobile app!!!

I want it now!I want it to be brilliant!!

But I don’t want it to interfere with any of my current systems in any

way!!

Page 6: Extending on premise applications to the cloud

OK!!I’ll get straight on

it!!

Page 7: Extending on premise applications to the cloud

Well..... How am I going to do that then?

Page 8: Extending on premise applications to the cloud

What’s the application?

Page 9: Extending on premise applications to the cloud

Tight integration with other key internal

systems

Large datasets and legacy data structures

Umbraco CMS integration

Oracle Database .net 4 web forms application

£1.5 bn transactions per yearB2B Order Capture

System

Page 10: Extending on premise applications to the cloud

Current System

Web Server Farm

Oracle DB(Core business data,pricing, products etc)

Sql Server DB(Website specific content)

Core Business Systems

Page 11: Extending on premise applications to the cloud

Why AWS?Why not just build this on the

current system?

Page 12: Extending on premise applications to the cloud

Longer term ambition to open areas of the system

to additional 3rd party uses

Separation from core, business critical systemsPlatform Stressed at

peak times

Page 13: Extending on premise applications to the cloud

We’ll need to introduce an API on this system and a whole new platform for mobile...

Page 14: Extending on premise applications to the cloud

Like This

Native App Native App

Mobile WebContent

API

Existing Core Systems

Member App(on mobile device)

Hosted Platform

Mobile Platform(On AWS)

Cache Datastore

Page 15: Extending on premise applications to the cloud

How will the caching datastore work?

Page 16: Extending on premise applications to the cloud

I’ll just fire up an RDS

Oracle instance and

sync the data

Page 17: Extending on premise applications to the cloud

That seems a bit old style....

Page 18: Extending on premise applications to the cloud

All data arriving in Json from API, shall we store

it in that format

Must be focussed on fast data retrieval

All data will be read only, why the relational

overhead?

Can’t we build this on a smaller footprint

That’s a lot of data to sync

Those are heavy queries on the current system

Page 19: Extending on premise applications to the cloud

What else does AWS have to offer?

Page 20: Extending on premise applications to the cloud

Sql ServerS3

MySql RDS

SimpleDB Elasti

Cache

DynamoDB

Oracle RDS

Page 21: Extending on premise applications to the cloud

What is needed?

Page 22: Extending on premise applications to the cloud

Multiple dataset sizes - very large - >65mb - very small - <100kb

Fast data retrieval

Must proactively cache, shouldn’t be triggered

by end user.

Must be persistent and survive EC2 machine

crash

Page 23: Extending on premise applications to the cloud

No one size fits all....

Page 24: Extending on premise applications to the cloud

.... But this is the cloud so it doesn’t need to.....

Page 25: Extending on premise applications to the cloud

IIS Http Cache

ElastiCache

S3

Remote API

Application

Level 1 Cache Permanent DataLevel 2 Cache

Page 26: Extending on premise applications to the cloud

Proactive Caching?

Page 27: Extending on premise applications to the cloud

ElastiCache S3

Remote API

CachePopulation

Scheduler

Page 28: Extending on premise applications to the cloud

Scheduler? On AWS?

Page 29: Extending on premise applications to the cloud

If only I could just use

an Azure Worker role...

Page 30: Extending on premise applications to the cloud

... wait a minute... I

can!

Page 31: Extending on premise applications to the cloud

A hybrid cloud!!!

Page 32: Extending on premise applications to the cloud

Now just need to share business logic across standard and mobile

systems...

Page 33: Extending on premise applications to the cloud

At least that will be easy.

Thanks to Dependency

Injection

Page 34: Extending on premise applications to the cloud

StandardUI

BusinessLogic

References

References

OracleRepository

Page 35: Extending on premise applications to the cloud

StandardUI

BusinessLogic

References

References

OracleRepository

Implements

Repository Interface

Business Logic Interface

Implements

Config : UseOracle

Repository

Page 36: Extending on premise applications to the cloud

Mobile UIStandard

UI

BusinessLogic

References References

References

OracleRepository

Implements

Repository Interface

AWSRepository

Implements

Business Logic Interface

Implements

Config : UseAWS

Repository

Config : UseOracle

Repository

Page 37: Extending on premise applications to the cloud

Now where shall I store mobile application data?

Page 38: Extending on premise applications to the cloud

Let’s use DynamoDB

Page 39: Extending on premise applications to the cloud

Why?

Page 40: Extending on premise applications to the cloud

It’s new, I want to play

with it.

Page 41: Extending on premise applications to the cloud

And if the client asks?

Page 42: Extending on premise applications to the cloud

Intechnica: Chose DynamoDb for Mobile app storage

Why Quick and easy to implement Very small chunks of data to store No issue around data integrity – don’t need full relational structure No complex querying required

Page 43: Extending on premise applications to the cloud

Finished Solution

Page 44: Extending on premise applications to the cloud

Dynamo DBMobile Application

Data

ElasticacheCaching smaller

items

S3Caching larger

itemsAzure Worker RoleScheduling Service

CachePopulation

Remote API

Mobile Api

Native Apps

EC2 Instance

DataAccess

AWS

Page 45: Extending on premise applications to the cloud

Web: www.intechnica.co.ukEmail: [email protected]: @andy_still / @intechnica

Blog: http://blog.intechnica.co.uk/author/andyintechnica/

Tel: 0845 6809679

Address: Fourways House, 57 Hilton Street, Manchester, M1 2EJ