Cómo Docker se partió por la mitad 

0
10

Docker no inventó los contenedores -el método de empaquetar el código de la computadora en unidades compactas que se pudieran transferir fácilmente de una laptop a un servidor y a otro- pero los llevó a un nivel masivo al crear un conjunto común de herramientas de código abierto e imágenes reutilizables que, de repente, permitieron a todos los desarrolladores crear su software y ejecutarlo en cualquier lugar. 

La facilidad con la que Docker permitió a los desarrolladores «contener en contenedores” su código y moverlo de un sistema a otro lo estableció rápidamente como una especie de estándar de la industria, cambiando el método dominante de implementar aplicaciones en máquinas virtuales (VM, por sus siglas en inglés), y estableciendo a Docker como una de las tecnologías empresariales más rápidas de su generación. 

Hoy en día, Docker todavía vive, pero es una parte de la empresa en la que podría haberse convertido, ya que nunca logró convertir esta innovación tecnológica en un modelo de negocio sostenible, lo que finalmente llevó a la venta de su negocio empresarial a Mirantis en noviembre del 2019. InfoWorld habló con más de una docena de empleados anteriores y actuales de Docker, colaboradores de código abierto, clientes y analistas de la industria para escuchar la historia de cómo Docker se rompió en pedazos. 

Nace Docker
Fundada en París como DotCloud en el 2008, por Solomon Hykes, la empresa que se convertiría en Docker se diseñó inicialmente como una plataforma como servicio (PaaS, por sus siglas e inglés) para que los desarrolladores pudieran crear y enviar sus aplicaciones fácilmente. 

Pronto se unió a Hykes, su amigo y compañero programador, Sebastien Pahl, antes de mudarse juntos a Silicon Valley para pasar por el prestigioso programa Y Combinator en el verano del 2010. Habiendo sido rechazados una vez, Hykes y Pahl volvieron a aplicar, siendo el padre de Pahl quien pagó sus boletos de avión a San Francisco un par de semanas antes de su entrevista. Lamentablemente, ambos fueron rechazados nuevamente, hasta que el exalumno de YC, James Lindenbaum, fundador de una empresa competidora llamada Heroku, intervino para interceder por ellos. 

En marzo del 2013, Docker tal como lo conocemos, fue probado por primera vez por Hykes en PyCon, donde explicó que los desarrolladores seguían solicitando acceso a la tecnología subyacente que impulsa la plataforma DotCloud. «Siempre pensamos que sería genial poder decir que sí, aquí está nuestra pieza de bajo nivel, ahora usted puede hacer contenedores de Linux con nosotros e ir a hacer lo que desee, ir a construir su plataforma, así que eso es lo que estamos haciendo”, afirmó durante esa charla. 

«Suena cursi, pero Solomon y yo estábamos hablando de prelanzamiento y podíamos ver todos los buques portacontenedores llegando al puerto de Oakland, y estábamos hablando sobre el valor del contenedor en el mundo del transporte marítimo”, comentó a InfoWorld Ben Golub, director ejecutivo de Docker entre el 2013 y el 2017. «El hecho de que fuera más fácil enviar un automóvil desde el otro lado del mundo que llevar una aplicación de un servidor a otro, parecía un problema listo para resolverse”. 

El proyecto de código abierto de Docker ganó fuerza rápidamente y atrajo a miles de usuarios, asociaciones de alto perfil con empresas como MicrosoftAWS, e IBM, y bolsas llenas de dinero de capital de riesgo, incluidas las primeras inversiones de Peter Fenton de Benchmark y Dan Scholnick de Trinity Ventures. La empresa se reenfocó y cambió su nombre a Docker y recaudó casi 300 millones de dólares de empresas como Benchmark, Coatue Management, Goldman Sachs y Greylock Partners. Sin embargo, como muchas empresas basadas en software de código abierto, tuvo problemas para encontrar un modelo de negocio rentable, y esos inversionistas nunca consiguieron su gran salida. 

«Solomon construyó una de las tecnologías más atractivas de los últimos 20 años y, en el negocio de empaquetar algo con una opinión y hacerlo extremadamente valioso para una gran cantidad de desarrolladores, Docker fue enorme”, afirmó James Governor, analista de RedMonk. «¿Docker tomó malas decisiones? Claramente sí, pero los capitalistas de riesgo se volvieron locos y la cantidad de dinero que les arrojaron significó que debieron sentir que podían hacer cualquier cosa, lo cual era problemático”. 

