Hace quince años, un colega me dijo: "El software open-source no es gratuito; significa acceso al código fuente". En ese momento, ambos trabajábamos para una empresa de software open-source que vendía funcionalidades empresariales y soporte para un proyecto open-source de Apache. Este fue el primero de mis muchos proyectos en el mundo del open-source, y rápidamente aprendí que es un error utilizar software open-source sin soporte en producción.
Estoy seguro de que algunos de ustedes están listos para dejar de leer este blog ahora mismo porque utilizan software open-source en producción todo el tiempo (y muchos lo hacen). No dije que no puedan usarlo; dije que era un error. Escúchenme: soy un gran admirador del open source, y hay muchos aspectos positivos en su uso. También hay muchos aspectos negativos, que pueden causar problemas importantes si no están preparados. Este blog cubrirá los pros y los contras del software open-source para soportar infraestructura crítica, así que sigan leyendo.
Comencemos con cinco ventajas clave:
- Licencias y costes: El modelo open-source está diseñado para permitir a las empresas desplegar y utilizar el software libremente según sus necesidades. Si se desea, se puede pagar una cuota de suscripción por las funcionalidades empresariales y el soporte.
- Acceso al código fuente: Una de las cosas más frustrantes del software propietario es conseguir que se añada una mejora. Se está a merced del proveedor. Este no es el caso con el software open-source. Tener acceso al código fuente significa que sus desarrolladores pueden añadir o modificar funcionalidades para satisfacer las necesidades de su negocio.
- Escalabilidad y rendimiento: Muchos productos open-source populares están expuestos a algunas de las mayores cargas de trabajo y demandas de escalabilidad del planeta. De hecho, muchos productos open-source provienen de grandes empresas web donde el producto fue diseñado para manejar necesidades a gran escala.
- Comunidad: El software open-source tiende a ser soportado por una comunidad de desarrolladores que contribuyen al desarrollo y mejora del software. Esto significa que los errores se corrigen más rápidamente y se añaden nuevas funcionalidades más rápido que con el software propietario (existen advertencias, ya que las correcciones de errores/solicitudes de funcionalidades pueden ser rechazadas por la comunidad).
- Uso: El software open-source está diseñado para ejecutarse en sistemas operativos y Hardware modernos, lo que facilita su despliegue y uso (no va a ejecutar Windows 95 como sistema operativo).
Veamos la otra cara de la moneda: aquí hay cinco desventajas a considerar:
- Soporte: Esta es una de las mayores desventajas. Si planea operar en producción, debe contar con el soporte de un proveedor que sea propietario del proyecto open-source o que tenga la mayoría de los "committers" en el proyecto. He experimentado esto de primera mano como proveedor que soporta un producto open-source. Se me pidió que atendiera una llamada con lo que me dijeron que era una persona muy asustada. Cuando atendí la llamada, descubrí que esta persona tenía un sistema financiero caído y no podían identificar el problema. Su equipo de desarrollo y operaciones se dio cuenta de que el problema estaba relacionado con el software open-source que mi empresa soportaba. Como pueden imaginar, no teníamos ninguna relación con esta empresa ni contrato de soporte. Para resolver la situación rápidamente, elaboramos un contrato de emergencia y solucionamos el problema. No les diré cuánto tiempo duró el proceso (el contrato tardó más que la corrección del error), pero sí puedo decirles que fue mucho más largo de lo que ellos deseaban. Compraron un contrato de soporte completo después de que se resolvió el problema.
- Prácticas open-source: Dependiendo del producto open-source, conseguir que se corrija una funcionalidad o un error puede ser un desafío. Muchos productos requieren un proceso de votación que puede ser arduo y llevar un tiempo excesivo. Además, muchos productos open-source simplemente eliminan funcionalidades en lugar de desaprobarlas, lo que dificulta la actualización o la integración con versiones más recientes.
- Seguridad: Algunos productos open-source no tienen el rigor de seguridad del software propietario. Puede haber vulnerabilidades, y debe utilizar sus herramientas de escaneo internas antes de usar o desplegar cualquier producto open-source sin soporte.
- Interfaz de usuario: Típicamente, los equipos de aplicaciones open-source se centran menos en la interfaz de usuario. El término "suficientemente bueno" es a menudo su lema. Es probable que su aplicación no dependa de la interfaz de usuario proporcionada, sino más bien de las API y los puntos de integración.
- Complejidad: Algunos software open-source pueden ser muy complejos de desplegar y gestionar. El software está escrito por personas muy técnicas. Recuerde que para ellos es fácil, pero usted no los tendrá en su personal cuando llegue el momento de desplegar y gestionar (¿mencioné un contrato de soporte?).
Al sopesar estos pros y contras, espero que mi mensaje sea claro: El uso de software open-source para infraestructura crítica es algo bueno si se cuenta con un proveedor que lo soporte. Un buen proveedor/socio habilitará a su equipo con funcionalidades empresariales (no disponibles en la versión open-source), experiencia profunda y soporte 24x7x365 cuando las cosas salgan mal. Si elige el camino del auto-soporte, tenga en cuenta que su equipo de desarrollo dedicará más tiempo a soportar el software open-source y no a construir los productos para apoyar su negocio.
En Keyfactor, creemos en el software open-source y en una comunidad para soportarlo y nutrirlo. Visítenos en https://www.keyfactor.com/open-source/community/ para obtener más información sobre la Keyfactor Community y los productos que ofrecemos. Y si está interesado, puede unirse a la comunidad para ayudar a dar forma al futuro.