Discutimos los desafíos que enfrentan los desarrolladores de código abierto y cómo los desafíos que enfrentan afectan el ecosistema de TI en general.
Fotos - James Sutton - UnsplashCódigo abierto: la base de Internet
Según
la Fundación Linux, el 72% de las compañías de Fortune 2000 utilizan herramientas de código abierto para resolver sus problemas. Al mismo tiempo, el 55% usa código abierto en productos comerciales. El software de código abierto se distribuye en centros de datos; por ejemplo, Facebook, Rackspace, NASA y
AT&T trabajan con él. Varios proveedores de la nube y empresas de TI incluso fundaron el
Open Compute Project . Está desarrollando una arquitectura de rack de servidor estándar abierto (Open Rack) y requisitos de servidor modular para centros de datos en la nube (OpenCloud Server).
Una parte importante de los productos populares de código abierto son proyectos a gran escala como Kubernetes, TensorFlow o Ansible. Son desarrollados y financiados por grandes empresas de TI. Pero también hay productos pequeños (por ejemplo,
cURL ) que los entusiastas admiten. A menudo lo hacen de forma voluntaria y en su tiempo libre. Y aquí yacen las trampas.
¿Por qué se critica este modelo?
El concepto de código abierto implica que todos pueden modificar el código fuente y corregir errores en ellos. Los esfuerzos colectivos aumentan la calidad de la base del código y reducen la cantidad de errores. Pero desafortunadamente, este modelo no siempre funciona.
Una parte importante de los cambios en un proyecto de código abierto es realizada por un equipo pequeño o un responsable de mantenimiento. Por ejemplo, de 25 mil
commits en el repositorio de cURL , 14 mil pertenecen al autor: Daniel Stenberg. Durante mucho tiempo, el número de desarrolladores de la biblioteca OpenSSL
no superó las cuatro personas. La mayoría de los compromisos fueron
hechos por uno de ellos, Steve Henson. Por lo tanto, en tales condiciones, es fácil pasar por alto y "omitir" el error.
Entonces, hace cinco años en OpenSSL descubrió una de las mayores vulnerabilidades en el software:
Heartbleed . Permite la lectura no autorizada de memoria en un servidor o cliente. Luego, el número de sitios web vulnerables se
estimó en medio millón. El parche se lanzó de inmediato, pero ya en 2017, 200 mil sitios afectados por Heartbleed estaban funcionando.
Fotos - James Sutton - UnsplashMuchos proyectos de código abierto están experimentando problemas de financiación. El mismo OpenSSL
existe debido a las donaciones de la comunidad y los ingresos de los contratos corporativos: el monto no supera el millón de dólares al año. El ex CEO del proyecto
dice que una de las razones de la aparición de Heartbleed fue precisamente la falta de fondos. Puede ser difícil para los ingenieros recaudar fondos incluso para consultas. Según Daniel Stenberg, las compañías internacionales a menudo recurren a él con solicitudes para ayudar a resolver el problema en cURL. Pero cada vez que pide pagar por su trabajo, por alguna razón, la conversación termina.
“A veces los desarrolladores participan en proyectos de código abierto en su tiempo libre como pasatiempo. Por lo tanto, no es sorprendente que algunas aplicaciones se abandonen. Si nadie quiere mantener el proyecto a flote, la comunidad formada a su alrededor se desintegra.
En el peor de los casos, los usuarios del sistema pueden convertirse en el objetivo de un ataque de piratas informáticos. Un ejemplo es el ataque del año pasado en el módulo npm event-stream ".
El autor del proyecto, Dominic Tarr, cambió a otras tareas y dejó su creación desatendida. Algún usuario sugirió hacerse cargo del soporte del módulo.
Tarr estuvo de acuerdo y le otorgó acceso al repositorio en GitHub y npm. Con el tiempo, el nuevo responsable
introdujo un script en la utilidad que robó los datos de la billetera bitcoin y los cargó en su servidor. La vulnerabilidad afectó a un gran número de usuarios, dado que el flujo de eventos tiene 1,9 millones de descargas por semana.
Cómo arreglar la situación.
Según
la Oficina Nacional de Investigación Económica de EE. UU., El principal factor de motivación para el desarrollo de código abierto son los beneficios económicos. Por lo tanto, los desarrolladores de código abierto están buscando formas de monetizarlo. Por ejemplo, transfieren parte de los módulos a licencias restrictivas o incluso comerciales. MongoDB, Redis y otras compañías han tomado este camino.
Ya hemos hablado sobre la situación con más detalle. Los desarrolladores creen que incluso la comercialización parcial del código abrirá una fuente adicional de ingresos y atraerá nuevas personas al proyecto. Pero tal modelo es a menudo hostil por la comunidad de TI.
Se cree que el enfoque contradice el concepto de software de código abierto. Sin embargo, no es adecuado para todos. En 2017, el servidor web Caddy
anunció una licencia comercial para HTTP / 2. Pero por alguna razón, hace un mes, el proyecto
volvió a ser de código abierto.
Foto - Artem Beliaikin - UnsplashLa infraestructura global de Internet depende de proyectos de código abierto. Por lo tanto, es importante prestar atención a su apoyo. Y el trabajo en esta dirección está en marcha. La Fundación Linux regularmente tiene nuevos residentes. Las grandes empresas están
invirtiendo cada vez más en código abierto. Quizás tales iniciativas ayudarán a evitar repetir una historia similar a Heartbleed.
Lectura adicional en el blog 1cloud.ru:
¿La nube salvará los teléfonos inteligentes con un presupuesto ultrabajo?
Por qué Apple cambió los requisitos para los desarrolladores de aplicaciones
1cloud Cloud Architecture Evolution
Novedades del kernel 5.3 de Linux: controladores de gráficos, virtualización y otras actualizaciones
¿Por qué los desarrolladores de navegador convencionales se negaron nuevamente a mostrar el subdominio?