extending on premise applications to the cloud
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: [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