Category Archives: Informática e Internet

La tecnología nivela el campo: La Hora de los Más Chicos

umbrellaID-10023846

En el libro “El Arte de la Guerra” de Sun Tzu, el capítulo “Configuraciones de Terreno” contiene un párrafo muy relevador:

“Si podemos avanzar y el enemigo también puede avanzar, se llama ‘accesible’. En la configuración ‘accesible’, primero ocupa las alturas y el lado yang (soleado), y mejora las rutas para transportar provisiones. Luego, cuando nos trabemos en batalla, será ventajoso”.

Sun Tzu, en este párrafo, destaca a la vez que el terreno alto y soleado ofrece ventajas innegables al ejército que las ocupa, y que las posiciones niveladas no ofrecen ventajas diferenciales a ninguno de los contrincantes, y por lo tanto, el resultado de la batalla no está garantizado, sin la intervención de muchos otros factores cuyo orden de magnitud y combinación son tales que puedan desbalancear el resultado en favor del lado poseedor de los mismos.

Este párrafo es muy relevante respecto al panorama actual de tecnologías, redes sociales y software open source. Justamente, todas estos elementos dan lugar a un campo de batalla que presenta un terreno accesible, es más, totalmente nivelado, por lo tanto, el terreno es a la vez accesible y sin puntos elevados, por lo tanto, no hay lugares altos y a la vez, todos los sectores son lados yang (soleados).

En este contexto, la ventaja juega claramente a favor de los players más chicos, las PyMES, las empresas regionales, y definitivamente no juega a favor de las multinacionales, ni siquiera de las empresas nacionales más grandes.

Esta ventaja es concreta y posible, pero no puede realizarse si “los más chicos” no toman las medidas necesarias para hacer de estas ventajas una realidad.

Esas medidas necesarias implican un plan estratégico y una implementación de tal estrategia.

Tanto el plan estratégico como su implementación requieren claramente de una Arquitectura Empresarial y de un sistema de plataformas técnicas de negocios capaz de dar soporte a tal arquitectura, todos ellos alineados con el plan estratégico mencionado.

Saludos, GEN

Advertisements

Las redes sociales no aumentarán sus ventas por si mismas: debe alinear su arquitectura empresarial a su estrategia de negocios

BuildingID-10076694

Es interesante analizar brevemente como, en su gran mayoría, las empresas usan las redes sociales, las plataformas técnica de negocios y demás tecnologías para lograr sus objetivos de negocios.

A simple vista, el grueso de las empresas no sacan buenas calificaciones en esta área. Es más, resulta inclusive frustrante como espectador (y me imagino que para las mismas empresas debe ser aún más frustrante!) ver como el uso que hacen de estas tecnologías es correcto desde el punto de vista técnico, pero muy deficiente desde el punto de vista de estrategia de negocios.

Si bien es cierto que cada caso de cada empresa admite un análisis profundo para identificar los drivers de semejantes fallas sistemáticas, se destaca una falla por encima de todas las demás, en particular por su presencia generalizada en todo tipo de industrias, orígenes y tamaños de organización: fallas a nivel de arquitectura empresarial (en general, el caso más frecuente de falla es “Ausencia de una Arquitectura Empresarial”).

Sin una arquitectura empresarial que comande y guíe el despliegue de plataformas técnicas de negocios alineadas con las estrategias de negocios de la organización, las empresas seguirán obteniendo el mismo orden de resultados frustrantes provenientes del empleo de Twitter, Facebook, Youtube, Pinterest, Google Search, Google Maps y el combo que tenga ganas de agregar a esta lista.

Mientras las organizaciones no amplien las perspectivas y horizontes que orientan a los equipos de negocios que definen las arquitecturas empresariales vigentes, es poco probable que se perfilen cambios drásticos favorables en este sentido.

Saludos, GEN

 

Windows 8 is a reimagining of Windows, from the chip to the interface (*)

Windows 8 Start
Windows 8 Start

It is clear to me that MSFT has understood that the platform where most people work and spend their time is the Cloud: Facebook and Salesforce.com are just shades of the one and only new platform.

Devices like smart phones and tablets have grown so big as viable tools because of this twist.

MSFT is shifting its business and product strategy to give proper answers to what the users like and want to do: Office365, Office Web Apps, SkyDrive, Windows Azure, SQL Azure, Windows Phone 7 & Mango, Windows 8.

No other company has understood this so well in the way MSFT has done and is doing.

