Skalierbare Web-Anwendungen in der Cloud Flashcards Preview

Wahlpflichtfach (Technik) > Skalierbare Web-Anwendungen in der Cloud > Flashcards

Flashcards in Skalierbare Web-Anwendungen in der Cloud Deck (32)
Loading flashcards...
1
Q

In welche Bereiche gliedert das NIST Cloud Computing ein?

A
  • Characteristics
  • Service Models
  • Deployment Models
2
Q

Cloud Computing

Was sind typische Characteristics?

A
  • On-demand Self-Service lässt Kunden sich selbst Ressourcen zuteilen und freigeben
  • Broad Network Access: Zur Ressourcenverwaltung wird eine hochverfügbare und schnelle Internetverbindung benötigt
  • Measured Service: Messung der Nutzung einzelner Services. Bezahlt wird nach Nutzung –> Transparenz
  • Rapid Elasticity: benötigte Ressourcen lassen sich jederzeit vergrößern oder verkleinern
  • Resource Pooling: physikalische Einheiten werden zu virtuellen Teilen untergliedert. Ungenutze Teile werden für andere Kunden angeboten
3
Q

Cloud Computing

Was sind typische Service Models?

A
  • SaaS: Konzept für On-demand Software-Nutzung, bei dem ein Benutzer nur noch eine Konfiguration innerhalb der Software vornehmen muss.
  • PaaS: Ausführungsumgebung, in derm an seine eigenen Anwendungen betreiben kann. Die Verantwortung für die Verwaltung von den angebotenen Services wie z. B. Datenbanken, Web-Server oder Laufzeitumgebungen liegt beim PaaS-Anbieter.
  • IaaS: IT-Infrastruktur in Form einer virtuellen Abstraktion. Ein Server wird als eine Instanz bezeichnet.
4
Q

Cloud Computing

Was sind typische Deployment Models?

A
  • Public Cloud: öffentlich verfügbare Cloudumgebung
  • Community Cloud: nur eine gewisse Gruppe kann Ressourcen nutzen
  • Private Cloud: Ressourcen kann nur von einer Organisation genutzt werden
  • Hybrid Cloud: Mischform aus zwei oder mehreren Deployment Models
5
Q

Was ist das IDEAL Cloud Application Design?

Und für was steht das IDEAL?

A

IDEAL ist dafür ausgelegt, die Architektur einer Web-Anwendung für die Skalierung in der Cloud vorzubereiten

  • Ideal State
  • Distribution
  • Elasticity
  • Automated Management
  • Loose Coupling
6
Q

IDEAL Cloud Application Design

Was ist Isolated State?

A
  • Web-Anwendung hält keinen Status bzgl. Verbindung oder Session, der nicht in einer Datenbank persistent ist
  • sonst kann der Anwender nur einen Web-Server für die Anfragen verwenden
  • eine Lastverteilung mittels Load Balancer wäre nicht möglich
7
Q

IDEAL Cloud Application Design

Was ist Distribution?

A
  • Verteilung von Anfragen auf verschiedene Systeme –> mehr Ressourcen für eine Web-Anwendung
  • Erhöhung der Ausfallsicherheit
  • keine Bottlenecks
  • verringerter Administrationsaufwand durch Verteilung der Services
8
Q

IDEAL Cloud Application Design

Was ist Elasticity?

A
  • Web-Anwendung muss darauf ausgelegt sein, unterschiedliche Volumen an Ressourcen zu haben
  • dadurch sind keine Anpassungen im Source Code notwendig, wenn Ressourcen erweitert werden
9
Q

IDEAL Cloud Application Design

Was ist Automated Management?

A
  • Web-Anwendungen sollten Möglichkeit besitzen, sich selbst zu verwalten
  • Reduzierung von Administrationsaufwand und Fehleranfälligkeit
  • Starten von weiteren benötigten Nodes
10
Q

IDEAL Cloud Application Design

Was ist Loose Coupling?

A
  • einzelne Module innerhalb der Web-Anwendung sind ersetz- und erweiterbar
  • je mehr Loose Coupling, desto größeres Potential für Veränderungen
  • Vorbereitung für zukünftige Verbesserungen
11
Q

Welche weiteren Anmerkungen (zu IDEAL) gibt AWS zu Cloud Architecture?

A
  • Design for failure and nothing fails
  • Build Security in every layer
  • Don´t fear constraints
  • Leverage different storage options
12
Q

Was ist Load Balancing?

A
  • Load Balancer ist ein Server, der Anfragen auf verschiedene Server-Nodes verteilt
  • Verteilung kann mittels Last-Analyse, Verteilungsalgorithmen oder beidem geschehen
13
Q

Welche bekannten Verteilungsalgorithmen gibt es und wie funktioniert deren Prinzip?

A
  • Round Robin
    • nachgeschaltene Node erhalten Anfragen immer in der selben Reihenfolge abwechselnd
  • Hot Potato
    • Anfrage an zufälligen Note
    • dieser entscheidet, ob die Anfrage beantwortet werden kann
    • wenn nicht, weiterleiten an nächsten Node und von vorne
14
Q

Was ist Geo Location und Latency Based Routing?

A
  • Anfragen werden anhand der Source IP dem nähesten Cluster weitergeleitet
  • geographisch getrennte Cluster möglich
  • Vorauswahl für Lokalisierungen möglich
  • Messung der Latenz und verweis an den am schnellsten erreichbaren Cluster
15
Q

Nennen Sie einige Best Practise Regeln für Infrastructure as a Code.

A
  • Reproduzierbarkeit
  • Konsistenz
  • Wiederholbarkeit
  • Verfügbarkeit
  • Kontinuität
  • selbst testende Systeme
  • selbst dokumentierende Systeme
  • kleine Änderungen
  • alles Versionieren
