                   Argentina.com : Un estudio de caso

  Carlos Horowicz

   <ch@argentina.com>
             

   $FreeBSD:
   doc/es_ES.ISO8859-1/articles/casestudy-argentina.com/article.sgml,v
   1.3 2007/11/08 21:49:09 carvay Exp $

   FreeBSD is a registered trademark of the FreeBSD Foundation.

   CVSup is a registered trademark of John D. Polstra.

   Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and
   Xeon are trademarks or registered trademarks of Intel Corporation
   or its subsidiaries in the United States and other countries.

   XFree86 is a trademark of The XFree86 Project, Inc.

   Many of the designations used by manufacturers and sellers to
   distinguish their products are claimed as trademarks. Where those
   designations appear in this document, and the FreeBSD Project was
   aware of the trademark claim, the designations have been followed
   by the "(TM)" or the "(R)" symbol.

     --------------------------------------------------------------

1 Introduccion

   Argentina.Com es un ISP argentino con una pequena infraestructura
   de menos de 15 empleados y cuya fuente principal de ingresos
   proviene del negocio del acceso telefonico a redes gratuito.
   Comenzo a operar en el ano 2000 con solo un servidor para correo y
   chat.

   Desde entonces ha crecido su presencia en un mercado argentino de
   acceso telefonico a redes que genera unos 45.000 millones de
   minutos anualmente. Su producto mas famoso proporciona a cerca de
   medio millon de usuarios correo gratuito con webmail, POP3 y
   acceso SMPT, junto con 300M de espacio de disco. Hacia el final de
   2002 habia alrededor de 50.000 usuarios de correo. Despues de dos
   anos y medio de reingenieria y de solidas mejoras tecnicas este
   ISP ha crecido en un factor de 3 en terminos de facturacion, y en
   un factor de 10 en cuanto a la base de usuarios de correo.

   Nuestros competidores en el mercado argentino de acceso telefonico
   incluyen a Fullzero (filial perteneciente a Clarin Media Group),
   Alternativa Gratis y Tutopia, este ultimo fundado por IFX y
   promocionado por Hotmail. Algunos de estos grandes competidores
   comenzaron sus respectivos negocios de acceso telefonico con
   inversiones multimillonarias y con campanas de publicidad
   agresivas en television e Internet. Argentina.Com no utiliza este
   tipo de publicidad. Ha alcanzado la cuarta posicion con un 8% de
   cuota de mercado durante los dos ultimos anos gracias a un calidad
   de servicio superior.

   En Argentina y en Latinoamerica en general las personas que no
   poseen ordenador personal van a los llamados "locutorios" (centros
   de Internet), donde por unos pocos pesos pueden utilizar un
   ordenador conectado a Internet y donde normalmente leen y escriben
   correos electronicos a traves de portales populares como Hotmail,
   Yahoo! o Argentina.Com.

   Debido a los limitados recursos financieros disponibles,
   Argentina.Com decidio invertir en un nuevo sistema de correo en
   vez de darse publicidad a traves de los medios. Esta decision
   estrategica abre las puertas a un futuro negocio en el campo del
   correo corporativo y de pago.

     --------------------------------------------------------------

