1. Rapid Cloud Development mit Spring Roo
Wolkige Angelegenheit
Kai Wähner
MaibornWolff et al GmbH
2. Ziel dieses Vortrags
Bullet Point
Boot Camp
Nur wenige Folien ...
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
3. Ziel dieses Vortrags
... stattdessen viel „Live Hacking“ !!!
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
4. Was ist die Key Message?
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
5. Was ist die Key Message?
Die Konzepte von Spring Roo und PaaS verstehen!
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
6. Was ist die Key Message?
Die Konzepte von Spring Roo und PaaS verstehen!
Die Kombination von Spring Roo und PaaS kennenlernen!
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
7. Was ist die Key Message?
Die Konzepte von Spring Roo und PaaS verstehen!
Die Kombination von Spring Roo und PaaS kennenlernen!
Sinnvolle Einsatzmöglichkeiten verstehen!
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
8. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
9. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
10. Wieso Spring Roo?
Rapid Application
Development
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
11. Verschiedene Arten von Webanwendungen
Classical Portal
Web
CRUD Application
Time to
Short Long Develope
Rich Internet
Rich Client Application
(RIA)
www.mwea.de Kai Wähner 06.09.2011 Seite 11
12. Spring Roo eignet sich hervorragend für CRUD-Clients
Classical Portal
Web
CRUD Application
Time to
Short Long Develope
Rich Internet
Rich Client Application
(RIA)
www.mwea.de Kai Wähner 06.09.2011 Seite 12
13. CRUD Framworks im Java-Umfeld
CRUD
(Roma Framework)
www.mwea.de Kai Wähner 06.09.2011 Seite 13
14. CRUD Framworks im Java-Umfeld
(Roma Framework)
www.mwea.de Kai Wähner 06.09.2011 Seite 14
15. CRUD Framworks im Java-Umfeld
Gutes CRUD Framework
(Roma Framework)
www.mwea.de Kai Wähner 06.09.2011 Seite 15
16. CRUD Framworks im Java-Umfeld
Gutes CRUD Framework
(Roma Framework)
Kein Java
www.mwea.de Kai Wähner 06.09.2011 Seite 16
17. CRUD Framworks im Java-Umfeld
Gutes CRUD Framework
Kein großer Unterstützer
(Roma Framework)
Keine große Community
Kein Java
www.mwea.de Kai Wähner 06.09.2011 Seite 17
18. ... und der Gewinner* ist:
* aus der Sicht eines Java-Entwicklers!
www.mwea.de Kai Wähner 06.09.2011 Seite 18
19. Was ist Spring Roo?
Web-Framework
Full-Stack-Framework
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
20. Was ist Spring Roo?
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
21. Was ist Spring Roo?
Configuration
Marathon
Roo-Shell
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
23. Technologien / Frameworks
Java Maven
Spring
JPA
AspectJ
JUnit
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
24. Add-ons
JMS Vaadin
Solr GWT
Selenium Anzahl
kontinuierlich
Weitere ... steigend
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
25. IDE-Unterstützung
AspectJ
Roo-Shell
Spring
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
26. IDE-Unterstützung
AspectJ
Roo-Shell
Spring
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
27. IDE-Unterstützung
AspectJ
Roo-Shell
Spring
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
28. IDE-Unterstützung
AspectJ
Roo-Shell
Spring
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
29. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
30. Ziele des Cloud Computing
Kosten
Flexibilität
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
31. Deployment Modelle
Private Cloud
Hybrid Cloud
Public Cloud
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
32. Abgrenzung IaaS vs. PaaS vs. SaaS
Cloud-Security and Privacy, O‘Reilly, 2009
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
33. Abgrenzung IaaS vs. PaaS vs. SaaS
Cloud-Security and Privacy, O‘Reilly, 2009
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
34. Definition von PaaS
„Platform as a service (PaaS) is the delivery of a computing platform and
solution stack as a service. PaaS offerings facilitate deployment of
applications without the cost and complexity of buying and managing the
underlying hardware and software and provisioning hosting capabilities.
[PaaS provides] all of the facilities required to support the complete life
cycle of building and delivering web applications and services entirely
available from the Internet.“
Wikipedia
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
35. Tradeoff
Einfaches Deployment
vs.
Einschränkungen bei der
Entwicklung
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
36. PaaS im JVM-Umfeld
Elastic Beanstalk
Anzahl kontinuierlich steigend ...
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
37. PaaS im JVM-Umfeld
Elastic Beanstalk
Anzahl kontinuierlich steigend ...
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
38. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
39. GAE - Unterstützte Programmiersprachen
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
40. GAE - Deployment Modelle
Private Cloud
Hybrid Cloud
Public Cloud
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
41. GAE - Services
Push Queue
Pull Queue
URL Fetch
Accounts
Mail
Memcache
XMPP
Images
Datastore
Blobstore
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
42. GAE - Einschränkungen
JRE Class White List
Workarounds für Frameworks
No „naked“ Domains
Eingeschränkte Portabilität
Keine SQL-Datenbank
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
43. GAE – Keine SQL-Datenbank
SQL
JPA / JDO /
low level API
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
44. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
45. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
46. Cloud Foundry - Unterstützte Programmiersprachen
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
47. Cloud Foundry - Deployment Modelle
Private Cloud
Hybrid Cloud
Public Cloud
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
48. Cloud Foundry - Services
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
49. Open Source schafft neue Produkte
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
50. Open Source schafft neue Produkte
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
51. Cloud Foundry - Einschränkungen
Nur die unterstützen Services nutzbar
Spring-Anwendung
(ansonsten deutlich mehr Aufwand)
noch BETA
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
52. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
53. Agenda
1) Spring Roo
2) Platform as a Service (Paas)
3) Google App Engine (GAE)
4) Live Hacking: GAE mit Spring Roo
5) VMware Cloud Foundry
6) Live Hacking: Cloud Foundry mit Spring Roo
7) Kritik und Einsatzempfehlungen für Spring Roo
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
61. PRO - Spring Roo und Google App Engine
Production-ready
Sehr ausführliche Dokumentation
Stetige Weiterentwicklung
(SQL-Support „bald“ ?!)
Schnelle Realisierung von
CRUD-Anwendungen für die Cloud
Kostenlos (für kleine Anwendungen)
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
62. CONTRA - Spring Roo und Google App Engine
JPA (viele Einschränkungen) statt JDO
Relationen (noch ?!) per Hand umsetzen
Keine GAE-spezifischen Roo-Kommandos
Kein „Write once run everyhwere“
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
64. PRO - Spring Roo und Cloud Foundry
Web-Anwendungen wie bisher entwickeln
und dann einfach (irgendwo) deployen
MySQL => Relationale Datenbank
Open Source / Community +
Kommerzielle Anbieter
Gute Integration von Cloud Foundry und
Roo in STS
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
65. CONTRA - Spring Roo und Cloud Foundry
„Abhängigkeit“ von bestimmten Frameworks
und Services
Kaum Dokumentation
Roo-Kommandos kein wirklicher Vorteil
Noch nicht produktiv einsetzbar / Kosten?
Zugriff auf Cloud-DB nur über eigene Anwendung
(kein DB-Client oder Admin-GUI)
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
66. Kritik und Einsatzempfehlungen
=
Rapid Cloud Development
???
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
67. Rapid Cloud Development mit Spring Roo ???
Ja, wenn ...
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
68. Rapid Cloud Development mit Spring Roo ???
Ja, wenn ...
... das Ziel eine CRUD-Anwendung ist,
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
69. Rapid Cloud Development mit Spring Roo ???
Ja, wenn ...
... das Ziel eine CRUD-Anwendung ist,
... und die Einschränkungen akzeptabel sind,
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
70. Rapid Cloud Development mit Spring Roo ???
Ja, wenn ...
... das Ziel eine CRUD-Anwendung ist,
... und die Einschränkungen akzeptabel sind,
... oder man in PaaS-Entwicklung
einsteigen möchte.
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011
72. Was war die Key Message?
Die Konzepte von Spring Roo und PaaS verstehen!
Die Kombination von Spring Roo und PaaS kennenlernen!
Sinnvolle Einsatzmöglichkeiten verstehen!
www.mwea.de Rapid Cloud Development mit Spring Roo 06.09.2011