16
Q

Skalierungsmöglichkeiten

Wie kann ein bestehender Server entlastet werden?

A
  • Cloud Services für Web Server Aufgaben nutzen
  • Bspw. Email-Versand durch dedizierten Email-Service
  • oder, Ausliefern von statischen Assets auf Cloud-Storage mit CDN (Content Delivery Network)
17
Q

Skalierungsmöglichkeiten

Was ist Scale Up?

A
  • Vergrößerung der Ressourcen
    • z. B. mehr vCPU, RAM, HDD, GPU
  • evtl. teurer als Scale Out
  • Scale Up erforder eine Downtime
18
Q

Skalierungsmöglichkeiten

Was ist Scale Out 1?

A
  • Last auf mehr als einen Server verteilen
  • Ist kein Load Balancer vorhanden, muss dieser hinzugefügt werden
  • weitere Notes können hinter den Loadbalancer hängen
  • nur so lange möglich, wie keine nachfolgenden Dienste skaliert werden müssen
19
Q

Skalierungsmöglichkeiten

Was ist Scale Out 2?

A
  • bei Überlastung des Load Balancers ist eine Skalierung der Load Balancers notwendig
  • Erstellung eines weiteren Clusters mit Load Balancer
  • mit Latency Based Routing wird auf die verschiedenen Cluster geschwenkt
20
Q

Skalierungsmöglichkeiten

Welche Möglichkeiten bestehen beim Skalieren einer Datenbank?

A
  • Optimierung der bestehenden Datenbank genügt meistens
    • Log Files auf Hinweise überprüfen
    • evtl. neue Indexes erstellen
  • Vergrößern der Ressourcen
  • Scale Out: Hinzufügen von Reas Replicas
  • Einführung von In-Memory Key-Value Stores
  • Decoupling durch Message Queues
  • Transformation von SQL zu NoSQL
  • Sharding
21
Q

Cloud Design Patterns

Was ist das Stamp Pattern?

A
  • Abbild eines Servers –> Server Image
  • wird für neue Server verwendet
  • somit ist sichergestellt, dass alle Server Instanzen identisch sind
22
Q

Cloud Design Patterns

Was ist Deep Healthcheck Pattern?

A
  • kommt aus dem Hochverfügbarkeitsbereich
  • testet nicht nur die Instanz/UI eines Web Servers, sondern auch die zugrundeliegende DB
  • z. B. Return Wert aus DB
23
Q

Cloud Design Patterns

Was ist Floating IP Pattern?

A
  • IP Adresse wird an virtuelle NIC gebunden
  • virtuelle NIC kann dynamischen Servern zugeordnet werden
  • Deploy auf “frischen” Server und dann Zuordnung der virtuellen NIC
24
Q

Cloud Design Patterns

Was ist Deployment Scale Out - Scale In?

A
  • neue SW Version wird auf Cloud-Speicher abgelegt
  • Benachtichtigung der Auto Scale Group über neue Version
  • Anzahl der Instanzen wird verdoppelt und mit neuer Version gestartet
  • bei erfolgreichem Healthcheck werden Instanzen mit alter Version abgeschalten
  • neues Deployment ohne Downtime möglich
25
Q

Cloud Design Patterns

Was ist State Sharing?

A
  • Web Anwendung stateless gestalten
  • Session Informationen in DB speichern
  • User Anfragen so auf unterschiedlichen Nodes problemlos möglich
26
Q

Was sind Microservices?

A
  • keine offizielle Definition vorhanden
  • nur Set an Beschreibungen
  • Microservices sollen sich auf eine Funktionalität beschränken
27
Q

Was sind Vorteile von Microservices?

A
  • Einfache Skalierbarkeit
  • Verbesserte Test- und Wartbarkeit
  • Unabhängigkeit bei verwendeter Technologie
  • Unterstützung bei Software Qualitäts Verbesserungen
28
Q

Was sind Nachteile bei Microservices?

A
  • Erhöhter Aufwand bei Betrieb, Monitoring und Deployment
  • Erhöhte Latenz bei Kommunikation einzelner Module bzw. Microservices
29
Q

Was versteht man unter FaaS (Function as a Service)?

A
  • Entwickler nur für Business Logik zuständig
  • Ausführung von Modulen, Monitoring und Skalierung beim Anbieter
  • Anwendung im Prinzip von Microservices
  • Starke Bindung/Abhänigkeit an/von Anbieter
  • Anbieter: AWS Lambda, Azure Functions, Google Cloud Functions
30
Q

Was macht AWS Lambda?

A
  • Cloud Service, der unabhänige Funktionen/Methoden ausführt
  • Methoden können RDS (rel. DBs), S3 (Storage) oder SES (Email-Versand) nutzen
  • Funktionen können in Python oder JavaScript entwickelt werden
  • Möglichkeit einer Skalierung auf Funktions-Ebene
  • Abrechnung erfolgt aufgrund angenommene Anfragen
31
Q

Was ist Claudia.js?

A
  • Claudia.js ist ein Node.js Paket
  • erleichtert die Verwaltung von AWS Lambda Funktionen
  • bietet ein Framework um Business Logik in Funktionen zu integrieren
  • starre Verknüpfung mit AWS
32
Q

Was ist das Serverless Framework?

A
  • Toolset für Erstellung und Verwaltung von FaaS Funktionen
  • höherer Konfigurationsaufwand (im Vergleich zu Claudia.js) zu Beginn
  • FaaS-Anbieter unabhängig
  • Anbieter Wechsel ohne Anpassung der Business Logik möglich