Skalierbare Web-Anwendungen in der Cloud Flashcards

(32 cards)

1
Q

In welche Bereiche gliedert das NIST Cloud Computing ein?

A
  • Characteristics
  • Service Models
  • Deployment Models
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
Cloud Design Patterns Was ist **State Sharing**?
* Web Anwendung stateless gestalten * Session Informationen in DB speichern * User Anfragen so auf unterschiedlichen Nodes problemlos möglich
26
Was sind Microservices?
* keine offizielle Definition vorhanden * nur Set an Beschreibungen * Microservices sollen sich auf eine Funktionalität beschränken
27
Was sind Vorteile von Microservices?
* Einfache Skalierbarkeit * Verbesserte Test- und Wartbarkeit * Unabhängigkeit bei verwendeter Technologie * Unterstützung bei Software Qualitäts Verbesserungen
28
Was sind Nachteile bei Microservices?
* Erhöhter Aufwand bei Betrieb, Monitoring und Deployment * Erhöhte Latenz bei Kommunikation einzelner Module bzw. Microservices
29
Was versteht man unter FaaS (Function as a Service)?
* 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
Was macht AWS Lambda?
* 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
Was ist Claudia.js?
* 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
Was ist das Serverless Framework?
* 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