Si nos adelantamos hasta el 2021, la versión corta de esta historia es que la popular herramienta de orquestación de contenedores de código abierto, Kubernetes, superó a Docker (la empresa) al desplazar su principal centro de ganancias: una versión empresarial de su propia herramienta de orquestación de contenedores llamada Docker Swarm. Sin embargo, la verdadera historia es mucho más compleja. 

Vender código abierto es difícil
La combinación de enormes cantidades de fondos de riesgo, un panorama competitivo de rápido crecimiento y la sombra que se avecina de los gigantes de la industria de la nube que quieren una parte del pastel, creó un ambiente similar al de una olla a presión en el que la joven empresa tendría que operar. 

«Hay un dicho que afirma que ‘cuando los elefantes pelean, la hierba es pisoteada’, y nos quedó claro que no se trataba solo de Docker, sino de cómo los proveedores de nube competían entre sí. Todos querían llevarnos en diferentes direcciones. Fue un acto de malabarismo constante mantenernos fieles a nuestros valores y raíces, y construir un negocio”, afirmó Golub. 

El ex director ejecutivo señala que todos estos factores crearon «tensiones naturales” a medida que Docker crecía. «Queríamos construir una gran comunidad y monetizar el producto para desarrolladores, al mismo tiempo que creamos un excelente producto para operadores que permite a los clientes crear e implementar contenedores a escala”, señala Golub. «Esa era la visión y rápidamente nos dimos cuenta de que teníamos que aumentar en escala rápidamente y no teníamos mucho tiempo para equilibrar la comunidad y ser un negocio comercial… en una startup, tomas 100 decisiones al día, y esperas que 80 de ellas sean acertadas”. 

Docker comenzó a tomarse en serio una estrategia comercial para monetizar su posición de liderazgo en el mundo de los contenedores alrededor del 2014, cuando la compañía gastó parte del dinero de capital de riesgo en las adquisiciones de Koality en el 2014 y Tutum en el 2015, al mismo tiempo que lanzaba la primera iteración de su propio programa de soporte para empresas. 

Estas inversiones llevaron a productos como Docker Hub -que se puede considerar un poco como un GitHub para imágenes de Docker (que también existe ahora)- y, luego, Docker Enterprise. Pero ninguno de estos productos despegó realmente con los clientes empresariales, que en general estaban felices de trabajar con socios más establecidos, o de crear en lugar de comprar soluciones, mientras Docker trabajaba para producir un conjunto de productos que los clientes realmente desearan. 

«Nunca entregamos un gran producto comercial”, le comentó Hykes a InfoWorld mientras estaba de vacaciones en Francia este verano. «La razón de eso es que no nos enfocamos. Intentamos hacer un poco de todo. Es bastante difícil mantener el crecimiento de su comunidad de desarrolladores y construir un gran producto comercial, y mucho menos tres o cuatro, y es imposible hacer ambas cosas, pero eso es lo que intentamos hacer y gastamos una enorme cantidad de dinero en hacerlo”. 

«No hubo ninguna entrega técnica fuera del código abierto”, afirmó Nick Stinemates, exvicepresidente de Desarrollo Comercial y Alianzas Técnicas, y uno de los primeros empleados de Docker. «Hubo una incapacidad fundamental para entregar software comercial”. 

Con el beneficio de la retrospectiva, Hykes cree que Docker debería haber pasado menos tiempo entregando productos y más tiempo escuchando a los clientes. «Me habría abstenido de apresurarme a escalar un producto comercial, e invertido más en recopilar información de nuestra comunidad y en formar un equipo dedicado a comprender sus necesidades comerciales”, afirmó Hykes. «Tuvimos una ventana en el 2014, que fue un punto de inflexión y sentimos que no podíamos esperar, pero creo que nos dimos el lujo de esperar más de lo que pensamos”. 

Otros piensan que Docker regaló demasiado, de forma gratuita, demasiado pronto. «Ofrecieron algo gratis que fue un éxito, un golazo”, comentó Kelsey Hightower, de Google, a la revista Increment a principios de este año. «Resolvieron todo el problema y llegaron al límite de ese problema: crear una imagen, construirla, almacenarla en algún lugar y luego ejecutarla. ¿Que más hay que hacer?” 

Hykes no está de acuerdo con esta evaluación. «Creo que eso está mal y, en general, el producto de código abierto central creó un crecimiento masivo, que generó la oportunidad de monetizar en primer lugar”, afirmó. «Muchas empresas monetizan Docker con éxito, pero Docker no. Hubo mucho para monetizar, solo que Docker falló en la ejecución de dicha monetización”. 

