Las perspectivas PaaS Linux sobre Azure

Si hace unos años me hubieran dicho que estaría comentando sobre lo que menciona el titulo, me hubiera puesto a reír, pero el contexto tecnológico cambia de manera constante y este es el escenario en que los desarrolladores debemos tener claras nuestras opciones a la hora de considerar Linux como plataforma.

De mas esta comentar sobre las oportunidades que nos ofrece .Net Core para poder llegar a escenarios en los que tradicionalmente Windows estaba vedado, pero también debemos tener en cuenta las perspectivas de poder integrarnos y trabajar con otros stacks, así que si… Linux nos va a rodear bastante a los que trabajamos con .Net.

Ahora bien,  trabajar con Máquinas Virtuales Linux siempre ha sido posible desde que los proveedores de cloud empezaron a ofrecer IaaS, pero si uno basa su estrategia cloud en depender de máquinas virtuales que básicamente replican la arquitectura que se tenía on premise, no se está sacando partido de las potencialidades de la nube (optimización de costos y escalamiento) ni  tampoco se esta asumiendo un enfoque pragmático frente a los retos (o limitaciones) inherentes a la nube, como pueden ser los niveles de servicio asegurados por el proveedor (SAL), lidiar con las latencias, etc, esto y la necesidad de brindar a nuestros equipos de desarrollo con plataformas que aceleren su productividad nos deben obligar a mirar la nube más allá del IaaS.

Es con esta mirada que debemos analizar la propuesta PaaS que nos da Azure en el entorno Linux; recordemos que tradicionalmente si queríamos implementar una Web App lo que estábamos provisionando “por detrás” era una MV Windows con un IIS especialmente configurado para permitir las ventajas como slots, escalamiento, kudu, etc… lo cual nos va bien para aplicaciones .Net pero por ejemplo no nos permite correr aplicaciones Ruby, aparte de que existen escenarios en que se requiere cierta librería PHP que ¡oh sorpresa! tiene una fuerte dependencia con el sistema operativo Linux, así que era natural que Microsoft Azure venga a ofrecer una solución de Web Apps basada en Linux como una opción para los desarrolladores, misma que en este momento esta en versión de prueba.
top-level-create
Finish Reading: Las perspectivas PaaS Linux sobre Azure

Novedades en VSTS!! …. que impactan a nuestros proyectos Docker

Pues si, retomando los contenidos técnicos y en este caso haciendo seguimiento a las novedades del ultimo Connect, nos topamos con estas (entre otras) que afectan a nuestra herramienta favorita (claro que estoy hablando de Visual Studio Team Services, VSTS):

  • Versionado de tareas (Build Task), esto esta interesante, ahora podremos «congelar» la versión de las tareas a fin de no ser afectados por los cambios que Microsoft haga sobre nuestras dependencias en VSTS, estando en nuestras manos el luego actualizar a la versión mas actual.
  • Crear Builds y Release desde Azure (Portal), algo para simplificar las tareas DevOps , si has visto los articulos publicados veras que tradicionalmente hemos creado nuestras Web Apps desde el portal Azure para luego ir a VSTS a fin de enlazarlo y definir nuestro flujo de Construcción y Despliegue, ahora lo que se nos ofrece es empezar a construir nuestro flujo desde el entorno del Portal de Azure, siendo que luego también estará definido en VSTS, sera motivo de darle un vistazo.
  • Agentes en Linux (Preview), este si es el bombazo, pues tradicionalmente los agentes de compilación que VSTS instancia cada vez que lanzamos un proceso de Integración Continua son Maquinas Virtuales Windows, ahora tenemos la posibilidad de que estos agentes sean generados de manera «elastica» ya sea en Windows o en Linux según el requerimiento de nuestro proceso de Build o de Release, lo cual cambiara radicalmente nuestra forma de trabajo con Docker y otras tecnologías como explicare a continuación.

Como sabrán hace unos meses empece a hacer mis experimentos de despliegue de una aplicación .Net (Core) dentro de Docker, lo cual pude realizar satisfactoriamente luego de mucho esfuerzo, que me llevo a establecer los siguientes pasos: Finish Reading: Novedades en VSTS!! …. que impactan a nuestros proyectos Docker

¿Windows 7 sin Internet Explorer? (2): Consecuencias

Al parecer la decisión de Microsoft de no incluir a Internet Explorer en la distribución de Windows 7 para la Unión Europea, traerá unas consecuencias indeseadas como el hecho de que las nuevas PCs que vengan con Windows Vista no podrán ser actualizadas al nuevo sistema operativo, debiendo hacerse en consecuencia una instalación limpia, con los consiguientes inconvenientes que eso puede ocasionar al usuario inexperto (perder su configuración, tener que instalar todo de nuevo, perder sus datos por si se le ocurre borrar todo por error).

La razón para esta situación es que como Internet Explorer está profundamente integrado con Vista no es posible realizar una actualización que a la vez elimine a Internet Explorer.

