Domaine : Développement de logiciels

Produits JetBrains utilisés : PyCharm

Taille de l'organisation : 500+

Pays : International

OpenStack

OpenStack est l'un des logiciels Cloud open source les plus largement déployés dans le monde. Il est développé par la communauté pour la communauté, avec un écosystème de plus de 200 projets actifs répartis dans 187 pays. OpenStack a été élu « Projet PyCharm de la décennie ».

« PyCharm présente des tonnes d'avantages par rapport aux éditeurs de texte en termes de fonctionnalités prises en charge. En ce qui concerne le développement Python, PyCharm se distingue indéniablement par des fonctionnalités telles que le débogage à distance, les contrôles de qualité du code et les intégrations de logiciels tiers comme Docker et Kubernetes. »

— Swapnil Kulkarni, contributeur technologique actif, OpenStack

Pouvez-vous nous parler un peu de vous et de votre parcours vous ayant conduit à devenir un contributeur OpenStack ?

J'ai plus de 12 ans d'expérience dans le développement de logiciels. Je travaille avec l'équipe chargée des conteneurs au sein de la communauté OpenStack depuis plus de 4 ans, et j'ai travaillé sur de nombreux cas d'utilisation de l'écosystème des conteneurs dans OpenStack, comme le déploiement conteneurisé complet d'OpenStack avec le projet Kolla. Je travaille également comme réviseur principal au sein de l'équipe chargée des exigences d'OpenStack.

Pourriez-vous décrire OpenStack pour ceux qui ne vous connaissent pas encore ?

OpenStack a débuté en tant que système d'exploitation Cloud open source avec des contributions initiales de la NASA et de Rackspace. Il constituait une plateforme alternative très utile pour les entreprises à la recherche d'un Cloud privé open source. Il a débuté avec seulement un composant de calcul (Nova) et de stockage d'objets (Swift) et a depuis acquis plus de 250 partenaires technologiques actifs avec des développeurs actifs contribuant à différentes fonctionnalités pour en faire un acteur viable du déploiement de Clouds privés.

Où opère OpenStack ?

OpenStack est présent dans plus de 187 pays et possède une communauté de développeurs ainsi qu'une base d'opérateurs sur tous les continents. Il existe une base d'utilisateurs diversifiée, allant des petits clusters de développement avec moins de dix nœuds aux gros clusters avec des milliers de nœuds, comme l'un des plus grands laboratoires du CERN.

Dites-nous comment OpenStack est organisé en tant que projet open source ?

Les différents projets, initiatives et événements de l'écosystème OpenStack sont régis par l'OpenStack Foundation. Le code source est mis en miroir sur Github à partir du code source géré sur le référentiel OpenDev et tout est révisé avec Gerrit. Les décisions techniques liées aux projets et à la communauté sont prises par le comité technique, qui est formé grâce à un processus d'élection ouvert à toute la communauté parmi tous les contributeurs actifs.

L'écosystème compte plus de 200 projets bénéficiant de contributions actives. Les projets peuvent être classés en plusieurs catégories telles que le calcul, le stockage, la mise en réseau, l'assurance qualité, le déploiement, la sécurité, l'IA et le ML, etc. Avec des milliers de révisions entrantes chaque semaine, la communauté s'appuie sur l'infrastructure fournie par des entreprises comme Vexhost pour effectuer les tâches d'intégration et de livraison continues.

Équipe OpenStack

Comment sont organisées les équipes d'OpenStack ?

Chaque projet OpenStack a sa propre équipe centrale. La taille de celle-ci dépend du nombre de contributeurs et de révisions entrantes du projet. Cela peut varier d'une petite équipe centrale d'environ 5 personnes à une équipe de 50 personnes ou plus pour les groupes de projets plus importants. Chaque groupe de projet fait partie d'un ensemble plus large ayant des objectifs à l'échelle de la communauté. Outre les équipes de développement, il existe des groupes d'intérêt spéciaux comme le groupe des opérateurs, qui collaborent et se concentrent sur les exigences et les problèmes liés aux déploiements d'OpenStack. Nous disposons d'un comité d'utilisateurs pour recueillir les commentaires des utilisateurs d'OpenStack et d'un comité technique qui joue le rôle de catalyseur entre les utilisateurs, les développeurs, les opérateurs et les membres du conseil d'administration de l'OpenStack Foundation.

Quels sont les principaux langages et technologies généralement utilisés chez OpenStack ?

Plus de 95 % de l'ensemble de la base de code d'OpenStack est en Python. Pour toutes les exigences liées au développement Web, nous utilisons le framework Django.

Qu'est-ce que Python a de si particulier et pourquoi l'avoir choisi comme langage principal ?

Tout d'abord, Python est idéal pour le développement rapide. Il est beaucoup plus rapide de développer une nouvelle fonctionnalité avec Python qu'avec n'importe quel autre langage… Bon, ce n'est pas le seul, mais ce qui compte, c'est la capacité de livraison. OpenStack a un modèle de développement très rapide et doit souvent travailler avec des sous-systèmes qui nécessitent un langage doté de riches fonctionnalités techniques et de bibliothèques robustes. Le langage doit être orienté objet et typé dynamiquement. Python répond à ces besoins à 100 %. Il est également propre et facile à lire et à comprendre, c'est pourquoi nous l'aimons tant.