2 El desafio

   El desafio principal para Argentina.Com es alcanzar un tiempo de
   vida para el servicio de acceso telefonico a redes de al menos
   99.95%, o menos de 5 horas de caidas al ano. Debido a la alta
   rotacion y volatilidad que existe en este negocio, las cosas deben
   funcionar correctamente para que el usuario no cambie
   -voluntariamente o no- de proveedor de acceso a internet o de
   numero de telefono utilizado para conectarse. El negocio del
   "dialup", como se le conoce en su denominacion inglesa, requiere
   una estructura de soporte para tratar con las grandes operadoras
   de telecomunicaciones problemas telefonicos y de calidad de
   servicio, junto con una infraestructura tecnica donde la latencia
   y la perdida de paquetes deben minimizarse debido a la naturaleza
   UDP de los servicio de Radius y DNS, y donde el DNS recursivo
   deberia estar siempre disponible.

   Esto tambien implica tener un tiempo de vida alto en los servicio
   de POP3 y SMTP, junto con el servicio de webmail. Para POP3 y SMTP
   se estimo la necesidad de "uptime" igual que para el servicio de
   "dialup", mientras que para el servicio de webmail se penso en un
   porcentaje de 99.5%, lo que significa alrededor de dos dias por
   ano sin servicio o de caida.

   Decidimos migrar el correo a una solucion propietaria de codigo
   abierto que deberia ser horizontalmente escalable y cuyos sistemas
   antivirus y antispam pudieran soportar mas de un unico tipo de
   "backend" o de almacenamiento de correos.

   La feroz competencia en el mercado del correo electronico
   gratuito, principalmente iniciada por las recientes mejoras
   introducidas por Hotmail, Yahoo! y Gmail, hacian necesario disenar
   el nuevo sistema con al menos 300M de espacio de usuario en disco
   para cada usuario, pero a un coste inferior a 3 dolares americanos
   por GB incluyendo cierto grado de redundancia. Hay que tener en
   cuenta que el hardware que puede disponerse en "rack" es dificil
   de encontrar en Argentina y que resulta ser entre un 30 y un 40%
   mas caro que en los EEUU. Nuestro liquido financiero para
   adquisicion de equipos en dos anos fue de 75.000 dolares
   americanos, lo cual es una fraccion muy pequena de las inversiones
   acometidas por nuestros competidores directos.

   Respecto al servicio antispam, era necesario desarrollar un
   producto que pudiera competir con los sistemas ofrecidos por los
   grandes. Dadas las hostiles condiciones que impone la existencia
   del spam (ataques de diccionario, spams con alto grado de
   ofuscacion y refinamiento, "phishing", troyanos, correos-bomba,
   etc.) resulta muy complicado alcanzar tiempos de "uptime"
   excelentes y al mismo tiempo repeler dichos ataques. Uno debe
   tambien ser cuidadoso para que el usuario no pierda correos debido
   a falsos positivos en la estrategia de clasificacion, para que no
   se le inunde con spam o notificaciones de spam y para que el
   correo peligroso no alcance la carpeta de entrada de los usuarios.
   Por ultimo, el sistema de correo debe protegerse para que los
   "spammers" no lo utilicen en su provecho para enviar spam.

   El paradigma del codigo abierto normalmente requiere la
   adquisicion de grandes equipos de administradores de sistemas,
   operadores y programadores que se encarguen de aplicar parches,
   corregir "bugs" e integrar plataformas. El paradigma opuesto es
   tambien costoso debido a las caras licencias de software, la
   necesidad de hardware cada vez mas caro y debido al elevado numero
   de empleados encargados de proporcionar soporte. Asi que el
   desafio era encontrar la mezcla correcta entre recursos monetarios
   y humanos escasos, alta estabilidad y grado de prediccion, y un
   desarrollo rapido y fiable. En Buenos Aires resulta dificil
   encontrar profesionales de las ciencias de la computacion bien
   entrenados, la mayoria de los cuales viven y trabajan en el
   extranjero, mientras que los restantes poseen trabajos estables
   dentro de las instituciones del gobierno o en grades companias.

     --------------------------------------------------------------

