Aux mots "open source", beaucoup semblent être soit un passionné qui s'engage le soir à son projet préféré, soit une petite entreprise qui gagne de l'argent en soutenant un produit ouvert. Mais si vous ne pensez qu'à eux, vous raterez un segment important et intéressant de la communauté. Autrefois, les mots «entreprise» et «open source» semblaient être des antonymes, mais maintenant les grandes entreprises utilisent non seulement activement les projets OSS, mais elles-mêmes y contribueront.
Au fil du temps, Sbertech a été de plus en plus actif dans la communauté OSS, et nous avons décidé de leur poser des questions à ce sujet. Comment la spécificité bancaire stricte se combine-t-elle avec l'esprit de liberté open source? Quelles sont les exigences pour l'Open Source que d'autres entreprises pourraient ne pas avoir? Y a-t-il des employés de Sbertech qui écrivent l'open source comme principales tâches? Quels sont vos plans et vos envies pour l'avenir?
Anton Churaev , qui supervise Free & Open Source, nous a parlé de tout cela et bien plus encore.
Oleg: Salut Anton. Laissez-nous vous présenter un peu les Khabrovites. Parlez de vous: qui êtes-vous, que faites-vous?Anton: Je suis un ingénieur qui ne se développe cependant que pendant son temps libre. Maintenant, je m'intègre dans les pratiques et les compétences Sbertech pour le développement et l'application de produits libres et open source. Vous devez comprendre que ce sont des choses légèrement différentes.
- Oui, je comprends, quelques fois en parlant avec Stallman, j'ai appelé Free as Open et après cela j'ai écouté une telle conférence que je m'en suis souvenue pour la vie :-) Eh bien, quelle est votre position?- Curateur du développement du Free & Open Source. Et passionné d'open source :)
- Pouvez-vous décoder un peu plus les "compétences pour la mise en œuvre de l'Open Source"? Cela ressemble à une sorte de connaissance secrète.- Peu de gens imaginent ce que l'Open Source signifie pour les entreprises. D'une part, ce sont les innovations et l'absence de nécessité de développer le produit, de se concentrer sur les avantages compétitifs de leurs produits, de les réutiliser et de réduire les coûts. Ce sont souvent des projets qui sont devenus des normes de l'industrie. Prenez le même Hadoop - tout le monde le sait, tout le monde le sait, c'est depuis longtemps une norme. Ou les bases de données les plus courantes - les cinq premiers sont trois produits open source - MySQL, PostgreSQL et MongoDB.
Mais peu de gens pensent que l'utilisation d'OpenSource implique beaucoup de coûts cachés. Cela ne veut pas dire que nous avons trouvé quelque chose d'open source et résolu tous nos problèmes. Par exemple, il y a de grandes questions sur «l'hygiène légale». Lorsque vous travaillez avec un logiciel de fournisseur, tout est très clair: j'ai pris une licence, vous travaillez dessus et utilisez le support. Lorsque vous travaillez avec Open Source, beaucoup est laissé à la merci des développeurs et des utilisateurs. Dans ce cas, les questions juridiques et juridiques sont l'un des premiers endroits. De plus, en Russie, il y a des nuances. Si partout dans le monde le concept de propriété intellectuelle est assez développé et que tout le monde comprend qu'il est très important qu'il y ait un propriétaire spécifique, alors en Russie, tout s'est passé différemment. Ici, nous ne sommes pas si prudents et respectueux de la propriété intellectuelle, bien que ce soit extrêmement faux. Et si vous ne pouvez pas garantir «l'hygiène» de l'utilisation de l'Open Source, vous ne pouvez pas garantir la qualité de son utilisation.
- Puis-je clarifier? Quel est le statut juridique des licences GPL en Russie? Par exemple, la GPL n'autorise pas les modifications des lois locales et n'indique pas de restrictions territoriales. Par conséquent, un tel accord n'est pas compatible avec le régime juridique établi sur le territoire de la Fédération de Russie, et c'est très, très mauvais.- Je ne souhaite pas diviser les licences en certaines zones. Sberbank est une entreprise mondiale, le logiciel peut donc être utilisé à la fois aux États-Unis et dans l'Union européenne. Et, si je comprends bien (je ne suis pas un avocat, mais à ma connaissance), en cas de violation des restrictions des licences du titulaire du droit d'auteur sur le territoire, par exemple, des États-Unis, nous serons responsables en vertu des lois des États-Unis. Compte tenu de cela, vous devez être très prudent dans la sécurisation des droits et remplir les conditions de propriété intellectuelle d'autrui. Respectez les auteurs qui nous ont permis d'utiliser nos travaux, grâce auxquels nous avons accéléré, optimisé des solutions, résolu nos problèmes et finalement fourni un service de qualité à nos clients. Respectons les droits et les exigences. Ceci est la première tâche.
- Et le second?- La deuxième tâche est la sécurité de l'information. Il est clair que la plupart des licences contiennent une clause de non-responsabilité indiquant que l'auteur / développeur / contributeur n'est pas responsable des dommages possibles qui seront causés par le fonctionnement de ce logiciel. C'est vrai, c'est une responsabilité qui se transfère au consommateur et exige de lui une maturité. Tout n'est pas gratuit.
Vous devez payer pour cette responsabilité et, bien sûr, travailler avec ces risques. Toutes les entreprises ne peuvent pas le faire. Nous avons un département très fort de la sécurité de l'information - nous avons de la chance. Par conséquent, nous sommes sérieux au sujet de la présence de vulnérabilités et de code malveillant en général. Quiconque envisage d'utiliser l'Open Source doit prendre en compte tous les risques - non seulement juridiques, mais également en termes de sécurité de l'information.
- Quelles licences aimez-vous?- Académique.
- O! Soyons plus précis. Il y a MIT / BSD, etc., et il existe des licences de copyleft de virus comme Affero GPL. Laquelle de celles-ci?- Et bien. Vous ne pouvez pas aimer ou détester une licence. Le produit est conçu pour une tâche spécifique et sera utilisé d'une manière spécifique. Lorsque vous utilisez l'open source, votre tâche consiste à vous assurer que vous fournissez votre produit ou service sans violer les droits de tiers. Dans ce cas, bien sûr, vous pouvez utiliser des copylefts (par exemple, la GPL), si vous assurez leur utilisation afin qu'ils ne violent pas les restrictions et les droits de quiconque. Bien sûr, il y a moins de difficultés lors de l'utilisation des licences académiques, simplement parce qu'elles comportent moins de restrictions et sont donc plus faciles à suivre. Pour faire court, j'appelle MIT «académique», BSD, Apache, etc.
- D'accord, les développeurs ordinaires doivent-ils gérer la sécurité de l'information? Ou est-il attribué à un service distinct?- Tous les développeurs doivent comprendre les bases de la sécurité de l'information et les principes de sa sécurité pour leurs systèmes. Mais dans notre cas, nous travaillons avec des développeurs individuels spécialisés dans les menaces à la sécurité des informations. De plus, nous nous tournons vers eux non seulement pour l'analyse des produits open source, mais aussi pour l'analyse des algorithmes et des solutions de conception.
«Il est clair que ces agents de sécurité spéciaux savent tout.» Et que doit savoir un développeur ordinaire à cet égard? Quels sont les points fondamentaux?- Modèle de menaces, protection des canaux, protection des données. Ce qui est sujet aux menaces: c'est peut-être une interface utilisateur ou une transmission de données sur un réseau (tout est distribué avec nous, donc c'est un problème très important). Des outils de base comme le cryptage, SSL, TLS, l'authentification, l'autorisation, la gestion des jetons, etc. Vous n'avez pas besoin d'en savoir beaucoup.
- La rumeur veut que vous ayez quelque chose à voir avec Apache Ignite :-)- En termes de contribution, c'est le principal projet sur lequel je travaille actuellement. La participation à Apache Ignite fait partie de ma deuxième tâche - assurer un investissement équilibré dans des projets libres et open source. Cela implique à la fois l'utilisation compétente des produits (il est clair que l'utilisation des bibliothèques est un investissement, nous, en tant qu'utilisateurs, augmentons l'attractivité du produit), ainsi que le développement et la contribution.
Pour moi, probablement, cette tâche est encore plus importante. Nous rendons hommage aux produits que nous utilisons dans notre entreprise et grâce auxquels nous avons construit de nombreux produits et systèmes. Nous essayons de les améliorer et d'assurer la possibilité d'utilisation dans des entreprises comme la nôtre: optimiser, amener à un état d'entreprise.
Apache Ignite n'est pas le seul projet, mais nous y ferons une contrebande très intensive, car l'une des principales plates-formes de la banque est en cours de construction sur la base d'Apache Ignite. Ignite est une grille de calcul distribuée qui vous permet de stocker et de traiter des données en mémoire, et en fait, elle est la base du paysage informatique de notre entreprise. Par conséquent, nous sommes extrêmement intéressés par son développement.
- Beaucoup de gens savent que Sbertech utilise GridGain, et vous parlez d'Apache Ignite. Quelle est la différence entre les deux?- GridGain est un produit à noyau ouvert construit sur la base d'un noyau ouvert, qui est Ignite. Et GridGain est un ensemble de plug-ins pour ce cœur, qui simplifient les procédures de maintenance et d'exploitation, fournissent un certain nombre d'exigences importantes en matière de sécurité et de fiabilité des informations. Mais, en fait, le cœur est la partie la plus importante, et les plugins vous permettent d'exploiter tout cela dans une vraie entreprise. Et la banque exploite déjà GridGain.
- Comme Ignite est ouvert, vous pouvez en parler un peu, non? Exploitez-vous seulement ou faites quelque chose pour le terminer, interagissez avec les développeurs?- Nous le modifions intensivement. Les directions des tâches sont clairement définies, par exemple, assurant la performance en tenant compte des spécificités de Sberbank: à grande échelle, océan de données, haute activité opérationnelle. Par conséquent, cela devrait être rapide et beaucoup. J'entends par là à la fois la latence et le débit.
La seconde est d'assurer la fiabilité, c'est-à-dire disponibilité et tolérance aux pannes.
Le troisième est l'efficacité opérationnelle, la gestion du TCO. Compte tenu de la taille de Sberbank, même une légère réduction de l'utilisation des ressources, par exemple, des disques d'un certain pourcentage, à nos échelles permet de réaliser des économies considérables.
Et le quatrième est la tâche du développement fonctionnel. En fait, l'essentiel est le développement d'interfaces et l'intégration avec d'autres composants de la pile technologique Sberbank. Ceci est utile et important en termes de construction d'une architecture informatique mature et intégrée.
Séparément, il y a la tâche d'éliminer la dette technique et les défauts (qui existent toujours). Cela peut probablement être attribué à la fiabilité.
- Passons en revue ces points pour des éclaircissements. Vous dites que vous travaillez pour améliorer les performances, la latence, le débit, c'est tout. La question est - Ignite a-t-il des problèmes avec cela? Je veux dire, y a-t-il quelque chose à modifier ou est-ce un produit idéal?- Non, le produit ne peut pas être considéré comme idéal. Dans chaque version, nous guidons à la fois des repères généraux et des repères sur des composants spécifiques, nous travaillons constamment sur les performances - nous ne devons pas nous arrêter là. La tâche est difficile, car les composants et solutions sont déjà assez serrés, les performances sont presque à la limite du fer. Cela ajoute de la complexité, mais il y a toujours place à amélioration. Nous avons différents cas d'utilisation, de nouvelles tâches utilisateur apparaissent, dans lesquelles il existe une possibilité d'optimisation. Par exemple, optimisez le lecteur de bande pour la nature spécifique des données. Il existe des tâches pour optimiser la couche réseau, qui, là encore, dépend des cas individuels. Par conséquent, vous devez toujours garder le doigt sur le pouls.
«Vous avez dit que vous contribueriez de nouveau à la communauté.» Et toutes ces décisions concernant divers cas et leur optimisation sont une sorte de compromis. Lorsque nous prenons nos compromis et les introduisons dans la communauté, il peut s'avérer que les gens dans la communauté ont des conditions légèrement différentes, des priorités différentes. Comment organiser l'interaction tout en copiant le code nécessaire à vos cas?- D'autres clients avec d'autres tâches. Il est absolument vrai que c'est un problème standard. Tout dépend de l'architecture de la solution. Si la solution inclut, par exemple, la possibilité de créer des extensions de plug-in, des plug-ins, des bibliothèques pour différentes solutions utilisateur - vous pouvez en sortir. Par exemple, s'il existe un comparateur, l'utilisateur peut toujours développer une solution qui transmettra ce comparateur à l'entrée, ce qui résoudra le problème en fonction de conditions spécifiques. Encore une fois, les capacités dépendent beaucoup de l'architecture. Il est faux de simplement coder et sculpter grossièrement notre tâche sans penser aux autres clients - de telles demandes de tirage ne passent pas par un examen.
Tout le monde comprend ce qu'est un projet Open Source et, en général, vous pouvez l'influencer. Bien sûr, il y a des communautés dans lesquelles les entreprises sont clairement présentes qui influencent le développement dans leurs propres intérêts, mais si nous jouons à l'Open Source pur, alors il sera correctement comparé à la méritocratie (l'autorité des dignes). Prouvez que votre décision est bonne, et alors elle sera prise. Agir, comme c'est souvent le cas en développement fermé, c'est-à-dire à partir de la position «Je suis le patron, je l'ai dit», ne fonctionnera pas.
- L'un des cas les plus intéressants que Sbertech a racontés en public est la couche sémantique unique. Une énorme quantité de données réparties sur une grille en mémoire. Comment cela a-t-il affecté la partie ouverte d'Ignite et à quel point ces développements sont-ils intéressants pour la communauté?- Oui, de tels développements sont en cours, et nous travaillons très intensivement sur des tâches pour assurer l'évolutivité et l'accessibilité. Nous avons trouvé des cas dans lesquels le schéma de gestion de la topologie actuel n'est pas optimal, car sa complexité temporelle croît à partir du nombre de nœuds pas tout à fait comme nous le souhaiterions. Cela complique quelque peu la réalisation de l'objectif.
- Pour autant que je m'en souvienne, l'architecture de cluster est un anneau. Autrement dit, lorsque nous rejoignons le ring, puis au début, nous allons au coordinateur, puis nous longons le ring jusqu'à ce que nous trouvions la queue. Et plus il y a d'éléments, plus de temps, non?"Oui, en quelque sorte." Dans le même temps, avec une augmentation du nombre de nœuds dans la topologie, à la fois la taille des messages transmis le long de l'anneau et le nombre de transitions entre les participants augmentent. Cela ne veut pas dire qu'une bague est une mauvaise décision, mais dans certains cas, elle ne convient pas. Par conséquent, depuis la fin de 2017, nous dans la communauté finalisons la gestion de la topologie afin que les utilisateurs puissent choisir un schéma de gestion de la topologie: un anneau (parfois il s'adapte parfaitement) ou une étoile sur Zookeeper.
- Et d'où venait la bague? Pourquoi? Où est-il parfait?- Il s'agit d'une merveilleuse solution sur les topologies de 100 à 200 nœuds dans un centre de données. Vous permet de synchroniser simplement et de manière fiable tous les nœuds, ils vont simplement dans l'ordre. Si nous allons à l'étoile, alors ils commencent à travailler en parallèle, plus rapidement, mais en même temps, les synchroniser devient beaucoup plus difficile. Autrement dit, l'anneau peut être plus stable et fiable, d'accord?
"Oui, bien sûr." Mais peut-il être fait pour que cette topologie puisse être modifiée par un paramètre dans la configuration, comment est le réglage?- Oui, nous le faisons maintenant, nous incluons les deux topologies dans la version. Probablement, les implémentations déjà proposées ne couvrent pas tous les cas d'utilisateurs, et dès que de nouvelles apparaîtront, nous essaierons d'assurer leur traitement efficace.
- Pour autant que je sache, il s'agit d'une révision assez compliquée. Et cette révision est faite par des gens à Sbertekh, pendant les heures de travail, ou le soir pour le plaisir?- Ceci est fait par la communauté, qui comprend les employés de PBT, dont la tâche principale pendant les heures de travail est de contribuer à ce projet. Le problème de topologie affecte l'une des solutions clés du cœur de produit, de sorte que le fardeau principal est tombé sur les responsables de DiscoverySPI, mais j'espère que la participation de nos développeurs a également eu un impact positif sur le résultat.
- Eh bien, ce sont des gens qui résolvent un problème pendant les heures de travail, mais en même temps sont des membres de la communauté.- Oui, la partie la plus importante du travail de nos développeurs se déroule dans la communauté. Mais je vois aussi de nos gars de tels commits qui sont apparus dans une heure, deux, trois nuits.
- Et ces employés n'auront pas de problème du fait qu'ils travaillent dans une banque, sur un système fermé, et s'engagent en même temps sur une source ouverte?- Non, ça ne le sera pas. Tous les participants sont des contributeurs officiels de l'entreprise. La création de la direction et la décision d'investissement ont été faites au niveau de la direction de l'entreprise, et oui, ce groupe de contributeurs dédiés qui, conformément à toutes les normes de l'entreprise et de TC, développent des produits Open Source dans l'intérêt de l'entreprise. Oui - c'est le développement et l'Open Source, oui - c'est pendant les heures de travail, et pendant les heures non travaillées aussi, mais c'est déjà si la communauté le demande.
- Nous venons de parler de certaines affaires extérieures que la communauté décide. Mais très probablement, l'entreprise doit faire ses propres intégrations, s'améliorer pour certains de ses cas ... Avez-vous écrit beaucoup de vos propres? Ou est-ce juste un peu de dopilka?- En parlant du projet Apache Ignite, au cours du dernier trimestre, notre contribution au projet a représenté 8 à 10% de tous les changements, et nous nous efforçons d'augmenter ce pourcentage. Nous avons beaucoup écrit, et ce n'est pas seulement le développement et l'optimisation des fonctionnalités existantes, nous travaillons également sur de nouvelles fonctionnalités pour le projet. C'est un défi pour la communauté, et une responsabilité pour nous, car après son inclusion, la communauté a dans une certaine mesure la tâche de la soutenir.
Les tâches peuvent apparaître non seulement de la communauté, mais aussi des utilisateurs de l'entreprise: architectes, équipes de développement et de maintenance. Le développement du projet sur ces tâches affecte également de manière significative le produit.
- Mais, disons, il y a eu plusieurs rapports du programme Sbertekh du PRPRB concernant son «feng shui spécial». Dois-je écrire des outils et des pages d'administration supplémentaires pour prendre en charge cela?- Les interfaces de fonctionnement évoluent constamment. La console de gestion du même Oracle est plus familière à entretenir et a plus de fonctionnalités. La question de savoir s'il doit être entièrement reproduit est une autre question.
- Et sous forme ouverte, vous pouvez voir la console de gestion?"Oui, bien sûr." Publication de la console Web, Visor, CLI - tout est public.
- Et si vous le regardez plus globalement, quelles sont les directions générales et les objectifs?- Nous nous concentrons désormais davantage sur le développement d'Apache Ignite, qui répond aux priorités de l'entreprise. Mais notre pile technologique ne s'arrête pas là. Open Source , , . , , . ( ), , . . , . . .
— , . - ?— — , availability, durability, fault tolerance ..
— , .— , — . , Open Source . . , .
— - , , ? , - , ceph?— , ceph — . , , , .
— - ? ?— OpenStack.
— , OpenStack — , . - , , ?— OpenStack , , , Cloud Foundry, .
— ?— :-) , ( ) . , — , , .
— .— , - Open Source .
, . , , -.
— -?— , , , -: , .. , , , , . . , Open Source, , , .
. , . -, , . . , , , .
, , ( -, , , ) — . , , , .
— .
— , . , «», , « , » «, ». , . , , . , , , . — , .
— , ? , … , , .— . , , , , . , , ( ). , , , .
, , - .
Open Source . , . . , .
— ? ?— , . , , – . — , ROI, .., .
— , - . , : , . , - Spring Hibernate, , , , . , , , . , .— , , . , , . , , . , . , .