AALM
Agile Application Lifecycle Management FHNW
Agile Application Lifecycle Management FHNW
Set of flashcards Details
Flashcards | 91 |
---|---|
Language | Deutsch |
Category | Computer Science |
Level | Other |
Created / Updated | 14.01.2025 / 16.01.2025 |
Weblink |
https://card2brain.ch/box/20250114_aalm
|
Embed |
<iframe src="https://card2brain.ch/box/20250114_aalm/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Create or copy sets of flashcards
With an upgrade you can create or copy an unlimited number of sets and use many more additional features.
Log in to see all the cards.
Was sind Cloud-Native-Anwendungen und aus welchen Konzepten bestehen sie?
Der Begriff „Cloud-nativ“ bezieht sich auf das Konzept, Anwendungen so zu erstellen und auszuführen, dass man die Vorteile eines verteilten Computings, wie es bei einem Cloud-Bereitstellungsmodell zur Verfügung steht, nutzen kann. Cloud-native Anwendungen werden so entwickelt und erstellt, dass sie die Skalierbarkeit, Elastizität, Resilienz und Flexibilität der Cloud ausnutzen.
DevOps, Continuous Delivery, Microservices, Containers
Was sind die Vorteile von Cloud-Native-Anwendungen?
Unabhängigkeit, Resilienz, Standardisierung, Geschäftsagilität, Automatisierung, keine Ausfallzeiten (Containerverwalter wie Kubernetes).
Was ist Containerisierung?
Verpacken von Softwarecode in Pakete (Paketierung), die sämtliche erforderlichen Komponenten wie Libraries, Frameworks und andere Abhängigkeiten enthalten und in ihrem eigenen „Container" isoliert sind.
Auf diese Weise kann die Software oder Anwendung innerhalb ihres Containers in jede Umgebung verschoben und konsistent auf jeder Infrastruktur ausgeführt werden, unabhängig von der Umgebung oder dem Betriebssystem der Infrastruktur.
Welche Funktionen bietet Docker?
Standarisiert Applikationen in Container, leichtgewichtige Virtuele Maschine (ein Host-System-Kernel).
Was sind Container, Images und Volumes?
Container: Sandboxed Prozess, welcher von anderen Prozessen getrennt ist. Ausführbare Instanz eines Images. Kann lokal, auf virtuellen Maschinen oder in der Cloud ausgeführt werden. Portierbar.
Image: Container verwendet isoliertes Dateiensystem, welches vom Image (muss alles beinhalten was zur Ausführung benötigt wird) zur Verfügung gestellt wird. Enthält Dependecies, Konfigurationen, Skripts.
Volumes: Persistente Datenspeicher für Container, welche von Docker erstellt und verwaltet werden.
Wie funktioniert die Docker Software Delivery?
Image wird in die Docker Registry gespielt. Von da kann anschliessend auf die verschiedenen Systeme (Dev, Qual, Produktion) installiert werden.
Was ist Docker Compose?
Mehrere isolierte Umgebungen auf einem einzelnen Host, behält Volumen bei der Erstellung neuer Container, erstellt nur angepasste Container neu, Unterstützt Variablen und das Verschieben einer Komposition zwischen Umgebungen
- App Umgebung mit Dockerfile festlegen
- Service zur Ausführung in docker-compose.yaml definieren
- Starten der Anwendung mit docker compose up
Was ist Kubernetes?
Kubernetes ist eine Open Source-Plattform zur Container-Orchestrierung, mit der verteilte, containerisierte Anwendungen in riesigem Umfang verwaltet werden können. Sie teilen Kubernetes mit, wo Ihre Software ausgeführt werden soll, und die Plattform kümmert sich um fast alles, was für das Deployment und Management Ihrer Container erforderlich ist.
Welche Funktionen bietet Kubernetes?
Serviceerkennung und Lastverteilung, Speicherorchestrierung, Automatisierte Rollouts und Rollbacks, Automatische Bin-Packing-Verfahren, Selbstheilung – Geheimhaltung und Konfigurationsverwaltung, Horizontale Skalierung
Welche Schritte werden für Kubernetes benötigt?
- Kubernetes Cluster erstellen (Node, Control Plane, Node Processes). Nodes können aus verschiedenen Pods bestehen (Volume und containerized Apps)
- App deployen
- Explore your App
- App veröffentlichen
- App skalieren
- App updaten
Wie funktionieren externalized configurations?
Applikationen können mit Spring über Profile konfiguriert werden. Beans werden nur aktiv, wenn das Profil gewählt ist. Kann via Kommandozeile oder als Systemumgebungsvariable festgelegt werden.
z.B. @Profile("dev")
Was sind Access Tokens und wie funktionieren sie?
Dienen der Sicherheit. Zugriff erfolgt über separaten Service.
User gibt Passwort ein (Request).
Client sendet Anfrage an Authorization Server (Verification) und erhält Token.
Sendet Token an Resource Server und erhält den Inhalt.
Sprachen: Security Assertion Markup Language oder JSON Web Tokens (JWT)
Nenne Konzepte für die Steigerung der Resilience/Reliability.
Retry: Definiert eine maximale Anzahl an parallelen Zugriffsversuchen. Erst wenn diese erreicht ist, wird die Anfrage abgebrochen.
Bulkhead: Definiert eine Anzahl gleichzeitiger Zugriffe. Wenn mehr als diese Zugriffe erfolgen, warten diese bis die ersten abgeschlossen sind.
Rate Limitter: Definiert eine maximale Anzahl in einem gewissen Zeitraum. Nach diesem Zeitraum sind neue Zugriffsversuche möglich.
Circuit Breaker: Blockiert temporär mögliche Fehler. Schnellere Rückmeldung an Client.
Was ist Observability-driven development (ODD)?
Zusätzliche Ebene der Entwicklung. Verfügbarkeit und Up-Time sollen bereits bei der Entwicklung berücksichtigt werden. Erzeugt mehr Daten zuhanden von Operations.
Welches sind die wichtigsten Punkte für die Observability und wie funktionieren sie?
Health Check API: Service besitzt Endpoint, Welcher über den Zustand der Applikation Auskunft gibt (Status der Verbindungen, Status des Hosts)
Logging: Zentralisierter Logging Service, welcher die Logs der verschiedenen Instanzen zusammenträgt.
Exception Tracking: Alle Exceptions an zentralen Service, Welcher zusammenträgt und benachrichtigt.
s
Aus welchen Phasen besteht Application Lifecycle Management?
Plan, Build (Code, Build, Test, Release), Run (Deploy, Operate)
Was sind die Ziele von Application Lifecycle Management?
Schneller Lösungen entwicklen mit besserer Qualität. ALM regelt Details für Aufgaben, Rollen, Verantwortlichkeiten und Meilensteine.
Mit welchen drei Aspekten beeinflusst ALM die Geschäftsanforderungen?
- Kontrolle des Lebenszykluses der Anforderung
- Iterationen zur Unterstützung der Entwicklung und des Testens der Anforderung
- Hilft dem Fach die Anforderungen zu verstehen
Was beinhaltet das Configuration Management (6 Aspekte)?
Quellcode, Build Engineering, Environment Management, Change Management, Release Management, Deployment
Was sind Best-Practices in ALM?
Automation, Continuos Deployment/Integration/Delivery, Retros, Cloudnutzung, Qualitätssicherung und Testing
Beschreibe den traditionellen Softwareentwicklungsprozess.
Fokussiert auf Anforderungen, Design, Programmierung und Testing
Was unterscheidet agile application lifecycle management von traditionellen Modellen?
- flexiblerer und kreativerer
- Teams können den agilen Ansatz an die Bedürfnisse anpassen
- überlicherweise iterative Vorgehensweise
Welches sind die agile Prizipien?
- Individuen und Interaktionen über Prozessen und Tools
- Funktionierende Software über Dokumentation
- Kundenzusammenarbeit über Vertragsverfüllung
- auf Veränderung reagieren über einen Plan verfolgen.
Was versteht man unter DevOps und welche Schritte beinhaltet es?
Development (Funktionalität hinzufügen) und Operations (Software verfügbar machen, Verantwortlich für Verfügbarkeit).
Dev (Plan, Create, Verify, Package)
Ops (Release, Configure, Monitor, Release)
Was unterscheidet das Wasserfallvorgehen vom interativen Vorgehen?
Schritte: Analyse, Design, Code, Test
Wasserfall: Analyse wird für jedes Feature vor der ersten Designarbeit gmacht.
Iterativ: Alle Schritte für ein Feature, bevor das nächste Bearbeitet wird.
Was sind die Ziele von Rapid Iterative Development?
- Schnell Funktionalität entwickeln, welche allen Stakeholdern gezeigt werden kann
- Entwickler können neue Technologien oft beim Einsatz erlernen
- Iterative Ansätze erlauben dies bei gleichzeitiger Entwicklung von Funktionalität
- Reduziert Time-to-Market
- Rapid Prototyping verbessert Qualität/Produktivität und senkt Kosten/Zeitbedarf
Welchen Plannungsansatz verfolgt das Wasserfallmodell?
Prädiktiv (vorausschauend), da die frühen Phasen stabil sein müssen.
Welche Planungsansätze können für iterative Projekte verwendet werden?
Prediktiv (wenn die Features während der initialen Planung fixiert werden)
Adaptiv (wenn neue Features hinzugefügt oder bestehende verschoben werden können)
Der agile Prozess benötigt zwingend eine adaptive Planung
Was ist unter Scrum zu verstehen?
Projektmanagementframework basierend auf Werten, Prinzipien und Praktiken. Aus Erfahrungen lernen, selbst-organisiert und priorisiert. Reflektion für die ständige Verbesserung.
Hinweis: Agilität ist ein Mindset und keine Methode
Aus welchen Elementen besteht Scrum (ohne Rollen)?
Product Backlog, Sprint Planning, Sprint Backlog, Daily Scrum, Inkrement, Sprint Review, Sprint Retro
-
- 1 / 91
-