¿Realmente vale la pena la implementación continua?

No puedes permitirte no hacerlo. El éxito de su producto depende de poder iterar rápidamente, obtener comentarios de sus clientes e iterar nuevamente.

Cada proceso que lo ayude a alcanzar esa meta más rápido es esencial. La computación en la nube nos ha dado las herramientas para escalar a cualquier tamaño, pero comenzar de forma económica. Su competencia ahora tiene las mismas herramientas disponibles, sin importar cuánto dinero tengan en el Banco. Ahora todo depende de qué tan rápido te muevas.

La implementación continua es solo uno de los procesos y herramientas que pueden ayudarlo a ser mucho más rápido. Otros serían la automatización completa del sistema, la Infraestructura inmutable o incluso revisiones obligatorias de código para cualquier cambio.

En Codeship (Descargo de responsabilidad: soy uno de los fundadores y realizamos la entrega continua como un servicio alojado), hemos visto el éxito de la implementación continua para nuestro equipo, pero también con muchos de nuestros clientes.

Ahora estamos en el punto en que CD es solo otro servicio que puede usar, no necesita mantener esa infraestructura usted mismo. Puede encontrar una comparación de proveedores de CD aquí (escrita por uno de mis cofundadores): ¿Cuáles son las alternativas a Travis CI? ¿Hay algún servicio de CI alojado alternativo para proyectos de código abierto?

Comenzar literalmente toma unos minutos. Sin obstáculos, sin complicaciones, solo un mejor proceso sin ningún esfuerzo.

Tiendo a afirmar que cuando algo se convierte en una necesidad, te guste o no, la cuestión rentable se vuelve redundante 🙂

Esto va más allá de las aplicaciones de juegos y las aplicaciones de consumo.
La forma de distribuir software empresarial aquí será a través de la nube.
El legado concedido llegó para quedarse por un largo tiempo, pero nadie respaldará a una compañía en sus primeras etapas si el modelo no es SaaS.

Siendo ese el caso, el despliegue continuo es imprescindible.
Basta con mirar 4 ediciones al año por el líder del sector SalesForce …

Lo bueno es que las herramientas y los entornos de desarrollo también cambiaron para permitir que los equipos aborden el desafío: las empresas emergentes como GitHub, Jfrog, BlazeMeter y otras, aprovechan las capacidades de las metodologías ágiles y el código abierto para proporcionar una solución integral de principio a fin.

Gigantes como Google con la plataforma Google Cloud y SalesForce con la plataforma Salesforce1: Plataforma de desarrollo de aplicaciones de confianza: Salesforce.com respalda esta metodología de manera activa.

Creo que a largo plazo miraremos hacia atrás y nos preguntaremos cómo alguna vez nos desarrollamos de otra manera que no sea el desarrollo y la integración continuos.
Entonces, se CONVIERTE en la pena.

No hay una respuesta “única para todos” a esta pregunta, por lo que comenzaría sugiriendo que considere cuáles son sus mayores riesgos como producto o negocio y luego entendiendo las compensaciones en la forma en que implementa el software.

Si su riesgo es que no ha descubierto el producto que ofrecerá un negocio escalable, su tiempo de iteración es importante y la implementación continua (o implementación frecuente) probablemente sea ventajosa. Si la capacidad de ser altamente receptivo a las oportunidades comerciales o la respuesta a fallas del servicio (por ejemplo, vulnerabilidades de seguridad) es importante para su producto, la implementación continua es realmente valiosa.

Por supuesto, existe el costo que conlleva la implementación continua … se vuelve más difícil a medida que obtiene clientes. Cuando no tiene clientes, puede enviar el código a producción y hacer una prueba rápida de humo para ver si todo funciona. A medida que sus clientes y productos crecen, esto no escala y necesita tener pruebas y monitoreo / alertas más automatizadas para brindar un servicio confiable.

Mi experiencia en una implementación continua ha sido, en general, que es valiosa, casi con toda seguridad “vale la pena”, y la mayoría de las críticas atribuidas a la implementación continua es el resultado de la implementación, no el concepto. Por ejemplo, las personas que provienen de un entorno de implementación en cascada tradicional pueden comentar que la implementación continua da como resultado muchas más fallas en el servicio, lo que creo que es cierto, pero el tiempo de falla general es comparable o mejor que un enfoque tradicional (más fallas de 30 líneas de código causan un minuto de servicio degradado frente a 10.000 líneas de código que eliminan su clúster durante horas).

Si desea conocer detalles sobre mi experiencia, tengo algunas diapositivas más antiguas aquí: Implementación continua en Lean LA (y, si tiene insomnio, creo que hay un video de mí presentando que entra en más detalles).

Estamos en la edad de oro del software. La magia del software en su mejor momento ahora. Innumerables soluciones están aquí y allá para automatizar casi todo. Aún así, si algo (excepto el trabajo intelectual o creativo) tarda demasiado en completarse, probablemente lo esté haciendo mal.

La entrega continua es un estilo de vida cuando se trata del contexto de la gestión del ciclo de vida de la aplicación. No solo mejora la productividad del equipo hasta un 10-20% (con respecto al enfoque de implementación tradicional), sino que también hace que el cliente esté más feliz (ya que permite ciclos de lanzamiento más cortos, por lo que pueden proporcionar sus comentarios rápidamente).

Nosotros, como desarrolladores y seres humanos, tenemos una tendencia a complicar demasiado las cosas. La simplicidad debería ser la esencia. Los proyectos promedio como sitios web estáticos o incluso aplicaciones funcionales pequeñas o medianas no requieren necesariamente una canalización de CI completa. Es tan simple como transferir archivos a sus servidores o realizar un git pull.

La integración continua no es mala, pero debería implementarse esencialmente si no se requiere.

Existen muchas herramientas que pueden ayudarlo a automatizar sus procesos de implementación. Soy fundador de Deploy-Tantra, una de esas herramientas.

Básicamente, el repositorio se clona en nuestros servidores y luego la transferencia de archivos o la ejecución de los scripts de implementación se realiza de acuerdo con su configuración. A veces puede ejecutar una tubería completa de CI.

Prueba deploytantra.com una vez. Es fácil, se implementa en casi cualquier cosa y es asequible para los equipos.

La implementación continua vale la pena cuando vale la pena, y no vale la pena cuando no lo vale. Cuando llegas a un techo donde la nueva implementación no agrega ningún valor; o incluso un punto en el que cada nuevo incremento de implementación agrega cada vez menos valor al tiempo que agrega más y más costos; la implementación continua valdría cada vez menos.

Al mismo tiempo, hay muchas cosas que significan el mundo para muy pocas personas, mientras que no significan casi nada para la mayoría de las personas. Tomemos, por ejemplo, la adición de Facebook de sus docenas de nuevos tipos de género más allá de la dicotomía hombre / mujer.

Depende de su definición si significa que lo hace para que no haya cambios fijos en las actualizaciones (es decir, cambios de versión), pero de lo contrario todavía pasa por el ciclo de desarrollo estándar para averiguar qué requiere el usuario, cómo hacer y luego probar su solución en las máquinas * DESARROLLO / PRUEBA * hasta que cumpla con todos los requisitos de los usuarios, luego lo coloca en un CD y luego es para un gran número de instancias (> 4 más o menos) es la mejor opción si toma algún atajo en el CD anterior rellenar muy rápido

Un modelo mejor podría ser el modelo distribuido para la distribución de línea base http://aegis.sf.net