Por ejemplo, tanto Red Hat como Pivotal (ahora parte de VMware) fueron los primeros socios de Docker, integrando contenedores Docker en sus productos comerciales PaaS (OpenShift y Cloud Foundry, respectivamente) y contribuyendo al proyecto de código abierto. 

«Si estoy siendo generoso, las contribuciones tempranas de Red Hat prolongaron un poco la permanencia de Solomon”, afirmó Stinemates. «Solomon quemó muchos puentes y existen registros en Hacker News de él iniciando peleas con sus detractores. Los socios empresariales no podrían tolerar esto de Solomon”. 

Hoy, Hykes afirma que fue culpable de confundir «comunidad con ecosistema” Red Hat, específicamente, «no formaba parte de la comunidad, nunca apoyaron el éxito del Docker”, señaló. «El error de nuestra parte fue querer desesperadamente que fueran parte de la comunidad. En retrospectiva, nunca nos hubiéramos beneficiado de esa asociación”. 

Como resultado, los primeros clientes como Amadeus, la empresa de tecnología de viajes, recurrieron a Red Hat en el 2015 para llenar lo que vieron como un vacío de nivel empresarial dejado por Docker. «Pasamos directamente de un modo pionero, en el que aprovechábamos las versiones de código abierto [de Docker], a una asociación sólida con Red Hat, donde cubrían el soporte de tecnología de contenedores para nosotros”, comentó Edouard Hubin, director de soluciones de plataforma en la nube de Amadeus, a InfoWorld, por correo electrónico. «La transición hacia contenedores fue el primer paso del cambio tecnológico que se alejaba de la virtualización. El verdadero cambio de juego para la empresa fue la solución de orquestación de contenedores. Claramente, Docker perdió esta batalla ante Kubernetes, y esa fue una situación muy difícil para ellos”. 

La decisión de Kubernetes
Docker llegaría a lamentar un conjunto de decisiones anteriores en torno a su negativa a adoptar realmente a Kubernetes como la herramienta de orquestación de contenedores emergente preferida -que permitía a los clientes ejecutar flotas de contenedores a escala y al unísono- en lugar de seguir adelante con su propio orquestador, Docker Swarm, con un nivel de concentración miope (RIP). 

«El mayor error fue ignorar a Kubernetes. Estábamos en esa burbuja de pensamiento colectiva donde, internamente, pensamos que Kubernetes era demasiado complicado y Swarm sería mucho más exitoso”, afirmó Jérôme Petazzoni, uno de los primeros y más antiguos empleados de Docker. «Fue nuestro fracaso colectivo no darnos cuenta de eso”. 

La verdad es que, en el 2014, Docker tuvo la oportunidad de trabajar estrechamente con el equipo Kubernetes en Google, y potencialmente poseer todo el ecosistema de contenedores en el proceso. «Podríamos haber hecho que Kubernetes fuera un proyecto de primera clase de Docker, bajo la bandera de Docker, en GitHub. En retrospectiva, fue un gran error dado que Swarm llegó tan tarde al mercado”, afirmó Stinemates. 

Esas primeras discusiones en las oficinas de Google en San Francisco fueron técnicas y tensas, según varias personas que estaban en la sala, ya que ambas partes tenían opiniones sólidas sobre cómo se debe realizar la orquestación de contenedores. 

Craig McLuckie, cofundador de Kubernetes y ahora vicepresidente de VMware, afirma que se ofreció a donar Kubernetes a Docker, pero las dos partes no pudieron llegar a un acuerdo. «Había un elemento mutuo de arrogancia allí. Ellos pensaban que no entendíamos la experiencia de los desarrolladores, pero el sentimiento recíproco era que estos jóvenes advenedizos realmente no entienden la administración de sistemas distribuidos”, comentó McLuckie a InfoWorld. Otros afirman que las discusiones fueron más informales y se centraron en el desarrollo conjunto de la tecnología de contenedores. De cualquier manera, los equipos nunca se vieron cara a cara y terminaron yendo por caminos separados, con Google lanzando Kubernetes en el verano del 2014. 

Hykes discute que Google le ofreció a Docker la propiedad del proyecto Kubernetes, diciendo que tenían «la oportunidad de ser parte del ecosistema como todos los demás”. 

