makandra bietet ein bezahltes Trainee-Programm für DevOps / Cloud-Engineers: http://start.makandra.de
Wir arbeiten für unsere Kunden häufig als Infrastruktur- und Operations-Spezialisten gemeinsam mit Entwickler-Teams und sorgen für skalierbare, ausfallsichere Architekturen. Wir entwickeln und implementieren Konzepte für Deployment, Monitoring, Backup in traditionellen RZ-Umgebungen ("On premise") und vor allem in Private und Public Cloud-Umgebungen.
Unsere Kunden schätzen an unseren DevOps-Teams technisch extrem ...
Bei makandra entwickeln wir seit 2009 Web-basierte Anwendungen und haben im Trainee-Programm für unsere Web-Entwickler vieles aufgeschrieben, dass Du für deine Ausbildung ebenfalls wissen solltest.
Arbeite durch die folgende Liste an Inhalten:
Wir arbeiten bei makandra alle auf Linux-Betriebssystemen und bedienen im DevOps- & Cloud-Bereich primär Kunden, die ebenfalls auf Linux als Ziel-System setzen.
Entsprechend benötigen wir tiefgehendes Wissen über Linux.
In diesem Kapitel lernst Du alles zum Hintergrund und ein wenig Theorie zu Prozessen, Speicher, Konfiguration und viel praktisches zur Konfiguration, Ressourcenüberwachung und abschließend eine Anleitung zur Performance-Analyse von Unix-basierten Systemen in 60 Sekunden.
Falls du mit Linux noch nicht vertraut bist, lernst ...
In diesem Kapitel wollen wir uns die Struktur des Linux Dateisystems ansehen. Damit ist in diesem Fall nicht das Dateisystem gemeint, mit dem z.B. die Festplatte formatiert wird, sondern die Struktur der Verzeichnisse und Dateien eines Linux Systems.
/sys
, /dev
und /proc
auf sich hat
Wir wollen im Detail verstehen, wie in Unix-Systemen Prozesse gehandhabt werden und wie wir Prozesse aus dem Userland behandeln können.
nice
, renice
und wie funktioniert dasDie notwendigen Bücher hat makandra für seine Trainees erworben und du fin...
Wir wollen verstehen, welche Hardware-Ressourcen uns zur Verfügung stehen und wie wir mögliche Engpässe und Probleme identifizieren können. Grundsätzlich dreht sich diese Frage in der Regel um die Anzahl der zur Verfügung stehenden CPUs, Hauptspeichers, Festplatten und Netzwerkkapazitäten.
Manche Ressourcen-Limits werden auch aus Sicherheitsgründen vom Betriebssystem eingezogen, beispielsweise per ulimit
oder fs.file-max
. Ressourcen können auch mit cgroups
limitiert werden. Dazu lernst du später noch mehr.
Unter Linux gibt es mehrere Dateisysteme. Es ist gut einen Überblick zu haben welche existieren und wie man die Dateisysteme verschlüsselt.
ext4
, btrfs
, zfs
und xfs
und weißt wann man diese üblicherweise einsetzen möchte (und wann nicht)journaling
bedeutet und warum man das haben möchtecopy-on-write
ist und warum das in Zusammenhang mit Snapshots praktisch istLinux Kernel Parameter werden üblicherweise schon zur Compile und Startzeit mit brauchbaren Default-Werten geliefert. Allerdings muss man, je nach Software, die auf den Systemen läuft, und für was diese eingesetzt werden, manchmal die Parameter auch anpassen.
Du kannst folgende Fragen beantworten:
scp
und rsync
?ssh-keygen
, ssh-agent
, ssh-add
?Schau dir den unter Inhalte
verlinkten Udemy Kurs an.
Die Zugangsdaten für Udemy bekommst Du von deinem Mentor.
Überspring Inhalte, die Du schon kennst.
Die verlinkten Artikel des TCP/IP Guide haben oft mehrere Seiten. Du kannst oben/unten jeweils sehen auf welcher Seite du bist und auf die nächste wechseln.
Wir haben auch eine Variante des TCP/IP Guide in unserer Bibliothek, falls du längerfristig mit dem Buch arbeiten möchtest.
Der Begriff systemd
wird immer umfassender da es sich nicht mehr (wie ursprünglich) nur um ein init
Systemd handelt, sondern immer weitere Komponenten hinzugefügt wurden. Wir werden uns nicht mit allen Komponenten beschäftigen, aber mit den wichtigsten für deine Arbeit.
systemd
gibtsystemd
(core und ancillary) und für was diese da sindsystemd
unit
istVor 20 Jahren begann der große Durchbruch der Virtualisierung. Heute sind virtuelle Server kaum noch weg zu denken, da diese eine deutlich flexiblere Nutzung der darunter liegenden Hardware erlauben. VMs bieten auch einen einfachen Weg ohne allzu hohe Kosten Systeme voneinander zu isolieren.
Virtualisierung hat übrigens wenig bis nichts mit Containern zu tun. Zu Containern lernst du später noch mehr.
Du weißt...
Als DevOps engineer kann es häufiger vorkommen, dass du ein lokales Testsetup bauen musst um eine bestimmte Software oder ein Tool zu testen. Dafür bieten sich VMs oder Linux Container an. In diesem Kapitel lernst du wie du lokal Linux Container aufsetzen und konfigurieren kannst.
Da man seine Linuxcontainer auch effizient konfigurieren möchte, machen wir auch einen Ausflug zu Cloud-Init, das dir auch an anderen Stellen noch gute Dienste leisten wird.
Da wir für einige Übungsaufgaben Dockercontainer benötigen lernst du in diesem Kapitel die Basics zu Docker. Hier vermitteln wir nur sehr oberflächliches Wissen. Details lernst du später, wenn wir uns intensiver mit Containern und deren Orchestrierung beschäftigen. Hier soll es nur darum gehen, dass du verstehst was Container an sich sind und wie du diese für deine Testsetups verwenden kannst. Container sind übrigens nicht gleichbedeutend mit docker
. Wir verwenden Docker in diesem Fall, weil es am weitesten verbreitet ist und die Wahrschei...
Du musst kein Netzwerkspezialist sein oder iptables
in- und auswendig kennen. Du solltest aber die Grundlagen verstanden haben. Spätestens wenn du dir ansiehst wie z.B. Kubernetes Netzwerke aufspannt wirst du dieses Wissen benötigen.
iptables
drop
, reject
, return
und accept
machen.table
sFilter
table anzeigen lassen?Wir arbeiten in einem Umfeld in dem sich fast alles um das Web und HTTP dreht. Wir betreiben Webseiten und benutzen Dienste die über HTTP REST APIs kommunizieren. Es ist essentiell eine gutes Verständins für HTTP zu haben und zu verstehen wie es funktioniert. Vor allem wenn es darum geht Probleme zu debuggen.
Im Jahr 2022 ist beinah der gesamte Traffic im Internet verschlüsselt. Das geschieht primär mit TLS. Da wir Webserver, Loadbalancer und sonstige Komponenten, die Verbindungen entgegen nehmen, konfigurieren, liegt auch die TLS Konfiguration dieser Endpunkte in unserer Hand. Deswegen ist es entscheidend, ein gutes Verständnis davon zu haben wie die Verschlüsselung des Traffics funktioniert.
Mit SQL spricht man mit relationalen Datenbanken.
SELECT
WHERE
ORDER
INNER JOIN
, LEFT JOIN
GROUP BY
LIMIT
UPDATE
INSERT
and INSERT ... SELECT
DELETE
EXPLAIN ANALYZE
transaction
ist.index
ist
index
?Im DevOps Bereich bist du insbesondere damit beschäftigt Infrastruktur zu bauen und zu betreiben. Weil man große Infrastukturen nur schwer manuell betreiben kann und sich damit zahlreiche Probleme und Nachteile ins Haus holt automatisiert man die meisten Aufgaben weitgehend. Das passiert auf unterschiedlichen Wegen:
See Ruby Basics in the Developer Curriculum.
You can skip Blocks and monkey patches.
Um Server Infrastrukturen schnell und reproduzierbar konfigurieren so können setzt man auf so genannte Configuration Management Lösungen. Die bekanntesten sind Puppet, Chef, Salstack und Ansible. Dabei hat Ansible den größten Verbreitungsgrad und die geringste Einstiegshürde und eine flache Lernkurve.
Bei automatisierungsaufgaben kannst du dich nicht immer auf fertige tools verlassen. Häufig musst du eine Schnittstelle zu einem bestehenden System selbst implementieren oder mit APIs sprechen um eine automatisierung einzubauen oder Informationen aus einem System zu ziehen. Am häufigsten werden dir hier Systeme mit JSON begegenen.
In diesem Kapitel wirst du einfache Programme zum kommunizieren mit solchen APIs entwerfen.