domingo, 5 de junio de 2011

Infraestructura de Google Apps (II)

Google administra lo que considera un sistema de almacenamiento de escala planetaria. Los números son algo difíciles de comprender, pero, para tener una idea, un ingeniero de Google dijo el año pasado en una presentación: "Te das cuenta de que manejás un storage realmente grande cuando te llega un alerta a la 1 AM porque sólo quedan algunos Petabytes disponibles". (1 Petabyte = 1000 Terabytes).

Lo que pude investigar y recopilar (Google es muy celoso de algunos de los aspectos de su infraestructura) es lo siguiente:
  • Está formada por una inmensa red de datacenters, cuya ubicación exacta Google no comparte pero se estima que existen al menos 15 en EE UU y 7 en Europa. También en Australia y en Brasil (ver 1 y 2).
  • Están compuestos por servidores, storages y switches que Google arma por sí mismo (3 y 4). Esta es una gran ventaja estratégica ya que todo está optimizado pensando en la seguridad y la performance para el uso específico que tienen. Google es el cuarto fabricante mundial de hardware. Y el primero para uso propio.
  • Cada servidor tiene su propia UPS incorporada a la fuente de alimentación. Que es, básicamente, el agregado de una batería. Pero es mucho más que eso, según se desprende de los documentos de patentamiento (5).
  • Imagen de un servidor publicada por Google en 2008
  • Los servers corren una versión disminuída de Linux, para minimizar los riesgos de seguridad y aumentar la eficiencia.
  • En cuanto a los datos, se sabe que cada unidad de información no está almacenada en un sólo server ni en un único datacenter. Los datos son fraccionados y distribuidos en distintos servidores y en distintos datacenters (6). Esto permite  obtener una alta performance y resistencia a fallas.
  • En un datacenter puede haber varios bloques de alrededor de 10000 servidores para almacenamiento de información con 6 discos de 1TB c/u, interconectados por redes de 10Gb. También están investigando los discos de estado sólido (SSD) pero aún no son utilizados masivamente por su relativa baja disponibilidad (para los requirimientos de este monstruo, claro), el alto costo y la duración de largo plazo aún no comprobada (6).
  • Para que todo esto funcione hay diversas tecnologías (software) propias, desarrolladas a lo largo de varios años (7, 8, 9 y 10). Serán tema un post futuro pero las principales, relacionadas con Google Apps son: 
    • Como sistema de archivos: Google File System y su sucesor Colossus.
    • Almacenamiento estructurado: Bigtable, BlobStore y Spanner.
    • Procesamiento distribuido: MapReduce.
Realmente es difícil imaginarse muchas de estas cosas por la escala casi astronómica que representan pero es evidente que consiguen almacenar y procesar enormes cantidades de información de una manera rápida y efectiva.

Referencias:
  1. http://www.nytimes.com/2006/06/14/technology/14search.html
  2. http://www.datacenterknowledge.com/archives/2008/03/27/google-data-center-faq/
  3. http://arstechnica.com/hardware/news/2009/04/the-beast-unveiled-inside-a-google-server.ars
  4. http://gigaom.com/2007/11/18/google-making-its-own-10gig-switches/
  5. http://www.datacenterknowledge.com/archives/2008/02/15/google-files-patent-on-ups-architecture/
  6. http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/es//university/relations/facultysummit2010/storage_architecture_and_challenges.pdf
  7. http://labs.google.com/papers/mapreduce.html
  8. http://labs.google.com/papers/chubby.html
  9. http://labs.google.com/papers/gfs.html
  10. http://labs.google.com/papers/bigtable.html

sábado, 4 de junio de 2011

Infraestructura de Google Apps - Seguridad

El último jueves estuve en una charla que dio Dante Otero, Gerente de Preventa de Google Apps for Business, en Info Security. Dio detalles sobre la infraestructura que está detrás de Google Apps y las medidas de seguridad que se toman para preservar los datos de sus clientes.Explicó que, respecto de la seguridad, se trabaja en tres aspectos: la gente, los procesos y la tecnología.


Dante Otero en Info Security

La gente: Para comenzar, sólo un grupo reducido de personas tiene acceso a los centros de datos. También cuenta con un importante equipo formado por algunos de los más reconocidos expertos de la industria y la academia, que trabaja los aspectos de seguridad de la información, las aplicaciones y las redes.