Hykes reconoce que había tensiones entre los equipos de Docker y Google en ese momento. «Hubo un momento en el que prevalecieron los egos. Mucha gente inteligente y experimentada en Google fue sorprendida por los forasteros en Docker”, afirmó Hykes. «No trabajábamos en Google, no estudiamos en Stanford, no teníamos un doctorado en ciencias de la computación. Algunas personas sintieron que les correspondía encargarse, así que hubo una batalla de egos. El resultado de eso no fue una buena colaboración entre los equipos de Docker y Kubernetes, cuando realmente tenía sentido colaborar”. 

«Ese ego fundamental, por un lado, y la tensión por el otro con [los cofundadores de Kubernetes] Joe Beda, Brendan Burns y Craig McLuckie -quienes tenían opiniones sólidas sobre la necesidad de una API a nivel de servicio y Docker técnicamente tenía su propia opinión sobre una API única desde el punto de vista de la simplicidad- significaba que no podíamos estar de acuerdo”, afirmó Stinemates. 

Hykes admite que Docker estaba bajo presión en ese momento para encontrar una solución de orquestación para los clientes que querían incrementar el uso de contenedores, pero que no era obvio en ese momento que Kubernetes sería esa solución. «Kubernetes llegó tan temprano y fue uno de docenas, y no imaginamos mágicamente que dominaría”, afirmó Hykes. «Ni siquiera estaba claro qué tan comprometido estaba Google. Les pregunté a nuestros ingenieros y arquitectos qué hacer, y me recomendaron que continuáramos con Swarm”, añadió. 

Incluso McLuckie admite que «no sabía que Kubernetes se convertiría en Kubernetes. Es fácil mirar hacia atrás en la historia y llamarla una mala elección”. 

Independientemente de cómo sucediera, Kubernetes terminó ganando la batalla de la orquestación de contenedores y el resto se convierte en un gran momento de «puertas corredizas” para la industria del software. 

«Kubernetes llegó y se robó toda la atención”, afirmó Jay Lyman, analista de 451 Research. «Representó el uso de contenedores por parte de Google y, por lo tanto, en el desarrollo y el código abierto que, en muchos sentidos, eclipsó la atención en torno a Docker. [Docker] vio a Docker Swarm como su forma de monetizar su software. Si pudieran regresar, probablemente se habrían integrado más de cerca con Kubernetes desde el principio. Estaban demasiado concentrados en hacerlo solos”. 

«Una de las cosas de las que más me arrepiento es que no encontramos la manera de negociar esto”, afirmó McLuckie. «Docker ofreció algo notablemente experiencial y lo que ofreció Kubernetes, desde una perspectiva experiencial, fue menos notable”. O, como señaló el cofundador de Docker, Sebastien Pahl: «La simplicidad no ha ganado. Me encanta Kubernetes, pero no es para humanos normales”. 

Tensiones en la cima
En el 2015, Docker finalmente alcanzó la cima de su ciclo de notoriedad a raíz de su megaronda de financiación de Serie D por 95 millones de dólares con una valoración «unicornio” de mil millones de dólares. 

«Eso generó expectativas muy altas y expuso algunas de las dificultades fundamentales que tendríamos como empresa”, afirmó Stinemates. «Creo que Ben [Golub, el CEO] tenía una idea diferente para la empresa que Solomon y no debería ser un secreto que los dos no estaban de acuerdo. Hubo mucha participación del directorio para tratar de mantener contento al fundador, y darle al CEO suficiente margen para que la empresa tenga éxito. Si fuera por Solomon, nos habríamos quedado en la ruta orientada a la comunidad para crear un efecto viral. Si hubiera sido por Ben, antes nos hubiéramos movido con más fuerza hacia el lado comercial. Esa tensión hizo que hiciéramos ambas cosas a medias”. 

Efectivamente, este enfoque generó dos Dockers: Docker Community Edition, la muy popular herramienta de línea de comandos y proyecto de código abierto dirigido a desarrolladores; y Docker Enterprise Edition, un conjunto de herramientas comerciales dirigidas a clientes empresariales que deseaban adoptar contenedores a gran escala. Desafortunadamente, la compañía fue demasiado lenta para oficializar esa división y dividir los recursos en consecuencia. 

Golub admite que «deberían haber dividido el negocio” antes de lo que lo hicieron eventualmente, mientras que Hykes está de acuerdo en que Docker «nunca encontró una manera de conectar esas dos mitades de la empresa”. 

Para el 2018, las grietas comenzaban a mostrarse, ya que la compañía luchaba por tomar un rumbo viable entre una comunidad de código abierto cada vez más descontenta, socios poderosos y clientes empresariales exigentes que intentan ejecutar contenedores en producción. 

