Industria: Desarrollo de software
Productos de JetBrains utilizados: PyCharm
Tamaño de la organización: 500+
País: Internacional
OpenStack es uno de los softwares de código abierto en la nube más utilizados del mundo. Lo desarrolla la comunidad para la comunidad, con más de 200 proyectos a los que se contribuye activamente en el ecosistema distribuido en más de 187 países. Se ha votado a OpenStack como ‘Proyecto PyCharm de la Década’.
«PyCharm cuenta con una gran cantidad de ventajas en comparación con los editores de texto en cuanto a funcionalidad compatible. Con respecto al desarrollo en Python, PyCharm sin duda destaca por sus funcionalidades, como la depuración remota, las comprobaciones de calidad del código e integraciones con software de terceros como Docker y Kubernetes».
— Swapnil Kulkarni, colaborador tecnológico activo, OpenStack
Cuento con más de 12 años de experiencia en desarrollo de software. He estado trabajando con el equipo de contenedores en la comunidad OpenStack durante más de 4 años, y he trabajado en numerosos casos de uso para utilizar el ecosistema de contenedores de OpenStack, así como la implementación contenerizada completa de OpenStack, con el proyecto Kolla. También participo como uno de los revisores principales con el equipo de requisitos de OpenStack.
OpenStack comenzó como un sistema operativo de código abierto en la nube con colaboraciones iniciales de la NASA y Rackspace. Ofreció una plataforma alternativa muy necesaria para empresas que buscaban una nube privada de código abierto. Se inició con solo un componente Compute (Nova) y Object Storage (Swift) y desde entonces ha adquirido más de 250 socios tecnológicos activos con desarrolladores activos que contribuyen a diferentes funcionalidades para que se convierta en una pieza viable para el desarrollo privado en la nube.
OpenStack opera en más de 187 países, y cuenta con una comunidad de desarrolladores, así como con una base de operadores, en cada continente. Existe una base de usuarios diversa, desde pequeños grupos de desarrollo con nodos de dígitos sencillos a grupos a gran escala con miles de nodos, como uno de los mayores laboratorios del CERN.
Los diferentes proyectos, iniciativas y eventos del ecosistema OpenStack los controla la OpenStack Foundation. Se hace mirroring del código fuente en Github desde el código fuente gestionado en el repositorio OpenDev, y todo se revisa con Gerrit. Las decisiones técnicas relacionadas con los proyectos y la comunidad las toma el comité técnico, formado por un proceso de elección de entre todos los colaboradores activos abierto para toda la comunidad.
En el ecosistema existen más de 200 proyectos en los que se está colaborando activamente. Los proyectos pueden categorizarse en numerosos flujos, como Computación, Almacenamiento, Redes, Calidad, Implementación, Seguridad, AI/ML, etc. Con miles de revisiones entrantes cada semana, la comunidad depende de la infraestructura a la que contribuyen las empresas como Vexhost para realizar la integración continua y las tareas de entrega.
Cada proyecto de OpenStack cuenta con su propio equipo esencial. Su tamaño depende del número de colaboradores y de las revisiones de proyecto entrantes. Podría oscilar desde un pequeño equipo esencial de 5 personas, hasta un equipo de 50 o más para grupos de proyectos más grandes. Cada grupo de proyecto forma parte de un flujo mayor con objetivos dirigidos a toda la comunidad. Además de los equipos de desarrollo, existen grupos de interés especial como el grupo Operators, que colabora y se centra en requisitos e incidencias con implementaciones de OpenStack. Contamos con un comité de usuarios para obtener feedback de los usuarios de Open Stack, y un comité técnico que hace las veces de catalizador entre los usuarios, los desarrolladores, los operadores y los miembros del consejo de la Fundación.
Más del 95 % de toda la base de código de OpenStack es de Python. Para cualquier requisito relacionado con el desarrollo web utilizamos el marco de trabajo Django.
En primer lugar, Python es genial para el desarrollo rápido. Es mucho más rápido desarrollar una nueva funcionalidad con Python que con cualquier otro de los lenguajes que existen... Bueno, no es el único, pero la cuestión es: capacidad de entrega. OpenStack cuenta con un modelo de desarrollo muy rápido y a menudo necesita trabajar con subsistemas que requieran un lenguaje que cuente con ricas funcionalidades técnicas y sólidas bibliotecas. Es necesario que el lenguaje esté orientado al objeto y sea de tipo dinámico. Python satisface esas necesidades al 100 %. También es limpio y fácil de leer y comprender, por eso nos encanta.
Existen múltiples flujos de desarrollo en Python en equipos de OpenStack. Contamos con API para cada módulo, los algoritmos de programación, los componentes para hacer llamadas nativas a diferentes componentes de hardware, como hipervisores, y subsistemas de almacenamiento. Python también se utiliza para distintos requisitos de desarrollo en el panel web con el marco de trabajo Django.
Trabajar con un enorme proyecto como OpenStack requiere puntos de integración en varios proyectos internos, así como componentes de apoyo externos. Requiere depuración individual, así como interproyectos, integración con Git/Gerrit, gestión de requisitos, depuración en tiempo real, o el uso integraciones como Vagrant, Docker, Ansible y Kubernetes, son solo algunos de los principales retos. Una herramienta como PyCharm, que cuenta con puntos de integración o complementos disponibles para dichos requisitos, sin duda ayuda a los desarrolladores a superar muchos de ellos.
PyCharm cuenta con una gran cantidad de ventajas en comparación con los editores de texto en cuanto a funcionalidad compatible. Con respecto al desarrollo en Python, PyCharm sin duda destaca por sus funcionalidades, como la depuración remota, las comprobaciones de calidad del código e integraciones con software de terceros como Docker y Kubernetes. Las funcionalidades más utilizadas con PyCharm dentro de mi equipo son la depuración remota y la integración con Docker.
PyCharm funciona muy bien para la mayoría de los usuarios. Ofrece compatibilidad con control de versiones y cumplimiento del estilo de código en todo el proyecto. A muchos desarrolladores también les parecen muy útiles los arreglos rápidos, y ahorran mucho tiempo al resolver pequeños errores y reformatear código. Además, la compatibilidad con depuración facilita que los equipos de desarrollo verifiquen el desarrollo de funcionalidades: también puede utilizar los complementos de Gerrit para gestionar sus revisiones de código desde el propio IDE.
Colaboro en varios proyectos de contenedorización dentro de OpenStack y, para comenzar, contar con un IDE compatible con la integración en Docker realmente me lo facilita todo. También me ayuda a realizar algunas pruebas adicionales con contenedores para proyectos que todavía no están contenedorizados.
Sí. Siempre animo a mis amigos o compañeros a utilizar no solo PyCharm, sino toda la suite de productos de JetBrains, según sus requisitos. Como he dicho antes, tanto si es nuevo como si es un desarrollador experimentado, las funcionalidades como editores de código inteligente, navegación de código inteligente, compatibilidad con integraciones que admiten herramientas como Git, Docker, etc. le ayudarán. Los desarrolladores cuentan con una herramienta fiable que les ayuda a llevar a cabo sus actividades y pueden concentrarse en su desarrollo.
Swapnil Kulkarni, colaborador tecnológico activo, OpenStack
Matt Lucas, responsable de producto, RoadBotics
Nos pasamos a WebStorm en parte porque incluye de base muchas funcionalidades premium, lo que nos permite empezar con rapidez y reducir nuestra dependencia de terceros. Además, tener todas nuestras licencias de software en un solo lugar facilita la gestión del acceso a nuestras herramientas de desarrollo.
Garth Gilmour, director de Aprendizaje, Instil
Cuando se introdujeron las restricciones de distanciamiento social en marzo de 2020, necesitábamos una herramienta que nos permitiera colaborar en línea con los estudiantes e impartir formación virtual; Space era la opción evidente.
Ben Asher, desarrollador iOS, Autodesk
Con Kotlin Multiplatform, un ingeniero puede crear una nueva funcionalidad y probarla en una plataforma, y luego otras plataformas simplemente pueden conectar los modelos de datos y la lógica empresarial a la interfaz de usuario en su plataforma y reutilizar la mayor parte del trabajo. Ahora que trabajamos en una base de código compartida, colaboramos más entre plataformas.