Theorie Teil | P1 - obamosaurus/M346 GitHub Wiki

Zusammenfassung

Cloud Computing

Trend zum Cloud Computing

Vorteile:

  • Skalierbarkeit:
    Cloud-Dienste passen IT-Ressourcen flexibel an. Unternehmen können bei steigendem Bedarf einfach mehr nutzen und bei sinkendem Bedarf wieder reduzieren.

  • Kostenersparnis:
    Statt teurer Hardware zahlen Unternehmen nur für die tatsächlich genutzten Cloud-Ressourcen, was Kosten senkt.

  • Zugänglichkeit und Mobilität:
    Mitarbeiter können von überall mit Internetzugang auf die Cloud zugreifen, was mobiles Arbeiten und Teamarbeit erleichtert.

  • Wartung und Updates:
    Der Cloud-Anbieter kümmert sich um die Wartung und Updates der Systeme, was interne IT-Teams entlastet.

  • Sicherheit und Zuverlässigkeit:
    Cloud-Anbieter sorgen durch hohe Sicherheitsstandards und automatische Backups für den Schutz der Daten und minimieren Ausfallzeiten.

Mögliche Nachteile:

  • Ohne Internet kann nicht gearbeitet werden

  • Weniger Kontrolle über eigene Daten

  • Möglicherweise über Langzeit teurer

  • Vendor Lock-in möglich



On-Premise vs Cloud-Computing

Vor- und Nachteile:

Cloud-Computing

  • Pay-As-You-Go Prinzip
  • Sehr gut Skalierbar
  • Flexibel
  • Wenig eigene Kontrolle über Sicherheit und Datenschutz

On-Premise

  • Hohe Anfangsinvestitionen
  • Begrenzte Skalierbarkeit
  • Volle Kontrolle über Hardware/Software und Sicherheitsmassnahmen



Cloud Maturity Model

Klassische Merkmale

  • Klassisch (On-Prem):
    Unternehmen nutzen traditionelle physische Server und manuelle Prozesse.

  • Virtualisiert:
    Unternehmen setzen auf virtuelle Maschinen, um Hardware besser zu nutzen und flexibler zu sein.

  • Cloud Ready:
    Unternehmen bereiten ihre IT vor, um Cloud-Dienste zu nutzen, und starten die Migration von Anwendungen in die Cloud.

  • Cloud Native:
    Anwendungen werden speziell für die Cloud entwickelt. Im Fokus auf Skalierbarkeit und Effizienz. Dazu werden Microservices, Container und DevOps-Praktiken eingesetzt.

 

Erklärung der Begriffe

  • Monolithische 3-Tier Apps:
    Traditionelle Softwarearchitektur mit drei Schichten: Präsentation (Benutzeroberfläche), Logik (Geschäftslogik) und Datenbank (Speicherung). Alles ist in einer einzigen Anwendung zusammengefasst.

  • Lift-and-Shift:
    Migration einer Anwendung von einer lokalen Umgebung in die Cloud, ohne Änderungen an der Architektur vorzunehmen. Einfach "heben und verschieben".

  • Refactoring:
    Überarbeitung des Codes einer Anwendung, um ihn für die Cloud zu verbessern , ohne die grundlegende Funktionalität zu ändern.

  • DevOps:
    Integration von Entwicklungs- (Development) und Betriebsprozessen (Operations) zur Verbesserung von Zusammenarbeit, Automatisierung und kontinuierlicher Auslieferung von Software.

  • Microservices:
    Architekturansatz, bei dem eine Anwendung in kleine, unabhängige Dienste zerlegt wird. Jeder Service kann separat entwickelt, bereitgestellt und skaliert werden.

  • Hybrid Cloud:
    Kombination aus On-Premise-Infrastruktur (lokal) und Public Cloud, um das Beste aus beiden Welten zu nutzen.

  • MultiCloud:
    Nutzung mehrerer Cloud-Dienste von verschiedenen Anbietern, um Abhängigkeiten zu verringern oder spezielle Funktionen zu nutzen.

  • HyperScaler:
    Grosse Cloud-Anbieter, die eine extrem skalierbare Infrastruktur anbieten, Zb. Amazon Web Services (AWS), Microsoft Azure, Google Cloud.



