cloud computing for the enterprise // [email protected] november 18th, 2011. this work is licensed under...

27
Cloud Computing for the Enterpr http://www.isaca.lk/ [email protected] November 18th, 2011. This work is licensed under a Creative Commons Attribution 3.0 Unported Licen Building Applications for the Cloud Kamal Wickramanayake Enterprise/Software Architect and Trainer - Software View http://www.training.lk/ http://www.itgovernance.lk/ [email protected]

Upload: suzanna-gallagher

Post on 26-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Cloud Computing for the Enterprise

http://www.isaca.lk/ [email protected] 18th, 2011. This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Building Applications for the Cloud

Kamal WickramanayakeEnterprise/Software Architect and Trainer - Software View

http://www.training.lk/ http://www.itgovernance.lk/[email protected]

Page 2: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Agenda

Enterprise software architecture evolution Architecture of an application on IaS Architecture of an application on PaaS Cloud application development guidelines Storage options Database options Support services Influence on architecture due to hybrid deployment Why Service Oriented Architecture (SOA) is a

must for enterprise computing?

Page 3: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

Jacquard loom - 1801

Page 4: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

Everything

Standalone application

Page 5: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

Thick client

Presentation+

Business Logic

Data

Client – server (2 tier)

Page 6: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

Thin client

Presentation

Data

3 tier

BusinessLogic

Page 7: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

Presentation Data

Clustered

BusinessLogic

Page 8: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Data

Enterprise software architecture evolution

Presentation

Data

Clustered + partitioned (data)

BusinessLogic

Page 9: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

What can be partitioned? Data Business logic Presentation

Beyond clustering and partitioning We need to share resources We need to select (from shared pool) Then aggregate resources

Page 10: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

Grid computing – distributed supercomputing

Page 11: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

Grid computing We need to share resources We need to select (from shared pool) Then aggregate resources

We need A grid master (public interface for job accepting,...) Administration interface A code repository Partition manager (data loading, directing requests to nodes) Messaging cluster Grid nodes!

Page 12: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Enterprise software architecture evolution

How to cook the cloud soup? Get a pint of grid computing Add several more pints of virtualization (cpu, memory,

storage, network – don't worry about from where they come)

Let the virtualization settle in whatever the way Add utility computing as needed This is sufficient to serve the world now

Page 13: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Technical view of the cloud

A network of computer arranged in an unknown topology

You don't have to know about this unknown topology

You need to know how to talk to machines though The whole arrangement should be able to

reconfigure itself For example, network latency will be handled by the

cloud

Page 14: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Architecture of an IaS application

Virtualized IP – not load balancing - Provides fail over without an IP change - You may need to monitor and request the switching from the network management service

Primary “instance”

Backup “instance”(May or may not be running)

Page 15: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Architecture of an IaS application

“instance 1”

Load balancer“instance 2”

“instance 3 (not running)”

Instance pool that auto scales (Infrastructure

provider may request the policy)

Monitoring + adapting(Not your business)

Page 16: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Architecture of an IaS application

“instance 1”

“instance 2”

“instance 3 (not running)”

Instance pool that auto scales (Infrastructure

provider may request the policy)

“instance 1”

“instance 2”

“instance 3 (not running)”

Instance pool that auto scales (Infrastructure

provider may request the policy)

Aspect 1 (Web servers) Aspect 2 (Business logic)

Page 17: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Architecture of an IaS application

“instance 1”

“instance 2”

“instance 3 (not running)”

Instance pool that auto scales (Infrastructure

provider may request the policy)

Aspect 2 (Business logic) External storage will allow arbitrary size storage

External database will allow arbitrary size data

You may have select the exact external storage option and database option

Where's the application?

Page 18: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Architecture of an IaS application

IaS provides a auto scaling infrastructure Your application needs to do everything else

Use other virtualized service APIs (e.g. Access to email, storage, database, ...)

Authentication/authorization and other security tasks Internal load balancing (as the infrastructure scales

up/down)

Page 19: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Architecture of a PaaS application

You don't know in which machine your application is running.

You rent a virtual application server (not managed by you)

Use the service provider's APIs to access services. Beyond what's in the APIs, you cannot do much.

Restricted form of the application Can SSL be used? May be not in the way you want. Can you backup? May be not in the way you want.

Page 20: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Cloud application development guidelines

Determine the model Can you simply use the PaaS model? It's easier. But

less flexible. Do you want to use the IaaS model? It's not easy, but

flexible. Look at the other services offered by the provider

Complementary services may already be available

Page 21: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Storage options

Amazon Web Services (AWS) Local instance storage of EC2 instances

Typical file system Amazon Simple Storage Service (S3)

External 'object' store that can be accessed from any Internet connected system.

Amazon Elastic Block Store (EBS) External file system

Google App Engine Blobstore

Store very large objects that cannot easily be handled via database calls

Page 22: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Database options

Amazon Web Services (AWS) Amazon SimpleDB

A non-relational data store optimized by Amazon Amazon Relational Database Service

MySQL or Oracle DB instances with simplified manageability options (auto backup, durability, snapshot recovery, scale up/down via API calls).

Amazon ElastiCache In-memory cache

Google App Engine JDO JPA No SQL

Page 23: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Support services

Amazon Web Services (Categories only) Content delivery Deployment and management E-commerce Messaging Monitoring Networking

Page 24: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Support services

Google Data pushing to browser service (than polling) Image manipulation Mail Multitenecy Background task execution Oauth – Lets your application users to use Google

services like spreadsheet Users – Lets users login to your app via Google login

page

Page 25: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Influence due to hybrid deployments

Application needs to support what's available in both ends. Clear boundaries are demanded

Can the cloud end load the non-cloud end than it can handle? Throttling, job queuing needs go up.

Distributed authentication/authorization requirement

Increased need to use middleware

Page 26: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Why SOA is a must (for enterprise computing)?

It is surely possible to build applications without SOA.

From a technical perspective, combining flexible middleware enabled by SOA with flexible infrastructure is brining down a lot of hazel. e.g. AWS, Google already uses web services and

related middleware models a lot From a business perspective, service orientation of

an organization demands 'scalable' infrastructure. Cloud computing is an ideal supply source. Win-win!

Page 27: Cloud Computing for the Enterprise // info@isaca.lk November 18th, 2011. This work is licensed under a Creative Commons

Thank you