(Fast über die Infrastruktur) Lesen Sie Docker-Lehrbücher für Programmierer. 1

Warum möchten Sie Docker studieren?

Sie können ein Projekt eingeben, das Docker verwendet. (Drücke einfach vorne auf "Docker-Compose-Up" -D) Wenn Sie jedoch in regelmäßigen Abständen arbeiten, wird beim Starten nach der Verzweigung ein Fehlerbildschirm angezeigt, oder wenn sich der Entwickler mit mir in Verbindung setzt, um die Daten neu zu erstellen, da sich die Docker-Einstellungen geändert haben, werde ich dies vorerst untersuchen Ich habe den Container gelöscht-> das Bild gelöscht-> aus gitHub gezogen und neu erstellt ... Was ist passiert? Ich wollte loswerden.

Eigentlich habe ich vor einiger Zeit darüber nachgedacht, Docker auszuprobieren. Ich habe irgendwo einen Artikel gesehen und den Container über die Docker-Datei gestartet, aber selbst wenn ich den PC kürzlich heruntergefahren habe, habe ich festgestellt, dass er im Hintergrund gestartet wurde und ich hatte Angst. Es war. Vielleicht habe ich "Docker-Compose Stop" als Befehl zum Stoppen des Containers verwendet, und es wäre in Ordnung gewesen, wenn es "Docker-Compose Down" gewesen wäre. Vielleicht. Ich wollte es auch wissen.

Über die Infrastruktur

Selbst wenn Sie einen Dienst erstellen, ist der Betrieb schwierig, wenn die Infrastruktur nicht solide ist Der Grund, warum es richtig betrieben werden kann, ist, dass es ein richtiges Betriebsdesign hat.

Anforderungen an das System

Es gibt zwei Hauptanforderungen an das System.

Funktionale Anforderungen

Eine Zusammenfassung der Systemfunktionen und was mit Software gemacht werden kann

Nicht-funktionale Anforderungen

Andere Anforderungen als funktionale Anforderungen, Systemleistung und -zuverlässigkeit, Sicherheit usw.

3 Systeminfrastrukturen (Anwendungen dazu)

Die Systeminfrastruktur ist die Infrastruktur wie Hardware und Betriebssystem / Middleware, die zum Ausführen von Anwendungen erforderlich ist.

Server-Betriebssystem

Windows Server / Unix / Linux usw. Spezialisiert auf schnellen, stabilen und langfristigen Betrieb des Systems.

Middleware

Serversoftware, die eine Funktion hat, mit der der Server eine bestimmte Rolle auf dem Betriebssystem spielt. Webserver / Webanwendungsserver, Datenbankserver, Systemverwaltungstool usw.

Hardware / Netzwerk

Das Rechenzentrum (physisch) und die Netzwerkverbindungsserver.

Systemnutzung

Grob in drei Teile geteilt

  1. Vor Ort Besitzen Sie ein Rechenzentrum im Haus. Es wurde häufig in Unternehmenssystemen verwendet. Es kann viele Fabriken geben.
  2. Öffentliche Cloud Im Internet bereitgestellt. AWS etc. Zahlen Sie nur für das, was Sie verwenden.
  3. Private Cloud Das interne Rechenzentrum und die Benutzer sind begrenzt.

Systemunterschied

Für die Cloud geeignete Dienste

Dienste, für die die Cloud nicht geeignet ist

On-Premise ist möglicherweise besser geeignet. Überlegen Sie es sich daher genau

Netzwerk

