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 wegzudenken, 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 Linux Container 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 essenziell ein gutes Verständnis für HTTP zu haben und zu verstehen wie es funktioniert. Vor allem wenn es darum geht Probleme zu debuggen.
Im Jahr 2022 ist beinahe der gesamte Traffic im Internet verschlüsselt. Das geschieht primär mit TLS. Da wir Webserver, Loadbalancer und sonstige Komponenten, die Verbindungen entgegennehmen, 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:
Based on the Ruby Basics Card in the developer Curriculum
Ruby is the programming language we use on the backend.
After finishing this lesson you should be able to read and write simple Ruby programs.
Gain an understanding of the following concepts:
String
, Integer
, Float
, Boolean
, Array
, Hash
if
, each
, case
, break
...def
, return
, implicit return in methods and blocksUm Server Infrastrukturen schnell und reproduzierbar konfigurieren zu 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, die geringste Einstiegshürde und eine flache Lernkurve.
In dieser Card machst du einige Übungsaufgaben um Linux Server mit Ansible zu verwalten.
Da es vermutlich zu aufwendig ist alles von 0 auf selbst zu erstellen, solltest du prüfen, ob du fertige roles von der Ansible Galaxy verwenden kannst.
Erstelle ein git Repository ähnlich zu dem aus dem vorherigen Kapitel. Am besten auch mit pre-commit hooks.
Für die einzelnen Arbeitsschritte solltest du Merge Requests erstellen, die dein Mentor reviewt. Der Name des Merge Requests und des Feature Branches s...