Spring into the Cloud
(Josh Long, Chris Richardson)
http://cloudfoundry.com
http://www.springsource.org
This sessions basically covered Spring and Cloud Foundry and described why they are a match made in heaven.
Concept "rent a cloud" eg. Amazon Web Services(AWS)
cloud computing defines IT as a service and pay per use
>> Layers:
- Saas(Software as a service)
- Paas (Platform as a service)
- Iaas (Infrastructure as a service)
- Clouds are a good option for startups -> scale up and scale down easily
>> Computing Types
- public cloud
- private cloud
- hybrid cloud
There is also the "micro cloud" -> cloud on your own computer
Search for a Framework: early attempts were for example Corba and EJB -> inflexible
Some topics:
- complete application lifecycle management
- cloud controller
- health manager
- router
- Droplet Execution Agents (DEAs)
- possible to use command line: vmc
>> Auto-Reconfiguration
- deploy Spring applicatiosn to the cloud without changing code!
- Cloud Foundry installs a BeanFactoryPostProcessor into your application context during staging
- adds jars to the application
- changes web.xml
-
-
-
-
with Spring's poperty holder
Spring 3.1
- Profile: beans definitions for a specific environment
- Cloud Foundry installs a custom ApplicationContextInitializer during staging
- Adds “cloud” as an active profile
Relational Databases are great:
- SQL
- ACID semantics
- well suported(JPA, Hibernate)
- well understood
BUT
- complicated to map rich domain model to relational schema
- dificult to handle varying attributes
- schema changes
- poor performance in some cases
- impossible to scale horizontally
>> NoSQL
- higher performance
- high scalibility
- richer datamodel
BUT
- it is schemaless
- no transactions
->> Redis
- advanced key-value
- very fast
- optional persistence
Use cases:
- handling tasks that overload a RDBMS
- users: gaurdian.co.uk
->> MongoDB
- document oriented
- JSON style documents
- limited transactions
- rich query language
- very fast
Use cases:
- high volume writes (because its async)
- complex data
- users: SourceForge
Other NoSQL Databases: Neo4j, CouchDB,...
>> Spring Data (for NoSQL)
- template classes
- Java <-> NoSQL Mapping
- Cross Store persistence: in a class through annotation, it is possible to use JPA AND Mongo. So in one class; some attributes get saved in RDBMS and other in Mongo!
Cloud Foundry also offers MySQL, Redis, and MongoDB data services, as well as RabbitMQ messaging service.
----------------------------------------------------
Very interesting session! :))
Presented well and containing code examples. NoSQL seems cool but I DO like my SQL! :) There will be more on NoSQL..
Keine Kommentare:
Kommentar veröffentlichen