Quel type de développement Python votre équipe et vous-même faites-vous ?

Il y a plusieurs flux de développement Python dans les équipes OpenStack. Nous avons les API pour chaque module, les algorithmes de planification, les composants permettant de faire des appels natifs aux différents composants matériels, tels que les hyperviseurs et les sous-systèmes de stockage. Python est également utilisé pour différents besoins dans le développement de tableaux de bord Web avec le framework Django.

Selon vous, quels sont les principaux défis liés au développement pour les développeurs OpenStack ?

Travailler sur un énorme projet comme OpenStack nécessite des points d'intégration dans plusieurs projets internes ainsi que des composants auxiliaires externes. Cela nécessite un débogage individuel et inter-projets, l'intégration à Git/Gerrit, la gestion des exigences, le débogage en temps réel, l'utilisation d'intégrations comme Vagrant, Docker, Ansible et Kubernetes. Ce ne sont là que quelques-uns des principaux défis à surmonter. Un outil tel que PyCharm qui possède des points d'intégration ou des plugins disponibles pour de telles exigences aide définitivement les développeurs à en surmonter beaucoup.

200 des principaux développeurs d'OpenStack utilisent PyCharm. Comment cela les aide-t-il à être plus productifs ?

PyCharm présente des tonnes d'avantages par rapport aux éditeurs de texte en termes de fonctionnalités prises en charge. En ce qui concerne le développement Python, PyCharm se distingue indéniablement par des fonctionnalités telles que le débogage à distance, les contrôles de qualité du code et les intégrations de logiciels tiers comme Docker et Kubernetes. Les fonctionnalités les plus utilisées avec PyCharm au sein de mon équipe sont le débogage à distance et l'intégration Docker.

PyCharm fonctionne très bien pour la plupart des utilisateurs. Il prend en charge la conformité du style de code à l'échelle du projet et le contrôle de version. De nombreux développeurs trouvent également les correctifs rapides très utiles et gagnent beaucoup de temps lors de la correction de petits bugs et du reformatage du code. De plus, la prise en charge du débogage permet aux équipes de développement de vérifier plus facilement le développement des fonctionnalités. Vous pouvez également utiliser les plugins Gerrit pour gérer vos révisions de code à partir de l'IDE.

Et vous, quelles sont les fonctionnalités de PyCharm qui améliorent le plus votre productivité ?

Je contribue à plusieurs projets de conteneurisation dans OpenStack. Pour commencer, le fait de disposer d'un IDE prenant en charge l'intégration de Docker me facilite grandement la tâche. Cela m'aide également à effectuer des tests supplémentaires avec des conteneurs pour les projets qui ne sont pas encore conteneurisés.

Avez-vous déjà encouragé des amis ou des collègues à utiliser PyCharm ? Quelles sont les trois principales fonctionnalités que vous mentionnez lorsque vous recommandez PyCharm ?

Oui. J'encourage toujours mes amis ou mes collègues à utiliser non seulement PyCharm mais toute la suite de produits JetBrains en fonction de leurs besoins. Comme je l'ai mentionné précédemment, que vous soyez un débutant ou un développeur chevronné, les fonctionnalités telles que les éditeurs de code intelligents, la navigation intelligente dans le code, la prise en charge des intégrations d'outils de support comme Git, Docker et autres sont utiles. Les développeurs disposent d'un outil fiable qui leur apporte le soutien dont ils ont besoin pour mener à bien leurs activités et ils peuvent ainsi se concentrer sur leur développement.

Contacts

Swapnil Kulkarni, contributeur technologique actif, OpenStack

twitter.com/coolsvap
www.openstack.org

Témoignages de clients similaires

RoadBotics

Matt Lucas, responsable produit, RoadBotics

Nous sommes passés à WebStorm en partie parce que de nombreuses fonctionnalités premium sont prépackagées, ce qui nous a permis de démarrer rapidement et de réduire notre dépendance envers des tiers. De plus, la centralisation de toutes nos licences logicielles a facilité la gestion de l'accès à nos outils de développement.

Instil

Garth Gilmour, responsable de l'apprentissage, Instil

Lorsque les restrictions de distanciation sociale ont été introduites en mars 2020, nous avons eu besoin d'un outil qui nous permettrait de collaborer en ligne avec des étudiants dans le cadre de prestations virtuelles, et Space a été une évidence.

Autodesk

Ben Asher, Développeur iOS, Autodesk

Avec Kotlin Multiplatform, un ingénieur peut créer une nouvelle fonctionnalité et la tester sur une plateforme, puis d'autres plateformes peuvent simplement connecter les modèles de données et la logique métier à l'interface utilisateur sur leur plateforme et réutiliser la majeure partie du travail accompli. Maintenant que nous travaillons dans une base de code partagée, nous collaborons davantage entre les plateformes.

Plus de témoignages