Zwei. In der Netzwerkwelt werden Netzwerkadressen verwendet, um Server, Clients usw. zu identifizieren.

  1. MAC-Adresse Eine 48-Bit-Adresse, die Teilen wie WLANs und Schnittstellenkarten physisch zugewiesen ist. Die ersten 24 Bits identifizieren den Hersteller. Die letzten 24 Bits werden so zugewiesen, dass sie sich nicht überlappen. Es wird durch eine Hexadezimalzahl dargestellt, die vom Anfang durch 2 Bytes getrennt ist. ** Wird in der Datenverbindungsschicht verwendet. ** ** **
  2. IP-Adresse Eine Identifikationsnummer, die einem mit dem Netzwerk verbundenen Computer zugewiesen ist. IPv4 repräsentiert vier Dezimalzahlen von 0 bis 255 nebeneinander. "192.168.1.1" Mit IPv4 können nur bis zu 2 bis 32. Strom an ein Netzwerk angeschlossen werden, sodass es erschöpft ist. Das Unternehmensnetzwerk ist mit (NAT) Geräten ausgestattet, die zwischen privaten und globalen Adressen konvertieren. Das neuere IPv6 kann 128 Bit verwenden, daher ist viel Platz vorhanden.

OSI-Referenzmodell

Es ist die Basis der Netzwerktechnologie. Das OSI-Basisreferenzmodell ist ein konzeptionelles Modell, das die von ISO festgelegten Kommunikationsfunktionen in eine hierarchische Struktur unterteilt. Es gibt 7 Ebenen. Die Interoperabilität wird durch Layering sichergestellt.

--Anwendungsschicht 7

LAN-Kabel-> MAC-Adresse-> Router-> IP-> TCP-> Bestimmen Sie den Zeitpunkt der Datenübertragung-> Bestimmen Sie das Komprimierungs- und Zeichencode-Ausdrucksformat-> Geben Sie das Anwendungsprotokoll an (HTTP, FTP).

Firewall

Schützen Sie das Innere mit einer Firewall, damit das System sicher läuft. Zur Steuerung der internen und externen Kommunikation.

Über Linux

Linux Kernel

Der Kernteil des Betriebssystems, geschrieben in C und Assemblys. --Geräteverwaltung

Schale

Zum Betreiben des Linux-Kernels. Befehl mit einem Befehl. Eine Textdatei ist eine Sammlung von Anweisungen, die Sie in der Shell ausführen möchten. Die Steuerungssyntax kann verwendet werden. (if, for ..) Shell ist bash, zsh usw.

Linux-Dateisystem

VFS: Ein transparenter Zugriff auf Daten ist mit einem Mechanismus möglich, der als virtuelles Dateisystem bezeichnet wird. Unabhängig davon, wo es gespeichert ist, kann alles als Datei in einem Verzeichnis abgerufen werden. (Sie müssen nicht auf das Innere der Festplatte oder das Innere des USB achten.)

Linux-Verzeichnisstruktur

Verschiedene Befehle und Einstellungsdateien werden im Verzeichnis abgelegt. Diese Verzeichnisliste ist durch einen Standard namens FHS standardisiert. Abhängig von der Linux-Distribution gibt es Unterschiede (Betriebssystem, das sich außerhalb des Linux-Kernels unterscheidet, wie z. B. CentOS, Fedora, Ubuntu), aber es ist fast dasselbe.

Sicherheitsfunktion

Berechtigungseinstellung nach Konto

Die Berechtigung kann vom Root-Benutzer und vom allgemeinen Benutzer festgelegt werden. root ist ein privilegierter Benutzer und verfügt über alle Ausführungsrechte. Sie können allgemeine Benutzerkonten als Gruppe festlegen und Berechtigungen im Detail festlegen. Sie können die Zugriffsberechtigung festlegen. Es ist wahrscheinlich dasselbe wie beim Hochladen mit FTP, manchmal ist es durch Berechtigungen eingeschränkt und wird nicht angezeigt.

Es gibt viele andere Sicherheitsmaßnahmen

Über Middleware

Neben Grundkenntnissen in Hardware / Netzwerk / Betriebssystem sind auch Kenntnisse in Middleware erforderlich, um die Anwendung zu starten.

Webserver / Webanwendungsserver

Es hat die Funktion, http-Anforderungen zu empfangen, Webinhalte (HTML, CSS usw.) als Antwort zurückzugeben und andere serverseitige Programme aufzurufen. Apache, Nginx usw.

Datenbankserver