The Windows 8 architecture is oriented towards HTML5 and JavaScript development, so.

The way I read this is very simple: Web standards for the dev toolset is the way to leverage phones, tablets, game boxes or PCs.

It seems to be a counter intuitive strategy, against what other players are doing: iOS and Android promote development toolset segregation by platform.

I read that as follows: Google and Apple do not care about the customers’ needs and the dev companies’ needs, all they care is about “closing the field” to their own economic advantage.

If you want to get a glimpse of what MSFT wants to achieve, you may check Disney’s Tron Legacy Digital Book Site: it is just HTML5, JavaScript and IE9’s new architecture, a peek into what IE10 and Windows 8 will provide.

http://disneydigitalbooks.go.com/tron/

Kind regards, Gastón

(*): BTW, the title phrase belongs to Julie Larson-Green, corporate vice president, Windows Experience, MSFT.

En ingeniería, la forma sigue a la falla, y no a la función

Cracked Glass

Cracked Glass

La reciente salida de servicio de Amazon Web Services (AWS) puso de manifiesto como afectó a algunos clientes mientras que otros no se vieron afectados, ya que diseñaron sus soluciones On The Cloud con una combinación adicional de redundancia y eliminación de puntos únicos de falla.

Este evento destaca claramente que el problema no está en la madurez de las soluciones Cloud disponibles en el mercado, si no más bien en una visión simplista de como las organizaciones deberían implementar este tipo de soluciones.

Dicho de otra manera, en vez de decir “Creo en Cloud Computing”, deberíamos decir “Le creo a Cloud Computing”.

Si realmente “le creemos a Cloud Computing”, deberíamos aplicar los mismos principios de diseño de disponibilidad de la solución Cloud que contratamos, a la hora de determinar que componentes, dependencias e interacciones nos asegurarán un diseño fault-tolerant.

Como complemento de estas ideas, incluyo dos posts que me parecen interesantes:

http://gigaom.com/cloud/how-to-design-your-service-for-failures-in-the-cloud/

http://www.techrepublic.com/blog/networking/how-innovative-design-allowed-one-cloud-company-to-withstand-amazons-recent-outage/3995

Saludos, GEN

List of improvements supported by Mango (Windows Phone 7.5)

  • Threads. Switch between text, Facebook chat and Windows Live Messenger within the same conversation.
  • Groups. Group contacts into personalized Live Tiles to see the latest status updates right from the Start Screen and quickly send a text, email or IM to the whole group.
  • Deeper social network integration. Twitter and LinkedIn feeds are now integrated into contact cards, and “Mango” includes built-in Facebook check-ins and new face detection software that makes it easier to quickly tag photos and post to the Web.
  • Linked inbox. See multiple email accounts in one linked inbox. Conversations are organized to make it easy to stay on top of the latest mail.
  • Hands-free messaging. Built-in voice-to-text and text-to-voice support enables hands-free texting or chatting.
  • App Connect. By connecting apps to search results and deepening their integration with Windows Phone Hubs, including Music and Video and Pictures, “Mango” allows apps to be surfaced when and where they make sense.
  • Improved Live Tiles. Get real-time information from apps without having to open them. Live Tiles can be more dynamic and hold more information.
  • Multitasking. Quickly switch between apps in use and allow apps to run in the background, helping to preserve battery life and performance.
  • Internet Explorer 9. A browser based on the powerful Internet Explorer 9 and including support for HTML5 and full hardware acceleration.
  • Local Scout. Provides hyperlocal search results and recommends nearby restaurants, shopping and activities in an easy-to-use guide.
  • Bing on Windows Phone. More ways to search the Web, including Bing Vision, Music Search and Voice so it’s easy to discover and decide.
  • Quick Cards. When searching for a product, movie, event or place, see a quick summary of relevant information, including related apps.

Windows Azure: Para comprender la solución, hay que entender el problema

Tal como señala el título, es conveniente revisar el problema en cuestión, su naturaleza y características, para poder comprender mejor porqué un determinado diseño o arquitectura representa una solución razonable a dicho problema.

Es frecuente que, cuando me veo en la necesidad de explicar un concepto complejo, encuentro útil recurrir a una analogía de la vida cotidiana para facilitar dicha explicación.

En este caso, voy a recurrir a la analogía de un automóvil como un ejemplo de sistema que guarda determinadas relaciones con un sistema informático.

