Está en la página 1de 26

Una gua pragmtica para

comenzar con DevOps

Contenido
DevOps es lo correcto para usted?

Desarrollo y Operaciones en el camino equivocado

Siete seales de un proceso disfuncional

Conclusin: Dnde comenzar la transformacin de DevOps

24

Contenido

DevOps es lo correcto
para usted?
En la economa de la aplicacin, cada empresa es un negocio de software.
Por este motivo, DevOps se est volviendo rpidamente una de las disciplinas
ms valiosas para su empresa. Se centra en mejorar la calidad y la velocidad
de la entrega de aplicaciones nuevas al mercado. Adems, se trata de integrar
estrechamente las tareas de desarrollo y operaciones para lograrlo.
Esto est impulsando a empresas en todo el mundo a dar una segunda
mirada a lo que inicialmente haban considerado como una expresin de
moda: vigente un da y caduca al siguiente.
Ahora todos comienzan a preguntarse: Podemos adoptar un mtodo de
DevOps? Funcionar para nosotros?.
La organizacin promedio que adopta DevOps observa una mejora del 20%
en el tiempo de posicionamiento en el mercado, del 22% en la calidad del
software y del 17% en la frecuencia de implementaciones de aplicaciones, lo
que en total genera un 22% ms de clientes y un 19% ms de ingresos.1

Entonces, qu puede hacer DevOps por usted?


Siguiente
seccin
Contenido
DevOps es lo correcto para usted?
1

Reporte de TechInsights: What Smart Businesses Know About DevOps (Qu saben las empresas inteligentes
acerca de DevOps), septiembre de 2013

Qu es DevOps?
Antes de decidir si podemos utilizar DevOps, debemos definir qu es y qu no es.
DevOps no es un producto ni una tecnologa particular. Es una metodologa
que une las funciones generalmente separadas de desarrollo (Dev)
yproduccin y operaciones (Ops) de software en un solo proceso continuo
eintegrado.
DevOps ayuda a derribar las barreras entre el desarrollo y las operaciones.
Aprovecha los recursos humanos, los procesos y la tecnologa para estimular
la colaboracin e innovacin en todo el proceso de desarrollo y lanzamiento
de software. Desarrollo y Operaciones deben funcionar como si fueran un
nico equipo.
Sin embargo, la tarea de DevOps no tiene fin. Como una orquesta sinfnica
que aprende una nueva partitura o un equipo deportivo que alcanz una
eliminatoria, Desarrollo y Operaciones deben continuar esforzndose
ycolaborando en la bsqueda de la perfeccin.

Siguiente
seccin
Contenido
DevOps es lo correcto para usted?

Desarrollo y Operaciones
en el camino equivocado
Desarrollo se enfoca en una innovacin ms rpida y en probar cosas nuevas.
La obligacin de Operaciones es la estabilidad, el control y la
predictibilidad. Generalmente, no presentan reportes en los mismos
sectores de la organizacin. Es como si estuvieran en dos caminos
diferentes. No importa cun rpido vayan, nunca se van a cruzar.
Si se los deja solos, Desarrollo y Operaciones a menudo lidiarn con
la comunicacin y la colaboracin entre ellos, y quedarn estancados
en procesos manuales. El resultado es el siguiente: empleados que
no trabajan bien juntos, software que no funciona de forma confiable
yclientes que piensan en cambiarse a la competencia.

No existen las condiciones ni las excusas con esto.

Siguiente
seccin
Contenido
Desarrollo y Operaciones en el camino equivocado

Siete seales de un proceso disfuncional


