Cloud PowerWorkshop at WJAX
This year at WJAX me and my colleagues Halil-Cem Gürsoy, Andreas Hartmann and Stephan Müller from adesso will present the Cloud Power Workshop for the first time. It will cover everything you need to know to implement application with Java for the Cloud.
We will cover
Google App Engine (GAE). It pioneered the PaaS Cloud approach and is quite broadly used nowadays. At the same time GAE has some limitations that you need to know about to successfully build application on the platform - in particular if you use Java.
Then
Cloud Foundry will be shown - it provides a very interesting approach to PaaS - because it supports relational databases and Tomcat which is quite a familiar platform for most Java developers.
To develop Cloud applications successful you need to use novel architectures. We will cover principles like BASE and the CAP theorem. And we will show how to implement Cloud system with good scalability using RabbitMQ and a NoSQL database. Also Map/Reduce using Apache Hadoop will be demoed.
Of course there will be lot of live coding and material to take away so you can try it at home.
Take a look at the
official announcement (German) - looking forward to see you there!
Labels: Cloud, Cloud Foundry, Google App Engine, NoSQL, RabbitMQ, WJAX
Slides "Cloud Architecture" Online Seacon 2011
The slides for the talk "Cloud Architecture" from Seacon 2011 are online:
You can also
download them.
Labels: Cloud, Cloud Architecture, Seacon
Slides from BED Conference Talk about Java Cloud online
BED conference in Berlin was quite enjoyable - thanks to all the speaker and attendees for making it such a success!
You can find the slides for the Java Cloud talk online at
slideshare or they should also appear here:
Labels: BED, Cloud, Java
Private or Public Cloud ?
Currently Cloud is to a lot of people synonymous to "Public Cloud" i.e. some company provides virtual machines or a platform to deploy applications on. Examples are Amazon AWS/EC2, Rackspace, Terremark, Google AppEngine, force.com, vmforce etc. But an enterprise can also build its own Private Cloud. Companies like VMware offer all the infrastructure you need - and there are Open Source offering like Eucalyptus or OpenStack. Which route should you take?
Public Cloud Advantages
- Getting started is very easy - basically a credit card is all you need.
- Different service levels: While Public PaaS are quite common there is not really a lot of choice for private PaaS.
- Almost unlimited ressources - you can easily add more servers and a lot of them if needed.
- You would think that you have to ship data to the Public Cloud provider - actually using e.g. Amazon Virtual Private Cloud you can connect the Public Cloud to your local network using a VPN. I guess you can trust a computer in the Public Cloud at least as much as a (potentially compromised) computer in a DMZ
- It is a logical next step after outsourcing operations or using hosting solution - it just provides more flexible.
- Demanding SLAs are available for the services. For example multiple data centers for redundancy are hard to do by yourself and costly - but readily available in Public Clouds.
Private Cloud Advantages
- You can provide exactly the kind of machines you need. A Public Cloud will only provide a pre defined set of configurations which might or might not offer what you need.
- Legal regulations might make using public clouds impossible.
- You might not want to ship your data into the cloud. But: Salesforce is making 2 billion dollar revenue - and the customer store all their customer contacts, order, revenue forecast etc in the Salesforce Cloud.
- Compared to virtualized environment that are usually already in place a Private Cloud offers a self-service portal. So a user can create a new environment by himself. That means complex and unnecessary processes to approve new environments can be short cut and therefore productivity can increase. However, note that this is also the case for Public Clouds and it is a technological solution to an organizational problem.
Maybe the truth is in the middle: Only for high load you might want to offload work to the Public Cloud. But then you would need a common API for the Public and Private Cloud. Also the Public Cloud would need the same access to data as the Private Cloud - which is doable but might not be trivial. And you would still get different latency.
But: Cloud is in its core a business model. Instead of investing in infrastructure you just rent it - which drives down capital expenditure. This can only really be achieved in a Public Cloud because only then you don't own the infrastructure. Also a Private Cloud can only offer as many ressources as you have purchased.
More applications and data than you think might end in the Public Cloud. The most sensitive business data of quite a few companies are in Salesforce already. If important data cloud not be in the Cloud Salesforce would been doomed - but the reality is that they are very successful.
PS: I would like to hear your opinion. In particular if you are interested to give a talk about "How and why we built a Private Cloud successfully" I would like to hear from you!
Labels: Cloud, Private Cloud, Public Cloud
Developing for the Cloud Workshop
The move to the Cloud is inevitable. SpringSource is now a division of VMware and therefore the Cloud is the most important topic of our work now. And there is a lot of technology we are putting out in this area - e.g. RabbitMQ, GemFire, Redis. So are you wondering what this is all about? Need more insight in how to develop for the Cloud?
Take a look at
Java Development for the Cloud at Entwickler Tage. This one day workshop covers:
- What is the Cloud?
- Advantages of Cloud technologies
- Developing for the Cloud with Spring Roo
- Infrastructure as a Service (IaaS): How applications can be developed with Amazon EC2 and VMware technologies
- Platform as a Service (PaaS): Developing Java application for the Google App Engine and SpringSource Cloud Foundry
- PaaS: Concepts of VMforce
- Architecture for the Cloud
- Data in the Cloud: NoSQL with the example Redis
- Distributed Caching and Data Fabrics for better Scalability with GemFire
- Cloud messaging: RabbitMQ, the AMQP protocol and Java
Interested? You can register above for the event in Mainz, Germany. Let me know if you think other locations might also make sense or if you have any other feedback.
Labels: Cloud, GemFire, RabbitMQ, Redis, Spring
Vortrag bei der JUG Mannheim am 26.5. über Roo und die Cloud
Am 26.5. um 19:30 werde ich bei der Java User Group Mannheim einen Vortrag zum Thema "Spring Roo - Produktive Entwicklung mit Spring, AOP und der Cloud" halten. Durch den Vortrag erhält man einen guten Einblick in die Themen, die bei uns im Moment aktuelle sind: Roo als die Lösung für produktive Java-Entwicklung und die Cloud als die neue Infrastruktur. Bei Interesse bitte einen Blick auf
Spring Roo bei JUG Mannheim werfen oder auf den
Event bei XING.
Wer (wie ich) über den Ort irritiert ist: Hier ist noch ein Link zu
Google Maps.
Bis dahin!
Labels: Cloud, JUG Mannheim, ROO
Cloud & Virtualisierung: Ausfallsicherheit und Last-Verteilung
Nachdem SpringSource von VMware übernommen worden ist, stellt sich natürlich die Frage, welche Auswirkungen diese Übernahme für die Entwickler hat. In diesem Blog-Eintrag - dem noch einige weitere folgende werden - möchte ich gerne über jeweils einen Aspekt der VMware-Technologien und ihrer Auswirkungen auf Software-Architekturen berichten.
Mit Hilfe der VMware-Produkte kann man von der konkreten Hardware abstrahieren. Die vermutlich am weitesten verbreiteten Produkte sind VMware fusion für den Mac
http://www.vmware.com/de/products/fusion/, mit dem man unter Mac OS X in einem virtuellen PC (VM) andere System wie Linux oder Windows laufen lassen kann, oder VMware Workstation
http://www.vmware.com/de/products/ws/, mit dem dasselbe unter Windows geht. Das hat einige nette Auswirkungen. So kann man beispielsweise vom Zustand der VM einen Schnappschuss machen und dann die VM immer wieder in genau diesen Zustand zurückversetzen.
Richtig interessant ist allerdings vSphere - das Server-Produkt. Dabei wird auf der Maschine ESX bzw. ESXi installiert, so dass kein Host-Betriebssystem mehr existiert. vSphere hat einige interessante Features wie vMotion, wie es unter
http://www.vmware.com/de/products/vi/vc/vmotion.html beschrieben wird. Damit ist es möglich, eine VM von einem physikalischen Rechner auf einen anderen zu migrieren - und dabei bleibt die VM die ganze Zeit verfügbar.
Dadurch ergeben sich interessante Möglichkeiten:
- Bei der Lastverteilung kann man VMs, die gerade einen hohe Last haben, auf physikalische Hardware migrieren, die im Moment nicht vollständig ausgelastet ist.
- Basierend auf dem vMotion-Konzept bietet vSphere auch eine Lösung für Hochverfügbarkeit an, bei der man eine VM gleichzeitig auf mehreren physikalischen Servern betreibt, so dass bei einem Ausfall eines physikalischen Servers die andere Kopie der VM übernehmen kann.
Lastverteilung und Ausfallsicherheit sind Themen. mit denen man sich sonst in der Software-Architektur oder der Middleware auseinander setzt. Mit Hilfe der VMware-Technologien gibt es weitere Möglichkeiten, sich diesen Herausforderungen zu stellen. Dabei werden die Probleme auf Ebene der Virtualisierung gelöst, so dass die darauf laufende Software (Betriebssystem, Middleware, Anwendung) sich nicht mehr darum kümmern muss. Das ist auch gleichzeitig einer der Trends, die man im Cloud-Umfeld sieht: Viele typische Herausforderungen können in der Cloud-Infrastruktur gelöst werden, was die darauf aufbauenden Schichten entlastet.
Es sollte klar sein, dass man mit diesem Ansatz diese fundamentalen Probleme nicht in jeder Situation vollständig gelöst sind - aber es zeigt Vorteile der Virtualisierung auf, die über die einfache Konsolidierung von Servern weit hinaus gehen.
Labels: Cloud, vMotion, VMWare
Vortrag zu Spring Roo und Cloud bei JUG Berlin / Brandenburg
Am 22.4. um 19:00 halte ich einen Vortrag bei der JUG Berlin / Brandenburg zu den Themen Spring Roo und Cloud. Details siehe
https://www.xing.com/events/spring-roo-produktive-entwicklung-spring-aop-cloud-486781. Bis dahin!
Labels: Cloud, JUGBB, ROO