A muchos de nosotros nos ha pasado aprender que, en un automóvil, muchas cosas distintas pueden fallar y dejarnos sin solución. Algo similar sucede con los sistemas informáticos: muchas partes distintas del sistema pueden fallar y dejarnos sin solución.

En un automóvil, al igual que en un sistema, es grave cuando la pieza o parte que falla se caracteriza por ser un punto único de falla: es alguna pieza o parte crucial del automóvil o del sistema que, si falla, nos deja completamente sin solución, por la simple y sencilla razón que el sistema solo cuenta con una pieza de ese tipo!.

En este punto, es conveniente hacernos la pregunta de rigor:

¿ Cómo podemos diseñar un sistema para que sea fault-tolerant ?

Antes que nada, es útil tener una definición operativa de fault-tolerant, aunque no sea una definición académica.

Un sistema fault-tolerant es aquel que es capaz de seguir brindando su servicio a pesar que un determinado subconjunto de sus partes ha fallado.

La solución general de diseño para un sistema fault-tolerant es conceptualmente sencilla: redundancia.

El sistema debe evitar puntos únicos de falla a través de diversas redundancias en sus partes, aunado con un sistema de monitoreo del grado de salud de cada parte o componente del sistema, y con la capacidad de redireccionar la provisión de la función afectada por la falla hacia una pieza redundante equivalente ante la detección del problema.

Para poder seguir con este análisis, debemos orientar nuestra atención a un subconjunto importante de quality attributes (QAs) de un sistema informático.

En este punto solamente me concentraré en los QAs que son relevantes para esté análisis, dado que hay otros QAs que son importantes en general, pero no forman parte de nuestro scope.

Los QAs en cuestión son:

Performance

Escalabilidad

Seguridad

Disponibilidad

El orden de presentación no es relevante, más bien es práctico.

Vamos a dar algunas definiciones operativas de estos conceptos, aunque no sean académicas.

Performance es la capacidad de completar una tarea en un intervalo de tiempo y con un consumo/ocupación de recursos conveniente desde el punto de vista económico.

Escalabilidad es la capacidad de poder atender cantidades crecientes de solicitudes concurrentes de ejecución de una tarea, conservando la performance dentro de un umbral cercano al nivel nominal (el necesario para realizar una sola tarea), de tal forma que mantiene o conserva la conveniencia económica.

Seguridad es la capacidad de garantizar que en un sistema al que acceden muchas personas distintas, cada persona solamente tiene acceso a la información estrictamente necesaria para cumplir con sus objetivos y responsabilidades, ni más, ni menos.

Disponibilidad es la capacidad de un sistema de seguir adelante con la provisión de sus servicios básicos a pesar que un determinado subconjunto de sus partes o piezas ha fallado.

El orden o grado de disponibilidad de un sistema se mide en %, de tal forma que cuanto más cercano al 100% es la disponibilidad del sistema, más conveniente desde el punto de vista económico-financiero es el mismo.

Una forma práctica de entender el orden o grado de disponibilidad es como el cociente entre la cantidad total real de tiempo de operación del sistema durante un intervalo de tiempo (por ejemplo, un año) y la cantidad total nominal de tiempo de operación del sistema durante el mismo intervalo de tiempo, expresado en %.

Un sistema fault-tolerant debe ser capaz de conservar estos cuatro QAs dentro de un nivel económicamente conveniente, a pesar que un subconjunto de sus partes o piezas ha fallado.

Para comprender el problema y su solución, veremos alternativas de fallas cruciales y como la conservación de los niveles aceptables de los QAs mencionados informan cómo debería ser el diseño.

Veamos la escalabilidad. Una forma sencilla de mantener la escalabilidad es usar un server más grande y veloz, con más capacidad de procesamiento, más memoria, más discos, etc.

En realidad, esta no es una brillante idea, dado que estamos permitiendo que exista un punto único de falla.

Esta opción, llamada Scale Up, no es buena, más bien es mejor la opción que permite escalar con un conjunto de servers, llamada Scale Out.

Los clusters de servers con Network Load Balancers (NLBs) apuntan a la opción Scale Out de servers de aplicación.

Sin embargo, los clusters y los NLBs no resuelven el problema de una falla en el servicio de repositorio de datos (en general, bases de datos).

Para ofrecer una solución útil y a la vez, coordinada con el Scale out de servers de aplicación, es necesario tener un diseño que permita un Scale Out de servers de bases de datos que actualice en forma concurrente y distribuida y que soporte failover automático, es decir, la capacidad de detectar que el server primario no responde y es necesario redireccionar la provisión del servicio a un server secundario que ya está actualizado con la misma información, en forma concurrente.