Lograr que Desarrollo y Operaciones vayan en la misma direccin puede ser difcil. Pero primero, debe reconocer si los
equipos estn en diferentes caminos. Algunas de las seales de advertencia de un proceso disfuncional incluyen
losiguiente:
1. No descubre defectos de software hasta muy avanzado el ciclo de vida til, o peor, en produccin.
2. Utiliza la metodologa gil para acelerar el desarrollo, pero cualquier logro se evapora una vez que la aplicacin ingresa en produccin.
3. Los desarrolladores y evaluadores esperan constantemente poder acceder a los recursos que necesitan, lo que genera demoras.
4. No puede detectar problemas en las operaciones de desarrollo, prueba y produccin.
5. Nota que errores humanos simples ocasionan estragos durante el desarrollo y la implementacin.
6. El grupo de Desarrollo ve su trabajo como terminado una vez que la aplicacin est en produccin.
7. Cada vez que surge un problema, todos comienzan a acusarse entre s.

En las siguientes pginas, revisaremos algunas de las seales ms frecuentes de un proceso disfuncional, junto con algn
consejo pragmtico sobre cmo superar una disfuncin y llegar a la madurez total de DevOps.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

Seal de advertencia:

Los defectos del software no se


detectan hasta muy avanzado el ciclo
Es imposible crear un software complejo sin defectos.
El truco es encontrarlos tempranamente en el proceso.

Desarrollo

Prueba de
regresin

Prueba de
control de
calidad

Prueba de
integracin

Prueba de
aceptacin de
usuarios

Prueba de
desempeo

El costo de correccin de un defecto aumenta en cada paso del enfoque en cascada


clsico del ciclo de vida de desarrollo de software. Puede ser cien veces ms costoso
que un usuario final encuentre un defecto importante en la produccin a que usted lo
haga en el desarrollo.2
Desafortunadamente, con el mtodo en cascada, cuando un cronograma de
desarrollo comienza a fallar y hay un plazo difcil de cumplir, las organizaciones
comienzan aquedarse sin tiempo para realizar pruebas. Esta situacin es propicia
para un error, yla presin de cumplir con un plazo implica que la aplicacin se enva
repentinamente a produccin, sin importar si la prueba est completa.

El costo de
correccin se
incrementa

cien
veces

Produccin

por un defecto
detectado en
produccin

Siguiente
seccin
Contenido
Software Defect Reduction Top 10 List (Lista de las 10 primeras reducciones de defectos de software), Computer, enero, 2001.
http://www.cs.umd.edu/projects/SoftEng/ESEG/papers/82.78.pdf

2 

Siete seales de un proceso disfuncional

Cmo regresar al camino correcto

Realice el desarrollo yla


prueba en paralelo
Esto es posible mediante un enfoque tecnolgico nuevo denominado virtualizacin
de servicios que puede imitar el comportamiento real del entorno de produccin.
Los verdaderos recursos de infraestructura no estn disponibles para los
desarrolladores y los evaluadores, de modo que este enfoque recrea todo el
entorno en un entorno virtual. La infraestructura de back-end, las bases de datos,
los servidores y el resto del entorno estn disponibles como un servicio virtual,
de modo que una gran cantidad de personas puede probar un gran nmero de
componentes al mismo tiempo sin generar un impacto entre s o en el entorno de
produccin. De repente, el desarrollo y la prueba pueden realizarse en paralelo.

Incluso mejor, podemos desarrollar la automatizacin de esa prueba


para acelerar an ms el proceso.

Prueba de aceptacin de usuarios


Desarrollo
Prueba de control de calidad
Prueba de desempeo
Produccin
Prueba de regresin
Prueba de integracin

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

Esta capacidad de imitar el desempeo del entorno de


produccin se torna incluso ms real mediante la minera
de datos colaborativa, donde la informacin de desempeo
integrada en el entorno de produccin se obtiene para
descubrir circunstancias y patrones ocultos.
La minera de datos proporciona a los desarrolladores y a los
ingenieros de calidad modelos de servicios virtuales que se
comportan incluso ms como el mundo real, lo que aporta
todos los beneficios de la virtualizacin de servicios con
perfiles de desempeo que imitan condiciones y escenarios
empresariales como los que se observan en produccin.
Ahora, los desarrolladores y los ingenieros de desempeo
reducen las restricciones y lo hacen con un modelo cada vez
ms real que emula el comportamiento y las caractersticas
de desempeo de los componentes reales en las situaciones
del mundo real tambin.

