ExperTeach Networking Logo

Software Engineering im Cloud-Zeitalter

Microservices in der Praxis

ExperTeach Networking Logo

In der Software-Entwicklung erfreuen sich Cloud Native Applications auf Basis von Microservices immer größerer Beliebtheit. Die Entwicklung solcher Applikationen erfordert aber nicht nur ein organisatorisches, sondern auch ein technisches Umdenken. Themen wie das Design der Anwendungen, die Versionierung, das Testen, wie auch deren Betrieb müssen neu überdacht werden. Darüber hinaus spielt auch die Sicherheit der Anwendung eine besondere Rolle. Dieses Training vermittelt anhand realer Beispiele die Best Practices und Herangehensweisen zur Entwicklung von Cloud Native Apps.

Kursinhalt

  • Anwendungsentwicklung in Cloud-Umgebungen
  • Besondere Anforderungen und Design-Ziele
  • Auswahl der Services für eine agile Anwendungsentwicklung
  • Stabile, skalierbare und wartbare Anwendungen
  • Versionierung am Beispiel GitHub
  • Anwendungsarchitekturen auf Basis von Microservices
  • Design eines Microservices
  • Zusammenspiel von Microservices
  • Testen eines Microservices und des Gesamtsystems
  • Betrieb und Continuous Delivery von Microservices
  • Aufbrechen eines Monolithen in Microservices
  • Security by Design
  • OWASP Top 10
  • Sicherheit in Microservices-Architekturen
  • Beispiel einer Microservices-Anwendung

Print E-Book PDF Symbol Sie erhalten das ausführliche deutschsprachige Unterlagenpaket aus der Reihe ExperTeach Networking – Print, E-Book und personalisiertes PDF! Bei Online-Teilnahme erhalten Sie das E-Book sowie das personalisierte PDF.

Zielgruppe

Der Kurs bietet Einsteigern in das Thema Software Engineering im Cloud-Zeitalter einen praxisnahen und umfassenden Einstieg. Er richtet sich sowohl an Anwendungsentwickler, die bisher monolithische Anwendungen programmierten, als auch an Neueinsteiger in Sachen Programmierung.

Voraussetzungen

Grundlegende Kenntnisse zur Container-Technologie und zur Anwendungsentwicklung in Cloud-Umgebungen, wie sie im Kurs Applikationen im Cloud-Zeitalter – Container, Cloud & Microservices vermittelt werden, sind von Vorteil und helfen, die Konzepte besser zu verstehen.

1 Anwendungsentwicklung in Cloud-Umgebungen
1.1 Cloud: Optimiert für Mode-2-Anwendungen
1.2 Cloud Native Applications
1.2.1 12-Factor-App
1.2.2 Versionsverwaltung
1.2.3 Saubere Trennung des eigentlichen Codes von anderem
1.2.4 Build, Release, Run
1.2.5 Stateless Applications
1.2.6 Web Services und Port-Bindung
1.2.7 Microservices
1.2.8 Weitere Faktoren
2 Einführung in Microservices
2.1 Definition Microservices
2.2 Motivation für Microservices
2.3 Herausforderungen beim Einsatz von Microservices
2.4 Gestaltung von Microservices
2.4.1 Designkriterium Größe von Microservices
2.4.2 Designkriterium Teamstrukturen (Gesetz von Conway)
2.4.3 Designkriterien Domain-driven Design und Bounded Context
2.4.4 Designkriterium User Interface
2.4.5 Gründe, um weitere Microservices zu erstellen
2.5 Aufteilung des Gesamtprojekts – Large Scale Structures
2.6 Anwendungsarchitekturen auf Basis von Microservices
2.6.1 Fachliche Aufteilung
2.6.2 Design Tipps
2.6.3 Konfiguration eines Microservices – Zentral oder im Service
2.6.4 Data Management in Microservices-Umgebungen
2.6.5 Service Discovery
2.6.6 Load Balancing – Service Discovery versus Load Balancer
2.7 Sicherheit
2.8 Service-Meshes
2.9 Monitoring
2.10 Deployment
2.10.1 Orchestrierung von Infrastruktur und Applikationen
2.10.2 Puppet und Chef
2.10.3 Ansible
3 Realisierung einer Microservices-Landschaft
3.1 Versionsverwaltung mit Git
3.1.1 Git
3.1.2 GitHub
3.1.3 GitLab
3.2 Tools für Continuous Integration
3.2.1 GitLab für DevOps
3.2.2 Jenkins
3.2.3 TravisCI
3.3 Testing
3.3.1 Testautomatisierung
3.4 REST API im Detail
3.4.1 RESTful API
3.4.2 Konstruktion der HTTP-Meldungen
3.4.3 Generische Beschreibung eines REST API
3.4.4 Idempotenz
3.4.5 Nested Ressource Expansion
3.4.6 Authentifizierung
3.4.7 Content Negotiation
3.4.8 Alternativen zu REST
3.5 API-Gateway
3.5.1 Reverse Proxying mit NGINX (Beispiel)
3.6 API Gateway-Frameworks

