moving rich internet applications into the cloud: seven challenges

Post on 17-May-2015

1.245 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Matias\' presentation at Cloud Computing Expo, Santa Clara, CA.

TRANSCRIPT

12/04/23 Rapid development of cloud applications 1

Moving Rich Internet Applications into the Cloud: 7 Challenges

Matias Baginimatias@jrapid.comSoftware EngineerFounder and CEO, JRapid Corp.Buenos Aires, Argentina

12/04/23 Rapid development of cloud applications 2

Agenda

• Why move applications into the cloud• Levels of cloud enabled applications• Challenges• Proposals• Final conclusion

12/04/23 Rapid development of cloud applications 3

Some guidelines about this session

• When talking about “cloud” I will refer to SaaS• Target audience– Developers– ISVs– SaaS companies

• Some of the concepts what I will talk about apply for any web applications, not just “cloud applications”

• Mix some “theory” with coding

12/04/23 Rapid development of cloud applications 4

Why move applications into the cloud

• ISVs get many benefits from moving their software into the cloud:– Scalability– Improved sales convertion rates– Reduced infrastructure costs– Agility

12/04/23 Rapid development of cloud applications 5

The big question is…

I have a web application…If I upload it to, for instance, Amazon EC2…Am I “doing” Cloud Computing?

12/04/23 Rapid development of cloud applications 6

5 levels of cloud enabled applications

12/04/23 Rapid development of cloud applications 7

Challenges of moving into the cloud

• Multitenancy• Clustering• Security• Robustness• Mashups• Productivity• Multibrowser programming

12/04/23 Rapid development of cloud applications 8

Multitenancy

• What is Multitenancy?– Multitenancy refers to a principle in

software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants).

• Why is it important?– Scalability, reduced complexity of administration

12/04/23 Rapid development of cloud applications 9

Multitenancy

• Building a contact manager– We would like to sell it “as a service” to…

• Ford• GM• Some other customers…

– Options• Multiple instances, multiple databases: hard to scale and

maintain• Single instance, single database: hard to build• Single instance, multiple databases: Multitenancy

12/04/23 Rapid development of cloud applications 10

Clustering

• Stateless/Stateful applications• Session replication• Load balancing• Sticky session

12/04/23 Rapid development of cloud applications 11

Clustering

Application server

Database serverBrowser

12/04/23 Rapid development of cloud applications 12

Clustering

Application server

Database serverBrowser

12/04/23 Rapid development of cloud applications 13

Clustering

Application server

Database server

Browser Load balancer

12/04/23 Rapid development of cloud applications 14

Clustering

• Stateless– Easy, no complexity, no data to comunicate

• Stateful applications– Session replication• Replicated data must be serializable• Static variables in Java don’t get replicated

– Sticky session• No HA

12/04/23 Rapid development of cloud applications 15

Session replication

Application server

Database server

Browser Load balancer

12/04/23 Rapid development of cloud applications 16

Sticky session

Application server

Database server

Browser Load balancer

12/04/23 Rapid development of cloud applications 17

Clustering

• When building applications that are going to be clustered, some decision must be made beforehand.– Stateless– Session replication– Sticky session

12/04/23 Rapid development of cloud applications 18

Security

• Data in the cloud can be hacked…• Lots of known vulnerabilities– SQL injection– DDOS– XSS: Cross Site Scripting– XSRF: Cross Site Request Forgery

12/04/23 Rapid development of cloud applications 19

Robustness

Fallacies of Distributed Computing• The Fallacies of Distributed Computing are a set of common but flawed

assumptions made by programmers when first developing distributed applications.

• The network is reliable.• Latency is zero.• Bandwidth is infinite.• The network is secure.• Topology doesn't change.• There is one administrator.• Transport cost is zero.• The network is homogeneous.

From Sun Microsystems. Peter Deutsch

These fallacies apply to cloud computing

12/04/23 Rapid development of cloud applications 20

Mashups

• Ability to bring all of your interest into one place

• To get all the power of the cloud, you need to build mashups…

• Maps, web services, docs, social networks.

12/04/23 Rapid development of cloud applications 21

Productivity

• Beware: building software during the 90s was easier and faster than today.

• Platforms for building cloud applications are on their early days.

• Rapid Application Development (RAD) tools for cloud computing are just emerging.

• Do not estimate the same time for building desktop applications and cloud applications.

12/04/23 Rapid development of cloud applications 22

Multibrowser programming

• The myth “Build once, deploy everywhere”

• The problem is not just to get your application running in IE, Firefox or whatever browser is there.

• The biggest problem is that you built an application; it has been running for a year without problems.

• And then there is a new browser in the market, or a new version of an old one.

• And your application stops working as desired!

12/04/23 Rapid development of cloud applications 23

So, should I move my applications into the cloud?

• Of course!

• How to overcome these challenges– DIY solution– PaaS (Platform as a Service)• http://en.wikipedia.org/wiki/Platform_as_a_service• By using JRapid!

12/04/23 Rapid development of cloud applications 24

Thank you!

Matias Baginimatias@jrapid.com

Follow us on twitter.com/JRapidJoin JRapid alpha program at www.jrapid.com

top related