Detecte los problemas tempranamente y podr


desarrollar un mejor software, de un modo ms
rpido y con menos esfuerzo.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

Seal de advertencia:

La velocidad obtenida con el mtodo


gil se evapora una vez que la
aplicacin ingresa en produccin
El desarrollo gil es un enfoque fenomenal para acelerar el desarrollo de software. Pero desarrollar el software es
solo un paso en la entrega de la aplicacin en las manos de los usuarios.
Debido a la falta de colaboracin entre Desarrollo y Operaciones, las aplicaciones a menudo no estn a la altura
cuando llegan a produccin. Dado que Operaciones generalmente no se involucra en el desarrollo y, por lo tanto, no
comprende completamente cmo implementar la aplicacin en produccin, hay mucho de prueba y error al pasar
aproduccin, lo que consume mucho tiempo.
Desarrollo solo no entrega la aplicacin en las manos del cliente. Sin importar cun rpido y gil sea el proceso de
desarrollo, es difcil acelerar el tiempo de posicionamiento en el mercado sino se hace nada para acelerar el
tiempo para la produccin.
Siete seales de un proceso disfuncional

Siguiente
seccin
Contenido

10

Cmo regresar al camino correcto

Involucre a Operaciones
tempranamente
El mtodo gil se aplica en un proceso iterativo que responde rpidamente
a las necesidades del mercado. La idea es implementar cambios
incrementales frecuentes, en lugar de guardar todos los cambios para una
gran implementacin. Operaciones es simplemente parte de la necesidad
del mercado.
Las tiendas giles no soaran nunca con desarrollar una aplicacin sin
prestar mucha atencin a las necesidades del mercado. Deben prestar una
atencin similar a las necesidades del entorno de produccin. El desarrollo
y la prueba tambin se deben realizar en un entorno lo ms real posible
(listo para produccin).
Otra posible fuente de problemas es la realizacin de los pasos de
forma serial. Incluso en las tiendas ms giles, a veces el trabajo se
realiza en etapas. Dichos procesos seriales pueden lentificar el desarrollo
y la implementacin. Los equipos deben trabajar en paralelo lo ms
posible y, en las ocasiones en las que no se pueda dividir el trabajo en
esfuerzos paralelos, busque maneras de adelantar pasos en el proceso.
Nohay motivo para que Operaciones deba esperar a que Desarrollo finalice
antes de comenzar a trabajar en la implementacin de la aplicacin.
Involucre a Operaciones tempranamente y planee la implementacin
durante el proceso de desarrollo.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

11

Seal de advertencia:

Los cronogramas estn limitados


mientras los equipos esperan los recursos
Cuando se crea una aplicacin compleja, ya sea un servicio front-end para una aplicacin mvil o algo para la capa
de integracin en el medio de la arquitectura general, probablemente haga uso de informacin obtenida de otros
sistemas y servicios en toda la empresa.
Los desarrolladores y evaluadores a menudo no pueden obtener acceso con facilidad a estos servicios. Puede ser
que los sistemas back-end, como el sistema de inventario, estn solo disponibles para un acceso de prueba una vez
a la semana durante dos horas cada vez. O quiz existen datos confidenciales en un sistema de produccin que no se
deben o pueden tocar. Todas estas son restricciones graves en el proceso de desarrollo y prueba de una aplicacin.
El CTO (director de Tecnologa) de una empresa remarc una vez:

No puedo hacer nada hasta tener todo, y nunca tengo todo.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

12

Cmo regresar al camino correcto

La virtualizacin
de servicios puede
ayudar a abordar esto
Debido a que la virtualizacin de servicios puede imitar el
comportamiento real del entorno de produccin, permite que una
gran cantidad de personas desarrolle y pruebe una gran cantidad de
componentes al mismo tiempo sin generar un impacto entre s o en
el entorno de produccin.
Esto elimina las restricciones que limitan el desarrollo y la prueba
de aplicaciones en muchas organizaciones. Ahora, el entorno de
prueba no solo es un reflejo mucho ms realista de las condiciones
reales, sino que tambin permite realizar pruebas de los diferentes
componentes de forma simultnea. Los pasos que anteriormente
se deban realizar de manera serial ahora se pueden realizar
enparalelo.
Todo el ciclo de desarrollo se desplaza hacia la izquierda a medida
que se eliminan las restricciones y los cuellos de botella.
Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

