Siempre que podemos, en Made apostamos por plataformas de código abierto y estándares abiertos para el desarrollo y la entrega de proyectos.
Eso no significa que la tecnología propietaria no tenga su lugar. A veces una visión singular de producto se diluye con la colaboración —Apple es el ejemplo histórico más claro. El software orientado a mercados comerciales bien acotados, como la venta de entradas, puede estar mejor servido por tecnología propietaria. Pero cuando se trata de la fontanería de Internet, creemos que el código abierto ganó ese debate hace tiempo.
Con stacks de desarrollo de código abierto, el umbral para “darle una vuelta” es muy bajo
Desde el punto de vista presupuestario, la diferencia más obvia es el precio. A veces hay que rascar bastante para averiguar cuánto cuesta la alternativa propietaria, y a menudo el número es escalofriante comparado con el equivalente de código abierto, que cuesta $0. Pero quedarse solo con ese número es ingenuo. El código abierto no siempre es más sencillo de usar, y hay que tener en cuenta el coste total de propiedad, instalación y mantenimiento incluidos.
La verdadera ventaja del código abierto es que puedes formar parte de la conversación sobre su desarrollo. Puede que eso signifique meter una funcionalidad imprescindible en un backlog de producto. O puede que necesites estar en un canal de Slack a las 3 de la mañana intentando resolver una pérdida de paquetes en alguna red. Los departamentos de IT quizá prefieran la tranquilidad de un contrato de soporte empresarial, pero eso es básicamente un seguro. En nuestra experiencia, las comunidades de código abierto son más ágiles y más creativas. Las que funcionan de verdad quieren hacer Internet un lugar mejor para usuarios y desarrolladores.
Cuando trabajas con stacks de desarrollo de código abierto, el umbral para “darle una vuelta” es muy bajo. No hace falta facilitar datos de tarjeta; no hace falta evaluar el coste-beneficio; ni siquiera hace falta rellenar un formulario de consulta corporativa para empezar. GitHub es el punto de entrada natural. Eso anima a los desarrolladores a explorar sus opciones antes de resolver un problema. Cuando estás atado a un stack propietario, esperas que ese proveedor resuelva todos tus problemas. Si tu única herramienta es un martillo, todo empieza a parecerte un clavo. Te desconectas de los patrones de desarrollo y arquitectura que usa el resto de la comunidad. Es un síndrome de Estocolmo con marca registrada.
Las cuestiones de escala están en el corazón de los proyectos de código abierto que sostienen la infraestructura de Internet
Otra ventaja clave del código abierto —y más cercana a las preocupaciones reales de nuestros clientes— es que escala mejor. Y es así porque las cuestiones de escala están en el corazón de los proyectos que sostienen la infraestructura de Internet. IIS es un servidor web perfectamente válido, y .Net es un framework perfectamente válido, pero el mercado objetivo de Microsoft son los departamentos de IT corporativos. Sus valores por defecto están pensados para intranets corporativas: tráfico moderado y estable. Los sitios web de nuestros clientes son otra historia: tráfico habitual salpicado de picos extremos, sin tiempo de calentamiento. No vas a encontrar mucho conocimiento accesible sobre cómo escalar el stack de Microsoft en una búsqueda rápida en Google, porque no es un problema al que se enfrente la mayoría de esos desarrolladores. No es que el stack no pueda escalar; es que no está en su cultura.
Se puede correr sistemas operativos propietarios sobre Amazon Web Services, pero va a contracorriente, porque la lengua franca de las tecnologías en la nube son los stacks de código abierto. Adoptar los patrones de AWS es mucho más fácil si usas alguna variante del fiable stack LAMP.
Bajo su nueva dirección, Microsoft se ha vuelto cada vez más amigable con los desarrolladores y ha ido adoptando algunas prácticas del código abierto. Al mismo tiempo, el auge del software como servicio y las arquitecturas de microservicios ha llevado a la comunidad del software libre a ser menos zealosa en su defensa del licenciamiento GPL a ultranza. El panorama está cambiando. La “apertura” puede que tenga cada vez más que ver con la disposición a documentar y publicar APIs que con distribuir código fuente en sentido estricto. En cualquier caso, nosotros preferimos usar tecnología abierta.
Lecturas recomendadas
- CentOS: una iniciativa de software libre impulsada por la comunidad, centrada en ofrecer un ecosistema de código abierto robusto.
- Nginx: sirve tus sitios y aplicaciones con rendimiento, fiabilidad y escala.
- SilverStripe: el sistema de gestión de contenidos intuitivo y el framework flexible que adoran editores y desarrolladores por igual.
- Varnish: acelerador de aplicaciones web, también conocido como proxy inverso HTTP con caché.
- Symfony: la base estándar sobre la que se construyen las mejores aplicaciones PHP.
- AngularJS: framework de código abierto para aplicaciones web front-end.
- React: una biblioteca de JavaScript para construir interfaces de usuario.
El mes que viene: Agile, entrega y gobernanza robusta