Desde el punto de vista de la seguridad, es más fácil dar seguridad a un esquema Scale Up que a un esquema Scale Out, pero la combinación seguridad + escalabilidad del Scale Out es mucho mejor que la combinación del Scale Up.

En el caso del orden o grado de disponibilidad, es importante considerar como afecta a este factor las paradas programadas y las no programadas.

Es fácil de comprender que se puede hacer mucho por mitigar el impacto que tienen las paradas programadas sobre la disponibilidad, en particular si aumentamos el grado de redundancia de tal forma de tener servers adicionales para hacer las paradas programadas con rotación de servers en operación.

Windows Azure ofrece todas estas capacidades, incluyendo failover automático a un site remoto (ante una catástrofe que afecte al site en su conjunto), más provisión elástica de capacity, más costos variables según consumo.

Windows Azure, una solución Platform as a Service

Windows Azure se presenta como una solución Platform as a Service.

Es conveniente describir brevemente las diferentes opciones de soluciones Cloud para comprender mejor que es Platform as a Service, comparándolas contra el esquema tradicional de IT propio, y entre sí.

En el esquema de IT propio, la empresa tiene la responsabilidad de proveer y mantener todas las partes que componen el stack de soluciones, desde los servers, hasta las aplicaciones de negocios, y todas las tareas y gastos de mantenimiento de cada uno de los componentes del stack de soluciones.

En la primer opción Cloud, Infrastructure as a Service, los servers, storage y network son provistos como un servicio, por lo tanto, la empresa paga en forma variable por el consumo realizado del servicio provisto.

La empresa debe hacerse cargo de las inversiones, gastos y tareas de mantenimiento del resto de los componentes del stack de soluciones, desde el OS en adelante.

En la segunda opción Cloud, Platform as a Service, los servers, storage, network, OS y Application Stack son provistos como un servicio, por lo tanto, la empresa paga en forma variable por el consumo realizado del servicio provisto.

La empresa debe hacerse cargo de las inversiones, gastos y tareas de mantenimiento del resto de los componentes del stack de soluciones, en este caso, las aplicaciones.

En la tercer opción Cloud, Software as a Service, el stack completo de soluciones, desde los servers hasta las apliciones, es provisto como un servicio, por lo tanto, la empresa paga en forma variable por el consumo realizado del servicio provisto.

Soluciones como Hotmail, Google Docs o Salesforce.com son claros ejemplos de SaaS.

En todos estos casos, parte de los principales beneficios de la provisión de partes del stack de soluciones como un servicio son de tipo económico-financiero.

El elemento principal del beneficio económico se centra en la ventaja que los proveedores de estos servicios, debido al tipo de arquitecturas de
virtualización que utilizan, y a la posibilidad de vender en todo el mundo, pueden prorratear los gastos fijos y semifijos en una cantidad mucho mayor de elementos que lo que puede hacer una empresa promedio.

Por ejemplo, un administrador de servers es prorrateado en miles de servers virtuales, dado que puede atender ese orden de magnitud de servidores.

El elemento principal del beneficio financiero se centra en la capacidad de retrasar la necesidad de erogar una determinada cantidad hasta el último momento, directamente cuando se consume el servicio, en vez de tener que hacerlo por anticipado.

Esto redunda en un Valor Actual Neto menor, lo que indica que es una mejor opción de inversión, para la misma provisión de servicio.

Para redondear el concepto, es conveniente destacar cuales son las audiencias objetivo a las que apuntan cada una de las opciones Cloud, para poder comprender en forma más completa la propuesta de valor de Windows Azure.

La opción Infrastructure as a Service, o IaaS, tiene por audiencia objetivo al sector de IT de una empresa, que puede concentrar sus tareas en la administración de los componentes OS y Application Stack.

La opción Platform as a Service, o PaaS, tiene por audiencia objetivo al sector de desarrollo de aplicaciones de una empresa, dado que tiene una plataforma de desarrollo que le permite desarrollar y hacer testing en forma local, además de contar con un conjunto completo de herramientas de desarrollo.

La opción Software as a Service, o SaaS, tiene por audiencia objetivo al sector de usuarios de una empresa,  dado que cuenta con las aplicaciones que necesitan para las operaciones diarias hosteadas en La Nube.