[DOCKER] J'ai essayé de comparer la technologie d'infrastructure des ingénieurs ces jours-ci avec la cuisine.

introduction

Le public cible visé pour cet article est

――Je ne suis pas ingénieur (développeur) ――Mais je suis impliqué avec des ingénieurs. (Planification et gestion) «Par conséquent, si vous ne connaissez pas au moins l'infrastructure de l'ingénieur, les ingénieurs se mettront en colère contre vous en disant:« Vous ne le savez pas? «Mais j'ai un peu cherché sur Google, mais je ne comprends rien.

Gens

Peu importe le genre de personne qu'il y a, personne ne le mangera, alors j'ai essayé de le comparer à la cuisine.

Ainsi, les ingénieurs qui touchent habituellement le serveur ne sont pas aussi ciblés Cela aide peut-être les gens qui peuvent programmer mais qui ne savent rien de l'infrastructure. Ce n'est peut-être pas le cas.

À propos d'une technologie spécifique

--Cloud (soi-disant cloud public. AWS / Azure / GCP ...) --Conteneur (Docker)

Je vais toucher Nous visons à transmettre l'atmosphère. Donc, à proprement parler, cela peut être un peu différent. Notez s'il vous plaît

Je n'écris pas un mensonge. C'est différent ici! Je vous serais reconnaissant si vous pouviez commenter s'il y a quelque chose comme ça.

Sujet principal

Ensuite, c'est le sujet principal.

1. Conventionnel

Vous êtes un ** cuisinier ** (ingénieur) ** Cuisson ** (codage / programmation) Cependant, il ne peut pas être fourni aux clients (ne peut pas être déployé). Tout d'abord, préparez ** table (serveur physique) **, préparez ** assiette (bibliothèque, etc.) ** et servez ** de la nourriture (code) ** dessus pour la première fois (déploiement) )

Il faut donc préparer à chaque fois ** table ** et ** assiette **. Surtout, il est difficile de préparer ** table ** à chaque fois. C'est lourd et cher.

2. Nuage

C'est là que ** Cloud ** est né. ** Cloud ** est fait en organisant plus de 1000 ** tables (serveurs physiques) ** et en dessinant une immense nappe blanche. Le contenu est donc un ensemble de ** tables **, mais vu d'en haut, il ne s'agit que d'une ** immense table ** blanche.

Faites une partition sur la ** table énorme ** et divisez-la en espaces individuels. Ci-après, cet espace sera appelé ** tableau (provisoire) . ( Serveur virtuel ** / instance EC2). Cela peut être un peu difficile à imaginer, mais considérez le ** tableau (provisoire) ** comme un ** tableau ** normal. Nous le fournissons aux ** cuisiniers **. "De combien de ** tables (temporaires) ** avez-vous besoin?" "Ceci est votre ** table (temporaire) **" "Veuillez utiliser comme vous le souhaitez" "Les frais de location sont de ** 1 table (temporaire) ** C'est ** l'opérateur cloud ** (AWS / Azure / GCP…) qui loue «combien coûte-t-il par mois»

Cependant, après tout, vous devez préparer des ** plaques (bibliothèque, etc.) ** sur la ** table (temporaire) **. Si vous souhaitez servir sur plusieurs ** tables (temporaires) **, vous devrez acheter des ** assiettes ** pour chacune et les placer, puis disposer ** des plats ** sur chacune. Un bel arrangement s'impose également. Fastidieux.

3. Conteneur

C'est là que le ** Container ** est né. Considérez un ** conteneur ** comme une ** boîte de livraison **. C'est ** Okamochi **. Remplissez la boîte avec des ** assiettes ** et des ** plats **. Le bel arrangement se termine également ici. Donc, une fois que vous avez fait ** Okamochi **, il vous suffit de le mettre sur la ** table **.

