Cómo Siemens creó una cultura de DevOps de código abierto con GitLab
¿Quiere ver lo que GitLab Ultimate puede hacer por su equipo?
Siemens utiliza GitLab para mejorar la eficiencia de los desarrolladores y la satisfacción del cliente.
Siemens transformó su colaboración y flujo de trabajo organizacional gracias a la SCM de GitLab, CI/CD y DevOps.
Pionero mundial en innovación
Siemens se fundó en 1847 como un «taller mecánico en el patio trasero» en Berlín, Alemania. Siemens AG (Berlín y Múnich) es una potencia tecnológica mundial que ha sido sinónimo de excelencia en ingeniería, innovación, calidad, confiabilidad e internacionalidad durante más de 170 años. Activa en todo el mundo, la empresa se centra en la infraestructura inteligente para edificios y sistemas de energía distribuida, y en la automatización y digitalización en las industrias de procesos y fabricación.
Siemens reúne los mundos digital y físico para beneficiar a los clientes y a la sociedad. A través de Mobility, un proveedor líder de soluciones de movilidad inteligente para el transporte ferroviario y por carretera, Siemens ayuda a dar forma al mercado mundial de servicios de pasajeros y carga. Mediante su participación mayoritaria en la empresa Siemens Healthineers, que cotiza en bolsa, Siemens es también un proveedor líder mundial de tecnología médica y servicios de salud digital.
Además, Siemens posee una participación minoritaria en Siemens Energy, un líder mundial en la transmisión y generación de energía eléctrica que cotiza en la bolsa desde el 28 de septiembre de 2020. En el año fiscal 2019, que finalizó el 30 de septiembre de 2019, el Grupo Siemens generó ingresos de 58 500 millones de euros y un ingreso neto de 5600 millones de euros. Al 30 de septiembre de 2019, la empresa contaba con unos 295 000 empleados en todo el mundo sobre la base de operaciones continuas.
Empresa a gran escala con necesidades a gran escala
Con más de 20 000 desarrolladores, Siemens se divide en múltiples organizaciones que actúan dentro de diferentes dominios, centradas principalmente en iniciativas de empresa a empresa. Según Fabio Huser, Arquitecto de software, el desafío era: «¿Cómo construimos una cultura de DevOps en torno a esta estructura empresarial federalista realmente fracturada?».
Siemens necesitaba una plataforma de DevOps que ofreciera colaboración, transparencia y una gestión adecuada del código para lograr su objetivo: una comunidad para los empleados de todo el mundo y una fuente única de la verdad para el código. Para que una herramienta tuviera éxito, Siemens requería que los desarrolladores tuvieran una mentalidad colaborativa, conocimientos de ingeniería de full stack, experiencia como colaboradores de código abierto y una plataforma escalable que pudiera utilizarse para construir sobre sí misma. La visión de un flujo de trabajo mejorado incluía la capacidad de colaborar en el código y compartirlo en cuestión de minutos, acelerar el tiempo de comercialización, capacitar a las personas para que posean su propio código y establecer las bases tecnológicas para los futuros modelos de negocio.
Adoptar primero el código abierto
Un pequeño equipo dentro de Siemens adoptó GitLab en 2013 para la colaboración y el control de versiones a fin de desarrollar dispositivos integrados basados en Linux. En un enfoque típico comunitario, el equipo abrió la plataforma para toda la empresa y la amplió a más de 40 000 usuarios. La plataforma de DevOps proporciona un lugar para que diferentes equipos trabajen en el mismo proyecto con la capacidad de compartir código en cuestión de minutos y colaborar fácilmente en todo el mundo.
«El mundo del código abierto presenta nuevas herramientas cada semana. Pero al final del día, realmente intentamos resolverlo como un asunto humano. Queremos colaborar, y la herramienta es solo un elemento secundario después de todo», dijo Huser. «Gracias a GitLab, encontramos una herramienta que facilita esta ideología. Se trata de las personas que hay detrás de la herramienta, y para mantener esta idea y además tener este espíritu de comunidad dentro de Siemens, realmente necesitas establecer una comunidad así».
En 2015, el equipo de code.siemens.com cambió su enfoque a la CI/CD de DevOps, y llamaron a su estilo de flujo de trabajo específico «computación de desguace» en los primeros días para permitir la integración de componentes de código abierto. «Gracias a la facilidad de uso del runner de GitLab, se pueden configurar nuevas máquinas en cuestión de minutos», según Huser. «Si tienes máquinas viejas por ahí y tienes una configuración lo suficientemente buena en términos de red, literalmente puedes configurar nuevos runners, nuevas capacidades en un minuto. Es bastante rentable».
Código, colaboración y comunidad
Actualmente, code.siemens.com tiene su infraestructura de TI en AWS. Ya no hay necesidad de la «computación de desguace» porque code.siemens.com es un servicio completamente establecido con una gran comunidad de desarrolladores internos proporcionada por la organización de TI de Siemens.
La infraestructura evolucionó hasta convertirse en una configuración muy afinada y sofisticada, con una gran cantidad de instancias de EC2 gestionadas como infraestructura como código. También se utilizan soluciones SaaS como S3, RDS, ElastiCache, EFS y ELB, ya que pueden ser reemplazadas por soluciones estándar de código abierto para minimizar el bloqueo de proveedores. GitLab está alojado en AWS, al igual que los servicios de asistencia como los runners de CI de GitLab, supervisión, registro, informes de bloqueo y más. Siemens ha superado los 38 millones de compilaciones de CI desde que adoptó GitLab. «Si eres parte de Siemens, tienes diferentes repositorios con los que puedes colaborar. Intentamos incorporar la cultura de código abierto, y hasta ahora, realmente lo logramos. Con la CI/CD, realizamos un millón y medio de compilaciones por mes. Toda la cultura ha cambiado por completo», dijo Huser.
Con GitLab, Siemens ahorra tiempo y dinero porque no es necesario mantener parches locales ni actualizar manualmente las correcciones. El equipo de code.siemens.com sigue un flujo de trabajo «upstream primero». «Vamos sin parches. Solo implementamos versiones upstream, nada más. Si queremos tener nuevas funcionalidades, las aportamos a GitLab. No parcheamos nuestra instancia», dijo Roger Meier, experto principal en claves y propietario de servicios de code.siemens.com de Siemens IT. «Tan pronto como se fusionen upstream, implementaremos la siguiente versión. Así que hacemos envíos todos los meses. Realizamos alrededor de cuatro implementaciones de producción al mes».
La plataforma code.siemens.com está gestionada por un equipo de solo ocho personas distribuidas en cuatro países de una manera sumamente ágil. Todos los miembros del equipo están comprometidos con la forma de trabajo de código abierto. Asesoran, asisten y guían a la comunidad interna de desarrolladores, además de gestionar toda la infraestructura y la aplicación. Utilizan GitLab a diario para gestionar todas sus actividades. Todos los miembros del equipo contribuyen o mantienen varios proyectos de código abierto, al tiempo que brindan un servicio confiable para la comunidad de desarrolladores de Siemens en general a fin de aumentar la felicidad de los desarrolladores.
La colaboración se produce en toda la organización con más de 40 000 usuarios de GitLab y el potencial de expansión. GitLab ayuda a Siemens a garantizar la escalabilidad de manera interna y con las oportunidades de desarrollo de los clientes. «Nuestros clientes y desarrolladores solo quieren un servicio confiable que funcione todo el tiempo», agregó Meier.
Los equipos de Siemens contribuyen en gran medida a GitLab con más de 150 solicitudes de fusión fusionadas en GitLab. Además, Huser y Meier son GitLab Heroes y fueron elegidos como MVP de GitLab. Los equipos no solo utilizan la plataforma de DevOps, sino que se enorgullecen de estar tan bien informados que no recurren a un equipo de asistencia de GitLab. «Desde el principio, hablamos de todas nuestras ideas y de que nuestro plan de desarrollo fuera visible para todas las personas de la empresa. Hay que predicar con el ejemplo, esa es la clave. Y por supuesto, centrarse en los clientes: para desarrolladores, de desarrolladores», afirmó Meier.
Toda la información y las personas involucradas en el estudio de caso son precisas en el momento de la publicación.