Aufrufe
vor 2 Jahren

Netzwoche 05/2016

  • Text
  • Unternehmen
  • Schweiz
  • Schweizer
  • Swiss
  • Devops
  • Netzmedien
  • Huawei
  • Webcode
  • Entwicklung
  • Software

38 Focus Entwicklung Aus

38 Focus Entwicklung Aus der Cloud für die Cloud Die Wirtschaft hat das Bedürfnis nach immer neuen Anwendungen, die extrem schnell entwickelt, getestet und «landschaftsübergreifend» eingeführt werden sollen. Die Lösung: Plattformen in der Cloud. der autor Donal Greene Head of Presales & Engagement, Fujitsu Schweiz Bis 2017 werden rund 30 Prozent der Grossunternehmen und grossen KMUs ihren Mitarbeitern App-Stores zur Verfügung stellen. IT funktioniert heute bimodal: Neben der herkömmlichen und «robusten» IT-Basis (die auf Skalierbarkeit, Effizienz und Sicherheit basiert) wird eine zweite parallele Landschaft betrieben («fast IT»), die auf Agilität und Geschwindigkeit ausgelegt ist. So soll es gelingen, schnell neue Lösungen zu implementieren, ohne die Funktionalität der Basis-Infrastruktur zu gefährden. Von Providern wurde rasch erkannt, dass Cloud-Lösungen verschiedene Vorteile bieten, um bimodale IT praktisch umzusetzen. Heute nutzen bereits über zwei Drittel aller Grossunternehmen und aller grossen KMUs Cloud-Lösungen. Praktisch finden auch Neuentwicklungen überwiegend auf Serviceplattformen (PaaS, IaaS) in Clouds statt. Abgesehen von den Ansprüchen an eine bimodale IT und kurze Entwicklungszeiten sind die Bedürfnisse bezüglich Performance, Funktionalität oder Art der benötigten Applikationen allerdings extrem unterschiedlich. Je nach Branche und Unternehmen können es tausende von Anwendungen für tausende von Mitarbeitern sein, die integriert und bereitgestellt werden müssen. Enterprise-App-Stores fördern Cloud-Nutzung Ein erster Schritt zu einer flexiblen Anwendungsbereitstellung waren sogenannte Enterprise-Application-Stores, also «Läden» wie wir sie für den privaten Gebrauch gemeinhin von iTunes oder Google Play her kennen. Bis 2017 werden rund 30 Prozent der Grossunternehmen und grossen KMUs solche Stores in Clouds für ihre Mitarbeiter zur Verfügung stellen. Das ermöglicht einerseits eine flexible Arbeitsplatzgestaltung («Bring your own Device» – BYOD) und andererseits die sehr schnelle und einfache Verteilung von Applikationen. Gleichzeitig begann man damit, parallel Umgebungen zu betreiben, auf denen die benötigten Applikationen entwickelt und getestet werden können. Schnell war klar, dass Cloud-Plattformen hierfür flexible und vor allem preiswerte Lösungen sind. Je nach Bedarf lassen sich darauf Applikationen etwa mit unterschiedlichen CPU- oder Memory-Leistungen testen, ohne dass die Entwickler auch gleichzeitig die entsprechende Hardware «selbst besitzen» müssen. Einerseits erwarten Kunden, dass sie in geschützten Umgebungen neue Anwendungen entwickeln und deren Funktionalität simulieren können (Entwicklung von Cloud-Applikationen in der Cloud auf entsprechenden Plattformen). Andererseits sollen die Neuentwicklungen unabhängig von der Entwicklungsplattform funktionieren und später problemlos auf verschiedenste Cloud-Modelle Die Cloud ist Ausgangspunkt für die Entwicklung, das Testen und die Verteilung von Applikationen. Bild: Fotolia übertragbar sein und von dort gehostet werden können (egal ob Private, Trusted oder Public Clouds). Damit das so funktioniert, müssen die Applikationen als Pakete mit gleichen Attributen entwickelt werden (Codes, Runtime, System Tools, System Libraries). Je nach Anspruch und Zweck helfen hierbei Open-Source-Modelle wie Docker oder Tools wie UForge. Beim Rollout wird (vereinfacht dargestellt) dann dafür gesorgt, dass die richtigen Attribute der Pakete den entsprechend zugehörigen Systemressourcen zugeordnet werden. Orchestrierung wird komplexer Mittlerweile bezeichnet Orchestrierung aber nicht mehr nur die flexible Kombination verschiedener Services und deren entsprechend richtige Zuordnung zu Systemressourcen, sondern darüber hinaus auch das geordnete Zusammenspiel von Applikationen, Daten und unterschiedlichsten Cloud-Typen. Gebraucht werden heute Plattformen wie «OpenNebula» oder «MetaArc», auf deren Basis verschiedenste IT-Umgebungen weiterentwickelt, integriert und gemeinsam betrieben werden können. Mit solchen Plattformen lassen sich ganze IT-Landschaften orchestrieren. Kombiniert und unterstützt werden sowohl herstellereigene Cloud-Plattformen (IaaS, PaaS, SaaS) wie auch herstellerfremde Clouds, eigene und fremde Managed Services und diverseste Applikationen. Kunden solcher Plattformen profitieren von einer hohen Servicequalität, den immer neuesten Technologien und einem grossen Anbieter-Ökosystem. 05 / 2016 www.netzwoche.ch © netzmedien ag

