extending on premise applications to the cloud

Post on 30-Jun-2015

772 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Extending On-Premise Applications to the cloud

Andrew Still Technical Director

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:

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

The Problem

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!!

OK!!I’ll get straight on

it!!

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

What’s the application?

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

Current System

Web Server Farm

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

Sql Server DB(Website specific content)

Core Business Systems

Why AWS?Why not just build this on the

current system?

Longer term ambition to open areas of the system

to additional 3rd party uses

Separation from core, business critical systemsPlatform Stressed at

peak times

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

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

How will the caching datastore work?

I’ll just fire up an RDS

Oracle instance and

sync the data

That seems a bit old style....

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

What else does AWS have to offer?

Sql ServerS3

MySql RDS

SimpleDB Elasti

Cache

DynamoDB

Oracle RDS

What is needed?

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

No one size fits all....

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

IIS Http Cache

ElastiCache

S3

Remote API

Application

Level 1 Cache Permanent DataLevel 2 Cache

Proactive Caching?

ElastiCache S3

Remote API

CachePopulation

Scheduler

Scheduler? On AWS?

If only I could just use

an Azure Worker role...

... wait a minute... I

can!

A hybrid cloud!!!

Now just need to share business logic across standard and mobile

systems...

At least that will be easy.

Thanks to Dependency

Injection

StandardUI

BusinessLogic

References

References

OracleRepository

StandardUI

BusinessLogic

References

References

OracleRepository

Implements

Repository Interface

Business Logic Interface

Implements

Config : UseOracle

Repository

Mobile UIStandard

UI

BusinessLogic

References References

References

OracleRepository

Implements

Repository Interface

AWSRepository

Implements

Business Logic Interface

Implements

Config : UseAWS

Repository

Config : UseOracle

Repository

Now where shall I store mobile application data?

Let’s use DynamoDB

Why?

It’s new, I want to play

with it.

And if the client asks?

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

Finished Solution

Dynamo DBMobile Application

Data

ElasticacheCaching smaller

items

S3Caching larger

itemsAzure Worker RoleScheduling Service

CachePopulation

Remote API

Mobile Api

Native Apps

EC2 Instance

DataAccess

AWS

Web: www.intechnica.co.ukEmail: andy.still@intechnica.co.ukTwitter: @andy_still / @intechnica

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

Tel: 0845 6809679

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

top related