Auch dieses Jahr waren wir wieder mit einem Stand auf dem Java Forum Stuttgart 2015 (kurz JFS) vertreten und ein paar unserer EntwicklerInnen waren auch in verschiedenen Vorträgen dabei.

Sie kennen das JFS noch nicht? Das Java Forum Stuttgart oder JFS ist eine jährliche, eintägige Konferenz mit Java als Leitmotiv. Das JFS ist in erster Linie für Entwickler konzipiert, ist aber ebenso der Entscheidungskompetenz der Besucher förderlich. Das Forum bietet den Teilnehmern die Möglichkeit, sich umfassend über Themen zu Java bzw. das Java-Umfeld zu informieren. Die Breite kommt durch Grundlagenvorträge, Erfahrungsberichte und Informationen über konkrete Produkte zustande. Produkte werden sowohl in Form von Vorträgen als auch als Demonstrationen an den Ausstellungsständen präsentiert.

Face-Obst Stand-MU-ES TIsch VP-und-jungs

Den Vortrag Development, Deployment und Management mit dem Oracle Java Cloud Service fanden wir im Kontext Sicherheit in der Cloud sehr spannend. Auch um dieses Thema für unsere Kunden und Interessierte etwas durchsichtiger zu gestalten.

Kurz zur Oracle Cloud

Als überzeugter Partner von Salesforce haben wir mit der Salesforce1 Platform ja eine mächtige Basis für uns und unsere Kunden, die im Enterprise Cloud Umfeld auch führend ist. Nichtsdestotrotz schauen wir auch, was sich technologisch bei anderen Anbietern tut:

Der Oracle Java Cloud Service liefert mittlerweile eine komplette Plattform zur Entwicklung von unternehmensweiten Anwendungen und dem Deployment in der Cloud (PaaS). Java EE Anwendungen, Security und Datenbankanbindungen werden mit dem Oracle Java Cloud Service unterstützt. Über eine Self-Service-Oberfläche erfolgt der Zugang zum Java Cloud Service. Das Management der Java-Anwendungen erfolgt über den Oracle Enterprise Manager, der eine vollständige Cloud-Managementlösung, mit Self-Service-Bereitstellung, richtlinienbasiertem Ressourcenmanagement, integrierter Rückbelastung und Kapazitätsplanung sowie umfassenden Einblick in die physischen und virtuellen Umgebungen von Anwendungen bis hin zur Festplatte bietet.

Orcale beschrieb zuerst eine DevOps-Kultur und zeigte dann auf wie die Cloud-Produkte von Oracle diese „best practices“ unterstützen sollen.

DevOPS #1: Kultur

DevOps beschreibt die Maßnahmen für Entwicklung (Dev) und Betrieb (Ops) einer Anwendung, so dass möglichst wenige „Bruchstellen“ zwischen diesen beiden Organisationen entstehen.

Es muss also ausreichend Kommunikation stattfinden. Hierfür einige wichtige (menschliche) Regeln, wie wir sie auch bei logicline beachten. Im Kern steht das Ziel: Die offene Kultur. Diese kann man durch einige Wertsetzungen fördern:

DevOPS-1-Kultur.2

 

Abbildung 1: Die richtige DevOps-Kultur

Der gegenseitige Respekt ist Startpunkt einer guten Zusammenarbeit zwischen den Bereichen, wie auch gleichzeitig Voraussetzung für einen freundlichen Umgangston zwischen den Bereichen und das wechselseitige Engagement. Wenn Diskussionsbedarf besteht, ist es wichtig keine Informationen vor dem anderen Bereich zu verbergen (Information Hiding). Manch Einem mag das  im Sinne der Aufwertung oder des Kaschierens von Schwächen der eigenen Abteilung sinnvoll erscheinen, betrachtet man aber die gesamte Organisation, gefährdet dieses Verhalten den Erfolg.

Wenn die Probleme dann offen auf den Tisch gelegt werden, lauert auch schon die nächste Falle – das Fingerpointing. Ein offener Umgang mit Problemen bedeutet nicht, möglichst oft mit dem Finger auf den vermeintlich Schuldigen zu zeigen, um damit möglicherweise auch noch die eigene Überlegenheit zu demonstrieren. Es bedeutet Lösungen für Probleme zu finden, und Maßnahmen zu definieren, wie gleiche Probleme in Zukunft vermieden werden können.