13

Seal de advertencia:

Los problemas son difciles de detectar


Debido a la falta de colaboracin en las operaciones de desarrollo, prueba y produccin
Los equipos de desarrollo, prueba y produccin a menudo trabajan en entornos muy diferentes y administran su
trabajo en diferentes sistemas. Esto hace que los defectos de software sean difciles de corregir.

Resultados de pruebas no predictivos

Sin oportunidad de realizar pruebas en condiciones realistas

Des.

Prueba

Prod.

Prueba

Des.

Sin intercambio de opiniones


Sin comunicacin entre
Sistemas
Procesos

Prod.

Personas
Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

14

Dado que los equipos de desarrollo y prueba a menudo no tienen un acceso


confiable al entorno de produccin, utilizan entornos de prueba que, si bien
ofrecen la funcionalidad del entorno de produccin, no tienen la escala completa
de produccin. Estos no son entornos de prueba realistas que duplican
las condiciones encontradas en produccin, de modo que las aplicaciones
generalmente fallan cuando llegan a produccin porque las pruebas anteriores
no son predictivas del comportamiento real de la aplicacin.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

15

Segundo, debido a que Operaciones, Desarrollo y Prueba


utilizan sistemas diferentes para administrar sus entornos,
elbucle de comunicacin que debe existir entre Operaciones
y Desarrollo falla.
Operaciones sabe que hay problemas con la aplicacin, pero
a menos que alguien se ocupe de comunicar el problema
a Desarrollo, este nunca se enterar. Desarrollo no puede
monitorear la aplicacin en produccin por s solo, por lo
tanto solo obtiene una perspectiva de segunda mano de
cualquier problema.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

16

Cmo regresar al camino correcto

Existen varias formas de


atacar esta disfuncin
Primero, debe reconocer que Desarrollo y Operaciones son un solo equipo.
Combnelos para asegurarse de que las personas trabajen como un equipo. Incluso
con este cambio organizativo, establezca un proceso para recopilar opiniones y luego
rastree y comparta el progreso de la resolucin de los problemas.
Puede dar el siguiente paso y utilizar tecnologa. Est bien ocuparse de las personas
y el proceso, pero si los sistemas trabajan con objetivos opuestos, ser mucho
msdifcil.
La tecnologa puede tener diversas formas. Primero, asegrese de que los
sistemas que Desarrollo, Prueba y Operaciones utilizan para administrar el flujo
de trabajo (ycualquier problema) sean interoperables, de modo que Desarrollo
tenga visibilidad en Prueba y Operaciones, etc. Esto se puede realizar integrando
los sistemas existentes, pero, por lo general, tiene ms sentido implementar algo
diseado especficamente para crear un flujo de trabajo integrado en todo el proceso
de desarrollo, prueba y lanzamiento.
Tambin tiene sentido poner en marcha entornos de prueba que dupliquen las
condiciones que se encuentran en el entorno de produccin, como la virtualizacin
de servicios, respaldada por los escenarios de desempeo detallados descubiertos
realizando minera de datos en los registros del entorno de produccin. Esto garantiza
que cualquier prueba sea ms predictiva del desempeo real de la aplicacin.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

17

Seal de advertencia:

Los errores humanos


ocasionan estragos
y prdida de
tiempo durante la
implementacin
El lanzamiento de software es mayormente un proceso manual en
muchas organizaciones. Le sorprendera saber que la mayora de
los problemas del software se deben a errores de configuracin?
Esdecir, no hay nada malo con la aplicacin en s, pero el
software falla porque no se lo configur correctamente. Cuando la
configuracin se realiza manualmente, es inevitable que haya un error
en algn momento del proceso.
Errar es humano, pero los verdaderos problemas surgen con los
equipos informticos. Los errores durante la implementacin son
especialmente dainos, debido a que el error tiene el potencial de
ser replicado en miles e, incluso, millones de servidores, equipos
de escritorio y dispositivos mviles. Realizar pruebas no ayudar,
porque la configuracin requerida durante una prueba es diferente
a la requerida en produccin.
Siete seales de un proceso disfuncional

