Introducción
El Proceso de Transición a DevSecOps es el proceso mediante el cual
- los equipos de trabajo relacionados con un sistema de información adquieren competencias y cultura DevSecOps,
- los sistemas de información serán desplegados en las infraestructuras de despliegue dispuestas en la ADA (CaaS, máquinas virtuales y servidores),
- se adoptan una serie de prácticas y herramientas que favorecen el trabajo bajo DevSecOps.
La definición del citado proceso recoge la experiencia práctica adquirida durante el pilotaje de la transformación de varios sistemas de la Dirección General de Estrategia Digital de la Agencia Digital de Andalucía.
Esta página contiene un resumen del proceso, para facilitar una visión global a sus participantes. De esta forma, se facilitará el alineamiento con sus objetivos y la asunción de responsabilidades.
Contexto
Ante la necesidad de mejorar el ciclo de vida del desarrollo del software y, sobre todo, la forma en la que este se encuentra al servicio de las necesidades del usuario, DevSecOps propone un cambio en la forma en la que se crea y explota el software.
Este cambio, basado en una serie de conceptos, prácticas y técnicas apoyadas en herramientas, persigue un cambio cultural y una nueva forma de relación entre las áreas de desarrollo (Dev), seguridad (Sec) y operaciones (explotación, producción) (Ops).
Con el Proceso de Transición a DevSecOps se persigue avanzar hacia el cambio cultural, que necesitará de un esfuerzo de todas las partes.
Esta transición tiene como principal objetivo, implantar o consolidar las herramientas y prácticas facilitadoras, para crear el contexto apropiado, y lograr así, el cambio cultural que permita mejorar la interacción entre los distintos equipos de trabajo involucrados en el desarrollo de software.
El proceso se estructura en fases, teniendo cada una de ellas un objetivo concreto que establecerá un punto de no retorno desde el cual avanzar en la madurez de transición hacia DevSecOps.
Glosario de términos
Para una mejor comprensión del proceso de Transición hay que tener en cuenta la definición de los siguientes términos:
DevSecOps
CI
CD
Infraestructura de despliegue
Plataforma CI/CD
Plataforma de ejecución basada en contenedores
Plataforma Pre-cloud
Para más detalle sobre el listado de términos que componen el proceso de Transición a DevSecOps ver Glosario de términos del Modelo Operativo.
Objetivo
El objetivo del Proceso de Transición a DevSecOps aplicado a un Sistema de Información es el de crear el contexto adecuado, proporcionando los recursos (herramientas, procedimientos y técnicas) que permitan que el desarrollo y operación del mismo se lleve a cabo de acuerdo a prácticas DevSecOps, de manera que se trabaje de forma colaborativa dentro de un marco de cooperación conforme a las normas y buenas prácticas de la Organización.
Para lograr ese objetivo, a lo largo de las fases:
- Se definirá un equipo de trabajo, integrado por participantes del Equipo de Desarrollo, del Equipo de Operación y Oficina de Impulso DevSecOps, que facilite la coordinación entre los colaboradores. Todo ello basado en un reparto de competencias vigente durante todo el proceso y teniendo en cuenta las particularidades de cada Sistema.
- Se implantarán progresivamente procedimientos, normas y buenas prácticas de colaboración, en su mayoría basadas en prácticas ágiles.
- Los equipos involucrados adoptarán una cultura DevSecOps e irán asumiendo competencias y capacidades para aplicar los procedimientos, normas y buenas prácticas.
En la actualidad, se ha vinculado el Proceso de transformación a DevSecOps a la migración del software en el modelo de despliegue en la nube, en particular al modelo CaaS, por lo que como resultado final el software (Sistema o Componente) se ejecutará en la plataforma de ejecución basada en contenedores. En el futuro, con la implantación del proceso de transición se desea cubrir la ejecución de los sistemas de información en las infraestructuras de despliegues disponibles en la ADA.
Roles y participantes
Los equipos involucrados en las tareas más relevantes del Proceso de Transición a DevSecOps son los siguientes:
- Equipo de Desarrollo
- Equipo de Operación
- Oficina de Impulso DevSecOps
- Oficina de Calidad
- Gestión de Infraestructura
- Vigilancia.
Para más detalle ver Roles y participantes del Modelo Operativo.
Visión global del proceso
A continuación se presenta una visión general del proceso:
Existen dos formas de avanzar en el proceso:
La vía autónoma, en la que los responsables de los sistemas se involucran en el cambio, apoyándose en los recursos que la Oficina de Impulso DevSecOps y el Equipo de Infraestructura ponen a su disposición. Se podrá iniciar esta vía por iniciativa propia.
La vía asistida, impulsada en sus primeras fases por la Oficina de Impulso DevSecOps, a partir de una lista de candidatos.
No se trata de caminos aislados, siendo posible adaptar la estrategia para adaptarse a la situación y posibilidad de impulso de los trabajos.
Fases
Viabilidad: El objetivo de esta fase es evaluar a los sistemas de información en base a una serie de condiciones técnicas y organizativas, para determinar si estos son candidatos para iniciarse en el proceso de transición a DevSecOps. En esta fase, se realiza un estudio, con el objetivo de verificar si el software del sistema de información es compatible o fácilmente adaptable para funcionar en alguna de las infraestructuras de despliegue ofrecidos por la ADA. Para más detalle consulte Fase de Viabilidad.
Transición Autónoma: Fase cuyo objetivo es implantar las prácticas facilitadoras en aquellos sistemas que en la fase de Viabilidad ha resultado que no tienen viabilidad organizativa pero sí viabilidad técnica o para los que exista interés en la implantación de las prácticas facilitadoras. Para más detalle consulte Fase de Transición Autónoma.
Acompañamiento: Fase en la que se realiza la implantación del sistema de información en la infraestructura de despliegue en la que se vaya a ejecutar, esto mediante despliegues y pruebas automatizadas. Todo ello se llevará a cabo a través de la colaboración entre los equipos de desarrollo, Equipo de Operaciones y la Oficina de Impulso DevSecOps, siguiendo un enfoque DevSecOps, con el objetivo de que se vayan instruyendo en sus competencias mediante el acompañamiento. Para más detalle consulte Fase de Acompañamiento.
Seguimiento: Fase en la que se debe de garantizar que las competencias adquiridas en las fases anteriores se puedan llevar a cabo dentro de las restricciones de la organización, que el proceso técnico no revierta, y que las buenas prácticas DevSecOps siguen llevándose a cabo. Para más detalle consulte Fase de Seguimiento.
Autonomía: Fase en la que se debe de trabajar con una autonomía total dentro de las limitaciones de la organización. Para más detalle consulte Fase de Autonomía.
Los proyectos de Implantación DevSecOps se apoyarán en los servicios de certificación y de soporte prestados por la Oficina de Calidad. Para más detalle consulte Relación entre el proceso y los servicios de certificación.