doc/es_ES.ISO8859-1/articles/casestudy-argentina.com/article.xml
2013-01-30 19:12:36 +00:00

392 lines
18 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
"../../../share/xml/freebsd45.dtd">
<article lang='es'>
<title>Argentina.com : Un estudio de caso</title>
<articleinfo>
<authorgroup>
<author>
<firstname>Carlos</firstname>
<surname>Horowicz</surname>
<affiliation>
<address><email>ch@argentina.com</email>
</address>
</affiliation>
</author>
</authorgroup>
<legalnotice id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.cvsup;
&tm-attrib.intel;
&tm-attrib.xfree86;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</articleinfo>
<sect1 id="overview">
<title>Introducción</title>
<para>Argentina.Com es un ISP argentino con una pequeña
infraestructura de menos de 15 empleados y cuya fuente principal de
ingresos proviene del negocio del acceso telefónico a redes
gratuito. Comenzó a operar en el año 2000 con sólo
un servidor para correo y chat.</para>
<para>Desde entonces ha crecido su presencia en un mercado
argentino de acceso telefónico a redes que genera unos 45.000
millones de minutos anualmente. Su producto más famoso proporciona
a cerca de medio millón de usuarios correo gratuito con webmail,
POP3 y acceso SMPT, junto con 300M de espacio de disco. Hacia el
final de 2002 había alrededor de 50.000 usuarios de correo.
Después de dos años y medio de reingeniería y de
sólidas mejoras
técnicas este ISP ha crecido en un factor de 3 en términos
de facturación, y en un factor de 10 en cuanto a la base de usuarios
de correo.</para>
<para>Nuestros competidores en el mercado argentino de acceso
telefónico incluyen a Fullzero (filial perteneciente a Clarin
Media Group),
Alternativa Gratis y Tutopia, este último fundado por IFX y
promocionado por Hotmail. Algunos de estos grandes competidores
comenzaron sus respectivos negocios de acceso telefónico con
inversiones multimillonarias y con campañas de publicidad agresivas
en televisión e Internet. Argentina.Com no utiliza este tipo de
publicidad. Ha alcanzado la cuarta posición con un 8% de cuota de
mercado durante los dos últimos años gracias a un calidad de
servicio superior.</para>
<para>En Argentina y en Latinoamérica en general las personas que
no poseen ordenador personal van a los llamados
<quote>locutorios</quote> (centros de Internet), donde por unos
pocos pesos pueden utilizar un ordenador conectado a Internet y
donde normalmente leen y escriben correos electrónicos a
través de portales
populares como Hotmail, Yahoo! o Argentina.Com.</para>
<para>Debido a los limitados recursos financieros disponibles,
Argentina.Com decidió invertir en un nuevo sistema de correo en vez
de darse publicidad a través de los medios. Esta decisión
estratégica abre las puertas a un futuro negocio en el campo del
correo corporativo y de pago.</para>
</sect1>
<sect1 id="challenge">
<title>El desafío</title>
<para>El desafío principal para Argentina.Com es alcanzar un tiempo
de vida para el servicio de acceso telefónico a redes de al menos
99.95%, o menos de 5 horas de caídas al año. Debido a la alta
rotación 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 número
de teléfono utilizado para conectarse. El negocio del
<quote>dialup</quote>, como se le conoce en su denominación inglesa,
requiere una estructura de soporte para tratar con las grandes
operadoras de telecomunicaciones problemas telefónicos y de
calidad de servicio, junto con una infraestructura técnica donde la
latencia y la pérdida de paquetes deben minimizarse debido a la
naturaleza UDP de los servicio de Radius y DNS, y donde el DNS
recursivo debería estar siempre disponible.</para>
<para>Esto tambíen 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 estimó la necesidad de <quote>uptime</quote> igual
que para el servicio de <quote>dialup</quote>, mientras que para el
servicio de webmail se pensó en un porcentaje de 99.5%, lo que
significa alrededor de dos dias por año sin servicio o de
caída.</para>
<para>Decidimos migrar el correo a una solución propietaria de
código abierto que debería ser horizontalmente escalable y cuyos
sistemas antivirus y antispam pudieran soportar más de un
único tipo
de <quote>backend</quote> o de almacenamiento de correos.</para>
<para>La feroz competencia en el mercado del correo
electrónico gratuito, principalmente iniciada por las recientes
mejoras introducidas por Hotmail, Yahoo! y Gmail, hacían necesario
diseñar el nuevo sistema con al menos 300M de espacio de usuario en
disco para cada usuario, pero a un coste inferior a 3 dólares
americanos por GB incluyendo cierto grado de redundancia. Hay que tener
en cuenta que el hardware que puede disponerse en <quote>rack</quote>
es difícil de encontrar en Argentina y que
resulta ser entre un 30 y un 40% más caro que en los EEUU. Nuestro
líquido financiero para adquisición de equipos en dos
años fue de
75.000 dólares americanos, lo cual es una fracción muy
pequeña de las
inversiones acometidas por nuestros competidores directos.</para>
<para>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 ofuscación y
refinamiento, <quote>phishing</quote>, troyanos, correos-bomba,
etc.) resulta muy complicado alcanzar tiempos de <quote>uptime</quote>
excelentes y
al mismo tiempo repeler dichos ataques. Uno debe también ser
cuidadoso para que el usuario no pierda correos debido a falsos
positivos en la estrategia de clasificación, 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
último, el sistema de correo debe protegerse para que los
<quote>spammers</quote> no lo utilicen en su provecho para
enviar spam.</para>
<para>El paradigma del código abierto normalmente requiere la
adquisición de grandes equipos de administradores de sistemas,
operadores y programadores que se encarguen de aplicar parches,
corregir <quote>bugs</quote> e integrar plataformas. El paradigma opuesto es
también costoso debido a las caras licencias de software, la
necesidad de hardware cada vez más caro y debido al
elevado número de empleados encargados de proporcionar soporte.
Así que el desafío era
encontrar la mezcla correcta entre recursos monetarios y humanos
escasos, alta estabilidad y grado de predicción, y un desarrollo
rápido y fiable. En Buenos Aires resulta difícil encontrar
profesionales de las ciencias de la computación bien entrenados, la
mayoría 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 compañías.</para>
</sect1>
<sect1 id="freebsd">
<title>La solución FreeBSD</title>
<sect2 id="freebsd-intro">
<title>Introducción</title>
<para>A comienzos de 2003 teníamos un sistema de correo
CriticalPath bajo Solaris x86 y una máquina Redhat
para SMTP, Radius y DNS. Los servicios de DNS y Radius se caían
constantemente y estábamos luchando con colas enormes de correo
electrónico. Hubo un intento de instalar CriticalPath para Linux
en Redhat en una máquina Intel con una tarjeta Megaraid, pero la
latencia del disco era enorme y la aplicación de correo
no llegó a funcionar.</para>
<para>El primer paso realizado hacia la <quote>solución &os;</quote>
consitió en migrar este hardware y software comercial a &os;
4.8 con la ayuda de la emulación Linux.</para>
</sect2>
<sect2 id="freebsd-choice">
<title>La elección de &os;</title>
<para>El sistema operativo &os; goza de una merecida fama de por su gran
estabilidad, junto con su pragmatismo y sentido común a la hora de
poner aplicaciones <quote>on-line</quote> gracias a su excelente
<ulink url="http://www.FreeBSD.org/ports">colección de Ports</ulink>.
Nosotros consideramos su <ulink url="http://www.FreeBSD.org/releng">
proceso de generación de releases</ulink> muy sencillo de entender,
además de que la comunidad de usuarios de las listas oficiales
de correo electrónico mantiene un estilo educado y civilizado
cuando ayudan o leen los problemas de otros usuarios y sus soluciones.
</para>
<para>Otra característica importante es su rápida
implantación.
Afortunadamente pudimos establecer nuestra política de
instalación de SO alrededor de las capacidades predefinidas de
&os;. En una compañía pequeña algunas veces
necesitas ir corriendo a un centro de datos y
rápidamente levantar un servidor para
proporcionar algún servicio. En los dos últimos años,
Argentina.Com adquirió alrededor de cuarenta servidores, la
mayoría Pentium IV pero también varios Xeon duales y unos
cuantos Opteron duales para ubicarlos en los centros de datos
donde tenemos los contratos de operaciones de <quote>hosting</quote>
y de acceso
telefónico a redes. Todos ellos ejecutan &os;, desde 4.8
(un par de ellos con dos años de <quote>uptime</quote> y
cero problemas) hasta 6.0-BETA2.</para>
<para>La política general que tenemos para con el sistema
operativo consiste en intentar llevar a todos los servidores a la rama
de código estable de una forma periódica utilizando
<literal>RELENG_4</literal>, <literal>RELENG_5</literal>
y ahora <literal>RELENG_6</literal>. Estas operaciones nos permiten estar
más preparados ante posibles amenazas de seguridad a nivel del
sistema operativo o del software base del mismo, especialmente en los
servidores web.</para>
</sect2>
<sect2 id="freebsd-engineer">
<title>Reingeniería básica</title>
<para>El prime paso de reingeniería fue poner en funcionamiento
dos máquinas &os; 4.8 cuya única tarea iba a consistir en
ser DNS autorizados para todos nuestros dominios. El software elegido
resultó ser BIND9. Estas máquinas se ubicaron en diferentes
centros de datos, cuidándonos 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 así poseer unos mejores márgenes de reacción
en caso de problemas.</para>
<para>El segundo paso consistió en desplegar dos máquinas
más del mismo tipo, también en distintos centros de datos,
para sólo servir Radius y DNS recursivo. Los servidores de
acceso de red (<quote>Network Access
Servers</quote> o NAS) de los operadores de telecomunicaciones se
configuraron para enviar las peticiones de autorizació y
<quote>accounting</quote> de Radius hacia los nuestros, y
también para asignar dichos DNS recursivos
a nuestros usuarios de acceso telefónico.</para>
<para>La tercera <quote>regla de oro</quote> consiste en no poner
jamás en la misma máquina el servicio de entrada
y salida de correo SMTP. Desplegamos máquinas &os; distintas
utilizando Postfix tanto para la entrada como para la salida.</para>
</sect2>
<sect2 id="freebsd-email">
<title>Migración del correo</title>
<para>La migración del correo requería una
planificación cuidadosa debido al hecho de que íbamos a
a migrar tanto los frontales como los <quote>backends</quote>.
El primer paso fue construir un sistema perimetral antispam
y antivirus con &os; 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 <quote>backend</quote> estuviera en funcionamiento.
Entre tanto añadimos pequeñas máquinas &os;
para incrementar el <quote>spool</quote> de correo de
CriticalPath sin ningún problema.</para>
<para>En la primera línea 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)
además de una <emphasis>lista negra</emphasis> derivada de
SURBL que resultó no dar casi ningún falso positivo.
Los correos eran multiplexados hacia un
cluster de Xeon duales y Opteron duales donde ejecutábamos
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 más tolerante, cada uno con
niveles de corte y de descarte. A cada correo electrónico
recibido el sistema le asigna una determinada puntuación.
Los correos con una puntuación por debajo de la puntuación
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
envían a una carpeta del usuario
denominada Spam, y por último aquellos correos por encima
del nivel de
corte se descartan porque se considera una situación 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,
colocándolos en las <quote>listas blancas</quote> de forma
automática.</para>
<para>Con la introducción de Spamassassin 3.x, el tráfico
de DNS utilizado para preguntar a las listas negras de correo
creció
considerablemente, de tal forma que firmamos acuerdos con SpamCop,
Spamhaus y SURBL para instalar réplicas públicas de
sus bases de datos en nuestro equipo &os;. Gracias a estas
réplicas, que nos costaron entre 1 y 2Mbps de tráfico,
fuimos capaces de
reducir drásticamente la latencia de Spamassassin.</para>
<para>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 <quote>backend</quote> Cyrus-Imap con
autentificación MySQL,
nos dimos cuenta de que necesitábamos 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. También instalamos perdition (un proxy de POP3 y
de IMAP) entre medias para asegurar una migraci&acute;n transparente
y permitir la distribución entre distintos servidores de
los buzones.
En resumen, toda la información de localización de un
buzón de usuario está en MySQL, y dicha información
se encuentra disponible para todo el software que forma parte de
la cadena.</para>
<para>Respecto al hardware para el espacio de disco, actualmente
utilizamos siete máquinas &os; con Cyrus-Imap de distinto hardware.
El mayor es un Pentium IV con 4G de RAM y tarjetas 3ware
con 12 bahías extraíbles en caliente,
organizadas en 3 unidades RAID-5
de 1 Terabyte cada una. El software 3ware envía un correo
electrónico al administrador cuando el RAID se degrada
(en la mayoría 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
<quote>selftests</quote>.</para>
<para>Como software de correo web elegimos un producto comercial
denominado Atmail, disponible con sus fuentes en perl y que
utiliza mod_perl. Bajo &os; resulta extremadamente
sencillo gestionar los módulos de perl y no es necesario usar
la <quote>shell</quote> de CPAN; únicamente hay que seleccionar
el port correcto y ejecutar <quote>make install</quote>. Tras varios
meses de trabajo de integración pudimos integrar la parte cliente
de Atmail que habla IMAP con nuestros <quote>backends</quote>.
Tuvimos que modificar algunas partes del código para adaptar
el producto a nuestro entorno libre y para hacerlo compatible con nuestro
perímetro antispam antivirus, además de aplicar
nuestras personalizaciones y traducciones.</para>
</sect2>
<sect2 id="freebsd-web">
<title>Migración web</title>
<para>Con la adopción de &os; no hubo que realizar ningún
esfuerzo adicional para tener en ejecució 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
resultó una vez más extremadamente útil
y nos permitió hacer cosas como comprimir los contenidos de texto y de
html de Apache utilizando unas pocas líneas de
documentación. Además, hemos experimentado
un rendimiento excelente y una estabilidad y <quote>uptimes</quote>
extraordinarios.</para>
</sect2>
</sect1>
<sect1 id="results">
<title>Resultados</title>
<para>Conseguimos implantar una arquitectura de correo electrónico
basada en &os; que es escalable horizontalmente, utilizando 3
Terabytes de almacenamiento basado en servidores Intel incurriendo
en un coste de 3 dólares por Gigabyte con redundancia.</para>
<para>La gran estabilidad alcanzada permitió a Argentina.com explorar
otros campos como el <quote>hosting</quote> para terceros y el
<quote>housing</quote> con presencia
en los centros de datos argentinos.</para>
<para>Ahora ofrecemos también acceso telefónico a redes
corporativas para usuarios de <quote>roaming</quote> y Perú
gracias a nuestra presencia y a los acuerdos suscritos con la
mayoría de los operadores de telecomunicaciones.
Entre nuestros clientes indirectos se encuentran las principales
compañías americanas como Ford, Exxon y Reuters.
También estamos en el negocio del acceso telefónico a redes
en Brasil, Chile, Colombia y Panamá.</para>
</sect1>
</article>