Lo curioso del caso es que había estado viendo en la página de Dell, planes que ofrecían el upgrade futuro a Windows 7 si uno compraba ahora un equipo con Windows Vista (y mas extrañamente aun, se ofrece previo pago la opción de hacer el downgrade a XP), como comentaba el articulo los OEMs están planeando soluciones que pasan por entregar brochures para hacer el upgrade, pero personalmente todo esto lo veo como una contradicción a algo que analizaba en Febrero a propósito de una recomendación de Microsoft de hacer ya el upgrade de XP a Vista puesto que eso facilitaría la adopción de Windows 7, con esto un administrador de sistemas en Europa la tendrá complicado, pues hacer un upgrade de XP a Vista, para luego hacer una instalación limpia (desde 0) de Windows 7, como que no tiene mucho sentido.

Esto de la integración del browser con el sistema operativo si que trae cola, por lo que no puedo sino coincidir con lo que dice Daniel Rodríguez Herrera en esta nota: «Al margen de las consecuencias económicas que pueda tener este movimiento (el anuncio del Google Chrome OS) para Microsoft, a corto plazo sí debería servirle de argumento frente a las autoridades antimonopolio, por más que éstas no atiendan a razones sino a conveniencias de los competidores de la empresa fundada por Bill Gates. Si Google anuncia un nuevo sistema operativo que consiste en poco más que en un navegador, ¿cómo es que Bruselas obliga a Microsoft a no atar Windows con Internet Explorer? ¿Tiene acaso bula Google, que va a tener el navegador tan integrado con el sistema operativo que incluso se llamarán igual?». Efectivamente Microsoft tendría toda la razón para pedir que a Google se le mida con el mismo baremo que se le ha medido en los últimos años, invocar que Google no está ofreciendo libertad al usuario de su sistema operativo para que elija su browser, etc etc…

Al final creo que lo que falta es nuevamente un debate técnico sobre lo que debe corresponder a la arquitectura de un sistema operativo, y que es lo que debería ser periférico, y por mucho que se hayan agregado librerías comunes en versiones pasadas de Windows, o que ahora Google quiera que el browser sea una capa mas por encima del kernel (¡de Linux!!), conceptualmente no tendría que ser así, ahora que comercialmente.. el papel aguanta todo. Pero aun así no me imagino que los futuros estudiantes de los cursos de teoría de Sistemas Operativos, tengan que (en adición a procesos de memoria y gestión de archivos) estudiar la arquitectura de un browser, ni a Tanenbaum actualizando sus libros para incluir a los browsers.

¿Hay margen para un jugador más?

AutoCAD, Gimp, Photoshop, Visual Studio, Premiere, Office … ¿qué tienen en común?, que son aplicaciones que requieren el acceso a un API medianamente rica para asi poder aprovechar major los recursos de la computadora, y de esta manera poder lograr su cometido para brindar soluciones avanzadas al usuario final.

¿A cuento de que viene esto? A propósito del anuncio de los planes de Google de desarrollar su propio Sistema Operativo, su enfoque es claro «We’re designing the OS to be fast and lightweight, to start up and get you onto the web in a few seconds. The user interface is minimal to stay out of your way, and most of the user experience takes place on the web.» Interesante, ofrece una interfaz de usuario ligera para que el uso de las aplicaciones Web sea más óptimo.

Con todo esto, quisiera plantear mi opinión que seguro puede chocar dentro del ánimo actual de considerar que todo lo que produce Google está bien, cuando como con todo debería ser mirado con la misma lupa con que se miraba a Microsoft en los 90s, pero vayamos por el principio, ¿qué es lo que creemos necesario que debería tener un Sistema Operativo para que funcione en el mercado actual y futuro?

  • Una arquitectura robusta y segura
  • Una interfaz de usuario con capacidad de atractivo a los usuarios que facilite su transición (desde Windows)
  • Un conjunto de aplicaciones finales que sean usadas por el público (como las que menciono al principio).
  • Una potente maquinaria de marketing (que ojo, no es lo mismo que publicidad).

Con respecto al punto final quiero detenerme un poco, sin haber llegado a utilizar dichos sistemas, creo que parte de las razones que motivaron el buen pie con que salieron iPhone y Android, se debe a la capacidad de generar una buena oferta de aplicaciones de terceros de una manera muy rápida, razones técnicas o buen mecanismo de convencimiento a los desarrolladores, lo ignoro, pero es algo que no debemos dejar de tener en cuenta, en ese sentido tanto Linux como Windows cuentan con un buen legado de aplicaciones que han ido evolucionando a lo largo de los años.

Rescatemos otros dos detalles del documento de lanzamiento: la primera versión estará disponible para netbooks(ojo a esto de si ¿Las netbooks son una basura?), y que se basara en el kernel de Linux. De ahí se puede inferir que en esta primera iteración del producto no habrá una gran exigencia de máquina, por lo que aplicaciones de alto rendimiento como el AutoCAD podrían quedar descartadas, y por otro lado que habría un mecanismo para poder valerse de todo el parque de aplicaciones existente para Linux. Entonces, tenemos claro que conseguir que se desarrollen aplicaciones para una nueva plataforma es parte del proceso de marketing, asi que podemos dar por descontado de que la maquinaria de Google trabajara duro en ese sentido, la pregunta seria ¿Qué clase de aplicaciones?.

