(Presque sur l'infrastructure) Lisez les manuels Docker pour les programmeurs.1

Pourquoi voulez-vous étudier Docker

Vous pouvez entrer un projet qui utilise Docker. (Appuyez simplement sur docker-compose up -d à l'avant) Cependant, lorsque vous travaillez à intervalles, si vous démarrez après le branchement, un écran d'erreur apparaît, ou si le développeur vous contacte pour reconstruire parce que les paramètres de Docker ont changé, vérifiez-le pour le moment. J'ai supprimé le conteneur-> supprimé l'image-> extraite de gitHub et reconstruite ... Que s'est-il passé? Je voulais m'en débarrasser.

En fait, j'ai pensé à essayer Docker il y a quelque temps, j'ai vu un article quelque part et j'ai démarré le conteneur à partir du fichier docker, mais même si j'ai arrêté le PC récemment, j'ai remarqué qu'il commençait en arrière-plan et j'avais peur. C'était. Peut-être que j'utilisais docker-compose stop comme commande pour arrêter le conteneur, et cela aurait été bien si c'était docker-compose down. Peut être. Je voulais savoir y compris cela.

À propos de l'infrastructure

Même si vous créez un service, il sera difficile à exploiter si l'infrastructure n'est pas solide La raison pour laquelle il peut être utilisé correctement est qu'il a une conception de fonctionnement appropriée.

Exigences pour le système

Il existe deux exigences principales pour le système.

Exigences fonctionnelles

Un résumé des fonctions du système et ce qui peut être fait avec le logiciel

Prérogatives non fonctionnelles

Exigences autres que les exigences fonctionnelles, les performances et la fiabilité du système, la sécurité, etc.

3 infrastructures système (applications à ce sujet)

L'infrastructure système est l'infrastructure telle que le matériel et le système d'exploitation / middleware requis pour exécuter les applications.

OS du serveur

Windows Server / Unix / Linux etc. Spécialisé pour un fonctionnement à grande vitesse, stable et à long terme du système.

Intergiciel

Logiciel serveur qui permet au serveur de jouer un rôle spécifique sur le système d'exploitation. Serveur Web / serveur d'applications Web, serveur de base de données, outil de gestion système, etc.

Matériel / réseau

Le centre de données (physique) et les serveurs de connexion réseau.

Utilisation du système

À peu près divisé en trois

  1. Sur site Posséder un centre de données en interne. Il était souvent utilisé dans les systèmes d'entreprise. Il peut y avoir de nombreuses usines.
  2. Cloud public Fourni sur Internet. AWS etc. Payez uniquement ce que vous utilisez.
  3. Cloud privé Le centre de données et les utilisateurs internes sont limités.

Différence système

Des services adaptés au cloud

--Services à trafic variable

Services pour lesquels le cloud ne convient pas

Sur site peut être plus approprié, alors réfléchissez bien

réseau

Deux. Dans le monde des réseaux, les adresses réseau sont utilisées pour identifier les serveurs, les clients, etc.

  1. Adresse MAC Une adresse 48 bits affectée physiquement à des composants tels que les réseaux locaux sans fil et les cartes d'interface. Les 24 premiers bits identifient le fabricant. Les 24 derniers bits sont alloués de manière à ne pas se chevaucher. Il est représenté par un nombre hexadécimal séparé de 2 octets depuis le début. ** Utilisé dans la couche liaison de données. ** **
  2. Adresse IP Un numéro d'identification attribué à un ordinateur connecté au réseau. IPv4 représente quatre nombres décimaux de 0 à 255 côte à côte. «192.168.1.1» Avec IPv4, seulement 2 à la 32e puissance peuvent être connectées à un réseau, il sera donc épuisé. Le réseau de l'entreprise est équipé d'un équipement (NAT) qui convertit entre les adresses privées et les adresses globales. Le plus récent IPv6 peut utiliser 128 bits, il y a donc beaucoup de place.

Modèle de référence OSI

C'est la base de la technologie des réseaux. Le modèle de référence de base OSI est un modèle conceptuel qui divise les fonctions de communication établies par l'ISO en une structure hiérarchique. Il y a 7 niveaux. L'interopérabilité est assurée par la superposition.

Câble LAN-> Adresse MAC-> Routeur-> IP-> TCP-> Déterminer le moment de la transmission des données-> Déterminer la compression et le format d'expression du code de caractère-> Spécifier le protocole d'application (HTTP, FTP)

Pare-feu

Protégez l'intérieur avec un pare-feu pour que le système fonctionne en toute sécurité. Pour contrôler la communication interne et externe.

--Type de filtre de paquet --Filtre passant les paquets en fonction du numéro de port et de l'adresse IP. Seul le numéro 80 peut passer. Contrôle en décidant des règles telles que ne pas pouvoir communiquer autrement. --Serveur proxy --Substituer et contrôler la communication avec l'extérieur au niveau du protocole d'application. C'est comme une alternative à HTTP.

À propos de Linux

Noyau Linux

La partie centrale de l'OS, écrite en C et assemblées. --Gestion d'appareils

coquille

Pour faire fonctionner le noyau Linux. Commande avec une commande. Un fichier texte est une collection d'instructions que vous souhaitez exécuter dans le shell. La syntaxe de contrôle peut être utilisée. (si, pour ..) Shell est bash, zsh, etc.

Système de fichiers Linux

VFS: Un accès transparent aux données est possible avec un mécanisme appelé système de fichiers virtuel. Peu importe où il est stocké, tout peut être récupéré sous forme de fichier dans un répertoire. (Vous n'avez pas besoin d'être conscient de l'intérieur du disque dur ou de l'intérieur de l'USB)

Structure de répertoires Linux

Diverses commandes et fichiers de paramètres sont placés dans le répertoire. Cette liste de répertoires est normalisée par une norme appelée FHS. Il y a des différences selon la distribution Linux (OS qui est différent en dehors du noyau Linux comme CentOS, Fedora, Ubuntu), mais c'est presque la même chose.

Fonction de sécurité

Paramètre d'autorisation par compte

L'autorisation peut être définie par l'utilisateur root et l'utilisateur général. root est un utilisateur privilégié et dispose de tous les privilèges d'exécution. Vous pouvez définir des comptes d'utilisateurs généraux en tant que groupe et définir des autorisations en détail. Vous pouvez décider de l'autorité d'accès. C'est probablement la même chose que lors du téléchargement avec FTP, parfois il est limité par des autorisations et il n'est pas affiché.

Il existe de nombreuses autres mesures de sécurité

À propos du middleware

En plus des connaissances de base du matériel / du réseau / du système d'exploitation, la connaissance du middleware est également requise pour démarrer l'application.

Serveur Web / serveur d'applications Web

Il a une fonction pour recevoir des requêtes http, renvoyer du contenu Web (html, css, etc.) en tant que réponse et appeler d'autres programmes côté serveur. Apache, Nginx, etc.

Serveur de base de données

Middleware pour la gestion des données. SGBD. MySQL, PostgreSQL (Postogure School), base de données Oracle

Une base de données relationnelle est une base de données qui gère des données sous la forme d'une table à deux dimensions. Vous pouvez combiner plusieurs tables et les utiliser. (relation)

NoSQL Un format différent du SGBDR. Puisqu'il est bon pour accumuler une grande quantité de données et le traitement parallèle, il est nécessaire de traiter l'accès d'un grand nombre d'utilisateurs. Largement utilisé dans les systèmes en ligne de bases de données XML. MongoDB,Redis

Outil de surveillance du système

Pour un fonctionnement stable du système. Zabbix, Datadog, maquereau (Hatena)

À propos de la configuration de l'infrastructure

Avec l'avènement des systèmes cloud et de diverses branches technologiques, il est devenu possible de construire des serveurs et des réseaux difficiles sur site, et de les détruire immédiatement. Il n'est plus nécessaire de gérer l'historique des modifications. Il a changé pour gérer l'état de l'infrastructure qui fonctionne actuellement.

Gestion de la configuration basée sur le code

J'ai utilisé une feuille de paramètres (comme un document de conception détaillée ou un document de conception de programme dans l'infrastructure), mais lorsque la gestion était insuffisante, parfois lorsque j'essayais de modifier la configuration, cela ne fonctionnait pas bien. Cela provoque le pire incident de sécurité.

En le construisant avec du code et en le gérant avec git, même s'il y a un changement dans la production, le journal restera dans git et l'historique des modifications peut également être géré. Vous pouvez également laisser un message. Il peut éliminer la personnalisation, il est facile à partager et il sera dans le même état, peu importe qui l'exécute.

Dans Docker, les informations de configuration de l'infrastructure peuvent être décrites dans un fichier appelé ** Dockerfile **.

Outil de gestion de configuration d'infrastructure typique

Un outil qui automatise le démarrage du système d'exploitation

Vagrant pour créer un environnement virtuel

Un outil qui automatise les paramètres du système d'exploitation et du middleware

Un outil pour automatiser l'installation et la gestion des versions de middleware tels que le serveur de base de données / serveur Web / agent de surveillance, le fichier de configuration du système d'exploitation et du middleware et les paramètres du pare-feu. Chef, Ansible

Un outil qui automatise la gestion de plusieurs serveurs

Il existe plusieurs serveurs qui composent un système à grande échelle. Un outil de gestion de ce serveur distribué. L'outil d'orchestration de conteneurs ** Kubernetes ** est un outil qui gère de manière complète plusieurs conteneurs dans un environnement virtuel de conteneur.

Sommaire

Vous pouvez utiliser Docker pour rendre l'environnement le même. Outre l'avantage d'être standardisé, il y a aussi l'avantage d'éviter la personnalisation.

Je ne connais vraiment pas bien l'infrastructure et j'ai du mal à saisir l'image du modèle de référence OSI écrit au début d'un livre ou d'un article. Chaque fois que je l'ai lu, j'ai commencé par demander comment c'était ... alors je pense qu'il est temps de l'obtenir.

Je suis une personne de la réception, alors j'aimerais un jour le voir de l'avant avec Docker.

Références

Docker Textbook for Programmers 2nd Edition

Recommended Posts

(Presque sur l'infrastructure) Lisez les manuels Docker pour les programmeurs.1
À propos de Docker
À propos de la capacité de Docker