00 einleitung und Übersicht zur comline cloud service plattform - csp
TRANSCRIPT
COMLINE Cloud ServicesEinleitung
Christian GüntherHannover, 09.12.2016
Die COMLINE AG präsentiert
COMLINE CSP – Einleitung
On-demand self-serviceNutzer bestellen gewünschte Dienste über einen Self-Service (aka Shop), wobei die Bereitstellung vollständig automatisiert (also ohne manuelle Tätigkeit) geschieht.
Broad network accessDer Zugang zu den angebotenen Diensten wird über ein Netzwerk (meist das Internet) realisiert und setzt (in aller Regel) einen breitbandigen Anschluss voraus.
Resource poolingInfrastruktur-Komponenten werden in Ressourcen-Pools zusammengefasst und als Einheit betrachtet.
Rapid elasticitySteigenden Anforderungen an die Dienste (etwa Zugriffszahlen oder Datenvolumen) kann mittels einer elastischen Infrastruktur extrem schnell und möglichst automatisiert begegnet werden.
Measured serviceDienste liefern Daten zur Nutzung an eine Management-Einheit und lassen sich hinsichtlich Kosten (üblicherweise definiert über ihre Leistung) in Klassen einteilen.
Kerndefinition (nach NIST) für Cloud-Dienste
3 Arten von Diensten in der Cloud
Die COMLINE Cloud Computing Platform (CSP) ist eine Umgebung zur Entwicklung und Betrieb von Cloud Diensten.
Die CSP stellt aus Sicht der COMLINE eine PaaS (Platform as a Service) dar, auf der COMLINE Cloud-Dienste entwickelt.
Betrieben wird die CSP auf einem IaaS Modell in COMLINE-eigenen Rechenzentren in Berlin
Die Cloud-Dienste werden zu Anwendungen zusammengefasst, die von Kunden der COMLINE im Sinne eines SaaS (Software as a Service) Modells gemietet und genutzt werden können.
Die COMLINE CSP, best of all Worlds
Die COMLINE CSP
Key Technical Figures der CSP
Virtualization Layer and Cloud Service Automation
Configuration and Service
Discovery
UI Runtime / User-Mgmt / SSO
Services Registry
Container Mgmt
Service Control
Open Platform
Any App
Ubuntu LTS-Cluster
Runs in Docker Container
CSP Open Platform = Micro services Architecture / Design + Runtime-Platform
Consumer
CamundaBPM Service
Generic AKKA Services
Node.js Services
Developer
DevOps
A reactive, fully scalable and partition tolerant platform offers highest availability and performance
Designed with the most innovative technologies and framework for cloud computing and analytics
Able to support agile Software Development concepts to quickly and reliable fulfill customer requirements
Standardized Software Development methodology based on DevOps and Continuous Integration
Analytics / ML Services
Operations
Jenkins CI
Grundlagen und Konzepte der COMLINE CSP
Die COMLINE CSP ist als reaktives System konzipiert.
Sowohl die Plattform selber, als auch die Services und Anwendungen werden entlang einer Reihe von Guidelines entwickelt und betrieben.
Die folgenden Slides geben eine Übersicht über– Reactive Systems– Domain Principles– Computing Concepts– Infrastructure Design Patterns – Architecture Design Patterns– Software Development Guidelines
Sie bilden die Grundlage aller Aktivitäten (von Design, über Konzeption bis hin zu Entwicklung und Betrieb) auf der CSP
Die COMLINE Cloud Services Platform
In den letzten zehn bis fünfzehn Jahren haben sich eine Reihe von Architekturparadigmen etabliert, die heute die Grundlage für Unternehmensanwendungen definieren und in vielfältigen Standards, Frameworks und Best Practices so fest verankert sind, dass man kaum noch darüber nachdenkt.
Wendet man diese Paradigmen unreflektiert auf Cloud-Anwendungen an, führt das in der Regel zu ernüchternden Resultaten. Insbesondere die für Cloud Computing wichtigen Eigenschaften Skalierbarkeit, Elastizität und Robustheit sind auf diese Weise nicht erreichbar.
Ein Umdenken ist also notwendig, um die Potenziale der Cloud freizusetzen.
Cloud Services – Umdenken im Kopf
Reactive Systems
Eine moderne Plattform für Cloud-Computing muss als reaktives System konzipiert sein. Diese Systeme müssen stets antwortbereit, widerstandsfähig, elastisch und nachrichtenorientiert sein.
Systeme und Plattformen, die nach diesen Anforderungen entwickelt werden, erweisen sich als anpassungsfähiger, mit weniger starr gekoppelten Komponenten und in jeder Hinsicht skalierbarer.
Sie sind einfacher weiterzuentwickeln und zu verändern. Sie reagieren zuverlässiger und eleganter auf Fehler und vermeiden so desaströse Ausfälle.
Reaktive Systeme bereiten dem Anwender durch ihre fortwährende Antwortfreudigkeit eine interaktive und höchst befriedigende Erfahrung.
Was sind reaktive Systeme?
Das System antwortet unter allen Umständen zeitgerecht, solange dies überhaupt möglich ist. Antwortbereitschaft ist die Grundlage für Funktion und Benutzbarkeit eines Systems, aber noch wichtiger ist, dass Fehler in verteilten Systemen nur durch die Abwesenheit einer Antwort sicher festgestellt werden können. Ohne vereinbarte Antwortzeit-grenzen ist die Erkennung und Behandlung von Fehlern nicht möglich. Eine weitere Facette ist, dass konsistente Antwortzeiten als Zeichen von Qualität Vertrauen stiften und so weitere Interaktion fördern.
Antwortbereit – Responsive
Das System bleibt selbst bei Ausfällen von Hard- oder Soft-ware antwortbereit. Jedes System, welches nicht widerstandsfähig ist, verliert durch einen Ausfall seine Antwortbereitschaft und damit
seine Funktion. Widerstandsfähigkeit ist nur erreichbar durch Replizieren der Funktionalität, Eindämmung
von Fehlern, Isolation von Komponenten sowie Delegation von Verantwortung. So bleibt der Ausfall eines Teilsystems auf dieses begrenzt, andere Teilsysteme sind geschützt und in ihrer Funktion nicht behindert. Die Wiederherstellung des Normalzustandes wird einer übergeordneten Komponente übertragen, die durch die gesteuerte Replizierung der ihr untergeordneten Komponenten die geforderte Verfügbarkeit sicherstellt. All dies bedeutet, dass Nutzer eines auf diese Weise widerstands-fähigen Systems von der Last befreit sind, sich mit dessen Ausfällen auseinandersetzen zu müssen.
Widerstandsfähig – Resilient
Das System bleibt auch unter sich ändernden Lastbedingungen antwortbereit. Auch hier bildet die Verteilung und Replizierung von Funktionalität die Grundlage, auf der das System auf Veränderungen
reagiert. Bei Verminderung oder Erhöhung der Last werden
automatisch die Replizierungsfaktoren und damit die genutzten Ressourcen angepasst. Um dies zu ermöglichen, darf das System keine Engpässe aufweisen, die den Gesamtdurchsatz vor Erreichen der geplanten Maximalauslegung einschränken. Ideal ist eine Architektur, die keine fixen Engpässe aufweist. In diesem Fall kann das bearbeitete Aufgabengebiet in unabhängige Teile zerlegt und auf beliebig viele Ressourcen verteilt werden. Reaktive Systeme unterstützen die Erfassung ihrer Auslastung zur Laufzeit, um automatisch regelnd eingreifen zu können. Dank ihrer Elastizität können sie auf Speziallösungen verzichten und mit handels-üblichen Komponenten implementiert werden.
Elastisch – Elastic
Das System verwendet asynchrone Nachrichtenübermittlung zwischen seinen Komponenten zur Sicherstellung von deren Entkopplung und Isolation sowie zwecks Übermittlung
von Fehlern an übergeordnete Komponenten. Die explizite Verwendungen von
Nachrichtenübermittlung führt zu einer ortsunabhängigen Formulierung des Programms und erlaubt die transparente Skalierung von Komponenten. Die Überwachung von Nachrichtenpuffern ermöglicht kontinuierlichen Einblick in das Laufzeitverhalten des Systems (sowohl zur Diagnose als auch zur automatischen Ressourcensteuerung) sowie Priorisierung und Kontrolle der Nachrichtenflüsse. Ortsunabhängigkeit bedeutet, dass Code und Semantik des Programms nicht davon abhängen, ob dessen Teile auf demselben Computer oder verteilt über ein Netzwerk ausgeführt werden. Nicht-blockierende nachrichtenorientierte Systeme erlauben eine effiziente Verwendung von Ressourcen, da Komponenten beim Ausbleiben von Nachrichten vollständig inaktiv bleiben können.
Nachrichtenbasiert – Message Driven
Grundlagen, Konzepte und Guidelines
1. Business Value durch maßvolle, kontinuierliche Verbesserung
2. Erwartung nach unendlicher Kapazität3. 100%ige Service-Verfügbarkeit4. Agieren wie ein Public Cloud-Service
Provider5. Optimierte Ressourcen-Nutzung6. Verfügbarkeit als ganzheitlicher Ansatz 7. Minimieren personeller Unterstützung8. Vorhersagbarkeit 9. Gewünschtes Verhalten belohnen10. Einheitliche User-Experience
Prinzipien für die Anwendungs-domäne Cloud-Services
Domain Principles
Weiterführende Informationen zu den Domain Principles finden sich in01_Domain_Principles...
1. Elastizität statt Redundanz2. Elastische Infrastruktur3. Homogenität der physischen Plattform 4. Ressourcen-Pools5. Virtualisierte Infrastruktur6. Fabric Management7. Partitionierung der Shared Ressourcen8. Ressource Decay9. Service Klassifizierung10.Sicherheit und Identitäts-Management11. Multitenancy
Computing Concepts
Weiterführende Informationen zu den Computing Concepts finden sich in02_Computing_Concepts...
Die Infrastruktur unter der Cloud Service Plattform wird entlang der folgenden Entwurfsmuster konzipiert:
1. Ressource Pooling2. Physikalische Fault Domain3. Upgrade Domain4. Reserve Capacity5. Skalierende Einheiten (Units)6. Kapazitätsplanung7. Health Model
Entwurfsmuster sind bewährte Lösungsschablonen für
wiederkehrende Entwurfsprobleme.
Infrastructure Design Patterns
Weiterführende Informationen zu den Infrastructure Design Patterns finden sich in02_Computing_Concepts...
Die Anwendungen auf einer Cloud Service Plattform werden entlang der folgenden Entwurfsmuster konzipiert:
1. Domain Driven Design2. Microservices Architektur3. Hexagonale Architektur4. Peer-to-Peer Architektur5. Nachrichtenbasiertes SystemEntwurfsmuster sind bewährte
Lösungsschablonen für wiederkehrende Entwurfsprobleme.
Software Architecture Design Patterns
Weiterführende Informationen zu den Design Patterns finden sich in03_SW-Architecture_Design_Patterns...
1. Codebasis2. Abhängigkeiten3. Konfiguration4. Build, Release, Run5. Backend-Dienste6. Prozesse7. Laufzeitcontainer8. Interfacing9. Port Binding10. Concurrency & Skalierung11. Elastizität & Verfügbarkeit12. Dev-/Prod-Parität13. Logs14. Administration und One-off Tasks
Software-Development Guidelines
Entwicklungs-Guidelines stellen, sprach- und laufzeitunabhängige Regeln, sowohl für die Entwicklung (Dev), als auch für das Operation (Ops) der Services und Applikationen dar.
Weiterführende Informationen zu den Design Patterns finden sich in04_SW-Development_Guidelines...
Komponentenmodell der CSP
Weiterführende Informationen zum Komponenten-Modell finden sich in11_Komponenten_und_OS-Plattform...
BI 4 Server
Open Platform ANALYTICS-Plattform
Cloud Service Automation
MS SQLInstanz
SAP HANA-Instanz
Analytics
UI Runtime / OpenID Logon / SSO
Cloud Automation
CLOUD-Service Plattform
CamundaBPM
Service
Swarm / Registrator / Consult
Docker Container
Docker Container
Docker Container
Windows Server
Nginx
AKKA Services
Node.js Services
.Net / SharePoint
Ubuntu LTS
Neo4JGraph DB
Cassandra-
ClusterMySQL Instanz
Konfiguration und Service Discovery
Any App
COMLINE Cloud Service Automation
Service-Automation Portal
Benutzerschnittstelle
Benutzer kann mit minimalen Informationen im Service Portal den Dienst beauftragen
Die Anforderung wird im Rahmen von 7x24 Stunden sofort umgesetzt
Service-AutomationEngine
Durchführung
Neue Benutzer anlegen Drucker einrichten, ändern Berechtigungen für Dateisysteme
einrichten Smartphone bestellen, einrichten Endgeräte wie Laptop bestellen
und einrichten
Umgesetzte ProzesseErgebnis
Neuer Mitarbeiter kann sich an dem bereitgestellten Notebook anmelden, Drucken, E-Mails versenden und mit dem SmartPhone telefonieren. Er ist sofort arbeitsfähig.
komplexe Prozesse vereinfachen
Weiterführende Informationen zur Infrastruktur finden sich in12_Cloud_Service_Automation...
Dev/Ops
Weiterführende Informationen zum Dev/Ops-Ansatz finden sich in08_DevOps...
Software Delivery
Weiterführende Informationen zur Software Delivery finden sich in09_Software_Delivery...
1. Hardware Layer2. Virtualization Layer3. Automation Layer4. Management Layer5. Orchestration Layer6. PaaS and SaaS Layer7. Tenant / Self-Services und Admin-UI
Plattform Infrastruktur
Weiterführende Informationen zur Plattform-Infrastruktur finden sich in13_Plattform_Infrastruktur...
Storage Network Compute Facility
Hardware Layer
Virtualization Layer
Automation Layer
Management Layer
Orchestration Layer
PaaS Workloads
SaaS Workloads
Tenant Self-Service / Admin Interfaces
Software Architektur
Weiterführende Informationen zur Software-Architektur finden sich in14_SW-Architektur-Overview..., 15_SW-Architektur_Process-and-Workflow... Und16_SW-Architektur_BigData-Analytics
Node.js Cluster
Job Manager
Cluster Manager
View Service
BI 4 Server
Application Service
PROCESS-Plattform ANALYTICS-Plattform
HANA Connector
Cloud Service Automation
Cassandra-Cluster
MSSQLInstanz
Service-Execution & Workflows
SAP HANA-Instanz
Analytics
MySQL Instanz
Portal Runtime
Cloud Automation
CLOUD-Service Plattform
BPM Service
KAFKAMessaging IO
SPARKAnalytics
SPARK Cluster-Manager
Job-Manager
SPARK Streaming Consumer
SPARK Driver
SPARKML
InStream Analytics
InStream Analytics &
Machine Learning
Neo4JGraph DB
Christian GüntherPrincipal Solution Architect
Mobile: +49 1511 22 40 942E-Mail: [email protected]
COMLINE Computer und Softwarelösungen AG
Leverkusenstr. 54
DE - 22761 Hamburg
www.comlineag.de
Vielen Dank für Ihre Aufmerksamkeit.