Los procesos: porque la seguridad es parte del DNA de Google. Las aplicaciones son desarrolladas desde el inicio pensando en la seguridad como prioridad. Google recibe, como parte del programa SAS 70 II, auditorías externas a sus sistemas cada 3 meses. Cuenta también con la certificación FISMA, otorgada por el gobierno de los EE UU.

La tecnología: Este tema tema es tan extenso que merece un post aparte. Como introducción: hay un completo control automatizado de todo el stack de software y hardware. Los servidores corren una versión disminuída de Linux, para minimizar los riesgos de seguridad y aumentar la eficiencia.
De la infraestructura, explicó que los datos de sus clientes se encuentran distribuidos entre múltiples datacenters, como muestra el siguiente esquema:


Esto permite aumentar la seguridad, mejorar la performance en el acceso a los datos. Además, por ser la información redundante, da una importante protección ante fallas. ¿Cómo es esto? La arquitectura de las aplicaciones y las redes están diseñadas para dar una máxima confiabilidad. Asumiendo que habrá hardware que fallará, el sofware debe ser capaz de manejar estas situaciones de manera habitual.

Es suficiente? Nunca es suficiente cuando el tema es seguridad. Siempre hay que seguir trabajando. Pero parece que Google está haciendo mucho para asegurar los datos propios y de sus clientes. Creo que bastante más que lo que la mayoría de las empresas y gobiernos pueden hacer por si solos.

Referencias:
White paper: Google Apps Security

martes, 24 de mayo de 2011

Herramientas para migración a Google Apps for Business

Es interesante revisar las opciones que hay para hacer una implementación de Google Apps for Business.

Tomemos el mail como ejemplo, para una empresa que ahora utilice Exchange.
Google entrega prácticamente todo lo necesario para migrar desde Exchange sin cargo adicional a la compra del producto (... y también Notes y otros servers). No obstante hay varias herramientas pagas que en teoría hacen lo mismo. ¿Valen la pena?

Migración desde Microsoft Exchange
Yo he utilizado las herramientas de Google y puedo decir que hacen su trabajo perfectamente. Con ellas pueden migrarse los correos electrónicos, contactos y calendarios. Inclusive la Libreta de Direcciones compartida por toda la empresa.
Esto tanto para los elementos almacenados en los servidores Exchange como en los PST locales de cada PC. Todo esto lo hace la herramienta Google Apps Migration for Microsoft Exchange
También tiene la suficiente inteligencia como para migrar de manera parcial una cuenta y continuar después a partir de donde se dejó.

Sincronización de Directorio
En este caso, la herramienta es Google Apps Directory Sync. Con esta herramienta pueden mantenerse perfectamente sincronizados los usuarios, grupos, contactos externos y recursos compartidos, entre un directorio LDAP como Microsoft Active Directory o Lotus Domino y Google Apps. Esta sincronización es exclusivamente hacia el lado de Google Apps. Es decir nunca va a modificarse el Directorio interno de la empresa.

Sincronización de Outlook
Los usuarios que desean continuar utilizando Microsoft Outlook contra los servidores de Google pueden hacerlo. La herramienta Google Apps Sync for Microsoft® Outlook permite sincronizar bidireccionalmente correo, contactos y calendario de Google Apps for Business. Inclusive ver la disponibilidad de horario de otros participantes al armar una reunión. Funciona muy bien y la sincronización es inmediata. Ejemplo: al borrar un mail de Outlook se borra enseguida en Gmail y viceversa.

¿Qué sucede entonces con las herramientas de terceros?
Bueno, siempre hay espacio para agregar mayores opciones de configuración, interfaces de usuario más desarrolladas o soporte a situaciones más sofisticadas.
Por ejemplo, SherpaTools for Google Apps tiene una versión gratuita y una premum paga que incorpora funciones como: manejo de membresías a grupos más simple, listas de usuarios basadas en reglas y la reasignación masiva de documentos a otro usuario.

En definitiva, espacio para ofrecer mejores experiencias hay, sobre todo para la administración de Google Apps una vez en producción. Pero, para la migración inicial, las herramientas estandard y un buen servicio de consultoría son lo más adecuado.

Prometo para otro post algunos tips sobre las distintas herramientas.