moving rich internet applications into the cloud: seven challenges
Post on 17-May-2015
1.245 Views
Preview:
DESCRIPTION
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