Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Java in the Cloud

description
by

hari gottipati

on 11 February 2010

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Java in the Cloud

Java in the Cloud
by
Hari K. Gottipati
harikrishna@gmail.com
Topics
What is Cloud?
Different Clouds?
Java in the Cloud & Cloud providers
Cloud pitfalls
What is Cloud?
Lots of definitons
Focus on primary thing, outsource rest
Foucs on development, outsource deployment
Startups - develop it. Why IT burden?
Corporations are different - scale it
Web hosting
No in-house data centers
With broadband, apps can be
in a different data centers(-CDN)
Hard to scale
Pay even if you don't use
Deployment is not easy
SaaS
Some one else owns the application
Fixed subscription fee
+
You don't own the application
You don't manage it
-
Don't fit for complex requirements
Data in some one else control
Pay even if you don't use
Cloud
People want covinient and simple SaaS with
the flexibility of hosting custom applications
A hybrid environment - Web hosting+SaaS
No IT headaches
Pay only what you use
Virtualization will eliminate deployment/scaling headaches
Virtualization
Applications are independent of infrastructure
Many applications can share the same server
Applications can be on any server
A virtualized app contains everything that needs
to run including DB, middleware and OS
Self packaging unit can be deployed anywhere
Easy to start a new instance
Car analogy
Own data center - having own car
Pay full price
You pay for software(OS,DB etc)/support/warranty
Customize however you want
You manage
SaaS - lease car
Pay monthly, not full price
Limited customizations - number plate/title
No mainteinance(make sure)
Cloud - cab
No monthly fee, pay as you go(can be even for DB, OS in future)
Hire whenever you need, add/remove
new instances
Easy maintainance
Scalability
Reliability
Cloud
Different Clouds
IaaS
- Amazon EC2
- Micorsoft Azure(?)
- Rackspace
- Flexiscale and many more
PaaS
- Google AppEngine for Java, Pyhton
- Stax for Java
- SpringSource Cloud Foundry for Spring Apps
- RightScale for Java
- Heroku for Ruby on Rails
- Force.com for SalesForce.com CRM
- Aptna Cloud and many more
Advantages, disadvantages
Java in the Cloud
Amazon EC2 - freedom
Goolge AppEngine - restricted Java
Microsoft Azure - mainly for MS apps,
Java support exists
Stax
Amazon EC2
Freedom
No limits, pay as you use
Many tools
Many softwares available for EC2
Google AppEngine
Restrictions:
Datastore with JPA, no DB,
Java 5 and 6, sorry no JDK1.4

Not supported:
Enterprise Java Beans (EJB)
JAX-RPC
JAX-WS
Java Database Connectivity (JDBC)
Java EE™ Connector Architecture (JCA)
Java Management Extensions (JMX)
Java Message Service (JMS)
Java Naming and Directory Interface (JNDI)
Remote Method Invocation (RMI)
Hibernate
Supported:
Struts1 & 2
Spring
Tapestry
Tiles, Sitemesh
Java Server Faces (JSF) 1.1 - 2.0
Java Server Pages (JSP) + JSTL
Java Servlet API 2.4
JavaBeans™ Activation Framework (JAF)
Java Architecture for XML Binding (JAXB)
JavaMail -- notes
XML processing APIs including DOM, SAX, and XSLT
GWT
Memcache
Google AppEngine
Google AppEngine
Java app quota limits
request size - 10 megabytes
response size - 10 megabytes
request duration - 30 seconds
simultaneous dynamic requests - 30
maximum number of application files - 1,000
maximum number of static files - 1,000
maximum size of an application file - 10 megabytes
maximum size of a static file - 10 megabytes
maximum total size of all application and static
files - 150 megabytes
Google AppEngine
Cronjob support
Secure Data Connector (SDC) to access the data behind the firewall
Why should I use? FREE(?)
List of the Java classes supported http://code.google.com/appengine/docs/java/jrewhitelist.html
List of frameworks supported
http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
Microsoft Azure
Supports Java
Eclipse plug-in
Windows solution
AppFabric bridges in-house and cloud
http://www.windowsazure4j.org/
http://www.interoperabilitybridges.com
/projects/windows-azure-sdk-for-java.aspx

Stax
Based on Amazon EC2
Focused on Development/QA
Tools for monitoring, more to come
In Beta now
Tomcat only, plans to add new containers
Struts, Wicket, Spring, Hibernate, GWT, Flex and more.
EC2 tailored for Java apps

Comparision
What to look for?
Tools
- IDE support
- Deployment
- Monitoring
- Alerts
- Logs

Features
- Auto scalable

Cloud pitfalls
+
Easy to maintain
Easy to scale, dynamic scaling
No IT investment/risk
Runs on proven infrastructure
-
No local file system dependence
applications can't rely on the local file system for persistence
Code should be Cloud friendly
applications need to avoid relying on local server memory state (except for caching in
which case apps just need to be designed to restore the cache from a persistent location like DB if the cache experiences a miss)
No timezone dependencies
No PCI compliance
Q&A
Thank you!
Cloud interoperability
No interoperability between clouds - Amazon
images won't run on Rackspace servers
Provider lockup
Difficult to move from one provider to another
Backup mechanisms are not there
Distributed Management Task Force(DMTF) working
on open management standards for cloud computing
under 'Open Cloud Standards Incubator'
Full transcript