Focus Entwicklung 39 Persistenz mit Stateful-Microservices für Continuous-Integration und -Deployment Agile Softwareentwicklung ist der aktuelle Standard, um den sich ändernden Anforderungen an die Anwendungen und den hohen Erwartungen der Nutzer gerecht zu werden. Ein Microservice-Design ist häufig der optimale Ansatz: Mit kleinen, agilen Entwicklerteams lassen sich schnelle Erfolge erzielen und Applikationen einfacher und schneller um neue Funktionen erweitern sowie im Laufe des Lebenszyklus warten. i die autoren Sebastian Schmidt Advisory Systems Engineer, EMC Deutschland Sascha Meier Field CTO, EMC Schweiz Weitere DeTAils: ▪▪ https://github.com/ emccode/rexray ▪▪ https://github.com/ emccode/mesos-moduledvdi ▪▪ http://emc.com/getScaleIO Um keine Zeit zwischen Entwicklung und dem tatsächlichen Betrieb zu verlieren, sollte ein DevOps-Ansatz gewählt werden, also die direkte Interaktion zwischen Entwicklung und Betrieb. Im Idealfall erfolgt dies automatisiert und über Software-APIs integriert. Dabei kommen meist aktuelle Technologien für Packetierung, Build, Ship, Run (etwa Docker) sowie Clustermanagement und Abstrahierung der Infrastruktur als «Cloud OS» (etwa Mesos mit Marathon) zum Einsatz. Diese schaffen in Verbindung mit einer Software für Build und Deploymentmanagement wie Jenkins eine automatisierte CI/CD-Pipeline. Für eine flexible Skalierung, einfache Upgrades wie Blue-Green-Deployments oder auch sicheres Failover im Fehlerfall (Ausfall einzelner Applikationen oder Infrastrukturkomponenten) ist es dabei üblich, die Applikation nach den 12-Faktor-App-Regeln zu entwickeln (http://12factor.net). Eines der entscheidenden Merkmale dieser Applikationen ist ein Stateless-Design, also die komplette Verlagerung der Persistenz auf einen eigenen Layer (Objektspeicher oder Datenbank, häufig NoSQL). Um nicht jede Applikation neu schreiben zu müssen oder um diesen Persistenzlayer analog zu den anderen Applikationskomponenten betreiben zu können, wird häufig nach Lösungen gesucht, um Persistenz auch in Containern nutzbar zu machen. Dazu bietet etwa Docker die Möglichkeit, ein Volume vom Docker Host zu mounten, was seit Docker 1.8 auch über die Volume-API durch entsprechende Plug-ins gesteuert werden kann. Die grosse Herausforderung besteht nun darin, mit der hohen Dynamik einer solchen Umgebung zu arbeiten. Dazu müssen für eine stabile Persistenz die Schnittstellen der Speicherinfrastruktur des Betriebssystems und des Containers (hier Docker) vereint und zentral koordiniert werden. Hersteller wie etwa IBM, HP oder EMC bieten mit Lösungen wie REX-Ray nicht nur einen sehr umfangreichen Volumetreiber für Docker, sondern über DVDI auch ein Mesos-Isolator-Modul. Dieses nutzt die REX-Ray-Komponente, um beliebigen Mesos-Services (also nicht nur Docker-Containern) eine vollautomatisierte Kontrolle über die Persistenz zu geben. Diese Architektur ermöglicht es, direkt aus der Applikation (über die Marathon-Konfiguration) folgende Services bereitzustellen: Stateful-Microservices/Container mit persistenten Volumes auf einem zentralen Speichersystem; erstellen von Volumes (neu oder als Kopie über Snapshots); Mount, Unmount und somit Migration von Volumes zwischen Hosts; automatisches Failover von Containern (auch zwischen Hosts) inklusive Persistenzvolumes; Kompatibilität mit zahlreichen Speichersystemen: AWS EC2 (EBS), OpenStack (Cinder), Google Compute Engine (GCE), VirtualBox. www.netzwoche.ch © netzmedien ag 05 / 2016

Archiv