RSS
 

Archive for the ‘Escalabilidade’ Category

Instalando Erlang no Mac OS X Leopard

04 abr

Fanboy

Recentemente migrei para o mundo Mac com a compra de um MacBook Pro. Embora seja um equipamento caro, ao se comparar com outros notebooks com a mesma capacidade de hardware ele chega até a ser mais barato. Compare com um Sony Vaio com as mesmas especificações. Sendo assim, preferi investir num Mac que geralmente atinge melhor valor de revenda do que um PC.

Erlang

Erlang é uma linguagem de programação funcional criada pela Ericsson em 1987 que tem foco em concorrência, sistemas distribuídos e tolerância a falhas. Ultimamente vêm se tornando muito conhecida graças a seus recursos de concorrência e ao foco da computação em paralelismo ao invés de mais ciclos de processamento para escalabilidade.

Para prosseguir com meus breves estudos de Erlang, resolvi instalá-lo no Mac. Cheguei a pensar em instalar ele numa máquina virtual VMware ou Parallels, mas isso envolveria a aquisição destes softwares. Além disso eu não estaria aproveitando 100% do hardware para testar a capacidade do Erlang.

Bom, vamos ao que interessa.

Requisitos

Compilar e instalar

Eu criei uma pasta dentro do home do meu usuário e deixei lá dentro tudo o que precisei para compilar o Erlang.

Os comandos abaixo estão de acordo com as versões que utilizei. Caso utilize uma versão diferente, faça as devidas alterações nos nomes de arquivos e diretórios. Caso descubra alguma particularidade da versão, fique à vontade para comentar no final deste post.

$ tar xvzf otp_src_R13A.tar.gz
$ cd otp_src_R13A
$ ./configure --enable-hipe --enable-smp-support --enable-threads
$ make
$ sudo make install

Para testar o Erlang:

$ erl

Você verá algo assim:

Erlang R13A (erts-5.7)  [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7  (abort with ^G)
1>

Para sair pressione Ctrl-C e depois escolha a opção (a) e pressione ENTER.

BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
a

O caminho padrão de instalação (prefix) é /usr/local. Caso queira utilizar outro prefixo, é necessário utilizar a opção –prefix no comando configure.

Documentação

Para instalar a documentação em formato man, utilize o seguinte comando:

$ sudo tar xvzf otp_doc_man_R13A.tar.gz -C /usr/local/share

Para testar a documentação:

$ man erl

Testando

Para testar se o básico está funcionando, crie um arquivo chamado hello.erl com o código abaixo. A palavra werld é um trocadilho de world com erlang:

-module(hello).
-export([hello_werld/0]).

hello_werld()->
    io:format("Hello WErld ~n").

Para compilar e executar o teste:

$ erl -compile hello
$ erl -noshell -s hello hello_werld -s init stop

That’s all folks… ;-)

 

O crescimento econômico, a escalabilidade e a crise

28 jan

O boom

Embora eu seja uma pessoa relativamente leiga em economia, as indagações abaixo são fundadas no que por algum tempo um grande número de pessoas presenciou nos últimos anos e é por este motivo que eu não me dei o trabalho de procurar fontes em sites de notícias para confirmar algumas de minhas afirmações a respeito da economia mencionadas neste neste post.

Antes da atual crise econômica muitos brasileiros estavam usufruindo de todos os benefícios do crescimento econômico do país. O maior poder aquisitivo da população e a redução de impostos, tornaram acessíveis a compra de computadores de todos os tipos, principalmente portáteis. Com toda esta parafernália tecnológica a demanda por conectividade na grande rede também vem aumentando à passos largos.

E com todo esse crescimento, vieram as dores de cabeça. Da mesma forma que quando uma criança cresce ela precisa constantemente de roupas novas, diversos outros serviços também precisam de aumento de capacidade. Este problema é facilmente observado em diversas outras áreas do universo humano. Um exemplo deste problema é o boom na venda de automóveis antes da crise e o reflexo disto no trânsito das grandes cidades.

Na área da Internet não foram poucos os incidentes ao qual presenciei com todo esse crescimento acelerado. Muito destes incidentes não chegaram à grande mídia pois na maioria dos casos as empresas de tecnologia não assumiram o despreparo diante de todo este crescimento. Muitos profissionais de informática certamente ficaram cientes de algum fato ou até mesmo fez parte dos bastidores sofrendo com este boom.

A indisponibilidade

Minha percepção sobre muitos serviços na época do crescimento foi de uma grande degradação na disponibilidade dos serviços. Foram sites com problemas de lentidão e estabilidade (ex.: Twitter), grandes provedores de serviços  de internet sofrendo instabilidades e cortando rigidamente o acesso aos serviços de clientes mais “pesados” (ex.: Dreamhost), acessos via cabo sofrendo lentidão com o crescimento concentrado de assinantes em determinadas regiões e com o crescimento do uso de P2P (ex.: Virtua).

Muitas pessoas que utilizam acesso via cabo, certamente já tiveram algum problema de lentidão. Existem inúmeras possíveis causas para lentidões crônicas mas me refiro a degradação na qualidade em geral dos serviços. É só verificar as notícias sobre banda larga em 2007 e 2008 para perceber que tais índices de crescimento certamente trazem grandes problemas.

A crise

Embora a crise tenha amarrado o consumo, a dependência da Internet na sociedade continua aumentando, porém num ritmo um pouco menor. No âmbito do pão-e-vinho a sociedade, embora menos consumista, continua necessitando de mimos e distrações e a Internet é uma excelente ferramenta para isto. Sites como Orkut, Twitter, Facebook, Myspace, etc, são bons exemplos disto.

O alerta

Diante deste cenário me ouso a afirmar que este é o momento das organizações de tecnologia investirem e pesquisarem sobre escalabilidade e alta disponibilidade. É o momento para se prepararem melhor para o próximo boom e desta vez de uma forma que ninguém perceba. É o momento das universidades investirem no ensino sobre este assunto que aflige não só a informática, mas também muitas outras áreas.

Estes foram meus 2 centavos e mesmo que muitos acadêmicos não aceitam o Wikipedia como uma fonte de informação confiável, a contribuição que deixo para quem se interessou pelo assunto é esta: http://pt.wikipedia.org/wiki/Escalabilidade

Até o próximo post;-)