Dans l'attente de Vitaly Khabarov a interviewé Dmitry Stolyarov (), directeur technique et co-fondateur de la sociĂ©tĂ© «Flant». Vitaly a interrogĂ© Dmitry sur ce que fait «Flant», Kubernetes, le dĂ©veloppement de l'Ă©cosystĂšme, le support. Ils ont discutĂ© de l'utilitĂ© de Kubernetes et de son besoin rĂ©el. Ils ont Ă©galement parlĂ© des microservices, d'Amazon AWS, de l'approche «J'ai de la chance» en DevOps, de l'avenir de Kubernetes lui-mĂȘme, pourquoi, quand et comment il va conquĂ©rir le monde, des perspectives du DevOps et de ce Ă quoi les ingĂ©nieurs doivent se prĂ©parer dans un avenir proche avec l'optimisation et les rĂ©seaux neuronaux.
sous forme de podcast est Ă Ă©couter sur DevOps DĂ©flop â un podcast francophone sur le DevOps, et ci-dessous se trouve la version textuelle.

Ici et ci-dessous, les questions sont posées par un ingénieur d'Express42.
à propos de «Flant»
â Dima, salut. Tu es le directeur technique de «» et aussi son fondateur. Peux-tu, s'il te plaĂźt, nous parler de ce que fait l'entreprise et de ton rĂŽle en son sein ?
Dmitry: De l'extérieur, on dirait que nous sommes ces gars qui vont, installent Kubernetes à tout le monde et font quelque chose avec. Mais ce n'est pas le cas. Nous avons commencé comme une entreprise spécialisée dans Linux, mais depuis longtemps, notre principale activité est la gestion de projets de production et de haute charge clés en main. En général, nous construisons toute l'infrastructure à partir de zéro et ensuite nous en sommes responsables pendant longtemps. Donc, le principal travail que «Flant» fait, et pour lequel elle reçoit de l'argent, c'est prendre la responsabilité et réaliser des productions clés en main..
En tant que directeur technique et un des fondateurs de l'entreprise, je passe mes journées à réfléchir à comment améliorer la disponibilité de la production, simplifier son exploitation, faciliter la vie des administrateurs, et rendre la vie des développeurs plus agréable.
Ă propos de Kubernetes
â DerniĂšrement, j'ai vu beaucoup de prĂ©sentations de «Flant» sur Kubernetes. Comment ĂȘtes-vous arrivĂ© Ă cela ?
Dmitry: J'en ai déjà parlé de nombreuses fois, mais cela ne me dérange pas de le répéter. Je pense qu'il est important de revenir sur ce sujet car il y a de la confusion entre cause et effet.
Nous avions vraiment besoin d'un outil. Nous étions confrontés à de nombreux problÚmes, nous avons lutté, surmonté ces défis avec divers bricolages et éprouvé un besoin d'un véritable outil. Nous avons exploré de nombreuses options, construit nos propres solutions, accumulé de l'expérience. Peu à peu, nous avons commencé à utiliser Docker presque dÚs son apparition - vers 2013. à son lancement, nous avions déjà beaucoup d'expérience avec les conteneurs, et nous avions déjà écrit notre propre version de "Docker" - en quelque sorte nos bricolages en Python. Avec Docker, nous avons pu éliminer ces solutions improvisées et utiliser une solution fiable et soutenue par la communauté.
L'histoire est similaire avec Kubernetes. Au moment oĂč il a commencĂ© Ă gagner en popularitĂ© - pour nous, c'Ă©tait la version 1.2 - nous avions dĂ©jĂ de nombreux bricolages, tant en Shell qu'en Chef, que nous tentions d'orchestrer avec Docker. Nous Ă©tions sĂ©rieusement orientĂ©s vers Rancher et d'autres solutions, puis Kubernetes est arrivĂ©, qui a tout rĂ©alisĂ© exactement comme nous l'aurions fait, voire mieux. Il n'y a rien Ă redire.
Oui, il y a des imperfections ici et lĂ - beaucoup d'Ă©lĂ©ments non finalisĂ©s, et la version 1.2 Ă©tait vraiment terrible, mais... Kubernetes est comme un bĂątiment en construction - on regarde le projet et on sait que ça va ĂȘtre gĂ©nial. Si le bĂątiment a actuellement un fondement et deux Ă©tages, on comprend qu'il vaut mieux ne pas emmĂ©nager tout de suite, mais avec les logiciels, ce n'est pas un problĂšme - on peut dĂ©jĂ l'utiliser.
Nous n'avons jamais eu de moment oĂč nous avons hĂ©sitĂ© Ă utiliser Kubernetes ou non. Nous l'attendions depuis longtemps avant son apparition et tentions de crĂ©er nos propres analogues.
Ă propos de Kubernetes
â Participez-vous directement au dĂ©veloppement de Kubernetes ?
Dmitry: Indirectement. Nous participons plutÎt au développement de l'écosystÚme. Nous envoyons un certain nombre de pull requests : vers Prometheus, divers opérateurs, Helm - vers l'écosystÚme. Malheureusement, je ne suis pas en mesure de suivre tout ce que nous faisons et je peux me tromper, mais nous n'avons pas envoyé de pull request au noyau.
â Par ailleurs, dĂ©veloppez-vous de nombreux outils autour de Kubernetes ?
Dmitry: La stratĂ©gie est la suivante : nous allons et faisons des pull requests pour tout ce qui existe dĂ©jĂ . Si les pull requests ne sont pas acceptĂ©es, nous les forkons pour nous-mĂȘmes et nous continuons Ă vivre avec nos versions jusqu'Ă ce qu'elles soient acceptĂ©es. Ensuite, lorsque cela arrive Ă la version upstream, nous retournons Ă la version upstream.
Par exemple, nous avons un opérateur Prometheus, avec lequel nous avons basculé vers le upstream de notre build environ cinq fois, probablement. Nous avons besoin d'une fonctionnalité, nous avons envoyé une demande de tirage, nous devons la déployer demain, et nous ne voulons pas attendre qu'elle soit publiée dans le upstream. Par conséquent, nous rassemblons notre propre version, déployons notre build avec la fonctionnalité dont nous avons besoin sur tous nos clusters. Puis, cela est par exemple renvoyé à upstream avec les mots : « Les gars, faisons-le pour un cas plus général », nous, ou quelqu'un d'autre, le complétons, et avec le temps, cela fusionne à nouveau.
Tout ce qui existe, nous essayons de le dĂ©velopper.. De nombreux Ă©lĂ©ments qui n'existent pas encore, qui n'ont pas encore Ă©tĂ© imaginĂ©s ou qui ont Ă©tĂ© imaginĂ©s mais pas encore rĂ©alisĂ©s, nous les concevons. Et ce n'est pas parce que nous aimons le processus lui-mĂȘme ou la crĂ©ation de vĂ©los en tant que domaine, mais simplement parce que nous avons besoin de cet outil. On nous pose souvent la question, pourquoi avons-nous créé telle ou telle chose ? La rĂ©ponse est simple : parce que nous devions avancer, rĂ©soudre un problĂšme pratique, et nous l'avons rĂ©solu avec cet outil.
Le chemin est toujours le mĂȘme : nous cherchons trĂšs soigneusement et, si nous ne trouvons aucune solution Ă comment faire un trolleybus Ă partir dâun pain, alors nous faisons notre propre pain et notre propre trolleybus.
Les outils de Flant
â Je sais qu'il y a maintenant des opĂ©rateurs addon chez Flant, des opĂ©rateurs shell, des outils dapp/werf. Si je comprends bien, c'est le mĂȘme outil sous diffĂ©rentes incarnations. Je comprends aussi qu'il y a encore beaucoup d'autres outils Ă l'intĂ©rieur de Flant. Est-ce correct ?
Dmitry: Nous avons encore beaucoup de choses sur GitHub. Parmi ce dont je me souviens maintenant, nous avons statusmap - un tableau pour Grafana, qui est apprécié de tous. Il est mentionné presque dans chaque deuxiÚme article sur la surveillance de Kubernetes sur Medium. Il est impossible de décrire briÚvement ce qu'est statusmap - un article séparé est nécessaire, mais c'est un outil trÚs utile pour surveiller le statut dans le temps, car dans Kubernetes, nous devons souvent montrer le statut au fil du temps. Nous avons aussi LogHouse - c'est un outil basé sur ClickHouse et un peu de magie noire pour collecter des logs dans Kubernetes.
De nombreux outils ! Et il y en aura encore plus, car un certain nombre de solutions internes seront publiĂ©es cette annĂ©e. Parmi les plus importantes, il y a une multitude d'addons pour Kubernetes, comme la bonne installation de sert manager â un outil pour la gestion des certificats, ou la bonne installation de Prometheus avec une multitude d'extensions â ce sont une vingtaine de binaires diffĂ©rents qui exportent des donnĂ©es et collectent des Ă©lĂ©ments, et avec Prometheus, c'est une superbe interface graphique et des alertes. Tout cela constitue une multitude d'addons pour Kubernetes qui s'installent dans le cluster, le transformant d'un simple en un puissant, sophistiquĂ© et automatisĂ©, oĂč de nombreuses questions sont dĂ©jĂ rĂ©solues. Oui, nous faisons beaucoup de choses.
Développement de l'écosystÚme
â Je pense que c'est une contribution trĂšs importante au dĂ©veloppement de cet outil et de ses mĂ©thodes d'utilisation. Peux-tu estimer approximativement qui aurait Ă©galement pu apporter une telle contribution au dĂ©veloppement de l'Ă©cosystĂšme ?
Dmitry: En Russie, parmi les entreprises qui opĂšrent sur notre marchĂ© â personne n'est mĂȘme proche.. Bien sĂ»r, c'est une dĂ©claration audacieuse, car il y a de grands acteurs, comme Mail et Yandex â ils font aussi quelque chose avec Kubernetes, mais mĂȘme eux ne se rapprochent pas de la contribution des entreprises dans le monde entier, qui en font beaucoup plus que nous. Il est difficile de comparer "Flant" avec une Ă©quipe de 80 personnes et Red Hat, qui a 300 ingĂ©nieurs rien que pour Kubernetes, si je ne me trompe pas. C'est difficile Ă comparer. Dans notre dĂ©partement RnD, nous sommes 6, y compris moi, qui dĂ©veloppons tous nos outils. 6 personnes contre 300 ingĂ©nieurs de Red Hat â c'est un peu difficile Ă comparer.
â NĂ©anmoins, mĂȘme lorsque ces 6 personnes peuvent faire quelque chose de vraiment utile et transfĂ©rable, lorsqu'elles sont confrontĂ©es Ă un problĂšme pratique et qu'elles donnent une solution Ă la communautĂ© â c'est un cas intĂ©ressant. Je comprends que dans de grandes entreprises technologiques, oĂč il y a leur propre dĂ©veloppement et une Ă©quipe de support Kubernetes, de tels outils peuvent Ă©galement ĂȘtre dĂ©veloppĂ©s. C'est un exemple pour eux, montrant qu'on peut dĂ©velopper et donner Ă la communautĂ©, donner un coup de pouce Ă toute la communautĂ© qui utilise Kubernetes.
Dmitry: C'est probablement la particularité de l'intégrateur, sa spécificité. Nous avons de nombreux projets et voyons beaucoup de situations différentes. Pour nous, le principal moyen de créer de la valeur ajoutée est d'analyser ces cas, de trouver des points communs et de maximiser leur réduction de coûts. Nous travaillons activement sur cela. Il m'est difficile de parler de la Russie et du monde, mais nous avons environ 40 ingénieurs DevOps dans notre entreprise qui s'occupent de Kubernetes. Je ne pense pas qu'il y ait beaucoup d'entreprises en Russie avec un nombre comparable de spécialistes connaissant Kubernetes, s'ils existent vraiment.
Je comprends tout sur le nom de poste d'ingĂ©nieur DevOps, tout le monde comprend et s'habitue Ă appeler les ingĂ©nieurs DevOps des ingĂ©nieurs DevOps, nous ne discuterons pas de cela. Ces 40 merveilleux ingĂ©nieurs DevOps font face chaque jour Ă des problĂšmes et les rĂ©solvent, nous analysons simplement cette expĂ©rience et essayons de l'universaliser. Nous comprenons que si cela reste en interne, dans un an ou deux, l'outil devient inutile, car quelque part dans la communautĂ©, un outil prĂȘt Ă l'emploi apparaĂźtra. Il n'y a aucun sens Ă accumuler cette expĂ©rience en interne - c'est juste un gaspillage de forces et de temps dans dev/null. Mais nous ne sommes pas du tout rĂ©ticents. Nous publions tout avec grand plaisir et savons qu'il est nĂ©cessaire de le publier, de le dĂ©velopper, de le promouvoir, de le faire connaĂźtre, afin que les gens l'utilisent et ajoutent leur propre expĂ©rience - alors tout grandit et vit. Dans deux ans, l'outil ne sera pas Ă la poubelle. Nous ne sommes pas rĂ©ticents Ă continuer Ă investir des efforts, car il est visible que des gens utilisent notre outil, et dans deux ans, tout le monde l'utilise dĂ©jĂ .
C'est une partie de notre grande stratĂ©gie avec dapp/werf. Je ne me souviens pas quand nous avons commencĂ© Ă le faire, il y a semble-t-il 3 ans. Ă l'origine, c'Ă©tait entiĂšrement sur shell. C'Ă©tait un super proof of concept, nous avons rĂ©solu certaines de nos tĂąches particuliĂšres - ça a marchĂ© ! Mais avec shell, il y a des problĂšmes, il est impossible d'Ă©voluer davantage, programmer sur shell est en effet une activitĂ© assez difficile. Nous avions l'habitude de coder en Ruby, donc nous avons refait quelque chose en Ruby, et avons continuĂ© Ă dĂ©velopper, dĂ©velopper, dĂ©velopper, et avons Ă©tĂ© confrontĂ©s au fait que la communautĂ©, la foule, qui ne dit pas « nous voulons ou ne voulons pas », se dĂ©tourne de Ruby, aussi drĂŽle que cela puisse paraĂźtre. Nous avons compris que nous devions Ă©crire tout cela en Go, juste pour nous conformer au premier point de la liste de contrĂŽle : L'outil DevOps doit ĂȘtre un binaire statique. Sur Go ou pas sur Go, cela n'a pas tellement d'importance, mais il vaut mieux avoir un binaire statique Ă©crit en Go.
Nous avons investi des efforts, réécrit le dapp en Go et l'avons nommé werf. Le dapp n'est plus maintenu, n'est plus développé, il fonctionne dans une certaine version définitive, mais il existe un chemin de mise à niveau absolu vers le haut, et il est possible de le suivre.
Pourquoi le dapp a-t-il été créé
â Peux-tu briĂšvement expliquer pourquoi le dapp a Ă©tĂ© créé, quels problĂšmes il rĂ©sout ?
Dmitry: La premiĂšre raison est la construction. Au dĂ©part, nous avions de gros problĂšmes avec la compilation, lorsque Docker ne supportait pas le multi-stage, et nous avons dĂ» crĂ©er le multi-stage par nous-mĂȘmes. Ensuite, nous avons eu plein de questions concernant le nettoyage des images. Tous ceux qui font du CI/CD se heurtent tĂŽt ou tard au problĂšme de la multitude d'images construites, nĂ©cessitant de trouver un moyen de nettoyer ce qui n'est pas nĂ©cessaire et de conserver ce qui l'est.
La deuxiÚme raison est le déploiement. Oui, il y a Helm, mais il ne résout qu'une partie des tùches. C'est drÎle à dire, mais il est écrit que « Helm est le gestionnaire de paquets pour Kubernetes ». Exactement, « le ». Et il y a aussi les mots « gestionnaire de paquets » - quelles attentes avons-nous généralement d'un gestionnaire de paquets ? Nous disons : « Gestionnaire de paquets - installe le paquet ! » et nous nous attendons à ce qu'il nous dise : « Paquet installé ».
C'est intéressant, parce que nous disons : « Helm, installe le paquet », et quand il répond qu'il a installé, il s'avÚre qu'il a seulement commencé l'installation - il a indiqué à Kubernetes : « Lance ce truc-là ! », mais qu'il ait effectivement démarré ou non, qu'il fonctionne ou non, Helm ne répond absolument pas à cette question.
En gros, Helm n'est qu'un préprocesseur de texte qui charge des données dans Kubernetes.
Mais dans le cadre de tout déploiement, nous voulons savoir - l'application a-t-elle été mise en production ou non ? Mise en production signifie que l'application a été déployée, la nouvelle version a été déployée, et elle ne tombe pas et répond correctement. Helm ne résout pas cette tùche. Pour le faire, il faut investir beaucoup d'efforts, car il est nécessaire de donner à Kubernetes le commandement de déployer et de suivre ce qui se passe - a-t-il été déployé, a-t-il été mis en production ? Et il y a encore beaucoup de tùches liées au déploiement, au nettoyage, à la construction.
Plans
Cette annĂ©e, nous allons nous lancer dans le dĂ©veloppement local. Nous souhaitons arriver Ă l'Ă©tat oĂč, comme auparavant avec Vagrant, il suffisait de taper « vagrant up » pour dĂ©ployer des machines virtuelles. Nous dĂ©sirons atteindre un point oĂč il y a un projet sur Git, et oĂč en Ă©crivant « werf up », il lĂšve une copie locale de ce projet, dĂ©ployĂ©e dans un mini-Kub local, avec tous les rĂ©pertoires pratiques pour le dĂ©veloppement connectĂ©s. En fonction du langage de dĂ©veloppement, cela s'effectue de diffĂ©rentes maniĂšres, mais nĂ©anmoins, il doit ĂȘtre possible de mener des dĂ©veloppements locaux confortablement avec des fichiers montĂ©s.
La prochaine Ă©tape pour nous est de fortement investir dans le confort des dĂ©veloppeurs. Avec un seul outil, dĂ©ployer rapidement un projet localement, le dĂ©velopper, le pousser vers Git, et il sera dĂ©ployĂ© de la mĂȘme maniĂšre sur stage ou pour les tests, selon les pipelines, puis mĂȘme outil pour passer en production. Cette unitĂ©, cette unification, la reproductibilitĂ© de l'infrastructure de l'environnement local Ă la production est un point trĂšs important pour nous. Mais cela n'existe pas encore dans werf, nous prĂ©voyons simplement de le faire.
Mais le chemin vers dapp/werf a toujours Ă©tĂ© le mĂȘme qu'avec Kubernetes au dĂ©but. Nous avons rencontrĂ© des problĂšmes, les avons rĂ©solus par des dĂ©tours - en inventant des solutions pour nous-mĂȘmes sur shell, sur n'importe quoi. Ensuite, nous essayions de redresser ces dĂ©tours, de les gĂ©nĂ©raliser et de les consolider dans des binaires que nous partageons simplement.
Il y a aussi une autre perspective sur toute cette histoire, avec des analogies.
Kubernetes est le chùssis d'une voiture avec un moteur. Il n'y a pas de portes, de vitres, de récepteur radio, de sapin de Noël - il n'y a rien. Juste le cadre et le moteur. Et il y a Helm - c'est le volant. C'est super - il y a le volant, mais il nous faut aussi un axe de direction, une crémaillÚre, une boßte de vitesses et des roues, sinon cela ne fonctionne pas.
Dans le cas de werf, c'est encore un autre composant pour Kubernetes. Actuellement, notre version alpha de werf intĂšgre d'ailleurs Helm directement, car nous en avions assez de le faire nous-mĂȘmes. Il y a de nombreuses raisons de procĂ©der ainsi, et je vais parler en dĂ©tail des raisons pour lesquelles nous avons compilĂ© Helm entiĂšrement avec Tiller Ă l'intĂ©rieur de werf .
Maintenant, werf est un composant plus intĂ©grĂ©. Nous avons un volant prĂȘt, un axe de direction â je ne suis pas trĂšs expert en voitures, mais c'est un gros bloc qui rĂ©sout dĂ©jĂ un large Ă©ventail de tĂąches. Nous n'avons pas besoin de fouiller dans le catalogue, de sĂ©lectionner une piĂšce pour l'autre, de nous demander comment les assembler. Nous avons un combine prĂȘt qui rĂ©sout immĂ©diatement un grand nombre de problĂšmes. Mais Ă l'intĂ©rieur, il est construit Ă partir des mĂȘmes composants open source, utilise toujours Docker pour la construction, Helm pour une partie des fonctionnalitĂ©s, et il y a encore quelques autres bibliothĂšques. C'est un outil intĂ©grĂ© pour obtenir rapidement et facilement un CI/CD gĂ©nial prĂȘt Ă l'emploi.
Est-il difficile de maintenir Kubernetes?
â Tu parles de l'expĂ©rience que vous avez commencĂ©e Ă utiliser Kubernetes, c'est pour vous un cadre, un moteur, et qu'il y a beaucoup de choses diffĂ©rentes que l'on peut y ajouter : la carrosserie, le volant, l'assemblage des pĂ©dales, des siĂšges. La question se pose : Ă quel point la maintenance de Kubernetes est-elle difficile pour vous ? Vous avez une vaste expĂ©rience, combien de temps et de ressources consacrez-vous Ă la maintenance de Kubernetes indĂ©pendamment de tout le reste ?
Dmitry: C'est une question trÚs complexe et pour y répondre, il faut comprendre ce qu'est la maintenance et ce que nous voulons de Kubernetes. Peux-tu développer?
â Ă ma connaissance et comme je le vois, beaucoup d'Ă©quipes souhaitent maintenant essayer Kubernetes. Tout le monde s'y met, l'installe Ă la va-vite. J'ai l'impression que les gens ne comprennent pas toujours la complexitĂ© de ce systĂšme.
Dmitry: C'est exact.
â Ă quel point est-il difficile de prendre Kubernetes et de l'installer Ă partir de rien pour qu'il soit prĂȘt pour la production ?
Dmitry: Que penses-tu de la difficultĂ© de transplanter un cĆur ? Je comprends que la question soit dĂ©licate. Manipuler un scalp et ne pas se tromper n'est pas si compliquĂ©. Si on te dit oĂč couper et oĂč suturer, alors la procĂ©dure elle-mĂȘme n'est pas complexe. Ce qui est difficile, c'est de garantir Ă chaque fois que ça rĂ©ussira.
Installer Kubernetes et le faire fonctionner est facile : pouf ! â ça s'installe, il y a plein de maniĂšres d'installation. Mais que se passera-t-il lorsque des problĂšmes surgiront?
Des questions se posent toujours â qu'avons-nous encore nĂ©gligĂ© ? Qu'avons-nous encore oubliĂ© de faire ? Quels paramĂštres du noyau Linux avons-nous mal spĂ©cifiĂ©s ? Mon Dieu, les avons-nous mĂȘme spĂ©cifiĂ©s ? Quels composants Kubernetes avons-nous installĂ©s et lesquels n'avons-nous pas ? Des milliers de questions surgissent, et pour y rĂ©pondre, il faut 15 Ă 20 ans d'expĂ©rience dans cette industrie.
J'ai un nouvel exemple sur ce sujet qui peut illustrer la problématique « Est-il difficile de maintenir Kubernetes ? ». Il n'y a pas longtemps, nous avons sérieusement envisagé d'implémenter Cilium comme solution réseau dans Kubernetes.
Permettez-moi de vous expliquer ce qu'est Cilium. Dans Kubernetes, il existe de nombreuses implémentations de sous-systÚmes réseau, et l'une d'entre elles est particuliÚrement impressionnante : Cilium. Quelle en est la raison ? Il y a quelque temps, une possibilité d'écrire des hooks pour le noyau a été introduite, permettant de s'immiscer dans le sous-systÚme réseau et divers autres sous-systÚmes, contournant ainsi des parties importantes du noyau.
Historiquement, le noyau Linux comporte des composants anciens tels que ip rout, netfilter et des ponts, qui ont tous environ 15, 20 ou 30 ans. Dans l'ensemble, cela fonctionne bien, mais aujourd'hui, avec l'essor des conteneurs, cela ressemble Ă une tour de 15 briques empilĂ©es, et vous tenez en Ă©quilibre dessus sur une jambe â une sensation Ă©trange. Ce systĂšme a Ă©voluĂ© historiquement avec de nombreuses nuances, un peu comme l'appendice dans le corps. Dans certaines situations, il existe des problĂšmes de performance, par exemple.
Il existe un excellent BPF et la possibilitĂ© d'Ă©crire des hooks pour le noyau â l'Ă©quipe a créé ses propres hooks pour le noyau. Lorsqu'un paquet arrive dans le noyau Linux, ils l'extraient dĂšs l'entrĂ©e, le traitent comme il se doit sans ponts, sans TCP, sans pile IP â en gros, en contournant tout ce qui est Ă©crit dans le noyau Linux, et le recrache immĂ©diatement dans le conteneur.
Quel a Ă©tĂ© le rĂ©sultat ? Une performance incroyable, des fonctionnalitĂ©s impressionnantes â c'est tout simplement gĂ©nial ! Mais nous observons cela et nous voyons que sur chaque machine, il y a un programme qui se connecte Ă l'API Kubernetes et, en se basant sur les donnĂ©es reçues de cette API, gĂ©nĂšre du code C et compile des binaires qui sont chargĂ©s dans le noyau, afin que ces hooks fonctionnent en espace noyau.
Que se passera-t-il si quelque chose ne fonctionne pas ? Nous ne le savons pas. Pour le comprendre, il faudrait lire tout ce code et saisir toute la logique, ce qui est extrĂȘmement complexe. D'un autre cĂŽtĂ©, il y a ces ponts, ces netfilters, ip rout â je n'ai pas lu leurs sources non plus, et 40 ingĂ©nieurs de notre entreprise ne l'ont pas fait non plus. Peut-ĂȘtre que seuls quelques-uns comprennent certaines parties.
Et quelle diffĂ©rence ? Il s'avĂšre qu'il y a un routage IP, un noyau Linux, et un nouvel outil - quelle importance, nous ne comprenons ni l'un ni l'autre. Mais nous avons peur d'utiliser le nouveau - pourquoi ? Parce que si l'outil a 30 ans, alors pendant 30 ans tous les bugs ont Ă©tĂ© trouvĂ©s, toutes les erreurs ont Ă©tĂ© rencontrĂ©es et il n'est pas nĂ©cessaire de tout connaĂźtre - ça fonctionne comme une boĂźte noire, et ça fonctionne toujours. Tout le monde sait oĂč mettre quel tournevis de diagnostic, Ă quel moment lancer quel tcpdump. Tout le monde connaĂźt bien les utilitaires de diagnostic et comprend comment cet ensemble de composants fonctionne dans le noyau Linux - non pas comment il est construit, mais comment l'utiliser.
Mais le Cilium super gĂ©nial n'a pas 30 ans, il n'est pas encore Ă©prouvĂ©. Il en est de mĂȘme pour Kubernetes, tout est une copie. Que Cilium s'installe parfaitement, que Kubernetes s'installe parfaitement, mais quand quelque chose ne se passe pas bien en production, ĂȘtes-vous capables de comprendre rapidement ce qui ne va pas dans une situation critique ?
Quand nous parlons de la difficulté de maintenir Kubernetes - non, c'est trÚs simple, et oui, c'est incroyablement compliqué. Kubernetes fonctionne trÚs bien tout seul, mais avec un milliard de nuances.
à propos de l'approche « J'aurai de la chance »
â Y a-t-il des entreprises oĂč ces nuances vont presque inĂ©vitablement apparaĂźtre ? Supposons que Yandex dĂ©cide subitement de migrer tous ses services vers Kubernetes, il y aura une Ă©norme charge.
Dmitry: Non, ce n'est pas une discussion sur la charge, mais sur des choses simples. Par exemple, nous avons Kubernetes, nous avons dĂ©ployĂ© une application dessus. Comment savoir si ça fonctionne ? Il n'y a tout simplement pas d'outil prĂȘt Ă l'emploi pour savoir si l'application ne tombe pas. Il n'y a pas de systĂšme prĂȘt qui envoie des alertes - il faut configurer ces alertes et chaque graphique. Et nous mettons Ă jour Kubernetes.
Nous avons Ubuntu 16.04. On peut dire que c'est une version ancienne, mais nous y sommes encore, car c'est une LTS. Elle utilise systemd, dont le dĂ©tail est qu'il ne nettoie pas les cgroups. Kubernetes lance des pods, crĂ©e des cgroups, puis supprime les pods, et d'une certaine maniĂšre, je ne me souviens pas des dĂ©tails, pardonnez-moi, cela laisse des fragments de systemd. Cela entraĂźne le ralentissement progressif de n'importe quelle machine. Ce n'est mĂȘme pas une question de haute charge. Si des pods permanents sont lancĂ©s, par exemple, s'il y a un Cron Job qui gĂ©nĂšre continuellement des pods, alors une machine avec Ubuntu 16.04 commencera Ă ralentir aprĂšs une semaine. Il y aura constamment une charge moyenne Ă©levĂ©e en raison de la crĂ©ation de nombreux cgroups. C'est un problĂšme rencontrĂ© par quiconque installe simplement Ubuntu 16 et Kubernetes au-dessus.
Admettons qu'il mette Ă jour systemd ou autre chose, mais dans le noyau Linux jusqu'Ă 4.16, c'est encore plus drĂŽle â lors de la suppression des cgroups, ils fuyent dans le noyau et ne sont en fait pas supprimĂ©s. Donc, aprĂšs un mois d'utilisation de cette machine, il sera impossible de consulter les statistiques de mĂ©moire pour les pods. Nous rĂ©cupĂ©rons un fichier, le traitons dans le programme, et un fichier met 15 secondes Ă ĂȘtre traitĂ© parce que le noyau met beaucoup de temps Ă faire le calcul Ă l'intĂ©rieur avec un million de cgroups qui semblent supprimer, mais non â ils fuient.
Il y a encore beaucoup de petites choses ici et lĂ . Ce n'est pas une question Ă laquelle les grandes entreprises peuvent parfois faire face lors de charges trĂšs Ă©levĂ©es â non, c'est une question de choses quotidiennes. Les gens peuvent vivre ainsi pendant des mois â ils ont installĂ© Kubernetes, dĂ©ployĂ© une application â ça semble fonctionner. Pour beaucoup, c'est normal. Quant au fait que cette application risque de s'arrĂȘter un jour pour une raison quelconque, ils ne le sauront mĂȘme pas, pas d'alerte, mais pour eux, c'est normal. Ils vivaient avant sur des machines virtuelles sans surveillance, maintenant, ils ont migrĂ© vers Kubernetes aussi sans surveillance â quelle diffĂ©rence ?
La question est que lorsque nous marchons sur la glace, nous ne connaissons jamais son épaisseur, sauf si nous l'avons mesurée au préalable. Beaucoup de gens marchent et ne s'en préoccupent pas, car ils marchaient déjà avant.
à mon avis, le détail et la complexité de l'exploitation de tout systÚme résident dans la garantie que l'épaisseur de la glace est suffisamment solide pour résoudre nos tùches. C'est de cela qu'il s'agit.
Dans le secteur informatique, il me semble qu'il y a trop d'approches « J'ai de la chance ». Beaucoup installent des logiciels, utilisent des bibliothĂšques dans l'espoir d'avoir de la chance. En gĂ©nĂ©ral, beaucoup rĂ©ussissent. Peut-ĂȘtre que c'est pour cela que ça fonctionne.
â D'aprĂšs ma vision pessimiste, cela ressemble Ă ceci : quand les risques sont Ă©levĂ©s et que l'application doit fonctionner, il faut un soutien de Flant, peut-ĂȘtre de Red Hat, ou alors une Ă©quipe interne dĂ©diĂ©e spĂ©cifiquement Ă Kubernetes, prĂȘte Ă le maintenir.
Dmitry: Objectivement, c'est le cas. S'engager soi-mĂȘme dans l'univers de Kubernetes pour une petite Ă©quipe comporte un certain nombre de risques.
Avons-nous besoin de conteneurs?
â Peux-tu me dire Ă quel point Kubernetes est rĂ©pandu en Russie ?
Dmitry: Je n'ai pas ces données, et je ne suis pas sûr qu'elles soient disponibles chez qui que ce soit. Nous parlons de « Kubernetes, Kubernetes », mais il existe une autre perspective sur cette question. Je ne sais pas non plus à quel point les conteneurs sont répandus, mais je sais qu'environ 70 % des conteneurs sont orchestrés par Kubernetes, selon une source fiable issue d'un assez large échantillon mondial.
Ensuite, une autre question : avons-nous besoin de conteneurs ? J'ai personnellement le sentiment, et la position générale de l'entreprise Flant est que Kubernetes est devenu le standard de facto.
Rien d'autre que Kubernetes ne sera utilisé.
C'est un vĂ©ritable bouleversement dans la gestion de l'infrastructure. Absolument, plus de Ansible, Chef, de machines virtuelles, Terraform. Je ne parle mĂȘme pas des anciennes mĂ©thodes obsolĂštes. Kubernetes est vraiment un changeur de jeu., et maintenant ce sera toujours comme ça.
Il est Ă©vident que certains auront besoin de quelques annĂ©es, d'autres de plusieurs dizaines d'annĂ©es pour en prendre conscience. Je ne doute pas qu'il n'y aura rien d'autre que Kubernetes et cette nouvelle perspective : nous ne compromettons plus le systĂšme d'exploitation, mais utilisons l'infrastructure en tant que code, mais pas avec du code, avec du yml â une infrastructure dĂ©crite de maniĂšre dĂ©clarative. J'ai l'impression que ça sera toujours le cas.
â Donc, les entreprises qui ne sont pas encore passĂ©es Ă Kubernetes y passeront nĂ©cessairement ou resteront dans l'oubli. Ai-je bien compris ?
Dmitry: Ce n'est pas tout Ă fait exact non plus. Par exemple, si nous avons pour tĂąche de lancer un serveur DNS, nous pouvons le faire sur FreeBSD 4.10 et il peut fonctionner parfaitement pendant 20 ans. Juste fonctionner, c'est tout. Peut-ĂȘtre qu'aprĂšs 20 ans, il faudra mettre Ă jour quelque chose une seule fois. Si nous parlons de logiciels qui, au format, que nous lançons et qui fonctionnent rĂ©ellement pendant des annĂ©es sans mises Ă jour ni modifications, alors, bien sĂ»r, il n'y aura pas Kubernetes. Ce n'est pas nĂ©cessaire lĂ -bas.
Tout ce qui concerne le CI/CD â partout oĂč une livraison continue est nĂ©cessaire, oĂč des mises Ă jour de versions sont requises, oĂč des modifications actives doivent ĂȘtre effectuĂ©es, partout oĂč il est nĂ©cessaire de construire une rĂ©sistance aux pannes â seulement Kubernetes.
Concernant les microservices
â Ici, j'Ă©prouve un lĂ©ger dissonance. Pour travailler avec Kubernetes, un support externe ou interne est nĂ©cessaire â c'est le premier point. DeuxiĂšmement â lorsque nous commençons tout juste le dĂ©veloppement, nous sommes une petite startup, nous n'avons encore rien, le dĂ©veloppement sous Kubernetes ou sous une architecture de microservices peut ĂȘtre difficile et pas toujours justifiĂ© Ă©conomiquement. J'aimerais connaĂźtre ton avis â est-il nĂ©cessaire pour les startups de commencer Ă Ă©crire sous Kubernetes immĂ©diatement ou peut-on Ă©crire un monolithe d'abord, puis seulement passer Ă Kubernetes ?
Dmitry: Bonne question. J'ai une présentation sur les microservices J'ai souvent été confronté à des gens qui essaient de taper des clous avec un microscope. L'approche en soi est correcte, nous concevons aussi notre logiciel interne de cette maniÚre. Mais quand on le fait, il faut bien comprendre ce qu'on fait. Ce que je déteste le plus dans les microservices, c'est le mot « micro ». Historiquement, ce terme est apparu, et pour une raison quelconque, les gens pensent que micro signifie trÚs petit, moins d'un millimÚtre, comme un micromÚtre. Ce n'est pas le cas.
Par exemple, il existe un monolithe Ă©crit par 300 personnes, et tous ceux qui ont participĂ© au dĂ©veloppement comprennent qu'il y a des problĂšmes et qu'il doit ĂȘtre dĂ©coupĂ© en morceaux â environ 10, que chaque groupe de 30 personnes Ă©crit au minimum. C'est important, nĂ©cessaire et gĂ©nial. Mais quand un startup arrive oĂč 3 trĂšs bons et talentueux gars ont Ă©crit sur le pouce 60 microservices, je cherche toujours du corvalol.
Il me semble que cela a déjà été dit des milliers de fois - nous avons obtenu un monolithe distribué sous une forme ou une autre. C'est économiquement injustifiable, trÚs compliqué dans l'ensemble. Je l'ai simplement vu tellement de fois que ça me fait mal, c'est pourquoi je continue à en parler.
En ce qui concerne la question initiale, il existe un conflit entre le fait que, d'un cĂŽtĂ©, Kubernetes est terriblement difficile Ă utiliser car il est impossible de savoir ce qui pourrait casser ou ne pas fonctionner, et de l'autre cĂŽtĂ©, il est clair que tout va vers lĂ et qu'il n'y aura rien d'autre que Kubernetes. La rĂ©ponse est - Ă©valuer le volume de bĂ©nĂ©fices que vous pouvez obtenir, le volume de tĂąches que vous pouvez rĂ©soudre.. C'est d'un cĂŽtĂ© de la balance. De l'autre cĂŽtĂ© se trouvent les risques liĂ©s aux temps d'arrĂȘt ou Ă la baisse du temps de rĂ©ponse, du niveau de disponibilitĂ© - Ă la baisse des indicateurs de performance.
C'est comme ça - soit nous avançons rapidement, et Kubernetes permet de rĂ©aliser de nombreuses choses beaucoup plus vite et mieux, soit nous utilisons des solutions fiables et Ă©prouvĂ©es, mais avançons beaucoup plus lentement. Ce choix doit ĂȘtre fait par chaque entreprise. On peut voir cela comme un chemin dans la jungle - lorsque vous y allez pour la premiĂšre fois, vous pouvez rencontrer un serpent, un tigre ou un blaireau fou, mais aprĂšs y ĂȘtre allĂ© 10 fois - vous avez tracĂ© un chemin, enlevĂ© les branches et c'est plus facile d'y aller. Chaque fois, le sentier s'Ă©largit. Ensuite, cela devient une route pavĂ©e, puis plus tard un joli boulevard.
Kubernetes ne reste pas sur ses lauriers. Encore une fois la question : Kubernetes, d'un cÎté, c'est 4-5 binaires, et de l'autre, c'est tout un écosystÚme. C'est le systÚme d'exploitation qui se trouve sur nos machines. De quoi s'agit-il ? Ubuntu ou Curios ? C'est un noyau Linux, plein de composants supplémentaires. Toutes ces choses ici ont retiré un serpent venimeux de la route, là ils ont installé une clÎture. Kubernetes évolue trÚs rapidement et dynamiquement, et le volume des risques, le volume de l'inconnu diminue chaque mois, et par conséquent, ces balances se rééquilibrent.
En rĂ©pondant Ă la question sur ce que doit faire une startup, je dirais : venez chez «Flant», payez 150 000 roubles et obtenez un service DevOps clĂ© en main. Si vous ĂȘtes une petite startup avec quelques dĂ©veloppeurs, cela fonctionne. Au lieu d'embaucher votre propre DevOps, qui devra apprendre Ă rĂ©soudre vos problĂšmes tout en prenant un salaire, vous obtiendrez une solution clĂ© en main Ă toutes vos questions. Oui, il y a certains inconvĂ©nients. Nous, en tant qu'experts externes, ne pouvons pas ĂȘtre aussi impliquĂ©s et rĂ©agir rapidement aux changements. Mais nous avons une multitude d'expertises et de bonnes pratiques. Nous garantissons qu'Ă tout moment, nous saurons rĂ©soudre rapidement n'importe quel problĂšme et faire revivre n'importe quel Kubernetes.
Je recommande catégoriquement l'externalisation aux startups et aux entreprises établies jusqu'à ce que vous puissiez affecter une équipe de 10 personnes à l'exploitation, sinon ça n'a pas de sens. C'est absolument logique d'externaliser.
Ă propos d'Amazon et de Google
â Peut-on considĂ©rer l'hĂ©bergement proposĂ© par Amazon ou Google comme une externalisation ?
Dmitry: Oui, bien sĂ»r, cela rĂ©sout plusieurs problĂšmes. Mais encore une fois, il y a des nuances. Il faut quand mĂȘme comprendre comment l'utiliser. Par exemple, il y a mille dĂ©tails dans le fonctionnement d'Amazon AWS : il faut prĂ©chauffer le Load Balancer ou faire une demande Ă l'avance en disant « les gars, nous allons avoir du trafic, prĂ©chauffez notre Load Balancer ! » Ces nuances, il faut les connaĂźtre.
Lorsque vous faites appel Ă des personnes spĂ©cialisĂ©es dans ce domaine, vous obtenez presque toutes les choses standardisĂ©es rĂ©solues. Nous avons actuellement 40 ingĂ©nieurs, et d'ici la fin de l'annĂ©e, il y en aura probablement 60 â nous avons dĂ©jĂ rencontrĂ© tous ces problĂšmes. MĂȘme si nous sommes confrontĂ©s Ă ce problĂšme sur un projet, nous pouvons rapidement demander Ă l'un ou l'autre et savons comment rĂ©soudre.
Probablement, la rĂ©ponse est la suivante : bien sĂ»r, l'histoire hĂ©bergĂ©e allĂšge une partie des soucis. La question est de savoir si vous ĂȘtes prĂȘts Ă faire confiance Ă ces hĂ©bergeurs et s'ils rĂ©soudront vos problĂšmes. Amazon et Google ont bien fait leurs preuves. Pour tous nos cas, c'est certain. Nous n'avons pas d'autres expĂ©riences positives. Tous les autres clouds avec lesquels nous avons essayĂ© de travailler posent beaucoup de problĂšmes â que ce soit Ager ou tout ce qui existe en Russie, et toutes sortes de dĂ©ploiements OpenStack : Headster, Overage â tout ce que vous voulez. Ils engendrent tous des problĂšmes que nous prĂ©fĂ©rons ne pas avoir Ă rĂ©soudre.
Donc, la réponse est oui, mais en réalité, il n'existe pas beaucoup de solutions hébergées matures.
à qui Kubernetes est-il destiné ?
â Mais finalement, Ă qui Kubernetes est-il destinĂ© ? Qui doit dĂ©jĂ passer Ă Kubernetes, qui est le client typique de « Flant » qui vient justement pour Kubernetes ?
Dmitry: C'est une question intéressante, car en ce moment, beaucoup de gens viennent vers nous sur la vague de Kubernetes : « Les gars, nous savons que vous faites Kubernetes, faites-le pour nous ! ». Nous leur répondons : « Messieurs, nous ne faisons pas Kubernetes, nous faisons de la production et tout ce qui y est lié ». Parce que faire de la production sans avoir mis en place tout le CI/CD et toute cette histoire est tout simplement impossible aujourd'hui. Tout le monde a abandonné la séparation entre le développement d'un cÎté et l'exploitation de l'autre.
Nos clients ont des attentes diverses, mais tous espĂšrent un certain miracle, que leurs problĂšmes divers se rĂ©soudront avec Kubernetes. Les gens croient aux miracles. Ils comprennent intellectuellement qu'il n'y aura pas de miracle, mais ils espĂšrent de tout cĆur â et si Kubernetes rĂ©solvait tout pour nous, on en parle tant ! Peut-ĂȘtre qu'il va tout rĂ©soudre, bing ! â et voilĂ , 100 % de disponibilitĂ©, tous les dĂ©veloppeurs peuvent dĂ©ployer Ă peu prĂšs n'importe quoi sur la production 50 fois sans que ça tombe. En somme, un miracle !
Quand ces gens viennent vers nous, nous leur disons : « DĂ©solĂ©, mais il n'y a pas de miracle ». Pour ĂȘtre en bonne santĂ©, il faut bien manger et faire du sport. Pour avoir une production fiable, il faut la rendre fiable. Pour avoir un CI/CD pratique, il faut le mettre en place. C'est beaucoup de travail qui doit ĂȘtre fait.
En rĂ©pondant Ă la question de savoir Ă qui Kubernetes est destinĂ© â Kubernetes n'est utile Ă personne.
Certaines personnes ont une idée fausse qu'elles ont besoin de Kubernetes. Les gens ont besoin de ne plus penser, se préoccuper ou s'intéresser à tous les problÚmes d'infrastructure et au déploiement de leurs applications. Ils veulent que leurs applications fonctionnent simplement et se déploient facilement. Pour eux, Kubernetes est un espoir de ne plus entendre des histoires comme « on traßne » ou « on ne peut pas déployer », ou autre.
GĂ©nĂ©ralement, c'est le directeur technique qui vient vers nous. De lui, on demande deux choses : d'une part, des fonctionnalitĂ©s, d'autre part â la stabilitĂ©. Nous proposons de prendre cela en charge et de le faire. Une solution miracle, ou plutĂŽt une solution altĂ©rĂ©e, c'est que vous cessez de penser Ă ces problĂšmes et de perdre du temps. Vous aurez des personnes spĂ©cialisĂ©es pour s'occuper de ces questions.
La formulation selon laquelle nous avons besoin de Kubernetes ou que quelqu'un en a besoin est incorrecte.
Kubernetes est trĂšs utile pour les administrateurs, car c'est un outil fascinant avec lequel on peut expĂ©rimenter et jouer. Soyons honnĂȘtes, tout le monde aime les jouets. Nous avons tous un cĂŽtĂ© enfant, et quand nous voyons quelque chose de nouveau, nous voulons y jouer. Pour certains, cet enthousiasme a Ă©tĂ© Ă©moussĂ©, par exemple en administration, parce qu'ils ont dĂ©jĂ beaucoup jouĂ© et que cela ne les passionne plus au point d'en perdre l'envie. Pourtant, personne n'a complĂštement perdu cet intĂ©rĂȘt. Par exemple, mĂȘme si j'en ai assez des jouets liĂ©s Ă l'administration systĂšme et au DevOps, j'aime toujours les nouveautĂ©s et j'en achĂšte encore quelques-unes.
Il ne faut pas jouer avec la production. Ce que je ne recommande catĂ©goriquement pas de faire, et ce que je constate massivement en ce moment : « Oh, un nouveau jouet ! » â on se prĂ©cipite pour l'acheter, on l'achĂšte et : « Prenons-le Ă l'Ă©cole, montrons-le Ă tous nos amis ». Ne faites pas ça. Je m'excuse, mes enfants grandissent et je vois constamment des choses chez eux, je le remarque en moi et ensuite je le gĂ©nĂ©ralise aux autres.
La réponse définitive : vous n'avez pas besoin de Kubernetes. Vous devez résoudre vos problÚmes.
Il est possible d'atteindre ce qui suit :
- la production ne tombe pas ;
- mĂȘme si elle essaie de tomber, nous en sommes informĂ©s Ă l'avance et nous pouvons prendre des mesures ;
- nous pouvons la modifier Ă la vitesse requise par nos affaires, et ce de maniĂšre confortable, cela ne nous pose pas de problĂšmes.
Les rĂ©elles nĂ©cessitĂ©s sont deux : la fiabilitĂ© et la dynamique / flexibilitĂ© des dĂ©ploiements. Tous ceux qui rĂ©alisent actuellement des projets IT, peu importe le secteur d'activitĂ© â des logiciels pour simplifier le monde, et qui comprennent cela, doivent rĂ©pondre Ă ces besoins. Kubernetes, avec la bonne approche, une bonne comprĂ©hension et une expĂ©rience suffisante, permet de les satisfaire.
Ă propos de serverless
â Si l'on regarde un peu plus loin dans le futur, en essayant de rĂ©soudre le problĂšme des maux de tĂȘte liĂ©s Ă l'infrastructure, Ă la vitesse de dĂ©ploiement et Ă la rapiditĂ© d'Ă©volution des applications, de nouvelles solutions apparaissent, comme le serverless. Ressens-tu un certain potentiel dans cette direction et, disons, un danger pour Kubernetes et des solutions similaires ?
Dmitry: Il faut encore faire une remarque ici, je ne suis pas un voyant qui regarde vers l'avenir et dit - cela se passera comme ça ! Bien que je viens juste de faire la mĂȘme chose. Je regarde sous mes pieds et je vois un tas de problĂšmes, par exemple, comment fonctionnent les transistors dans un ordinateur. C'est presque risible, n'est-ce pas ? Nous rencontrons certains bugs dans le CPU.
Rendre le serverless suffisamment fiable, bon marchĂ©, efficace et pratique, tout en rĂ©solvant toutes les questions Ă©cologiques. Je suis d'accord avec Elon Musk qu'il nous faut une deuxiĂšme planĂšte pour assurer la rĂ©silience de l'humanitĂ©. Bien que je ne sache pas exactement ce qu'il dit, je comprends que je ne suis pas prĂȘt Ă aller moi-mĂȘme sur Mars et que cela ne sera pas pour demain.
Avec le serverless, c'est clair que c'est quelque chose d'idéologiquement correct, tout comme la résilience pour l'humanité - avoir deux planÚtes est mieux qu'une. Mais comment y parvenir maintenant ? Envoyer une expédition - pas de problÚme, si on concentre les efforts là -dessus. Envoyer plusieurs expéditions et y établir plusieurs milliers de personnes, je pense que c'est aussi réaliste. Mais réaliser une résilience complÚte, pour que la moitié de l'humanité y vive, me semble actuellement impossible, hors de question.
C'est la mĂȘme chose avec le serverless : c'est un concept gĂ©nial, mais il est loin des problĂšmes de 2019. Vers 2030 - vivons d'abord jusque-lĂ . Je ne doute pas que nous y arriverons, nous y arriverons certainement (rĂ©pĂ©tez avant de dormir), mais pour l'instant, il faut s'attaquer Ă d'autres problĂšmes. C'est comme croire au poney magique Rainbow. Oui, quelques pourcentages de cas sont rĂ©solus, et ils le sont trĂšs bien, mais subjectivement, le serverless - c'est un arc-en-ciel⊠Pour moi, ce sujet est trop Ă©loignĂ© et trop flou. Je ne suis pas prĂȘt Ă en parler. En 2019, vous ne pouvez pas Ă©crire une seule application en serverless.
Comment Kubernetes va-t-il évoluer ?
â En attendant d'atteindre cet avenir potentiellement merveilleux et lointain, que penses-tu de l'Ă©volution de Kubernetes et de l'Ă©cosystĂšme qui l'entoure ?
Dmitry: J'ai beaucoup rĂ©flĂ©chi Ă ce sujet et j'ai une rĂ©ponse claire. PremiĂšrement, le stateful est en fait plus facile Ă faire stateless. Kubernetes y a investi beaucoup dĂšs le dĂ©part, c'est lĂ que tout a commencĂ©. Le stateless fonctionne pratiquement parfaitement sous Kubernetes, il n'y a simplement rien Ă redire. Il reste encore beaucoup de problĂšmes en stateful, ou plutĂŽt, de nuances. Maintenant, tout fonctionne bien pour nous lĂ -bas, mais c'est nous. Pour que cela fonctionne pour tout le monde, il faut encore au moins quelques annĂ©es. Ce n'est pas un indicateur calculĂ©, c'est juste une impression que j'ai dans la tĂȘte.
En gros, le stateful doit vraiment â et va â se dĂ©velopper fortement, car toutes nos applications conservent un Ă©tat, il n'existe pas d'applications stateless. C'est une illusion, il faut toujours une sorte de base de donnĂ©es et quelque chose d'autre. Le stateful consiste Ă simplifier tout ce qui peut l'ĂȘtre, Ă corriger tous les bugs, Ă amĂ©liorer tous les problĂšmes auxquels nous faisons face actuellement â appelons cela l'adoption.
Le niveau d'inexplorĂ©, le niveau des problĂšmes non rĂ©solus, le niveau de probabilitĂ© de rencontrer certains problĂšmes, va fortement diminuer. C'est une histoire importante. Et les opĂ©rateurs â tout ce qui concerne la codification de la logique d'administration, la logique de gestion, afin d'obtenir un service facile : service MySQL facile, service RabbitMQ facile, service Memcache facile â en fait, tous ces composants dont nous avons besoin pour garantir le bon fonctionnement dĂšs la sortie de la boĂźte. Cela rĂ©pond prĂ©cisĂ©ment aux douleurs que nous voulons une base de donnĂ©es, mais nous ne voulons pas l'administrer, ou nous voulons Kubernetes, mais nous ne voulons pas l'administrer.
Cette histoire de développement des opérateurs dans une forme ou une autre sera importante dans les prochaines années.
Je pense que la simplicitĂ© d'exploitation devrait considĂ©rablement augmenter â la boĂźte deviendra de plus en plus noire, de plus en plus fiable, avec des rĂ©glages de plus en plus simples.
J'ai Ă©coutĂ© une vieille interview d'Isaac Asimov des annĂ©es 80 sur YouTube dans l'Ă©mission Saturday Night Live â un type de programme comme Urgant, mais intĂ©ressant. On lui a demandĂ© ce qu'il pensait de l'avenir des ordinateurs. Il a dit que l'avenir Ă©tait dans la simplicitĂ©, comme cela l'Ă©tait avec le rĂ©cepteur radio. Initialement, le rĂ©cepteur radio Ă©tait une chose complexe. Pour capter une onde, il fallait tourner les boutons pendant 15 minutes, manĆuvrer, et en fait savoir comment tout cela fonctionnait, comprendre la physique de la transmission des ondes radio. Au final, il ne reste qu'un seul bouton sur la radio.
Quelle est la radio en 2019 ? Dans la voiture, le rĂ©cepteur radio capte toutes les ondes et les noms des stations. La physique du processus n'a pas changĂ© en 100 ans, ce qui a changĂ©, c'est la simplicitĂ© d'utilisation. Actuellement, et pas seulement maintenant, dĂ©jĂ en 1980, lors d'une interview avec Asimov, tout le monde utilisait la radio sans se soucier de son fonctionnement. Cela a toujours fonctionnĂ© â c'est un fait.
Asimov a alors dit que cela serait similaire avec les ordinateurs â la simplicitĂ© d'utilisation augmentera. Si en 1980, il fallait une formation spĂ©ciale pour appuyer sur les touches d'un ordinateur, Ă l'avenir, ce ne sera plus le cas.
J'ai l'impression qu'avec Kubernetes et l'infrastructure, la simplicitĂ© d'utilisation va Ă©galement augmenter considĂ©rablement. C'est, Ă mon avis, Ă©vident â c'est manifeste.
Que faire avec les ingénieurs ?
â Que va-t-il advenir des ingĂ©nieurs, des administrateurs systĂšmes qui maintiennent Kubernetes ?
Dmitry: Qu'est-il arrivĂ© aux comptables aprĂšs l'apparition de 1C ? Ă peu prĂšs la mĂȘme chose. Avant, on faisait des calculs sur papier â maintenant, c'est dans un programme. La productivitĂ© a augmentĂ© de maniĂšre exponentielle, mais le travail lui-mĂȘme n'a pas disparu. Autrefois, il fallait 10 ingĂ©nieurs pour visser une ampoule, maintenant il suffit d'un seul.
Le nombre de logiciels et le nombre de tĂąches, il me semble, augmente actuellement Ă une vitesse plus rapide que n'apparaissent de nouveaux DevOps et que l'efficacitĂ© augmente. Il y a une pĂ©nurie spĂ©cifique sur le marchĂ© et elle va durer longtemps. Plus tard, tout reviendra Ă une certaine norme, Ă laquelle l'efficacitĂ© du travail augmentera, il y aura de plus en plus de solutions serverless, et Kubernetes sera connectĂ© Ă un rĂ©seau neuronal qui choisira toutes les ressources exactement comme il le faut, et tout fera tout seul, comme il se doit â l'homme, recule et ne dĂ©range pas.
Mais, de toute façon, il faudra que quelqu'un prenne des décisions. Il est clair que le niveau de qualification et de spécialisation de cette personne sera plus élevé. Actuellement, dans le département de comptabilité, vous n'avez pas besoin de 10 employés qui tiennent les livres, pour que leur bras ne se fatigue pas. C'est simplement inutile. De nombreux documents sont automatiquement scannés et reconnus par le systÚme de gestion électronique des documents. Un seul comptable principal intelligent, déjà avec des compétences beaucoup plus avancées et une bonne compréhension, est suffisant.
Dans l'ensemble, ce chemin est commun à tous les secteurs. Avec les voitures, c'est pareil : avant, une voiture venait avec un mécanicien et trois conducteurs. Maintenant, conduire une voiture est un processus simple auquel nous participons tous les jours. Personne ne pense que la voiture est quelque chose de complexe.
Le DevOps ou l'ingĂ©nierie systĂšme ne disparaĂźtront pas â le niveau Ă©levĂ© et l'efficacitĂ© du travail vont augmenter.
â J'ai Ă©galement entendu une idĂ©e intĂ©ressante, selon laquelle en rĂ©alitĂ©, le travail va Ă©galement augmenter.
Dmitry: Bien sĂ»r, c'est sĂ»r Ă cent pour cent ! Parce que le nombre de logiciels que nous Ă©crivons augmente constamment. Le nombre de problĂšmes que nous rĂ©solvons avec des logiciels augmente constamment. Le volume de travail augmente. Actuellement, le marchĂ© du DevOps est incroyablement surchauffĂ©. Cela se voit dans les attentes salariales. En toute honnĂȘtetĂ©, sans se plonger dans les dĂ©tails, il devrait y avoir des juniors qui veulent X, des intermĂ©diaires qui veulent 1,5X et des seniors qui veulent 2X. Mais maintenant, si l'on regarde le marchĂ© des salaires DevOps Ă Moscou, un junior veut entre X et 3X et un senior veut entre X et 3X.
Personne ne sait combien ça coĂ»te. Le niveau de salaire est mesurĂ© par ta confiance â c'est un vrai bazar, pour ĂȘtre honnĂȘte, un marchĂ© extrĂȘmement surchauffĂ©.
Bien sĂ»r, cette situation va changer trĂšs bientĂŽt â il doit y avoir un certain Ă©quilibre. Avec le dĂ©veloppement de logiciels, ce n'est pas aussi simple â mĂȘme si les dĂ©veloppeurs sont trĂšs demandĂ©s, et que les bons dĂ©veloppeurs sont recherchĂ©s, le marchĂ© sait qui vaut quoi â le secteur s'est stabilisĂ©. Ce n'est pas le cas avec DevOps en ce moment.
â D'aprĂšs ce que j'ai entendu, je conclue qu'un administrateur systĂšme actuel ne doit pas s'inquiĂ©ter trop, mais qu'il est temps de dĂ©velopper ses compĂ©tences et de se prĂ©parer Ă un avenir oĂč le travail va augmenter, mais sera plus qualifiĂ©.
Dmitry: C'est sĂ»r Ă cent pour cent. En gĂ©nĂ©ral, nous vivons en 2019 et la rĂšgle de vie est la suivante : lifetime learning â nous apprenons toute notre vie. Je pense que tout le monde le sait et le ressent dĂ©jĂ , mais il ne suffit pas de savoir â il faut agir. Chaque jour, nous devons changer. Si nous ne le faisons pas, tĂŽt ou tard, nous serons laissĂ©s au bord de la profession.
Soyez prĂȘt Ă des changements brusques de 180 degrĂ©s. Je ne exclue pas des situations oĂč quelque chose changera radicalement, des nouveautĂ©s seront inventĂ©es - cela arrive. Hop ! - et nous agissons dĂ©sormais diffĂ©remment. Il est important d'ĂȘtre prĂȘt pour cela et de ne pas s'en faire. Il se peut qu'il arrive que demain tout ce que je fais devienne inutile - peu importe, j'ai appris toute ma vie et je suis prĂȘt Ă apprendre autre chose. Ce n'est pas un problĂšme. Il ne faut pas avoir peur de la sĂ©curitĂ© de l'emploi, mais il faut ĂȘtre prĂȘt Ă apprendre constamment de nouvelles choses.
Souhaits et petite publicité
â As-tu un souhait ?
Dmitry: Oui, j'ai quelques souhaits.
Le premier et mercantile - abonnez-vous Ă Â . Chers lecteurs, allez sur YouTube et abonnez-vous Ă notre chaĂźne. Dans environ un mois, nous commencerons une expansion active sur la plateforme vidĂ©o, et nous aurons plein de contenu Ă©ducatif sur Kubernetes, ouvert et variĂ© : des choses pratiques, mĂȘme des laboratoires, jusqu'Ă des principes thĂ©oriques profonds et comment appliquer Kubernetes au niveau des principes et des patterns.
Le deuxiĂšme souhait mercantile - allez sur et mettez des Ă©toiles car nous en avons besoin. Si vous ne nous mettez pas d'Ă©toiles, nous n'aurons rien Ă manger. C'est comme de la manne dans un jeu vidĂ©o. Nous faisons des choses, nous travaillons dur, certains disent que ce sont de terribles vieilles histoires, d'autres que tout est injuste, mais nous continuons et agissons en toute honnĂȘtetĂ©. Nous voyons un problĂšme, nous le rĂ©solvons et partageons notre expĂ©rience. Donc, mettez-nous une Ă©toile, cela ne vous coĂ»tera rien, mais cela nous profitera, car nous en avons besoin.
TroisiĂšme souhait, important, et dĂ©jĂ non mercantile - cessez de croire aux contes de fĂ©es. Vous ĂȘtes des professionnels. DevOps est une profession trĂšs sĂ©rieuse et responsable. Cessez de jouer au travail. Que cela vous choque, et vous comprendrez cela. Imaginez que vous arrivez dans un hĂŽpital, et lĂ un mĂ©decin fait des expĂ©riences sur vous. Je comprends que cela peut blesser certains, mais c'est probablement Ă propos de quelqu'un d'autre. Dites aux autres de cesser Ă©galement. Cela nuit vraiment Ă notre vie Ă tous - beaucoup commencent Ă traiter les opĂ©rations, les administrateurs et les DevOps comme des gars qui ont encore cassĂ© quelque chose. Ce "cassĂ©" est le plus souvent dĂ» au fait que nous sommes allĂ©s jouer plutĂŽt que d'observer calmement que cela fonctionnait ainsi et que cela fonctionnait ainsi.
Cela ne signifie pas qu'il ne faut pas expĂ©rimenter. Il faut expĂ©rimenter, c'est ce que nous faisons nous-mĂȘmes. Pour ĂȘtre honnĂȘte, nous jouons parfois aussi â c'est bien sĂ»r trĂšs mal, mais rien de ce qui est humain ne nous est Ă©tranger. DĂ©clarons 2019 l'annĂ©e des expĂ©riences sĂ©rieuses et rĂ©flĂ©chies, et non des jeux en production. Peut-ĂȘtre que ce sera ainsi.
â Merci beaucoup !
Dmitry: Merci Ă toi, Vitaly, pour le temps et pour l'interview. Chers lecteurs, un grand merci Ă vous si vous ĂȘtes arrivĂ©s jusqu'Ă ce moment. J'espĂšre que nous vous avons apportĂ© au moins quelques rĂ©flexions.
Dans l'interview, Dmitry a abordĂ© la question de werf. C'est actuellement un outil polyvalent qui rĂ©sout presque tous les problĂšmes. Mais cela n'a pas toujours Ă©tĂ© le cas. Au  festival Dmitry Stolyarov expliquera cet outil en dĂ©tail. Dans son intervention tout sera lĂ : les problĂšmes et les nuances cachĂ©es de Kubernetes, les options de solutions Ă ces difficultĂ©s et la mise en Ćuvre actuelle de werf en dĂ©tail. Rejoignez-nous les 27 et 28 mai, nous allons crĂ©er des outils parfaits.
Source : habr.com