Hasta ahí se podría ver que hay cierto margen de suponer que esta propuesta podría cumplir con los requisitos comentados anteriormente, pero leamos este otro párrafo: «The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel. For application developers, the web is the platform. All web-based applications will automatically work and new applications can be written using your favorite web technologies.», de Nuevo tenemos a la recurrente propuesta de la Web como plataforma (algo de lo que ya comente a proposito del lanzamiento del browser Chrome), siendo así creo que es legitimo preguntarse:

  • ¿Cuál es el rol que piensa Google que jugarían las aplicaciones «tradicionales» dentro de su esquema?
  • ¿Qué tan rápido reaccionara el conjunto de fabricantes de software «no web» a fin de soportar el nuevo sistema operativo?
  • ¿Sera viable técnicamente el hacer esa clase de desarrollos?
  • ¿Lograra Chrome OS la adaptación masiva (por el usuario no tecnológico) que no logro Linux?

Enrique Dans dice en Expansion : «No es Google, sino el paso del tiempo, el que ataca a Microsoft, que no se ha dado cuenta de la evolución de la Red. La época de un sistema operativo grande que se vende en una caja y cuesta 200 euros ha pasado, pero Windows 7 sigue la misma línea. Microsoft ve el ordenador como el centro de la experiencia del usuario, mientras Google lo sitúa en Internet», y es cierto que se podría presumir de que es la diferencia entre paradigmas, pero veamos lo de otra manera: Microsoft ha hecho grandes movimientos para colocar su tecnología de servidores (base para la generación de contenidos y servicios en Internet) en una posición solida en el mercado (eso es algo que es poco evidente), por otro lado Google ha dado el paso de proveedor de servicios a desarrollador de sistemas operativos primero Android (que reconozcámoslo, ha logrado generar mas momentum que las sucesivas iteraciones de Windows Mobile) y ahora Chrome OS.

Entonces hay algo que Microsoft tiene y que Google quiere (una cuota en el mercado de los Sistemas Operativos), pero como apuntaban en Expansión el detalle está en que esa cuota de mercado arrebatada a Windows implica menos licencias de Office vendidas(el cual tampoco ha dejado de evolucionar hacia la Web), puesto que la intención de Google es que la experiencia básica de productividad del usuario pase por la nube (que es donde están las vacas lecheras de Google), pero ¿todo todo es posible de ser manipulado a través de internet? (*).

Si asumimos plenamente la idea de Google de que se necesita efectivamente algo diferente para una era basada en la Web, pues si, cobra sentido su apuesta de estructurar el kernel de esa manera, pero la realidad es algo mas complicada y aun necesitamos la computadora para hacer manipulación de imagen y video (que no es lo mismo que ver fotos y videos) y compilar nuestros programas, por lo que creo que la web aun no está preparada tecnológicamente para ser la plataforma de desarrollo de todas las aplicaciones que vayamos a necesitar, probablemente lo esté en el futuro, y tal vez así se pueda entender un poco mejor la apuesta de Google de poner un primer pie en este terreno.

Al profesor Dans le parecía lógico y razonable esta clase de apuesta de Google desde el principio, y si, si uno veía siguiendo la evolución del mercado eso iba a caer por su propio peso, pero más que saber cuál será el próximo movimiento de Google, en este instante toca plantearse cual sería el escenario luego del lanzamiento de este SO (el cual requiere bastante alianzas de fabricantes de hardware para arrancar con buen pie), por lo que me atrevería a afirmar que estamos viendo el surgimiento de un nuevo actor en el mercado, que muy pronto hará pelea a las diversas distros de Linux (las cuales no tienen algo que Google si tiene: la Web), pero que aún resta por medir si ese mordisco a la torta repercutirá lo suficiente como para debilitar las finanzas de Microsoft, lo que es cierto es que en Redmond no están durmiendo ni nada por el estilo, sino veamos la fuerza con la que ha entrado Bing, el cual como ya opine en su momento espero que le vaya mejor que a Cuil, justamente por la necesidad de que haya competencia en el mercado de búsquedas.

(*) El lector desprevenido puede creer que me resisto al cambio y a la viabilidad del desarrollo de aplicaciones Web, pues no, ya que la mayor parte de las aplicaciones que he desarrollado han sido de tipo Web, pero también se que muchas veces se tomo la decisión de hacer un desarrollo para Web a pesar de la mayor complejidad que implicaba, siendo que usando «clientes ricos» se podría haber logrado una mayor productividad y experiencia de uso, es esta experiencia la que me permite ser un poco escéptico por naturaleza, de ahí mi lema de que «si tienes un martillo cualquier cosa te parece un clavo» y veo que muchos por ahí solo tienen martillos sin mirar mas allá en el espectro de herramientas posibles.