¿Qué es la implementación de software?
- 3 minutos
La implementación de software incluye todas las actividades que hacen que un sistema de software esté disponible para su uso. El proceso de implementación general consta de varias actividades relacionadas entre sí, con posibles transiciones entre ellas. Cada sistema de software es único, por lo que la implementación es un proceso general que debe personalizarse para requisitos o características específicos.
Algunas personas usan los términos "implementación" e "instalación" indistintamente, pero la instalación del software es solo una parte del proceso de implementación. La implementación conlleva más aspectos. Entre las actividades de implementación se incluyen las siguientes:
- "Bastidor y apilamiento" de un servidor.
- Implementar un fragmento de software actualizado en ese servidor.
- Uso de elementos como scripts e infraestructura como código.
- Incluso caminando por una oficina con una unidad USB, instalando manualmente software en equipos.
La implementación manual del software es de trabajo intensivo y no se escala bien. La automatización hace que sea más rentable y más fácil garantizar la coherencia cuando se implementa software nuevo o cuando se actualiza el software de una organización.
Esta ruta de aprendizaje se centra en cómo implementar mejor el software para la confiabilidad. Este módulo aborda no solo la implementación de software, sino también la implementación de la infraestructura en la nube. Cuando hablemos de implementar un servicio o una solución, podemos hacer referencia a la implementación de software, de infraestructura en la nube, de configuración y de todos los elementos necesarios para que un sistema de software esté disponible para su uso de forma confiable.
Escenario: la implementación épica
La palabra epopeya significa "grandioso, monumental o vasto". Pero en el contexto de esta discusión, no es algo bueno. Jez Humble y David Farley utilizan el término en su libro Entrega continua: Versiones de software confiables a través de la automatización de construcción, prueba y despliegue, ya que representa una empresa masiva (y masivamente disruptiva). Este es un ejemplo de cómo sucede normalmente:
- Una organización desarrolla una aplicación relacionada con las ventas. Esta aplicación se actualiza exactamente dos veces al año.
- Durante estas actualizaciones, se implementan todas las nuevas características, correcciones de errores (grandes y pequeñas) y actualizaciones de dependencia.
- La primera implementación del año está programada para que se produzca durante el fin de semana del Día del Trabajo, mientras que la segunda tiene lugar el fin de semana después del Día de Acción de Gracias.
- Cada actualización requiere la colaboración de todos los empleados. El equipo de aplicación, el equipo de soporte técnico, el equipo de infraestructura y la administración están implicados en la implementación.
- Los servicios se desconectan temporalmente mientras la implementación está en curso.
- El tiempo ha demostrado que el proceso de implementación siempre conlleva problemas, ingeniería a petición, solución de problemas y cambios en la administración de la configuración.
- Rara vez sale bien y, cuando se completa, todo parece agrupado de una manera que no es reproducible.
Esta no es una buena situación de despliegue. El método de implementación de epopeya es una tarea manual intensa que presenta diversos problemas:
- Es complejo.
- Es estresante.
- Es arriesgado.
- Es lento.
- No es reproducible debido a todos los pasos complejos.
- A menudo, se necesitan varios expertos independientes para completar la implementación.
Dado que este proceso es largo y arduo, debe programarse en momentos que causen la menor interrupción de la productividad del usuario, lo que significa que probablemente serán horarios inconvenientes para el equipo de implementación, como los fines de semana y los días festivos.
Es posible que los miembros del equipo se sientan presionados para completar la operación colosal dentro del período de tiempo, lo que puede llevar a cometer errores de configuración. Además, los tiempos largos entre implementaciones pueden hacer que se olvide exactamente de cómo funcionan las cosas.
El dilema de la implementación
La implementación de software es una tarea compleja y, cuando se "ahorran" varios cambios importantes, correcciones y adiciones de características para implementar todo en un solo golpe, aumenta la complejidad y, por tanto, aumenta la probabilidad de que algo pase mal. Además, cuando se produce un error, esta complejidad dificulta la tarea de detectar la causa del problema.
La complejidad también puede crear problemas para los usuarios finales, ya que deben afrontar el aprendizaje de muchas nuevas características y cambios al mismo tiempo, sin mencionar los errores introducidos por la complejidad de una implementación de gran envergadura.
Debería haber una manera mejor, y hay. La buena noticia es que la estrategia tradicional de despliegue épico no es la única opción. Aprenderá una mejor manera de seguir este proceso en la unidad siguiente.