Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Devops
Devops
Algunas claves que da Nelson-Smith acerca de cmo gestionar las DevOps son
realmente dignas de tener en cuenta.
est automatizado y sea 100% seguro frente a cosas como libreras que existen en la
mquina del desarrollador pero no en la de produccin, etc.
3) El cdigo se debe escribir en modo bug free.
Microsoft lleva muchos aos premiando a programadores que son capaces de escribir
cdigo que sale del horno libre de defectos de software. Se sabe que el costo econmico
de arreglar un bug crece de forma exponencial a medida que el programa avanza en la
cadena de produccin desde el laboratorio de I+D hasta el usuario final. Lo mismo que el
programador debe ser System Administrator debe ser tambin su propio Tester
riguroso, principalmente porque haciendo DevOps no da tiempo de pasar cada pequeo
cambio por todo el ciclo de pruebas antes de pasarlo a produccin.
4) Hay que empezar por el mnimo producto viable
En su libro The design and evolution of C++, Bjarne Stroustrup afirma que un sistema
grande y complejo que no ha evolucionado a partir de otro ms pequeo no funciona y,
adems, es imposible arreglarlo para que funcione.
5) El diseo debe estar pensado para poder crecer de a poco
Como el producto empieza siendo muy pequeo, habr que ampliarlo muchas veces. Es
preciso que el crecimiento est muy bien planificado para evitar que el cdigo se convierta
rpidamente en un spaghetti. Si bien la codificacin inicial debe ser la mnima posible el
diseo debe ser muy ambicioso y, en particular, debe ser lo menos acoplado posible de
manera que se puedan introducir cambios en un subsistema sin afectar a otros. Esto
implica tomar una gran cantidad de decisiones de diseo estratgicas a priori eligiendo
entre simplicidad vs. potencia. Muchos arquitectos de software tienen tendencia a disear
aplicaciones que son como un arco romano donde cada pieza sujeta a las dems, el arco
romano fue un gran invento para la construccin, pero aplicado al software es nefasto
porque si se quita cualquiera de las piedras se cae todo el tinglado.
6) El sistema debe ser fcilmente auditable y depurable
Dado que habr cambios continuamente, es preciso poden hitos a cada momento de lo
que ha pasado o lo que est haciendo el programa en cada instante. Aqu el Software
Libre es la clave, ya que tener los fuentes es lo nico que garantiza que se puede depurar
el sistema de verdad.
7) El sistema debe tener resiliencia
En otras palabras debe poder funcionar aunque se degraden las condiciones del entorno.
El ltimo fallo de servicio importante en Facebook se produjo por un error en un parmetro
de configuracin que se propag. El software reaccionaba al error intentando recargar un
archivo y entr en un bucle que produjo una sobrecarga. Moraleja: las piezas pequeas
Est prohibida la difusin, transmisin, modificacin, copia, reproduccin y/o distribucin total o parcial del presente Documento,
en cualquier forma y por cualquier medio, sin la previa autorizacin escrita del autor, encontrndose protegidos por las Leyes de
Derecho de Autor, Marcas, Lealtad Comercial, Bases de Datos y otras normas Asimismo, queda prohibido cualquier uso de los
Documentos o parte de los mismos con fines comerciales. La violacin de los derechos antes sealados puede acarrear condenas
civiles y/o penales establecidas en las normas precedentemente citadas. Se exigirn responsabilidades a los infractores por todas
las vas disponibles en derecho.
Fecha y lugar de publicacin: Buenos Aires, Septiembre de 2012. Queda hecho el depsito que establece la Ley 11.723.