Hypervisor-Varianten

Typ-1-Hypervisor

Direkt auf die Hardware installiert (als Hypervisor Betriebssystem)
Gast-OS können direkt auf die Hardware zugreifen

Anbieter: Hyper-V ESXi / ESX (VMware)
Vorteile: Performant Bessere Skalierbarkeit
Nachteile: Komplizierte Einrichtung Benötigt bestimmte Hardware

 

Typ-2-Hypervisor

Besitzt ein Host-Betriebssystem
Vollwertiges Betriebssystem zwischen Hardware und Hypervisor

Anbieter: VirtualBox VMware Workstation
Vorteile: Billiger für KMU's Einfachere Einrichtung
Nachteile: Potenzieller Overhead Weniger Kontrolle über Hardware

 



Warum verwenden wir Virtuelle Maschinen

Gründe für..

  • Partitionierung:
    Ressourcen eines physischen Servers effizient auf mehrere virtuelle Maschinen aufzuteilen.

  • Isolation:
    Anwendungen voneinander zu trennen, um Störungen oder Sicherheitsrisiken zu minimieren.

  • Kapselung:
    Anwendungen und ihre Umgebungen in separate Container zu packen, die leicht verschoben und verwaltet werden können.

  • Hardwareunabhängigkeit:
    Betriebssysteme und Anwendungen von der zugrunde liegenden Hardware zu entkoppeln, um Portabilität und Flexibilität zu gewährleisten.



Virtualisierung vs Cloud

Virtualisierung
Virtualisierung ist eine Technologie, die es ermöglicht, mehrere virtuelle Maschinen (VMs) auf einer einzigen physischen Hardware zu betreiben. Jede VM funktioniert wie ein eigenständiger Computer mit eigenem Betriebssystem und Anwendungen.

Cloud
Die Cloud beschreibt ein Modell, das bei Bedarf zeitnah und mit wenig Aufwand geteilte Computerressourcen zu Verfügung stellt und nach Nutzung abrechnet. Die Cloud nutzt Virtualisierung, um IT-Ressourcen wie Rechenleistung, Speicher und Netzwerke über das Internet bereitzustellen.

 

Unterschiede

image



WSL

Was bedeutet WSL

WSL bedeutet Windows Subsystem for Linux

Es ist eine Kompatibilitätsschicht von Microsoft, die es ermöglicht, Linux-Befehlszeilenprogramme nativ unter Windows auszuführen. Mit WSL können Benutzer eine vollständige Linux-Distribution wie Ubuntu, Debian oder andere direkt auf ihrem Windows-System laufen lassen.

Für wen ist WSL geeignet

Es eignet sich besonders gut für Entwickler, die in einer Linux-Umgebung arbeiten möchten, während sie auf einem Windows-Computer bleiben. Es ist praktisch, wenn man keine virtuelle Maschine oder ein Dual-Boot System nutzen möchte.



SSH Verschlüsselung

Funktionsweise eines SSH-Schlüssels

Die Funktionsweise eines SSH-Schlüssels basiert auf asymmetrischer Verschlüsselung. Dabei werden zwei Schlüssel verwendet: ein privater und ein öffentlicher Schlüssel.

Nutzen von Private- und PublicKeys

  • Der öffentliche Schlüssel wird auf dem Server gespeichert.
  • Der private Schlüssel bleibt geheim und wird lokal auf dem Benutzerrechner aufbewahrt.
  • Der Server überprüft die Identität, indem er eine Nachricht sendet, die nur mit dem privaten Schlüssel entschlüsselt werden kann.

⚠️ **GitHub.com Fallback** ⚠️