(Le conteneur lui-même fonctionne à la fois sur des serveurs physiques et virtuels. Voir l'édition supplémentaire en bas pour savoir pourquoi nous expliquons dans cet ordre.)

Et, à partir de maintenant, c'est différent de la réalité, mais cet ** Okamochi ** peut reproduire exactement la même chose. Je ne pouvais pas penser à une bonne analogie ici. Si vous entrez ce ** Okamochi **, pensez que vous pouvez utiliser une imprimante 3D avec une super science.

Donc, si vous souhaitez le fournir à plusieurs ** tables **, vous pouvez tout résoudre en rassemblant les ** Okamochi ** dupliqués. Vous n'êtes pas obligé d'acheter ** assiettes (bibliothèque, etc.) ** à chaque fois.

La plus célèbre de ces technologies de ** conteneur ** est le conteneur appelé ** Docker **.

Mais il y a aussi un problème ici. Autrement dit, si la ** table ** se brise (se casse ou se brise dans les jambes), le ** okamochi (conteneur) ** dessus tombera naturellement ensemble. Par exemple, c'est important s'il s'agit d'un buffet / buffet. Vous devez toujours fournir ** de la nourriture ** à vos clients, mais si cela se brise, ** de la nourriture ** jusqu'à ce que vous mettiez un autre ** okamochi (récipient) ** sur une autre ** table ** Ne sera pas disponible.

(Vous pensez peut-être que ça ne casse pas facilement, mais c'est vraiment important quand ça casse, donc ce sont les ingénieurs d'infrastructure qui veulent vraiment l'éviter.)

  1. Kubernetes C'est là que ** Kubernetes ** est né. (K8s pour faire court) ** Kubernetes ** est quelque chose comme un ** serveur **. ** Supermarché **. ** Les serveurs ** consultent en permanence toutes les ** tables (serveurs physiques / virtuels) ** de leur magasin. Ensuite, le ** chef (ingénieur) ** donne le ** okamochi (récipient) ** contenant la ** nourriture ** qu'il veut mettre dans le ** serveur **. Par exemple, "Je veux que vous mettiez ces ** légumes frits Okamochi **". Le ** serveur ** dit «intelligent» et met ** les légumes frits Okamochi ** sur une ** table **.

Disons donc que ** table ** est corrompue. Naturellement, les ** légumes frits ** tomberont. Je ne peux pas manger. Dans le passé, les ** chefs ** remarquaient avec un décalage dans le temps et plaçaient à la hâte un nouveau "** Okamochi de légumes frits **" sur une autre ** table ** vide et l'offraient aux clients. .. (De cette pause jusqu'à ce que vous mettiez Okamochi sur une nouvelle table = Le moment où vous ne pouvez pas servir de nourriture au client est un temps d'arrêt. Il s'agit d'une soi-disant panne du système, ce qui signifie que vous ne pouvez pas vous connecter aux services Web, etc. C'est effrayant. Je déteste ça.)

Mais les ** super serveurs (kubernetes) ** ne vous dérangent pas. Le ** serveur ** remarque immédiatement et recherche automatiquement une ** table ** vide et y place un nouveau "** okamochi aux légumes frits **". Par conséquent, il sera possible de continuer à le fournir aux clients tel quel. Ce faisant, le ** cuisinier ** peut se concentrer sur la ** cuisson **.

Extra: mise à l'échelle automatique

Soit dit en passant, le "barème automatique" que vous pouvez entendre de temps en temps est le ** tableau (provisoire) ** sorti en 2 lorsque le montant préparé à l'avance ne suffit pas, le nouveau ** tableau (provisoire) C'est un mécanisme qui prépare **. C'est l'une des plus grandes forces du ** cloud **, qui est une énorme table **.

Ainsi, par exemple, j'ai remarqué que la ** table (serveur virtuel) ** avec 4 ** serveurs ** est cassée, et changé "** légumes frits Okamochi (conteneur) **" en un autre Je veux le mettre sur la ** table , mais il n'y a pas de ** table ** gratuite! dangereux! Que devrais-je faire! Quand c'est arrivé. Si vous ajoutez la fonction de mise à l'échelle automatique, vous serez surpris. Un nouveau ** tableau (provisoire) ** sera disponible automatiquement. Ainsi, par une journée ensoleillée, le ** serveur ** peut mettre " Okamochi de légumes sautés **" sur la nouvelle table ** (provisoire) **.

Par conséquent, kubernetes et le cloud sont souvent utilisés en même temps (je pense).

À la fin

Comment était-ce. Cet article est souvent appelé ** Kubernetes! Kubernetes! ** dans notre entreprise récemment, et la section que les grands seniors qui ne sont pas des développeurs pensent "Qu'est-ce que ** Kubernetes ** ..." Je l'ai écrit avec l'espoir qu'il serait plus facile pour ces gens de l'imaginer.

Je l'ai écrit avec beaucoup d'élan. Je bois honnêtement Donc, s'il y a trop de critiques, je peux l'effacer parce que j'étais calme

Merci d'avoir lu jusqu'ici, à la fois dans le lapin et dans le coin.

Recommended Posts

J'ai essayé de comparer la technologie d'infrastructure des ingénieurs ces jours-ci avec la cuisine.
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
J'ai essayé de visualiser l'accès de Lambda → Athena avec AWS X-Ray
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
J'ai essayé de vérifier le fonctionnement de la requête http (Put) avec Talented API Tester
J'ai essayé d'étudier le mécanisme d'Emscripten en l'utilisant avec un solveur allemand
J'ai essayé d'augmenter la vitesse de traitement avec l'ingénierie spirituelle
J'ai essayé de résumer les bases de kotlin et java
J'ai brièvement résumé la grammaire de base de Ruby
J'ai essayé de créer un environnement de WSL2 + Docker + VSCode
Assurez-vous de comparer le résultat Java compareTo avec 0
J'ai essayé d'interagir avec Java
J'ai essayé d'expliquer la méthode
J'ai essayé d'implémenter la fonction de prévisualisation d'image avec Rails / jQuery
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé de résoudre le problème de Google Tech Dev Guide
J'ai essayé d'exprimer les résultats avant et après de la classe Date avec une ligne droite numérique
J'ai essayé de résumer les méthodes utilisées
J'ai essayé de démarrer avec Web Assembly
J'ai essayé de résumer les points clés de la conception et du développement de gRPC
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai essayé de résumer l'API Stream
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
Après tout, je voulais prévisualiser le contenu de mysql avec Docker ...
Les ingénieurs Java comparés pour apprendre la grammaire de base de Ruby maintenant Partie 1 (Basique, Variables)
J'ai essayé d'implémenter une fonction équivalente à Felica Lite avec HCE-F d'Android
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
J'ai essayé de cloner une application Web pleine de bugs avec Spring Boot
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
J'ai essayé de faire une authentification de base avec Java
J'ai essayé de gérer la configuration des jambes de force avec Coggle
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
J'ai essayé de gérer les informations de connexion avec JMX
C # (base de l'encapsulation)
Je veux var_dump le contenu de l'intention
J'ai essayé de configurer tomcat pour exécuter le servlet.
J'ai essayé d'utiliser le profileur d'IntelliJ IDEA
J'ai essayé de casser le bloc avec java (1)
J'ai vérifié le nombre de taxis avec Ruby
Janken de Sazae J'ai essayé de vérifier la valeur théorique et la valeur mesurée de la probabilité de la même main 5 fois consécutives avec Ruby
J'ai essayé de créer un outil de comparaison des prix des produits Amazon dans le monde entier avec Java, l'API Amazon Product Advertising, l'API Currency (29/01/2017)
Les ingénieurs Java comparent maintenant pour apprendre la grammaire de base de Ruby Part 2 (classes, méthodes)