Le directeur technique adjoint de Mail.Ru Group Tatyana Bakharevskaya parle du chemin de l'administrateur système, des avantages de travailler en tant qu'administrateur système et des caractéristiques de fonctionnement dans une grande entreprise. Tatiana était responsable et responsable des services des deux plus grands portails de Russie.
L'hôte du programme est Pavel Shcherbinin.
-
Parlez un peu de vous.- Je suis entré dans la profession il y a longtemps. Elle a obtenu un emploi en tant qu'administrateur système junior dans une petite startup qui développait son moteur de recherche et un certain nombre d'autres projets Internet. C'était Yandex, où j'ai travaillé pendant de nombreuses années. Elle a grandi pour devenir un administrateur système sérieux, puis a dirigé le département d'administration système. En 2005, 5 personnes travaillaient dans ce département, et après 10 ans - 250, c'était une grande structure, plusieurs unités ont été constituées. Nous avons appris à embaucher, à élever des ingénieurs, à organiser des événements tels que Root, CIT. Chez Yandex, j'étais responsable du fonctionnement continu et ininterrompu de l'entreprise et maintenant, depuis un an déjà, je fais la même chose pour Mail.Ru Group. Au début, il semblait que les tâches étaient similaires, mais après un examen plus approfondi, il s'est avéré qu'il y avait beaucoup de choses en commun, mais qu'il y avait suffisamment de différences, et c'était intéressant.
-
Il existe de nombreuses conditions différentes pour le fonctionnement du service. Ce n'est qu'une exploitation, et l'administrateur système, SRE, SE, DevOps. Dites-nous en plus sur chacun. Ou est-ce la même chose? En quoi diffèrent-ils?- En fait, un administrateur système est un concept assez large, à commencer par le fait qu'une personne peut être responsable d'un petit bureau avec une petite infrastructure de bureau pour plusieurs employés, se terminant par la responsabilité du fonctionnement continu d'un service très chargé. À un moment donné, il était encore divisé dans différentes directions. Dans des sociétés telles que Mail.Ru Group, Yandex, Google, l'administrateur système est plus proche de ce que l'on appelle désormais les mots à la mode SRE - Site Reliability Engineer, c'est-à-dire la personne responsable de la disponibilité du site.
Notre travail nécessite beaucoup de connaissances différentes sur les technologies: Linux / Unix, réseaux, bases de données, serveurs Web, technologies cloud, la composition de l'équipement que nous utilisons pour construire des services (processeurs, mémoire, disques) et bien plus encore. À propos de la technologie, vous devez comprendre comment les appliquer, en quoi elles diffèrent. Il y a toujours beaucoup de travail de routine qui doit être automatisé. Il est également nécessaire d'écrire du code. Les administrateurs système / SRE modernes sont principalement des programmeurs. À l'heure actuelle, le langage principal pour l'automatisation est Python, plus, bien sûr, bash. Connaître C a toujours été un plus. Par exemple, la meilleure documentation Linux: ouvrez le code du noyau et voyez comment tout fonctionne.
Il est également important de comprendre comment construire des systèmes hautement chargés et tolérants aux pannes. À ce sujet, beaucoup a été dit lors de conférences et écrit sur Internet.
Au total, pour résumer, l'ingénieur moderne responsable du service très chargé doit être capable de programmer, connaître et appliquer diverses technologies, avoir une idée de la façon de construire des services fiables et évolutifs.
-
Revenons un peu en arrière. La première étape est très intéressante. Pourquoi avez-vous choisi l'opération?- C'était drôle. Au cours de ces années, toutes les filles décentes voulaient devenir comptables. Je voulais aussi, alors je suis allé aux cours. Ils ont dit que pour devenir comptable, vous devez maîtriser les scores et l'arithmomètre Felix, j'ai décidé que c'était trop compliqué et que «connaître l'ordinateur» (comme ils l'écrivaient dans les offres d'emploi) me faciliterait la vie et la recherche d'emploi. En conséquence, elle est allée "étudier l'informatique" à l'Institut de génie physique de Moscou le plus proche, à la Faculté de cybernétique, au Département des ordinateurs électroniques. Il s'est avéré que dans cet ordinateur, en plus de Word et Excel, il y a encore beaucoup de tout - le processeur, la mémoire, les pipelines, les périphériques d'entrée-sortie. À la fin de mes études, je voulais devenir programmeur. Dans les premiers cours, la programmation était assez difficile pour moi, et à la fin de mes études, c'était simple d'écrire du code. Pourrait faire cela pendant des jours. Le soir, elle s'est assise et a écrit le code, et le lendemain soir, elle a ouvert les yeux. Tout s'est plutôt bien passé, les programmes ont fonctionné. Mais j'ai réalisé que j'étais une personne passionnée et j'ai décidé de choisir quelque chose de plus simple. Et est entré en service, mais il s'est avéré qu'ici aussi, ce n'est pas facile, mais même dans certains endroits, c'est beaucoup plus compliqué. Mais je suis resté et depuis plus de 20 ans je fais ça.
-
Je me demande à quel moment décidez-vous d'être programmeur ou administrateur?- De différentes manières. Au cours des dernières années, j'ai rencontré des étudiants à la fois chez Yandex et Mail.Ru. Les gens du collège viennent s’essayer à la fois à la programmation et à l’administration. Quelqu'un reste en activité et comprend que c'est à lui. Quelqu'un, ayant un peu travaillé, se met au développement. Quelqu'un qui a travaillé dans le développement comprend qu'il veut comprendre certains problèmes plus en profondeur, découvrir la pile de ce qui se trouve ci-dessous, dans le cadre de son programme, comment il fonctionne, comment il vit et est immergé dans le fonctionnement. Il existe certains cas limites qui sont maintenant appelés le mot à la mode DevOps. Ces personnes devraient en savoir beaucoup sur le matériel, l'exploitation et le code.
Tout dépend de la personne, de ce qu'elle aime et n'aime pas. Et ces professions sont très similaires, se chevauchent à bien des égards.
-
Les légendes sur Yandex vous disent qu'à un moment donné, vous disposiez d'un interrupteur spécial qui pouvait à tout moment éteindre un centre de données afin de tester la stabilité du système. Dites m'en plus.- Cette histoire a commencé il y a de nombreuses années avec un incident majeur: presque tous les centres de données ont été déconnectés chez Yandex. Plus précisément, on s'est déconnecté, mais il contenait tout l'équipement réseau de l'entreprise. Yandex n'a pas travaillé pendant plusieurs heures. Après cela, la tâche a été fixée pour que tout soit fiable, tolérant aux pannes, afin que tout fonctionne en cas de déconnexion de l'un des centres de données. Aujourd'hui, ce problème n'est pas si pertinent, en particulier pour les centres de données commerciaux. La fiabilité est devenue beaucoup plus élevée, il existe des exemples de la façon dont les centres de données modernes vivent pendant plusieurs jours dans le carburant diesel. Mais c'était différent.
Pendant plusieurs années, nous avons analysé l'architecture de toutes les applications, rédigé des plans de tâches, comment et ce qui doit être fait pour garantir une tolérance complète aux pannes. Là où c'était impossible ou trop difficile, nous avons discuté du SLA (service level agreement). L'attention principale a été concentrée sur les services populaires et très chargés. La première interruption de test a été très effrayante. La moitié des employés ont suivi les données de surveillance. Ils se sont déconnectés et se sont allumés assez rapidement, ont noté tous les bogues, ont finalisé un certain nombre de systèmes. Et donc quelques itérations.
Après un certain temps, ils sont arrivés au point de pouvoir vivre tranquillement pendant une heure ou deux, déconnectant un centre de données. Tout le monde comprenait que la compétence devait être maintenue, des exercices réguliers pour se déconnecter. C'est comme dans la plomberie: si vous n'ouvrez pas le robinet pendant longtemps et ne le fermez pas, il devient acide et vous ne l'ouvrirez pas au bon moment. Par conséquent, nous avons régulièrement ouvert et fermé les «robinets». Et ça a marché. Je considère comme une réussite qu'une fois la nuit, ils m'ont appelé et m'ont dit que le centre de données était tombé, et j'ai demandé pourquoi ils m'avaient réveillé :-)
-
Que pensez-vous, où est la frontière entre les programmeurs et les administrateurs système? À quel moment un programmeur peut-il dire qu'il n'est pas responsable de cela, ne sait pas quelle base de données est là, c'est pour les administrateurs. Ou ce visage n'est-il pas?- Il me semble que l'administrateur est responsable de l'application "du bout du nez au bout de la queue". Dans le bon sens, il peut entrer dans le code, voir comment cela fonctionne là-bas, comment le réparer pour lui. Il participe au choix de la technologie, car il existe de bonnes technologies pour les programmeurs, il est très pratique d'écrire avec eux, mais il est impossible de vivre 24/7 avec eux.
Les programmeurs peuvent se concentrer davantage sur les fonctionnalités du produit dont ils ont besoin: fonctionnalités supplémentaires, conception, code supplémentaire qui permet au projet de mieux évoluer. Autrement dit, il y a toujours une séparation. Dans la pratique internationale, ce sont la fiabilité du site et l'ingénieur logiciel. Il existe différentes théories où et comment la séparation des rôles devrait avoir lieu. Il me semble que le paradigme adopté par Mail.Ru Group, au sein duquel il y a fonctionnement et développement, et ce sont des personnes différentes, fonctionne assez bien.
-
Tout le monde ne sait probablement pas comment il est désormais organisé dans Mail.Ru Group. Dites m'en plus.- Nous avons un service d'exploitation qui est responsable de l'exploitation des services. Il se compose de plusieurs départements. Chaque département est responsable d'un produit ou d'un groupe de produits spécifique, selon l'échelle. Par exemple, plusieurs services sont engagés dans Mail: un référentiel, l'autre web. Et il y a des départements qui travaillent sur plusieurs projets, à plus petite échelle.
Dans notre foyer - Mail, Search, Portal, Delivery club, "Yula", "My World", ICQ et bien d'autres. Il y a des projets qui ont été lancés depuis longtemps et qui sont nos principaux produits, par exemple, Mail et Portal. Il y a des projets que nous avons achetés que nous plaçons sur notre infrastructure, partageons les pratiques opérationnelles avec eux. Et il y a ceux qui sont nés avec nous et ont grandi très rapidement, par exemple «Yula». L'économie est assez diversifiée :-)
- À
quoi ressemble l'architecture d'un service Mail.Ru Group typique?- Nous avons plusieurs centres de données. Nous avons nos propres centres de données, les nôtres et commerciaux, dans les équipements et réseaux commerciaux. La capacité totale des chaînes dans notre pays est mesurée en térabits.
Nous hébergeons des serveurs de projet dans plusieurs centres de données afin que leur désactivation n'affecte pas le fonctionnement du service. La plupart de nos projets sont des sites Web. L'architecture est standard: un équilibreur de charge, sous lui un serveur web, puis un serveur d'applications, puis un SGBD et / ou de stockage.
Ensuite, les détails commencent.
Fondamentalement, nous vivons tous sur des serveurs de fer, mais nous avons également des nuages. Par exemple, pour le développement et les tests, un cloud est utilisé sur OpenStack, où le développement et les tests peuvent recevoir des ressources en un seul clic.
Nous mettons en œuvre Kubernetes, mais ce processus nécessite beaucoup de changements dans les processus d'exploitation et de développement. Ça ne va pas vite. Nous essayons de tout faire avec soin pour ne rien casser.
Revenons à ce qui se passe avec les utilisateurs. Tout d'abord, l'utilisateur entre dans l'équilibreur. Pour équilibrer la charge, les protocoles réseau BGP et RIP sont utilisés, ainsi que les logiciels traditionnels - ipvs, haproxy et nginx. Après cela, les serveurs Web montrent aux utilisateurs de belles pages, principalement en utilisant nginx et Apache.
Mais derrière eux se trouvent des serveurs d'applications. Comme, comme je l'ai dit ci-dessus, il existe à la fois des projets hérités et des projets relativement nouveaux, il existe de nombreux langages de programmation dans lesquels tout cela est écrit.
En tant que SGBD pour de nouveaux projets, principalement MySQL, PostgreSQL et notre développement interne Tarantool sont utilisés. Les utilisateurs ne devraient pas ressentir la perte de serveurs de tout stockage ou de sa partie, nous essayons de sauvegarder et de répliquer les données vers les centres de données voisins.
Nous utilisons principalement l'open source, car nous avons beaucoup de programmeurs et d'ingénieurs dans notre entreprise qui peuvent réparer quelque chose à tout moment. Il y a aussi quelques développements. Par exemple, le référentiel dans lequel se trouvent les lettres des utilisateurs est son propre développement.
-
Combien de personnes avez-vous soumises?- Maintenant environ 70, mais ce nombre augmente régulièrement. Nous nous développons activement, il y a maintenant de nombreux postes ouverts.
-
Combien de serveurs servent-ils?- Plusieurs dizaines de milliers de serveurs situés dans nos centres de données. Surtout à Moscou, mais nous avons également des serveurs dans d'autres villes, aux États-Unis et en Europe. Toute cette flotte de serveurs doit être surveillée et entretenue, maintenue. Nous-mêmes, bien sûr, n'allons pas dans les centres de données, sauf peut-être lors d'excursions.
-
Quel devrait être le volume de la chaîne?"Quelques térabits." L'ensemble du groupe Mail.Ru dispose d'un réseau commun, à travers lequel de nombreuses informations sont transmises. Prenez au moins «VK» et «OK», qui montrent un tas de vidéos, mais il y a toujours Mail, Search, Analytics et de nombreux autres services très chargés. Par conséquent, le réseau est un élément important.
-
Que devez-vous savoir pour devenir un bon administrateur système?- Bien sûr, Linux. De nombreuses sociétés commerciales utilisent désormais ce système d'exploitation. Fondamentalement, dans les entreprises, ils essaient de ne pas utiliser différentes distributions, tout le monde veut que ce soit une, il est plus facile de mettre à jour et de maintenir les systèmes. Chacun a ses propres préférences pour la distribution, nous utilisons CentOS. Donc, tout d'abord, vous devez connaître Linux, comment et ce qui y est organisé, comment la communication interprocessus est organisée, comment tout se charge et fonctionne.
Vient ensuite la spécialisation - à qui est le plus proche et à ce qui se trouve l'âme :-). Quelqu'un est spécialisé dans l'automatisation, quelqu'un sur les serveurs Web, quelqu'un sur les réseaux, quelqu'un sur les bases de données et quelqu'un sur la technologie cloud. Par exemple, à une époque, j'aimais beaucoup les bases de données. Vous devez comprendre le fonctionnement des applications - pour pouvoir les configurer, comprendre les avantages et les inconvénients de l'utilisation de l'une ou l'autre application dans une tâche et, bien sûr, pouvoir la réparer très rapidement en cas de problème.
Exemples de telles spécialisations: les ingénieurs réseau comprennent les protocoles et savent où et lesquels sont les meilleurs à utiliser, ils peuvent configurer le routage global et local, ils savent comment garantir la fiabilité et la tolérance aux pannes du réseau.
Les spécialistes des bases de données savent comment scinder, répliquer, sauvegarder une base de données afin d'enregistrer de manière fiable des informations et d'assurer une vitesse élevée. Ces personnes savent comment regarder les plans de requête, elles savent pourquoi les index sont nécessaires et ce qu'elles sont.
Une tâche typique: pour discuter des raisons pour lesquelles la requête est exécutée pendant une longue période, vous devez consulter le plan et voir s'il y a des problèmes de chargement du serveur (mémoire, processeur, E / S).
-
Dans l'opinion publique, les administrateurs sont présentés comme des gars avec une grosse barbe dans un pull étiré. Est-ce difficile pour vous de travailler dans une équipe masculine?- Une question difficile, car je travaille depuis de nombreuses années. Premièrement, j’y suis habitué. Deuxièmement, si nous parlons de l'industrie dans son ensemble, il y avait déjà pas mal de filles en activité.
Un tel mythe vient des temps anciens, où beaucoup de travail physique était nécessaire. Mon ami et moi nous souvenons encore comment nous avons retiré un grand serveur multi-unités lourd et le mettre au sol, car nous ne pouvions plus l'emmener dans un endroit spécial pour l'entretien. Et ils se sont assis par terre au milieu du centre de données avec des tournevis, des roues changées. Il n'y avait pas encore de diapositive :-)
Maintenant, il n'y a rien de tel. Nous travaillons dans un bureau confortable à table. Notre travail d'aujourd'hui n'est pas différent de celui d'un programmeur, qui n'a jamais été aussi purement masculin: les programmeuses sont un phénomène assez courant.
-
Notre enquête éclair. Quel est ton ordinateur portable?- Apple.
-
Quel est le meilleur, Bash ou Perl?- Bash.
-
Startup ou grande entreprise?- Démarrage dans une grande entreprise.
"
Quelle était la dernière chose pour laquelle vous n'aviez pas assez d'argent?"- Au yacht.
-
Excellente réponse. Tout le monde comprendra immédiatement le niveau de salaire dans Mail.Ru Group.- Exactement.
-
ICQ ou TamTam?- ICQ.
-
«VK» ou «camarades de classe»?- VK.
-
Qui est ton idole?- Je n'ai pas d'idole. Je crois que beaucoup de gens sur Internet russe et étranger ont fait beaucoup pour cette industrie. Grâce à eux, elle se développe à un tel rythme. J'ai eu de la chance, avec beaucoup d'entre eux que je connais personnellement.
-
Nommez les grands Russes.- Beaucoup; encore une fois, je crains de ne pas énumérer tout le monde. Si quelqu'un doit être distingué personnellement, je suis heureux que dans la vie, j'ai réussi à travailler avec Ilya Segalovich.