Siguiente
seccin
Contenido

18

Cmo regresar al camino correcto


Muchas organizaciones intentaron resolver este problema mediante
la generacin de scripts. Si bien esto es ciertamente mejor que un
proceso por completo manual, implica muchos de los mismos tipos de
problemas que un proceso manual. Debido a todas las piezas mviles
ylas diferencias de configuracin entre los entornos, los scripts terminan
siendo tan complicados como los sistemas que intentan implementar.
Necesita ms que la generacin de scripts. Necesita sistemas. Necesita
herramientas que automaticen el lanzamiento de un nuevo cdigo
a produccin, que incluya documentacin internamente para que, en
especial con los equipos grandes, aplique la mentalidad de colaboracin,
integracin y comunicacin de DevOps. Esta automatizacin del
lanzamiento permite garantizar que una configuracin que trabaja
de manera correcta durante las pruebas sea convertida fielmente
en algo que trabaje en produccin. Elimina los errores humanos
mientras acelera al mismo tiempo todo el ciclo de vida de desarrollo
de software. Esto aumenta su preparacin para la entrega continua,
donde las aplicaciones se actualizan cada pocos minutos, en vez de das,
semanaso meses.
Uno de los beneficios ms grandes de la automatizacin del
lanzamiento es la restauracin, que permite regresar a un estado
correcto conocido si algo sale mal durante la implementacin. Con los
procesos manuales, e incluso la generacin de scripts, la restauracin
esuna pesadilla.
Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

19

Seal de advertencia:

El trabajo del equipo de


desarrollo finaliza una
vez que la aplicacin
est en produccin
Tradicionalmente, los proyectos de desarrollo de aplicaciones requeran esfuerzos inmensos
durante 18 a 24meses para planificacin, codificacin y prueba. Luego, la aplicacin se
entregaba a produccin, el equipo de desarrollo celebraba y todo el mundo pasaba al
siguiente proyecto de 24meses.

Si realmente desea adoptar DevOps, no existe un indicador mejor de un


proceso disfuncional que tener un equipo de desarrollo que pase la pelota
ysalga del campo.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

20

Cmo regresar al camino correcto


Parte de lo que hace que DevOps sea potente es que le permite entregar
las aplicaciones a produccin de forma casi continua.
En lugar de guardar una lista de opciones de caractersticas para un
gran lanzamiento, el nuevo modelo est diseado para lanzar nuevas
caractersticas continuamente. La llegada de aplicaciones de telfonos
inteligentes ha establecido expectativas de que las aplicaciones se
actualizarn frecuentemente. Si una aplicacin no se actualiza cada
algunos meses con una o dos nuevas caractersticas, las personas se
preguntan si la aplicacin recibe un mantenimiento adecuado.
Con un lanzamiento continuo, el equipo de desarrollo finaliza una
versin y, de inmediato, comienza con la siguiente, donde agrega
nuevas caractersticas segn los requisitos de los usuarios e, idealmente,
segn la gua de las opiniones del equipo de operaciones sobre cmo
esta nueva versin se est desempeando. Desarrollo y Operaciones
son ahora un grupo colaborativo verdaderamente integrado. El equipo
de operaciones conoce las expectativas del equipo de desarrollo, y el
equipo de desarrollo puede generar su propio cdigo en produccin
con herramientas basadas en cargas, con caractersticas como
larestauracin y el control de versiones.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

21

Seal de advertencia:

Cada vez que surge un


