Prólogo
¿Cómo defines el rendimiento?
La mayoría de los desarrolladores, cuando se les pregunta por el rendimiento de su aplicación, asumirán que se pide alguna medida de velocidad. Algo así como transacciones por segundo, o gigabytes de datos procesados... conseguir hacer mucho trabajo en el menor tiempo posible. Si eres arquitecto de aplicaciones, puede que midas el rendimiento en métricas más amplias. Puede que te preocupe más la utilización de los recursos que la ejecución en línea recta. Puede que prestes más atención al rendimiento de las conexiones entre servicios que al de los propios servicios. Si tomas decisiones empresariales para tu empresa, es probable que el rendimiento de la aplicación no se mida en tiempo tan a menudo como se mide en dólares. Puede que discutas con desarrolladores y arquitectos sobre la asignación de recursos, sopesando el coste de devops frente al tiempo que se tarda en hacer el trabajo de la empresa.
E independientemente del papel con el que te identifiques, todas estas métricas son importantes.
Empecé desarrollando aplicaciones Java en 1996. Acababa de pasar de mi primer trabajo escribiendo CGIs en AppleScript para la escuela de negocios de la Universidad de Minnesota al mantenimiento de aplicaciones Perl del lado del servidor para el equipo de desarrollo web. Java era muy nuevo entonces -la primera versión estable, la 1.0.2, había salido a principios de ese año- y se me encomendó la tarea de encontrar algo útil que construir.
En aquellos tiempos, ...