Classroom Training

Bevorzugen Sie die klassische Trainingsmethode? Ein Kurs in einem unserer Training Center, mit einem kompetenten Trainer und dem direkten Austausch zwischen allen Teilnehmern? Dann buchen Sie einen der Classroom Training Termine!

Hybrid Training

Hybrid Training bedeutet, dass zusätzliche Online-Teilnehmer an einem Präsenzkurs teilnehmen können. Die Dynamik eines realen Kurses bleibt erhalten, wovon besonders auch die Online-Teilnehmer profitieren. Als Online-Teilnehmer eines Hybrid-Kurses nutzen Sie eine Collaboration-Plattform wie WebEx Training Center oder Saba Meeting. Dazu wird nur ein PC mit Browser und Internet-Anschluss benötigt, ein Headset und idealerweise eine Webcam. Im Kursraum setzen wir speziell entwickelte und angepasste hochwertige Audio- und Videotechnik ein. Sie sorgt dafür, dass die Kommunikation zwischen allen Beteiligten angenehm und störungsfrei funktioniert.

Online Training

Möchten Sie einen Kurs online besuchen? Zu diesem Kursthema bieten wir Ihnen Online-Kurstermine an. Als Teilnehmer benötigen Sie dazu einen PC mit Internet-Anschluss (mindestens 1 Mbit/s), ein Headset, falls Sie per VoIP arbeiten möchten und optional eine Kamera. Weitere Informationen und technische Empfehlungen finden Sie hier.

Inhouse-Schulung

Benötigen Sie einen maßgeschneiderten Kurs für Ihr Team? Neben unserem Standard-Angebot bieten wir Ihnen an, Kurse speziell nach Ihren Anforderungen zu gestalten. Gerne beraten wir Sie hierzu und erstellen Ihnen ein individuelles Angebot.
Inhouse-Schulung jetzt anfragen >>>
PDF SymbolDie gesamte Beschreibung dieses Kurses mit Terminen und Preisen zum Download als PDF.

In der Software-Entwicklung erfreuen sich Cloud Native Applications auf Basis von Microservices immer größerer Beliebtheit. Die Entwicklung solcher Applikationen erfordert aber nicht nur ein organisatorisches, sondern auch ein technisches Umdenken. Themen wie das Design der Anwendungen, die Versionierung, das Testen, wie auch deren Betrieb müssen neu überdacht werden. Darüber hinaus spielt auch die Sicherheit der Anwendung eine besondere Rolle. Dieses Training vermittelt anhand realer Beispiele die Best Practices und Herangehensweisen zur Entwicklung von Cloud Native Apps.

Kursinhalt

  • Anwendungsentwicklung in Cloud-Umgebungen
  • Besondere Anforderungen und Design-Ziele
  • Auswahl der Services für eine agile Anwendungsentwicklung
  • Stabile, skalierbare und wartbare Anwendungen
  • Versionierung am Beispiel GitHub
  • Anwendungsarchitekturen auf Basis von Microservices
  • Design eines Microservices
  • Zusammenspiel von Microservices
  • Testen eines Microservices und des Gesamtsystems
  • Betrieb und Continuous Delivery von Microservices
  • Aufbrechen eines Monolithen in Microservices
  • Security by Design
  • OWASP Top 10
  • Sicherheit in Microservices-Architekturen
  • Beispiel einer Microservices-Anwendung

Print E-Book PDF Symbol Sie erhalten das ausführliche deutschsprachige Unterlagenpaket aus der Reihe ExperTeach Networking – Print, E-Book und personalisiertes PDF! Bei Online-Teilnahme erhalten Sie das E-Book sowie das personalisierte PDF.

Zielgruppe

Der Kurs bietet Einsteigern in das Thema Software Engineering im Cloud-Zeitalter einen praxisnahen und umfassenden Einstieg. Er richtet sich sowohl an Anwendungsentwickler, die bisher monolithische Anwendungen programmierten, als auch an Neueinsteiger in Sachen Programmierung.

Voraussetzungen

Grundlegende Kenntnisse zur Container-Technologie und zur Anwendungsentwicklung in Cloud-Umgebungen, wie sie im Kurs Applikationen im Cloud-Zeitalter – Container, Cloud & Microservices vermittelt werden, sind von Vorteil und helfen, die Konzepte besser zu verstehen.

