La nueva era digital está transformando no solo la forma en que las empresas están gestionando su relación con los clientes reales, sino también el modo en que se ofrecen servicios y aplicaciones. El creciente uso de metodologías ágiles para tratar de adaptar las organizaciones a los ciclos cada vez más dinámicos y exigentes del mercado ha derivado en la necesidad de acelerar el ciclo de vida de las aplicaciones. En la actualidad, no puede entenderse el proceso de desarrollo sin que se utilice un enfoque DevOps.
El concepto DevOps surge de la fusión de otros dos términos (development y operations), precisamente porque unifica la organización de los departamentos de TI y de desarrollo de software. Básicamente promueve la comunicación, colaboración e integración de ambos mundos, unificando el flujo de entrega de valor del servicio, la prueba y el despliegue. Es decir, cuando asumimos un enfoque de DevOps hablamos de actuar desde las pruebas de concepto hasta el lanzamiento, pasando por el testing y los entornos de prueba; todos los pasos involucrados requieren la máxima agilidad posible y eso pasa por integrar los procesos y los equipos de programación con los de sistemas.
Sin embargo, es necesario un cambio de cultura, ya que la automatización tiene un papel crucial en este enfoque, sobre todo a la hora de asegurar la calidad y seguridad en los procesos de despliegue de software. Para que sea posible lograr la eficiencia y agilidad requeridas, el proceso debe ser reproducible y, por tanto, la construcción, prueba y despliegue deben estar automatizados. Lamentablemente, estos procesos no pueden hacerse de forma manual, pues se corre el riesgo de realizar un despliegue diferente en cada versión. Si esto fuera así, sería imposible auditar e identificar los errores cometidos a la hora de realizar los cambios en la configuración del sistema, de los entornos o incluso en la misma aplicación. Lógicamente, la conclusión es que no existe control en el proceso de release y, por lo tanto, no hay forma de asegurar la calidad del software.
Reducir el riesgo
Lógicamente, una vez que ponemos en marcha esta automatización, la frecuencia de liberación de nuevas versiones puede acortarse, ya que el proceso de despliegue implica un esfuerzo mucho menor. De este modo, no es necesario esperar a incorporar todas las funcionalidades del programa para realizar el despliegue, con el consiguiente beneficio derivado de que el cambio entre una versión y la siguiente será pequeño. Pero, es más, al reducir el conjunto de cambios entre cada release, se reduce el riesgo asociado a la liberación en los entornos de producción, haciendo mucho más sencillo un posible roll back.
De esta forma se consigue optimizar el ciclo completo de desarrollo, facilitando un diálogo más cercano con el cliente, más rápido y de mayor calidad, dado que es posible explotar las funcionalidades de una aplicación de manera más rápida y con mayor seguridad.
Efectivamente, hablamos de seguridad en el enfoque de DevOps precisamente porque estos nuevos servicios y aplicaciones digitales están cambiando los procesos de producción tradicionales. La seguridad se está convirtiendo en un área clave a lo largo de todo el proceso, más allá del diseño, el desarrollo, la implementación y el mantenimiento. En este nuevo escenario, la seguridad se está transformando, pasando de un simple parche sobre la capa de implementación a convertirse en una parte fundamental de cualquier servicio o aplicación digital, debiendo cubrir todo el proceso, desde el diseño hasta el mantenimiento.
DevSecOps busca distribuir a gran velocidad todas las decisiones en materia de seguridad
Devsecops
Esta es la razón principal por la que el ciclo de vida de desarrollo seguro o (SSDLC – secure software development life cycle) cubre una gama más amplia de características y responsabilidades, que generan nuevas figuras tales como el DevSecOps, cuyo propósito e intención es construir los nuevos servicios digitales sobre la base de que “todos son responsables de la seguridad”. Se trata de distribuir a gran velocidad todas las decisiones en materia de seguridad, haciéndolas al mismo tiempo escalables a aquellos que tienen el más alto nivel de contexto.
Según IDC, en 2020, en cualquier nuevo servicio/activo digital, SSDLC será una prioridad para el 90% de las organizaciones. En este contexto, las nuevas figuras como DevSecOps desempeñarán un papel fundamental a la hora de alinear las estrategias digitales de las empresas con los nuevos estándares de seguridad necesarios.
El impacto de la transformación digital en las empresas, la sociedad y las nuevas aplicaciones digitales implica rediseñar los procesos de desarrollo para atender las nuevas necesidades con el más alto nivel de seguridad. Hablamos de interiorizar el SSDLC desde el principio, haciendo que la detección y protección contra las vulnerabilidades del software permitan lograr la seguridad desde el diseño inicial hasta la implementación.
En esta línea, según IDC, la previsión de inversión en España en soluciones de gestión de vulnerabilidades alcanzará los 176,45 millones de euros entre 2018 y 2021, suponiendo una tasa de crecimiento sostenido del 6% (CAGR) en dicho período. SSDLC deberá minimizar el impacto que las vulnerabilidades tengan en los nuevos servicios digitales, mostrando una nueva forma de implementar la seguridad desde el diseño que afectará a todas las estrategias de ciberseguridad que se ejecuten a lo largo de la nueva era digital.
Evolución y seguridad
Sin lugar a dudas, estamos ante un proceso de evolución digital en todas las áreas de aquellas empresas que buscan convertirse en nativas digitales. Precisamente, ese camino de evolución debe comenzar a aplicarse desde la misma base del diseño de los nuevos servicios digitales, arrastrando en este proceso un cambio cultural dentro de la propia empresa que propicie la tan anhelada competitividad digital.
Implantar una estrategia de DevOps en una organización puede resultar algo complicado, ya que implica derribar barreras entre equipos (o silos, como se llaman en el argot empresarial), incorporar nuevas herramientas, modificar procesos existentes o crear otros nuevos que permitan lograr la tan ansiada automatización.
Pero si pensamos en términos de beneficios que podemos obtener, sin duda, merece la pena: desde la reducción de errores en diseño hasta la posibilidad de obtener una rentabilidad más rápida del software desarrollado, eficiencia en costes económicos y en horas de desarrollo, así como en despliegue de software más sencillo sin la necesidad de tener conocimientos técnicos.
Conclusión
Solo podrán ser competitivas aquellas empresas capaces de articular procesos ágiles de producción de servicios, incorporando seguridad desde la base. Por ello, roles tan disruptivos como el de DevOps, e incluso posteriores evoluciones hacia el concepto DevSecOp, confirman este camino imparable hacia la nueva era digital. Un camino que apenas acaba de comenzar y que, a buen seguro, nos deparará desaparición de antiguos roles, la evolución de otros y la aparición de nuevos que deberán dar respuesta a las demandas actuales de la sociedad digital.