Inhaltsverzeichnis
- Einleitung
- Technologien der dritten Plattform IT
- Microservices und REST-Schnittstellen
- Service-Orientierte-Architekturen (SOA)
- Cloud Computing
- Machine Learning - KI, neuronale Netzwerke, ...
- Ziel des Moduls: Verstehen, analysieren und beurteilen von IT-Trends und Buzzwords darum
- LV-Aufteilung: 45LV gesamt
-
- Sem: 30LV
-
- Sem: 15LV
-
- Am Ende des 3. Sem.: Teilprüfungsleistung in Form einer kleinen Abhandlung über die Trends (Details noch offen)
- KI-unterstützte GUIs: es wird versucht, die Absicht des Nutzers vorherzusagen und entsprechend Programmfunktionen zu empfehlen
- KI-unterstützte Prozessautomatisierung: KI-basierte Empfehlungen / Vorschläge / Werbung, wie auf Amazon oder sozialen Medien zu sehen ist
- bis 2032 sollen 75% der IT-Ausgaben in der "dritten Plattform der IT" liegen
- Marktänderungen mit großen Auswirkungen, die existenz-gefährdend oder -ermöglichend sind
- Bsp.: Digitalkameras waren eine Disruption der Kamerafilmindustrie, aber auch für Speicherkartenhersteller
- Agile Methoden sind: DevOps, Microservices & Cloud Computing, KI in allen Unternehmensbereichen / Digitale Transformation
- Ziel: Bewährtes auf eine neue Qualitätsstufe heben und durch Neues anreichern
Vorteile:
- zentrale Datenverarbeitung
- schnelles Deployment
- unabhängig von lokaler Infrastruktur (-> dynamisch skalierbar)
- hohe Verfügbarkeit
- "Pay as you go"
- Anwendung: "am Rand des großen Netzwerks" --> für Geräte, die nicht in einem Netzwerk liegen (z.B. IoT-Sensoren)
- Auslöser für Entwicklung:
- höhere Rechen- und Übertragungsgeschwindigkeit
- Verlangen nach Flexibilität
- Agilität der IT
...bzw. KI / AI / Neuronale Netze / ML / Deep Learning
- erfordern möglichst große Datenbasis
- Folge: Unternehmen sammeln zum Teil extreme Datenmengen (vom Nutzer), was dann Big Data heißt
- Nutzen in IT-Operations / -Tool / -Prozessen
- z.B. Ausfallvorhersage
- sollte unterstützend wirken, nicht ersetzend
- trifft üblicherweise Vorhersagen
- Bsp.: Analyse des Kaufverhaltens bei Kartenzahlungen und Verkauf von Informationen für Werbezwecke
- DevOps = Development + Operations
- ist Philosophie und Sammlung von Methoden
- Ziel: schnelleres Wirksamwerden von Änderungen
- Scrum-Strategie:
- Ziel: schnelle Projektanpassungen und Flexibilität
- beliebtes Werkzeug: Continuous Integration / Continuous Delivery
- Durch Cloudentwicklung ist das Release-Modell weniger relevant (laufende Aktualisierung, immer verfügbar, daher egal für Nutzer)
...bzw. Informationssicherheit
- ist "Chefsache"
- Firma haftet
- muss vom Management organisiert werden
- Umsetzungshelfer: IT-Grundschutz-Zertifizierung
- soll nicht nur technisch sein --> Mitarbeiter-Training
- Reaktion auf Vorfälle ist nicht ausreichend, man braucht auch Prävention und Vorschau auf Attacken (Profiling, Analysieren von Auswirkungen, Planung)
- Personalrollen:
- Datenschutzbeauftragter: organisiert, informiert, ist Ansprechpartner
- Informationssicherheitsbeauftragter
- Mitarbeiter: muss geschult sein und disziplinvoll handeln, damit Schutz wirksam
- ist ein Dauerprojekt
- Schutzziele:
- Integrität von Daten = Manipulationsschutz
- z.B. durch Hashes
- Vertraulichkeit der Daten = Zugriffsbeschränkungen
- auf Netzwerkebene
- auf physischer Ebene
- auf logischer Ebene --> Verschlüsselung, Betriebssystemfunktionen
- Verfügbarkeit der Daten
- Redundanzen, Backups
- Authentizität - Echtheit der Daten, keine Fälschung
- Nichtabstreitbarkeit
- Integrität von Daten = Manipulationsschutz
- Authentizität + Nichtabstreitbarkeit = Verlässlichkeit der Daten
- Cloud Computing
- Mobile Computing (Mobilgeräte)
- Big Data & Analytics
- AI
- Augmented Reality / Virtual Reality
- IoT - Internet of Things
- Robotik
- 3D-Drucker
- Next-Gen Security (bessere Angriffserkennung und Abwehr durch KI)
Alle diese Punkte bedingen neue Expertisen bei den Mitarbeitern in den betreffenden Unternehmen:
- LOW-Code-Entwicklerplattformen werden notwendig, dabei sind vorgefertigte Programmodule vorhanden: diese Module (File-Open, Sortierungen, ...) müssen dann von den Entwicklern nur noch zusammengestellt werden
- Lambda-Funktion in AWS
- NO-Code
Dev-Ops Methoden weiten sich auf das gesamte Unternehmen aus.
Sind Architekturmuster in der IT, bei der die Anwendungssoftware aus vielen voneinander unabhängigen Prozessen zusammengesetzt wird. Damit diese Prozesse miteinander kombiniert werden können, gibt es eine unabhängige Programmierschnittstelle. Dabei wird von Diensten gesprochen, die entkoppelt sind. Der Aufbau ist modular.
Das Drei-Schichten-Modell spielen dabei eine Rolle:
- GUI
- Logik
- Daten
Es wird auf die Microservices übertragen.
z.B.:
- Microservice UI
- Microservice Logik
- Daten
Diese können wiederum aus Microservices zusammengesetzt sein, die untereinander vernetzt sind, siehe Schaubild.
- Sind klein, überschaubar und einfach ersetzbar
- haben abgegrenzte Geschäftsfunktion
- Schnittstellen
z.B. HTTP-Requests:- sind gut testbar
- bei allen Programmsprachen unterstützt
- etablierte Technologie
- Sind nutzergetrieben (UX)
- Sind voneinander unabhängig:
- Lebenszyklus
- Fehlerzustände werden nicht weitergeleitet
- Programmiersprache
- Datenbank
- Technologie-Stack
- dezentral organisiert und horizontal skalierbar
- Logging + Monitoring sind notwendig
- Gemeinsame Authentifizierung, Authorisierung und Kryptographie
-
HTTP-Anfrage + REST-Schnittstelle
-
Beispiel für horizontale Skalierung:
MS-A muss auf MS-B zugreifen, es sind mehrere Instanzen von MS-B vorhanden. Dazu muss ein Load Balancer die Anfragen beispielsweise an diejenigen MS mit z.B. der geringsten Auslastung weiter weiterleiten.
Pro | Contra |
---|---|
kann billiger sein | Netzwerk-Lastig (ggf. langsamer) |
Service schneller austauschbar | Erstinstallation und -konfiguration ist komplex |
gute Skalierbarkeit | Gefahr der Funktionsduplizierung |
bei Dienstausfall sind restliche Funktionen noch vorhanden | Logging ist komplex |
Entwicklung kann unabhängig geschehen | Problem der "verteilten Uhren" |
Wiederverwendung der Services in anderen Projekten |
- AWS --> Simple Queue Service (SQS)
- Netflix
- Zalando
- Zur Kommunikation von verteilten Systemen
- ist weder ein Protokoll, noch ein Standard
- wurde parallel zu HTTP entwickelt
- WWW liefert REST-konforme Infrastruktur
- Client-Server-Modell
- UI ist von der Datenhaltung getrennt
- REST-Schnittstelle ist zustandslos
- jede Anfrage muss alle relevanten Informationen enthalten
- Server hat keinen gespeicherten Kontext
- Caching
- gleiche Anfragen dürfen Cache verwenden
- noncachable-Kennzeichnung möglich
- Schnittstellen einheitlich
- vom Dienst entkoppelte Schnittstelle
- höhere Visibilität von Interaktionen, aber schlechtere Effizienz
- Binärdaten müssen HTTP-Konformes Format haben
- Layered System
- schichtenbasiert -> der Einsatz eines Load-Balancers wird möglich
- Anfragenlast kann verteilt werden
- dadurch steigt aber auch die Latenz
- schichtenbasiert -> der Einsatz eines Load-Balancers wird möglich
- Code-On-Demand
- nachladbare Applets/Skripte für Clients sind möglich
http://adresse:port/
beliebige Daten in HTTP konformer Syntax
Aufgabe 1 (30 min):
- Entwickeln Sie ein Microservice-Beispiel und visualisieren Sie ihre Idee
- Begründen Sie die Microservice-Architektur
Aufgabe 2:
- Suchen und bedienen Sie eine REST-Schnittstelle (Senden und Empfangen von Daten)
Links zum Testen:
Link zum Registrieren der Mailadresse für den Amazon-Cloud-Service für nächste Woche im Backstage https://backstage.dhge.de/course/view.php?id=2718
- Cloud als Buzzword
- Daten in der Cloud
- Rechnen in der Cloud
- Mythos: Ersetzt ein komplettes Rechenzentrum
- nahe Verwandte: Grid-Computing, Cluster-Computing
- Parallelisierung auf CPU-Ebene
- Parallelisierung auf Rechner-Ebene
- mehrere CPU pro Rechner
- Parallelisierung auf Cluster-Ebene
- n-Systeme, die sich wie Eines verhalten
- Parallelisierung auf GRID-Ebene
- mehrere zusammengefasste Cluster
- n-Systeme verhalten sich wie ein virtueller Supercomputer
- Problem:
- zu lösende Aufgabe muss sinnvoll aufteilbar sein
- "Teile und Herrsche"-Problem -> Parallelverarbeitung muss möglich sein
- Wenn Parallelisierung möglich ist:
- Load-Balancer übernimmt die Verteilung der Einzelaufgaben
- Cluster befindet sich an einem lokalen Standort
- Buzzwords:
- HPC - High Performance Computing
- HA - High Availability
- zentraler GRID-Server, der die Verwaltung der heterogenen Rechner-/Clusterstruktur übernimmt
- GRID-Server übernimmt auch die dynamische Aufgabenverteilung
- dazu wird eine GRID-Computing Software notwendig
- Buzzword:
- Job-Orientierung
- Jobs werden der GRID-Software zur Verfügung gestellt, diese übernimmt die Abarbeitung
- Job-Orientierung
- Vorteil ist die gute Skalierbarkeit
- Ressourcen und Zugriff sind dezentral
Pro | Contra |
---|---|
Hardware-Kosten sinken | permanente Internetverbindung benötigt |
Gute Skalierbarkeit | Vertraulichkeit muss sichergestellt sein |
Hohe Verfügbarkeit | Daten müssen sicher sein (z.B. DSGVO) |
Verwaltungsaufwand sinkt für SW-Installation/Updates, Hardware Tausch, Backup | Abhängigkeit von Dritten (Cloud-Anbieter) |
Zahlung nach Nutzung | Kosten können ggf. höher sein |
24/7 Support | Geschwindigkeit und Latenz |
Eigene neue Netzwerk-Topologien konfigurierbar | |
Automatisierbarkeit |
Over-Subscription: Cloud-Anbieter überbuchen ihre technischen Möglichkeiten, da nie von allen Kunden gleichzeitig alles genutzt wird
SaaS | SW-Sammlungen |
---|---|
PaaS | Laufzeitumgebung von Dienstanbietern |
IaaS | virtualisierte Computer Hardware |
- Public Cloud (öffentliche Cloud)
- von beliebigen Personen/Unternehmen benutzbar
- keinen internen Anwendungen
- Probleme mit Datensicherheit beachten
- Private Cloud
- Anbieter im eigenen Unternehmen (ggf. Outsourcing)
- komplette Infrastruktur wird ausschließlich selbst genutzt
- virtuelle Private Cloud: private Cloud auf anderen Servern (z.b. AWS Government Cloud)
- Hybrid Cloud
- mehrere eigenständige Cloud-Infrastrukturen
- Nutzung über standardisierte Schnittstelle
- z.B. Private Cloud + Public Cloud für Failover-Fall
- Bucket (Ordner) in die Dateien können hochgeladen werden
- Diverse Konfigurationsmöglichkeiten: Öffentlicher Zugriff, Versionierung, ...
- Download von https://docs.aws.amazon.com/de_de/cli/latest/userguide/install-cliv2.html
- Einrichten mit
aws configure
- Daten aus Vocareum Workbench --> Account Details eintragen
- Linux:
~/.aws/
- Windows:
%USERPROFILE%/.aws/
- Linux:
.aws/credentials
sehen circa so aus:
[default]
aws_access_key_id=
aws_secret_access_key=
aws_session_token=
.aws/config
sollte so aussehen:
[default]
region = us-east-1
output = json
Unter https://calculator.s3.amazonaws.com/index.html können die monatlichen Kosten für die AWS Services berechnet werden
- Services > EC2 > Instanzen > Instanz starten
- Dann gewünschtes OS auswählen
- Dann Konfiguration auswählen (für Educate ist es t2 micro)
- Click: Configure Instance Details
- Details konfigurieren
- Click: Add Storage
- Speicher konfigurieren
- Click: Add Tags
- Tags zum Wiederauffinden der Maschine hinzufügen
- Click: Configure Security Group
- Port- und Diensteinstellungen konfigurieren
- Click: Review
- Click: Launch
- Generate SSH Keypair
- SSH Key abspeichern
- fertig.
Per SSH verbinden
Hier von Windows cmd aus:
cd PfadFürSSHKeypair
ssh -i Keypair.pem ubuntu@IPAdresseAusAWS
Per RDP verbinden
Bei Windows VMs findet sich der Admin Zugang unter:
Services > EC2 > Instanzen
Dann gewünschte Instanz anwählen und Click auf "Verbinden"
Dort dann die RDP-Datei herunterladen
Dann noch Passwort abrufen klicken um mit dem SSH-Keypair das Passwort zu entschlüsseln
Arthur Samuel (1959):
"Computer bekommen die Fähigkeit zu lernen ohne dafür explizit programmiert worden zu sein"
Tom Mitchell:
"Ein Programm-System um automatisch zu lernen und sich durch Experimente zu verbessern"
-
Objekterkennung
- bestimmte Objekte auf Bildern oder in Videos erkennen
- Beispiele:
- Gesichtserkennung
- Gesichtsmerkmale erkennen und zu Personen zuordnen
- Lächeln und andere Emotionen erkennen
- Alter und Geschlecht erkennen
- Texterkennung
- Bild -> Text
- Audio -> Text
- Formularanalyse
- Objekte erkennen und zählen
- krankhafte Zellen in CT- und MRT-Bildern
- semantische Einteilung
- unsichere Inhalte erkennen
- z.B. Pornographie, Gewalt, ...
- unsichere Inhalte erkennen
- Bilder-Deutung
- Gesichtserkennung
-
Prinzipien in Datenfolgen erkennen
- z.B. Virensignaturen...
-
natürliche Sprache erkennen
- nicht bezogen auf Diktierfunktion, also Text-To-Speech
- es geht explizit um das "Verstehen" des Gesprochenen und Einordnung in den Kontext
Ablauf:
Begriff des Deep-Learnings kommt daher, dass bei der Konstruktion viele versteckte Schichten verwendet werden. Die verschiedenen Layer ermöglichen den Einsatz verschiedener Features/Funktionen.