Domaine : Développement de logiciels
Produits JetBrains utilisés : PyCharm
Taille de l'organisation : 500+
Pays : International
« 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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Swapnil Kulkarni, contributeur technologique actif, OpenStack
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.
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.
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.