Fehlt das übergreifende Denken innerhalb der Organisation – wird also Code vom Dev-Bereich über den Zaun in den Ops-Bereich geworfen – könnten im Entwicklungsbereich schon fast die Erinnerungen an den Code verblassen, während der Ops-Bereich noch damit kämpft, diesen überhaupt zu betreiben. Dagegen hilft nur eine gemeinschaftliche Auffassung von „fertig“. Im Sinne der gesamten Organisation sollte ein Projekt erst als „fertig“ angesehen werden, wenn es released wurde. Devs sollten unbedingt in Projekte eingebunden bleiben, bis diese erfolgreich beim Kunden laufen.

DevOPS #2: Technology

Darüber hinaus gibt es auch Technologien bzw. Methoden, die in einem devops-Team einzuhalten sind, um die Bruchstellen zwischen Dev und Ops klein zu halten. Auch bei logicline werden diese genutzt:

DevOPS 2 Technology 2

Abbildung 2: Die richtigen DevOps-Technologien

Infrastructure as code besagt, dass alle für Deployment oder Konfiguration benötigten Skripte als Source zu handhaben sind, damit diese nicht manuell ausgeführt werden müssen. Manuell gehandhabt verschwindet wichtiges Wissen nach Fertigstellung der Entwicklung gern einmal bei einzelnen Experten. Die Handhabung als Source setzt natürlich auch die bewährten Qualitätskriterien, wie Wartbarkeit und Lesbarkeit von Code, voraus.

Source Control mit git ist bei Logicline selbstverständlich und ermöglicht ein schrittweises Wachstum der Anwendung während der Entwicklung. Richtig eingesetzt ermöglicht Source Control den Ops im Nachhinein auch das Erfassen der Entwicklungs-Historie. Entwickler können „mutig“ Voranschreiten, da ein zurückspringen auf vorherige Stände und eine parallele Entwicklung einfach möglich werden. Diese Flexibilität kommt besonders Kunden entgegen, die einen sehr agilen Partner bei der Entwicklung ihrer Lösungen benötigen.

Damit die entwickelte Software schnellstmöglich und ohne hohen Aufwand einsatzbereit ist, wird der One-Step-Build eingesetzt. Agile Entwickler und ihre Kunden müssen in der Lage sein, Softwarestände (auch Zwischenstände) schnell und einfach zu bauen, bspw. um Entscheidungen über den weiteren Fortgang der Entwicklung mit dem Kunden zu treffen.

Ist dann eine fertige Version einmal gebaut und im Einsatz in der Cloud, so sollten Entwickler davon absehen, kleinere Fehler durch Hotfixes direkt im laufenden System zu „kitten“, sondern ein sauberes, getestetes Re-Deployment durchführen.

 

Die aktuellen PaaS-Services von Oracle

Die vorgenannten Practices möchte Oracle mit Hilfe seiner Technologien unterstützen. Oracle bietet drei Typen von PaaS-Cloud-Services an:

  • Public Cloud (hosted by oracle)
  • Managed Cloud Services (Oracle betreibt die Cloud, aber Server / Infrastruktur wird von Kunde gestellt)
  • Private Cloud (hosted by customer)

Oracle hat auf dem deutschen Markt erkannt, dass Datenschutz einen sehr hohen Stellenwert einnimmt. Dem will Oracle mit der Private Cloud gerecht werden. Sollten Kunden sich also entscheiden, ihre Daten nicht in der Public Cloud zu hosten, so kann die Anwendung relativ leicht von der Public in die Private Cloud überführt werden – oder umgekehrt.

Das PaaS ist Java-basiert, erreichbar unter cloud.oracle.com. Sogenannte Coherence-Knoten ermöglichen vereinfachte Backups + Patches für Plattform-Komponenten.

Folien und Bilder zum Vortrag finden sich unter http://www.java-forum-stuttgart.de/de/Abstracts+Slot+1.html#art476.