Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
dsi-javaee-in-the-cloud-andreadis
1. Red Hat
Java EE in the cloud
Dimitris Andreadis
DSI 2011, Portorož, Slovenija
1 DSI 2011, Portorož, Slovenija
2. Agenda
● Why PaaS is important
● Existing Java PaaS offerings
● Java EE and the Cloud
● JBoss/RedHat and the Cloud
● Conclusion
2 DSI 2011, Portorož, Slovenija
3. Agenda
● Why PaaS is important
● Existing Java PaaS offerings
● Java EE and the Cloud
● JBoss/RedHat and the Cloud
● Conclusion
3 DSI 2011, Portorož, Slovenija
4. The most Powerful Shift in Enterprise
Computing in the last Decade
Provide new services despite
The Cloud budget limits
Increase enterprise agility
Improve service levels
Reduce capital requirements
Increase operational efficiency
4 DSI 2011, Portorož, Slovenija
5. Gartner proclaims 2011 to be
“The Year of the PaaS”
● By 2013, all leading software vendors will aggressively
compete for leadership in the cloud platform market
● By 2014, most mainstream IT organizations will have
a positive experience using a PaaS service and will be
increasing its use.
● By 2015, cloud platform experience will be a listed or
demanded skill in most hiring decisions by IT software
projects.
5 DSI 2011, Portorož, Slovenija
6. PaaS Provides Abstraction & Automation
A Cloud provides PaaS Cloud: API & Service
abstraction layers to abstraction,
manage scale and 3rd Abstraction maps app
Developers APIs and services to
complexity
cloud resources
• Self service
IaaS Cloud: Resource abstraction,
• Abstracted, elastic 2nd Abstraction maps
resources cloud to virtual
IT/Cloud Admins resources
• Location-independent
storage & services Virtualization: Hardware abstraction,
• Users, Groups 1st Abstraction maps
Virt Admins virtual to physical
• Accounting resources
• API's, Drivers, Tools Bare metal: Full access,
No Abstraction
• Federation System Admins
6 DSI 2011, Portorož, Slovenija
8. Current PaaS vs. True PaaS
● Current PaaS is more like a Glorified IaaS
● Pre-installed, pre-configured middleware
● With some nice UI and scripting glue
Deploy App:
Provision Provision DB Deploy schema
cluster
Still many IT tasks to perform
Deploy App to (not a transparent update process)
● Provision cluster:
each node
provision Configure LB
nodes
Setup BC for QA cluster
Setting up IaaS components
cluster
● Configure DNS
Provision DB:
Provision
Complexity is still there
node
Setup BC for DB
●
Provision node:
Configure AS
Manage environment (recurring)
Analyse sec. Analyse QA Analyse AS/OS
bulletins bulletins logs
maintain OS maintain JVM maintain AS
maintain DB maintain FW Validate/QA
Metering/Scaling (recurring) stack
Measure App Provision node
performance
Update Cluster Update LB Update Security
8 DSI 2011, Portorož, Slovenija
9. Agenda
● Why PaaS is important
● Existing Java PaaS offerings
● Java EE and the Cloud
● JBoss/RedHat and the Cloud
● Conclusion
9 DSI 2011, Portorož, Slovenija
10. Google App Engine (GAE)
● A Jetty based web container that
scales the Google Way!
● Adapt your application design to the Google paradigm
● Let the engine assume full control of resources and I/O
● Remove the database bottleneck with NoSQL BigTable
● Use misc facilities, mail, memcache, schedulers, SSO
● Enjoy zero administration and maintenance
● Provisioning, monitoring, fail-over, sharding
● Secure, reliable and cost efficient
10 DSI 2011, Portorož, Slovenija
11. Google App Engine (GAE) – cont.
● Restricted Java APIs (JRE Class White List)
● Restricted I/O, no Threads, DB operations
● No full EE (e.g. EJB, JMS, JCA, etc.)
● Questionable framework support (e.g. Hibernate, Seam,
RichFaces, etc.) with many workarounds
● Various limits & timeouts
● Outbound connections, 5-10secs
● Request must return within 30secs
● Queries may return up to 1000 results
11 DSI 2011, Portorož, Slovenija
12. Google App Engine (GAE) – cont.
● Great for new applications with scalability potential
● Pay nothing or as-you-go
● Too many constraints and portability concerns
● Often a show stopper
● Enhanced App Engine for Business on the way
● Hosted SQL support, etc.
12 DSI 2011, Portorož, Slovenija
13. Amazon Elastic Beanstalk (beta)
● Managed Apache Tomcat container on EC2
● Use any compatible Java frameworks
● No limitation on threading, file or network I/O
● Limited only by the capacity of the underlying VM
● Many database options
● Amazon RDS (MySQL and soon Oracle 11g) on
dedicated/managed hosts
● Amazon SimpleDB (NoSQL)
● Roll out your own with Relational AMIs over EBS
volumes.
13 DSI 2011, Portorož, Slovenija
14. Amazon Elastic Beanstalk (beta)
● Control scaling options
● Fire up new instances based on predefined rules
● But you need to setup session replication yourself
● Access to other Amazon Simple * Services
● Queue (SQS), Storage (S3), Email (SES)
● Payments APIs, etc.
14 DSI 2011, Portorož, Slovenija
15. Amazon Elastic Beanstalk (beta)
● Natural PaaS evolution step for AWS IaaS
● Still offering full control over underlying IaaS
● Proven option for Enterprise Applications
● Cost is an issue for small websites/applications
15 DSI 2011, Portorož, Slovenija
16. CloudBees
● RUN@Cloud infrastructure acquired from Stax
Networks
● Support for Tomcat (and soon JBoss AS)
● Utilizes EC2 (with plans for other IaaS providers)
● More IaaS sharing options for lower costs
● Multiple appServer instances on the same virtual server
● Inactive instances are swapped out of memory
● DB servers can also share virtual host
16 DSI 2011, Portorož, Slovenija
17. CloudBees – cont.
● DEV@Cloud a.k.a. Hudson/Jenkins as a Service
● A Continuous Integration environment that scales
● Private Maven Repositories
● Git/Svn Repositories (soon)
● Going for DEV@Cloud to RUN@Cloud
17 DSI 2011, Portorož, Slovenija
18. Agenda
● Why PaaS is important
● Existing Java PaaS offerings
● Java EE and the Cloud
● JBoss/RedHat and the Cloud
● Conclusion
18 DSI 2011, Portorož, Slovenija
19. Why the JVM is good for the Cloud
● The Java Virtual Machine is already
a managed environment
● Portability across O/S & JVM implementations
● Remote debugging/profiling/monitoring hooks
● Security Policies
● Base runtime for different JVM languages
● Ceylon, Groovy, Java, JPython, JRuby, Scala, etc.
19 DSI 2011, Portorož, Slovenija
20. Why Java EE is GOOD for the Cloud
● Java EE is essentially a managed
container architecture
● Packaging is standardized
● Resources are managed
● Services are injected
● Applications are isolated
● Security is part of the model
● Basic monitoring is provided
● Clustering is supported
● Portability between Java EE Containers
is reasonably good
20 DSI 2011, Portorož, Slovenija
21. Why Java EE is BAD for the Cloud
● Most EE servers still heavyweight
● Applications often assume exclusive runtime usage
● Modularity of applications and services an afterthought
● Setting up of standard services not standardized
● Configuring clustering facilities even less standardized
● Traditional RDBMS stores present scalability problems
21 DSI 2011, Portorož, Slovenija
22. The PaaS reality
● All of your Java EE are belong to us!
● You do not control the Platform
● You may have to share the Platform
● You need a portable way to configure the Platform
● For existing Java PaaS solutions
● Either adapt to what is offered, or
● Tweak the underlying infrastructure
22 DSI 2011, Portorož, Slovenija
23. Java EE 7 Goals
● Multitenancy support
● Different apps sharing a runtime
● Potentially 100's of them
● Service Metadata
● Configuration and QoS for provided services
●
Clustering, 2nd level Caching (e.g. cloud.xml)
● New Cloud “Deployer” Role
23 DSI 2011, Portorož, Slovenija
24. Java EE 7 Goals – cont.
● Modularity (compatible with SE 8)
● Versioning of apps, Dependencies
● Versioning of APIs/Impls, BOMs
● New APIs
● Web Sockets, HTML 5, JSON
● JCache, NoSQL?
● Updates to existing APIs
● JMS, JPA, EJB, CDI, BV, Servlet, JAX-RS, JSF, ...
24 DSI 2011, Portorož, Slovenija
25. Java EE 7 Goals – cont.
● Target Timeframe – end of 2012
● Timeboxed Release Design by Committe®
● The “Enterprise Cloud” - WARNING!
● Let best practices emerge, then standardize
25 DSI 2011, Portorož, Slovenija
26. Agenda
● Why PaaS is important
● Existing Java PaaS offerings
● Java EE and the Cloud
● JBoss/RedHat and the Cloud
● Conclusion
26 DSI 2011, Portorož, Slovenija
28. Achieve Flexibility and Avoid Lock-in With
Portability in the Cloud
28 DSI 2011, Portorož, Slovenija
29. Red Hat Cloud Foundations PaaS
29 DSI 2011, Portorož, Slovenija
30. Makara Accelerates
Red Hat Cloud Foundations PaaS
● Provision and secure Cloud resources
● Support for JBoss and PHP applications
● Application auto-scaling
● Performance monitoring for the entire stack
● Dynamic log management built in
30 DSI 2011, Portorož, Slovenija
31. Red Hat Public Cloud PaaS Service
●
1st Release of Red Hat's PaaS offering will be as an
online service
● Hosted public cloud service by Red Hat
● Will offer choice of public IaaS clouds for back-end
providers
● Ideal for developers wanting to develop new applications
rapidly as well as enterprises wanting to provide self-
service development, test, and production environments
Developers can currently try out an online preview of Red Hat's PaaS at
http://makara.com
31 DSI 2011, Portorož, Slovenija
33. JBoss AS 7.0 – Elasticity
● Faster (Parallel) Start-up
● 3 secs (AS 6.0 ~19s)
● Smaller Memory Footprint
● 16M (AS 6.0 ~180M)
● Smaller Distribution
● 60M independent to the number of profiles
33 DSI 2011, Portorož, Slovenija
34. JBoss AS 7.0 – Manageability
● Multi-node Centralized Configuration
● Or Standalone
● Multiple management APIs
● CLI, Java, HTTP, Console
● Simplified Configuration
● No intermixing with internal wiring
34 DSI 2011, Portorož, Slovenija
35. JBoss AS 7.0 – Modularity
● Based on JBoss Modules
● In anticipation of Java SE 8
● With Support for OSGi Bundles
● Modular
● Do not expose implementation details
● Better Classloader Isolation
35 DSI 2011, Portorož, Slovenija
36. JBoss AS 7.0 – Roadmap
● AS 7.0 currently in Beta3*
● 7.0 Final (EE6 Web Profile)
● 7.1 Final (EE6 Full Profile)
● JBoss AS 7.0 will be the base for JBoss
Enterprise Application Platform 6 (EAP)
*Check out JBoss JIRA for an up-to-date schedule
36 DSI 2011, Portorož, Slovenija
37. Agenda
● Why PaaS is important
● Existing Java PaaS offerings
● Java EE and the Cloud
● JBoss/RedHat and the Cloud
● Conclusion
37 DSI 2011, Portorož, Slovenija
38. PaaS is all about balance
Managed Flexibility &
Scalability Control
38 DSI 2011, Portorož, Slovenija
40. Evaluating PaaS providers
● Ask the right questions
● Ease-of-use, Management, QoS, Cost
● Ability to
● use arbitrary technologies & frameworks
● move code & data between different clouds
● abstract and choose application services
● access the underlying infrastructure
40 DSI 2011, Portorož, Slovenija