![Page 1: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/1.jpg)
Extending On-Premise Applications to the cloud
Andrew Still Technical Director
![Page 2: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/4.jpg)
The Problem
![Page 5: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/6.jpg)
OK!!I’ll get straight on
it!!
![Page 7: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/7.jpg)
Well..... How am I going to do that then?
![Page 8: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/8.jpg)
What’s the application?
![Page 9: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/11.jpg)
Why AWS?Why not just build this on the
current system?
![Page 12: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/15.jpg)
How will the caching datastore work?
![Page 16: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/16.jpg)
I’ll just fire up an RDS
Oracle instance and
sync the data
![Page 17: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/17.jpg)
That seems a bit old style....
![Page 18: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/19.jpg)
What else does AWS have to offer?
![Page 20: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/20.jpg)
Sql ServerS3
MySql RDS
SimpleDB Elasti
Cache
DynamoDB
Oracle RDS
![Page 21: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/21.jpg)
What is needed?
![Page 22: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/23.jpg)
No one size fits all....
![Page 24: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/24.jpg)
.... But this is the cloud so it doesn’t need to.....
![Page 25: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/25.jpg)
IIS Http Cache
ElastiCache
S3
Remote API
Application
Level 1 Cache Permanent DataLevel 2 Cache
![Page 26: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/26.jpg)
Proactive Caching?
![Page 27: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/27.jpg)
ElastiCache S3
Remote API
CachePopulation
Scheduler
![Page 28: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/28.jpg)
Scheduler? On AWS?
![Page 29: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/29.jpg)
If only I could just use
an Azure Worker role...
![Page 30: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/30.jpg)
... wait a minute... I
can!
![Page 31: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/31.jpg)
A hybrid cloud!!!
![Page 32: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/32.jpg)
Now just need to share business logic across standard and mobile
systems...
![Page 33: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/33.jpg)
At least that will be easy.
Thanks to Dependency
Injection
![Page 34: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/34.jpg)
StandardUI
BusinessLogic
References
References
OracleRepository
![Page 35: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/35.jpg)
StandardUI
BusinessLogic
References
References
OracleRepository
Implements
Repository Interface
Business Logic Interface
Implements
Config : UseOracle
Repository
![Page 36: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/37.jpg)
Now where shall I store mobile application data?
![Page 38: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/38.jpg)
Let’s use DynamoDB
![Page 39: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/39.jpg)
Why?
![Page 40: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/40.jpg)
It’s new, I want to play
with it.
![Page 41: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/41.jpg)
And if the client asks?
![Page 42: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/43.jpg)
Finished Solution
![Page 44: Extending on premise applications to the cloud](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062514/5592b5ef1a28ab770d8b4737/html5/thumbnails/45.jpg)
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