1 Anwendungsentwicklung in Cloud-Umgebungen
1.1 Cloud: Optimiert für Mode-2-Anwendungen
1.2 Cloud Native Applications
1.2.1 12-Factor-App
1.2.2 Versionsverwaltung
1.2.3 Saubere Trennung des eigentlichen Codes von anderem
1.2.4 Build, Release, Run
1.2.5 Stateless Applications
1.2.6 Web Services und Port-Bindung
1.2.7 Microservices
1.2.8 Weitere Faktoren
2 Einführung in Microservices
2.1 Definition Microservices
2.2 Motivation für Microservices
2.3 Herausforderungen beim Einsatz von Microservices
2.4 Gestaltung von Microservices
2.4.1 Designkriterium Größe von Microservices
2.4.2 Designkriterium Teamstrukturen (Gesetz von Conway)
2.4.3 Designkriterien Domain-driven Design und Bounded Context
2.4.4 Designkriterium User Interface
2.4.5 Gründe, um weitere Microservices zu erstellen
2.5 Aufteilung des Gesamtprojekts – Large Scale Structures
2.6 Anwendungsarchitekturen auf Basis von Microservices
2.6.1 Fachliche Aufteilung
2.6.2 Design Tipps
2.6.3 Konfiguration eines Microservices – Zentral oder im Service
2.6.4 Data Management in Microservices-Umgebungen
2.6.5 Service Discovery
2.6.6 Load Balancing – Service Discovery versus Load Balancer
2.7 Sicherheit
2.8 Service-Meshes
2.9 Monitoring
2.10 Deployment
2.10.1 Orchestrierung von Infrastruktur und Applikationen
2.10.2 Puppet und Chef
2.10.3 Ansible
3 Realisierung einer Microservices-Landschaft
3.1 Versionsverwaltung mit Git
3.1.1 Git
3.1.2 GitHub
3.1.3 GitLab
3.2 Tools für Continuous Integration
3.2.1 GitLab für DevOps
3.2.2 Jenkins
3.2.3 TravisCI
3.3 Testing
3.3.1 Testautomatisierung
3.4 REST API im Detail
3.4.1 RESTful API
3.4.2 Konstruktion der HTTP-Meldungen
3.4.3 Generische Beschreibung eines REST API
3.4.4 Idempotenz
3.4.5 Nested Ressource Expansion
3.4.6 Authentifizierung
3.4.7 Content Negotiation
3.4.8 Alternativen zu REST
3.5 API-Gateway
3.5.1 Reverse Proxying mit NGINX (Beispiel)
3.6 API Gateway-Frameworks

Classroom Training

Bevorzugen Sie die klassische Trainingsmethode? Ein Kurs in einem unserer Training Center, mit einem kompetenten Trainer und dem direkten Austausch zwischen allen Teilnehmern? Dann buchen Sie einen der Classroom Training Termine!

Hybrid Training

Hybrid Training bedeutet, dass zusätzliche Online-Teilnehmer an einem Präsenzkurs teilnehmen können. Die Dynamik eines realen Kurses bleibt erhalten, wovon besonders auch die Online-Teilnehmer profitieren. Als Online-Teilnehmer eines Hybrid-Kurses nutzen Sie eine Collaboration-Plattform wie WebEx Training Center oder Saba Meeting. Dazu wird nur ein PC mit Browser und Internet-Anschluss benötigt, ein Headset und idealerweise eine Webcam. Im Kursraum setzen wir speziell entwickelte und angepasste hochwertige Audio- und Videotechnik ein. Sie sorgt dafür, dass die Kommunikation zwischen allen Beteiligten angenehm und störungsfrei funktioniert.

Online Training

Möchten Sie einen Kurs online besuchen? Zu diesem Kursthema bieten wir Ihnen Online-Kurstermine an. Als Teilnehmer benötigen Sie dazu einen PC mit Internet-Anschluss (mindestens 1 Mbit/s), ein Headset, falls Sie per VoIP arbeiten möchten und optional eine Kamera. Weitere Informationen und technische Empfehlungen finden Sie hier.

Inhouse-Schulung

Benötigen Sie einen maßgeschneiderten Kurs für Ihr Team? Neben unserem Standard-Angebot bieten wir Ihnen an, Kurse speziell nach Ihren Anforderungen zu gestalten. Gerne beraten wir Sie hierzu und erstellen Ihnen ein individuelles Angebot.
Inhouse-Schulung jetzt anfragen >>>

PDF SymbolDie gesamte Beschreibung dieses Kurses mit Terminen und Preisen zum Download als PDF.