24
03/07/22 Rapid development of cloud applications 1 Moving Rich Internet Applications into the Cloud: 7 Challenges Matias Bagini [email protected] Software Engineer Founder and CEO, JRapid Corp. Buenos Aires, Argentina

Moving Rich Internet Applications into the Cloud: Seven Challenges

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 1

Moving Rich Internet Applications into the Cloud: 7 Challenges

Matias [email protected] EngineerFounder and CEO, JRapid Corp.Buenos Aires, Argentina

Page 2: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 3: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 4: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 5: Moving Rich Internet Applications into the Cloud: Seven Challenges

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?

Page 6: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 6

5 levels of cloud enabled applications

Page 7: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 7

Challenges of moving into the cloud

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

Page 8: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 9: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 10: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 10

Clustering

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

Page 11: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 11

Clustering

Application server

Database serverBrowser

Page 12: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 12

Clustering

Application server

Database serverBrowser

Page 13: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 13

Clustering

Application server

Database server

Browser Load balancer

Page 14: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 15: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 15

Session replication

Application server

Database server

Browser Load balancer

Page 16: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 16

Sticky session

Application server

Database server

Browser Load balancer

Page 17: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 18: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 19: Moving Rich Internet Applications into the Cloud: Seven Challenges

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

Page 20: Moving Rich Internet Applications into the Cloud: Seven Challenges

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.

Page 21: Moving Rich Internet Applications into the Cloud: Seven Challenges

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.

Page 22: Moving Rich Internet Applications into the Cloud: Seven Challenges

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!

Page 23: Moving Rich Internet Applications into the Cloud: Seven Challenges

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!

Page 24: Moving Rich Internet Applications into the Cloud: Seven Challenges

12/04/23 Rapid development of cloud applications 24

Thank you!

Matias [email protected]

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