problema, comienzan
las acusaciones
Si las cosas salen mal, comienzan las acusaciones, donde todos
luchan por demostrar quin es el culpable?
En DevOps, se trabaja con colaboracin y cooperacin de equipo,
y las acusaciones son dainas para un entorno de trabajo
colaborativo.
Esto es una seal de una disfuncin importante. No podr
implementar DevOps correctamente a menos que elimine la
culturade las acusaciones.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

22

Cmo regresar al camino correcto


Las acusaciones son un comportamiento adquirido. Si bien esto es difcil
deerradicar, existen formas de reducir sus efectos.
Deje en claro que el xito o la falla es un esfuerzo de equipo. Se requiere ms
deuna persona para lograr el xito y para fallar.
Establezca objetivos en comn para todos los aspectos del proceso de desarrollo,
prueba y produccin. Los objetivos deben aclarar que el equipo de desarrollo no
puede considerarse un xito, a menos que el equipo de operaciones tambin logre
el xito, y viceversa. Si todos, Desarrollo y Operaciones, se sientan a la mesa
desde el comienzo del ciclo de vida de desarrollo de software, todos se ven
involucrados en el proceso y es ms fcil anticipar y solucionar problemas antes
de que se extiendan a produccin.
Considere los errores como una oportunidad para aprender. Puede emplear tiempo
analizando lo que sali mal, lo que se puede aprender, lo que se debe hacer de otra
manera y si esto es un sntoma de un problema ms grande que requiere solucin.
Muchos de los que se consideran errores son simplemente un sntoma de un
proceso defectuoso. Mejore el proceso y elimine los errores.
Realice automatizaciones para eliminar la mayor cantidad de errores
potenciales posibles. Esto mejora la calidad del proceso y permite a las personas
focalizarse en las actividades de alto valor que realmente hacen una diferencia en
la organizacin. Automatice todo y utilice anlisis para realizar rastreos y ajustes.
Imagine a Boeing construyendo aviones que no tengan una caja negra. Sin la
automatizacin y los anlisis, no habra forma de reconstruir lo que ocurre cuando
los aviones caen.

Siguiente
seccin
Contenido
Siete seales de un proceso disfuncional

23

Conclusin:

Dnde comenzar la
transformacin de DevOps
Reconocer que tiene un problema es el primer paso para realizar un cambio importante. Viendo el valor
que DevOps puede aportar a la organizacin, es posible que se d cuenta de que ha estado atascado por
los procesos disfuncionales sin haberse enterado.
Por lo tanto, cmo sale de esta disfuncin y vuelve al camino correcto hacia DevOps?
De nuestro trabajo de implementacin de DevOps en una amplia gama de organizaciones diferentes,
hemos notado que existen cinco cosas que todas las organizaciones finalmente terminarn haciendo:

Formar equipos de aplicaciones que integran cada disciplina: desarrollo, prueba y operaciones.
Mejorar la educacin, las comunicaciones y la capacitacin recproca.
Reevaluar y reconstruir el ciclo de entrega de servicios.
Evaluar nueva tecnologa para respaldar DevOps.
Elegir la aplicacin correcta o la lnea de negocios correcta para comenzar con DevOps.

Contenido
Conclusin

24

No importa realmente en qu orden haga estas cosas, lo


importante es comenzar.
Elija una aplicacin esencial que reciba la atencin de todos
como su punto de partida con DevOps. La tentacin es comenzar
con poco, pero en DevOps, obtendr la mayor recuperacin de
capital abordando una aplicacin altamente visible e importante
que ya est causando problemas. Esto ayudar a aliviar mucha de
la inercia interna sobre realizar cosas de un modo diferente, y
el xito con DevOps generar un gran impacto en la organizacin.
Sipuede hacerlo con algo grande, difcil e importante, puede
replicar dicho xito en cualquier lugar de la organizacin.

Contenido
Conclusin

25

Para obtener ms informacin sobre cmo capturar


los beneficios de la metodologa de DevOps para su
organizacin, visite el sitio web de CATechnologies.
http://www.ca.com/ar/why-ca/devops.html

2014 CA. Todos los derechos reservados.


CS200-86720

También podría gustarte