3 La solucion FreeBSD

  3.1 Introduccion

   A comienzos de 2003 teniamos un sistema de correo CriticalPath
   bajo Solaris x86 y una maquina Redhat para SMTP, Radius y DNS. Los
   servicios de DNS y Radius se caian constantemente y estabamos
   luchando con colas enormes de correo electronico. Hubo un intento
   de instalar CriticalPath para Linux en Redhat en una maquina Intel
   con una tarjeta Megaraid, pero la latencia del disco era enorme y
   la aplicacion de correo no llego a funcionar.

   El primer paso realizado hacia la "solucion FreeBSD" consitio en
   migrar este hardware y software comercial a FreeBSD 4.8 con la
   ayuda de la emulacion Linux.

     --------------------------------------------------------------

  3.2 La eleccion de FreeBSD

   El sistema operativo FreeBSD goza de una merecida fama de por su
   gran estabilidad, junto con su pragmatismo y sentido comun a la
   hora de poner aplicaciones "on-line" gracias a su excelente
   coleccion de Ports. Nosotros consideramos su proceso de generacion
   de releases muy sencillo de entender, ademas de que la comunidad
   de usuarios de las listas oficiales de correo electronico mantiene
   un estilo educado y civilizado cuando ayudan o leen los problemas
   de otros usuarios y sus soluciones.

   Otra caracteristica importante es su rapida implantacion.
   Afortunadamente pudimos establecer nuestra politica de instalacion
   de SO alrededor de las capacidades predefinidas de FreeBSD. En una
   compania pequena algunas veces necesitas ir corriendo a un centro
   de datos y rapidamente levantar un servidor para proporcionar
   algun servicio. En los dos ultimos anos, Argentina.Com adquirio
   alrededor de cuarenta servidores, la mayoria Pentium IV pero
   tambien varios Xeon duales y unos cuantos Opteron duales para
   ubicarlos en los centros de datos donde tenemos los contratos de
   operaciones de "hosting" y de acceso telefonico a redes. Todos
   ellos ejecutan FreeBSD, desde 4.8 (un par de ellos con dos anos de
   "uptime" y cero problemas) hasta 6.0-BETA2.

   La politica general que tenemos para con el sistema operativo
   consiste en intentar llevar a todos los servidores a la rama de
   codigo estable de una forma periodica utilizando RELENG_4,
   RELENG_5 y ahora RELENG_6. Estas operaciones nos permiten estar
   mas preparados ante posibles amenazas de seguridad a nivel del
   sistema operativo o del software base del mismo, especialmente en
   los servidores web.

     --------------------------------------------------------------

  3.3 Reingenieria basica

   El prime paso de reingenieria fue poner en funcionamiento dos
   maquinas FreeBSD 4.8 cuya unica tarea iba a consistir en ser DNS
   autorizados para todos nuestros dominios. El software elegido
   resulto ser BIND9. Estas maquinas se ubicaron en diferentes
   centros de datos, cuidandonos de asegurar una buena latencia entre
   ellos para evitar problemas en transferencias de zonas, haciendo
   posible tratar con TTLs entre 60 y 600 segundos para asi poseer
   unos mejores margenes de reaccion en caso de problemas.

   El segundo paso consistio en desplegar dos maquinas mas del mismo
   tipo, tambien en distintos centros de datos, para solo servir
   Radius y DNS recursivo. Los servidores de acceso de red ("Network
   Access Servers" o NAS) de los operadores de telecomunicaciones se
   configuraron para enviar las peticiones de autorizacio y
   "accounting" de Radius hacia los nuestros, y tambien para asignar
   dichos DNS recursivos a nuestros usuarios de acceso telefonico.

   La tercera "regla de oro" consiste en no poner jamas en la misma
   maquina el servicio de entrada y salida de correo SMTP.
   Desplegamos maquinas FreeBSD distintas utilizando Postfix tanto
   para la entrada como para la salida.

     --------------------------------------------------------------

  3.4 Migracion del correo

   La migracion del correo requeria una planificacion cuidadosa
   debido al hecho de que ibamos a a migrar tanto los frontales como
   los "backends". El primer paso fue construir un sistema perimetral
   antispam y antivirus con FreeBSD 4.x y 5.x basado en postfix,
   amavisd-new, clamav y SpamAssassin. Estos sistemas iban a entregar
   correos tanto a los antiguos sistemas como a los nuevos hasta que
   el nuevo "backend" estuviera en funcionamiento. Entre tanto
   anadimos pequenas maquinas FreeBSD para incrementar el "spool" de
   correo de CriticalPath sin ningun problema.

   En la primera linea de la entrada de correo pusimos varios MX del
   dominio Argentina.com para filtrar ataques de diccionario
   (intentos de reenviar correo a usuarios no existentes) ademas de
   una lista negra derivada de SURBL que resulto no dar casi ningun
   falso positivo. Los correos eran multiplexados hacia un cluster de
   Xeon duales y Opteron duales donde ejecutabamos amavisd-new junto
   con un filtrado basado en listas blancas y negras basado en MySQL.
   Descartamos el uso de Bayes y Autowhitelisting en un nivel global
   debido a las grandes cantidades de falsos positivos y de falsos
   negativos que proporcionaban. En su lugar definimos unos cuantos
   niveles de spam de menos a mas tolerante, cada uno con niveles de
   corte y de descarte. A cada correo electronico recibido el sistema
   le asigna una determinada puntuacion. Los correos con una
   puntuacion por debajo de la puntuacion asociada con el nivel de
   corte establecido por el nivel de spam pueden continuar hasta la
   bandeja de entrada del usuario. Los correos entre el nivel de
   corte y el nivel de descarte se envian a una carpeta del usuario
   denominada Spam, y por ultimo aquellos correos por encima del
   nivel de corte se descartan porque se considera una situacion muy
   evidente de spam. En aras de la simplicidad, se asocian de forma
   transparente los correos almacenados en la libreta de direcciones
   con el sistema antispam, colocandolos en las "listas blancas" de
   forma automatica.

   Con la introduccion de Spamassassin 3.x, el trafico de DNS
   utilizado para preguntar a las listas negras de correo crecio
   considerablemente, de tal forma que firmamos acuerdos con SpamCop,
   Spamhaus y SURBL para instalar replicas publicas de sus bases de
   datos en nuestro equipo FreeBSD. Gracias a estas replicas, que nos
   costaron entre 1 y 2Mbps de trafico, fuimos capaces de reducir
   drasticamente la latencia de Spamassassin.

   En un tercer nivel nos encontramos con la entrega a los buzones de
   correo de los usuarios. Tan pronto como nos pusimos a contruir el
   nuevo "backend" Cyrus-Imap con autentificacion MySQL, nos dimos
   cuenta de que necesitabamos multiplexar el correo de entrada a los
   usuarios en los formatos de los buzones nuevos y antiguos.
   Finalmente, conseguimos migrar cientos de miles de correos hacia
   la nueva arquitectura Cyrus utilizando una fenomenal herramienta
   denominada imapsync, que se puede instalar directamente desde los
   ports. Tambien instalamos perdition (un proxy de POP3 y de IMAP)
   entre medias para asegurar una migraci'n transparente y permitir
   la distribucion entre distintos servidores de los buzones. En
   resumen, toda la informacion de localizacion de un buzon de
   usuario esta en MySQL, y dicha informacion se encuentra disponible
   para todo el software que forma parte de la cadena.

   Respecto al hardware para el espacio de disco, actualmente
   utilizamos siete maquinas FreeBSD con Cyrus-Imap de distinto
   hardware. El mayor es un Pentium IV con 4G de RAM y tarjetas 3ware
   con 12 bahias extraibles en caliente, organizadas en 3 unidades
   RAID-5 de 1 Terabyte cada una. El software 3ware envia un correo
   electronico al administrador cuando el RAID se degrada (en la
   mayoria de los casos se trata de errores de disco) y es posible
   reconstruir el RAID con el sistema a pleno rendimiento. Utilizamos
   smartmontools en los casos en los que hay menor redundancia, para
   disponer inmediatamente de alertas de discos con problemas de
   temperatura o de fallos de "selftests".

   Como software de correo web elegimos un producto comercial
   denominado Atmail, disponible con sus fuentes en perl y que
   utiliza mod_perl. Bajo FreeBSD resulta extremadamente sencillo
   gestionar los modulos de perl y no es necesario usar la "shell" de
   CPAN; unicamente hay que seleccionar el port correcto y ejecutar
   "make install". Tras varios meses de trabajo de integracion
   pudimos integrar la parte cliente de Atmail que habla IMAP con
   nuestros "backends". Tuvimos que modificar algunas partes del
   codigo para adaptar el producto a nuestro entorno libre y para
   hacerlo compatible con nuestro perimetro antispam antivirus,
   ademas de aplicar nuestras personalizaciones y traducciones.

     --------------------------------------------------------------

  3.5 Migracion web

   Con la adopcion de FreeBSD no hubo que realizar ningun esfuerzo
   adicional para tener en ejecucio en cuestion de minutos los
   entornos de Apache, PHP y MySQL. Incluso las actualizaciones de
   PHP4 a PHP5 se efectuaron sin problemas. El sistema de ports nos
   resulto una vez mas extremadamente util y nos permitio hacer cosas
   como comprimir los contenidos de texto y de html de Apache
   utilizando unas pocas lineas de documentacion. Ademas, hemos
   experimentado un rendimiento excelente y una estabilidad y
   "uptimes" extraordinarios.

     --------------------------------------------------------------

4 Resultados

   Conseguimos implantar una arquitectura de correo electronico
   basada en FreeBSD que es escalable horizontalmente, utilizando 3
   Terabytes de almacenamiento basado en servidores Intel incurriendo
   en un coste de 3 dolares por Gigabyte con redundancia.

   La gran estabilidad alcanzada permitio a Argentina.com explorar
   otros campos como el "hosting" para terceros y el "housing" con
   presencia en los centros de datos argentinos.

   Ahora ofrecemos tambien acceso telefonico a redes corporativas
   para usuarios de "roaming" y Peru gracias a nuestra presencia y a
   los acuerdos suscritos con la mayoria de los operadores de
   telecomunicaciones. Entre nuestros clientes indirectos se
   encuentran las principales companias americanas como Ford, Exxon y
   Reuters. Tambien estamos en el negocio del acceso telefonico a
   redes en Brasil, Chile, Colombia y Panama.

     --------------------------------------------------------------

          Puede descargar este y muchos otros documentos desde
                ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentacion antes de escribir
                  a la lista <questions@FreeBSD.org>.
    Envie sus preguntas sobre la documentacion a <doc@FreeBSD.org>.