Hykes dejó su puesto diario en la empresa poco después, en marzo del 2018, y señaló en una entrada de blog que, «como fundador, por supuesto, tengo emociones encontradas. Cuando uno crea una empresa, su trabajo es asegurarse de que algún día pueda tener éxito sin usted. Luego, con el tiempo, llega ese día y la celebración puede ser agridulce. Nunca es fácil para un fundador separarse del trabajo de su vida”. 

Hoy, mirando hacia atrás, Hykes es más conciso. «Me di cuenta de que no pertenecía a la empresa. No fue constructivo para mí quedarme, así que me fui… En su mayoría era un fundador infeliz que debería haberse quedado como CEO o haberse ido”. 

Docker se rompe en dos
Ante los crecientes problemas de financiamiento, Docker pasó por nuevos CEO; Golub cedió su lugar al exejecutivo de SAP, Steve Singh, en mayo del 2017, y luego Singh se hizo a un lado para cederle el puesto al ex CEO de Hortonworks, Rob Bearden, en junio del 2019. 

Bearden tuvo que enfrentarse finalmente a la situación. Poco después de tomar el mando, en noviembre del 2019, Docker vendió la parte empresarial de su negocio a Mirantis, y Docker Enterprise fue absorbida por Mirantis Kubernetes Engine. 

«Después de realizar un análisis exhaustivo con el equipo de administración y el directorio, determinamos que Docker tenía dos negocios muy distintos y diferentes: uno era un negocio de desarrollo activo, y el otro era un negocio empresarial en crecimiento. También descubrimos que el producto y los modelos financieros eran muy diferentes”, afirmó Bearden en un comunicado de prensa en ese momento. 

¿Dónde está Docker hoy?
Los restos de Docker, anclados por el tiempo de ejecución del contenedor Docker Engine original, el repositorio de imágenes de Docker Hub y la aplicación Docker Desktop, aún viven bajo el liderazgo del veterano de siete años de la compañía, Scott Johnston, gracias a una inyección de efectivo de 35 millones de dólares de los inversionistas originales. Insight Venture Partners y Benchmark Capital. 

Johnston está intentando llevar a la empresa de vuelta a sus raíces, centrándose «como un rayo láser en las necesidades de los desarrolladores”, comentó a InfoWorld. «Creemos que la compañía está en una posición más sólida que nunca debido a tres cosas: enfoque en el cliente, comercialización alineada y un modelo de negocio amigable con el ecosistema”. 

La semana pasada, Docker anunció cambios en los términos de licencia del software Docker. Pronto, los usuarios profesionales de Docker Desktop, que trabajen para grandes empresas, tendrán que registrarse para obtener una suscripción paga para continuar usando la aplicación. 

Johnston está decidido a no repetir los errores del pasado, centrándose en ofrecerle valor a la audiencia principal de desarrolladores de software de la empresa. «Nuestra ambición es mayor, ya que el ecosistema de desarrolladores a los que uno se puede dirigir son todos los desarrolladores del mundo, no solo los que están alineados con nuestro tiempo de ejecución”, señaló. 

Johnston ve oportunidades de crecimiento para «Docker 2.0” en la creación de nuevas herramientas destinadas a desarrolladores y contenido confiable para imágenes verificadas y seguras, también como un impulso continuo detrás de los modelos informáticos emergentes como el ‘sin servidor’, el aprendizaje automático y las cargas de trabajo de IoT, que están reforzados por la tecnología de contenedores. 

Mientras tanto, Docker sigue siendo el tiempo de ejecución para contenedores estándar de la industria; Docker Desktop se encuentra instalado en 3,3 millones de máquinas hoy. Además, el 49% de los que respondieron a la encuesta para desarrolladores de Stack Overflow del 2021 afirmaron que usan la herramienta con regularidad. 

No obstante, sigue existiendo un profundo sentimiento de decepción por lo que pudo haber sido. «Si quisiera ser frívolo, preguntaría si Docker existe hoy”, afirmó Stinemates. «Desde la perspectiva de una carrera, es triste. Todavía estoy buscando una empresa tan emocionante y dinámica y que cree una chispa como lo hizo Docker”. 

«Es justo decir que Docker no se dio cuenta de su potencial como negocio… hasta ahora. Estoy muy emocionado de que Docker tenga otra oportunidad de construir un negocio después de tantos años. Eso es testimonio del proyecto subyacente y la marca”, afirmó Hykes. 

Scott Carey InfoWorld.com 

Artículo anteriorEricsson facilita el despliegue del 5G en banda media
Artículo siguienteGobierno de Biden reconoce la gravedad de la escases de chip en el mercado