Middleware für die Datenverwaltung. DBMS. MySQL, PostgreSQL (Postogure School), Oracle-Datenbank

Eine relationale Datenbank ist eine Datenbank, die Daten in Form einer zweidimensionalen Tabelle verwaltet. Sie können mehrere Tabellen kombinieren und verwenden. (Beziehung)

NoSQL Ein anderes Format als RDBMS. Da es gut ist, eine große Datenmenge zu akkumulieren und parallel zu verarbeiten, ist es notwendig, den Zugriff einer großen Anzahl von Benutzern zu verarbeiten. Weit verbreitet in XML-Datenbank-Online-Systemen. MongoDB,Redis

Systemüberwachungstool

Für einen stabilen Betrieb des Systems. Zabbix, Datadog, Makrele (Hatena)

Informationen zur Infrastrukturkonfiguration

Mit dem Aufkommen von Cloud-Systemen und verschiedenen technologischen Zweigen ist es möglich geworden, Server und Netzwerke, die vor Ort schwierig waren, aufzubauen und sofort zu zerstören. Es ist nicht mehr erforderlich, den Änderungsverlauf zu verwalten. Es wurde geändert, um den Status der derzeit betriebenen Infrastruktur zu verwalten.

Codebasiertes Konfigurationsmanagement

Ich habe ein Parameterblatt verwendet (wie ein detailliertes Designdokument oder ein Programmdesigndokument in der Infrastruktur), aber wenn die Verwaltung unzureichend war, funktionierte es manchmal nicht gut, wenn ich versuchte, die Konfiguration zu ändern. Es verursacht den schlimmsten Sicherheitsvorfall.

Wenn Sie es mit Code erstellen und mit git verwalten, bleibt das Protokoll auch bei einer Änderung in der Produktion in git und der Änderungsverlauf kann ebenfalls verwaltet werden. Sie können auch eine Nachricht hinterlassen. Es kann die Personalisierung beseitigen, es ist einfach zu teilen und es befindet sich im selben Zustand, unabhängig davon, wer es ausführt.

In Docker können Informationen zur Infrastrukturkonfiguration in einer Datei mit dem Namen ** Dockerfile ** beschrieben werden.

Typisches Tool zur Verwaltung der Infrastrukturkonfiguration

Ein Tool, das den Start des Betriebssystems automatisiert

Vagrant, um eine virtuelle Umgebung zu erstellen

Ein Tool, das Betriebssystem- und Middleware-Einstellungen automatisiert

Ein Tool zur Automatisierung der Installation und Versionsverwaltung von Middleware wie Datenbankserver / Webserver / Überwachungsagent, Betriebssystem- und Middleware-Einstellungsdatei und Firewall-Einstellungen. Chef, Ansible

Ein Tool, das die Verwaltung mehrerer Server automatisiert

Es gibt mehrere Server, aus denen ein großes System besteht. Ein Tool zum Verwalten dieses verteilten Servers. Das Container-Orchestrierungs-Tool ** Kubernetes ** ist ein Tool, das mehrere Container in einer virtuellen Container-Umgebung umfassend verwaltet.

Zusammenfassung

Sie können Docker verwenden, um die Umgebung anzupassen. Neben dem Vorteil der Standardisierung besteht auch der Vorteil der Verhinderung der Personalisierung.

Ich bin wirklich schlecht in Infrastrukturkenntnissen und es fällt mir schwer, das Bild des OSI-Referenzmodells zu erfassen, das am Anfang eines Buches oder Artikels geschrieben wurde. Jedes Mal, wenn ich es las, fragte ich zunächst, wie es war ... also denke ich, es ist an der Zeit, es zu bekommen.

Ich bin eine Person an der Rezeption, daher würde ich es gerne eines Tages mit Docker von der Vorderseite aus sehen.

Verweise

Docker Textbook for Programmers 2nd Edition

Recommended Posts

(Fast über die Infrastruktur) Lesen Sie Docker-Lehrbücher für Programmierer. 1
Über Docker
Informationen zur Docker-Kapazität