Faça a diferença
Expediente editorial Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br
Kemel Zaidan kzaidan@linuxmagazine.com.br Editora de Arte Larissa Lima Zanini llima@linuxmagazine.com.br EstagiĂĄrio Felipe Brumatti Sentelhas fsentelhas@linuxmagazine.com.br Colaboradores Alexandre Borges, Alexandre Santos, Arne RoĂ&#x;mann, Augusto Campos, Charly KĂźhnast, Chris Binnie, Christine KĂśnig, Dmitri Popov, Florian Effenberger, Jens-Christoph Brendel, Jon ‘maddog’ Hall, Klaus Knopper, Kurt Seifried, Marcel Hilzinger, Markus Feilner, Peter Vescuso, RenĂŠ Hesse, Thomas Leichtenstern, Udo Seidel, Zack Brown. Tradução Elias Praciano, Gabriela Edel Mei, Rodrigo Garcia, SebastiĂŁo Luiz da Silva Guerra RevisĂŁo Ana Carolina Hunger. Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg EĂ&#x;er, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian KiĂ&#x;ling, Jan Kleinert, Daniel Kottmair, Thomas Leichtenstern, JĂśrg Luther, Nils Magnus. AnĂşncios: Rafael Peregrino da Silva (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 3675-2600 Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com Amy Phalen (AmĂŠrica do Norte) aphalen@linuxpromagazine.com Hubert Wiest (Outros paĂses) hwiest@linuxnewmedia.de Diretor de operaçþes Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – AustrĂĄlia www.linux-magazine.es – Espanha www.linux-magazine.pl – PolĂ´nia www.linux-magazine.co.uk – Reino Unido www.linuxpromagazine.com – AmĂŠrica do Norte Apesar de todos os cuidados possĂveis terem sido tomados durante a produção desta revista, a editora nĂŁo ĂŠ responsĂĄvel por eventuais imprecisĂľes nela contidas ou por consequĂŞncias que advenham de seu uso. A utilização de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permissĂŁo expressa da editora. Assume-se que qualquer correspondĂŞncia recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, sejam fornecidos para publicação ou licenciamento a terceiros de forma mundial nĂŁo-exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux ĂŠ uma marca registrada de Linus Torvalds. Linux Magazine ĂŠ publicada mensalmente por: Linux New Media do Brasil Editora Ltda. Rua SĂŁo Bento, 500 Conj. 802 – SĂŠ 01010-001 – SĂŁo Paulo – SP – Brasil Tel.: +55 (0)11 3675-2600 Direitos Autorais e Marcas Registradas Š 2004 - 2012: Linux New Media do Brasil Editora Ltda. ImpressĂŁo e Acabamento: RR Donnelley DistribuĂda em todo o paĂs pela Dinap S.A., Distribuidora Nacional de Publicaçþes, SĂŁo Paulo. Atendimento Assinante www.linuxnewmedia.com.br/atendimento SĂŁo Paulo: +55 (0)11 3675-2600 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280 ISSN 1806-9428
Impresso no Brasil
Linux Magazine #87 | Fevereiro de 2012
Da sĂŠrie: “do que o mercado de trabalho precisa de verdadeâ€?, quis abordar nesta edição uma caracterĂstica bĂĄsica necessĂĄria a qualquer tipo de atividade profissional e que, segundo pesquisas, falta a uma grande parcela da força de trabalho atualmente, mormente Ă queles profissionais provenientes da assim chamada “Geração Yâ€? e que pode significar a diferença na ascensĂŁo do profissional dentro da estrutura das corporaçþes, sendo comumente designada pelo jargĂŁo “vestir a camisaâ€?: o compromisso com a empresa, suas metas e, igualmente importante, com a qualidade do seu trabalho. Conta uma velha histĂłria que uma galinha um dia chegou para um porco e disse: “Estou com uma oportunidade de negĂłcios Ămpar nas mĂŁos, uma oportunidade que pode nos tornar ricos, mas preciso de um sĂłcio como vocĂŞ!â€? O porco, claro, ficou interessado no “NegĂłcio da Chinaâ€? que a galinha havia descoberto. E ela continuou: â€œĂ‰ um negĂłcio em que servimos cafĂŠ da manhĂŁ de altĂssima qualidade Ă s pessoas: eu forneço os ovos, e vocĂŞ fornece o bacon...â€? Apesar do tom jocoso da fĂĄbula acima, ela nos dĂĄ ensejo a classificar o tipo de compromisso que podemos assumir dentro do nosso ambiente de trabalho, e que vai refletir em nossa atitude diĂĄria dentro da empresa: queremos apenas contribuir “com ovosâ€? ou estamos visceralmente comprometidos com os resultados do negĂłcio como um todo, nĂŁo importando a nossa posição? Tenha certeza de que, se nos enquadrarmos no Ăşltimo caso, nossos superiores ou parceiros de negĂłcios vĂŁo sempre reconhecer o nosso valor – alĂŠm de lembrarem-se de nĂłs quando houver uma possibilidade de promoção ou quando uma oportunidade interessante aparecer. TĂŁo importante quanto o compromisso – e intestinalmente ligada a ele – ĂŠ a qualidade. Afinal, quem nĂŁo se compromete com seu trabalho, via de regra nĂŁo confere qualidade a ele. E aqui vale a mĂĄxima: nĂŁo se contente com qualquer coisa menor do que a excelĂŞncia e nĂŁo abra mĂŁo de suas convicçþes! Dentro de qualquer empresa sempre haverĂĄ, feliz ou infelizmente, profissionais que poderemos classificar em A, B ou C, no que tange ao nĂvel de conhecimento de que dispĂľem e de produtividade que podem alcançar. Nunca se contente com menos que o nĂvel A! E esteja sempre antenado com o que hĂĄ de mais atual acontecendo no seu segmento. Muitas vezes, isso irĂĄ lhe custar horas de sono, menos tempo junto Ă famĂlia e vai parecer loucura a muitos de seus amigos. Mas lembre-se de que os loucos que acham que sĂŁo capazes de mudar o mundo, sĂŁo aqueles que efetivamente o mudam, pois fazem a diferença. A histĂłria e a ciĂŞncia estĂŁo recheadas de exemplos desse tipo, que imprimiram a nossa sociedade um novo impulso para avançar. Einstein chegou a trabalhar mais de 90 horas por semana. E os desenvolvedores do primeiro Macintosh chegaram a imprimir camisetas onde se lia: “90 horas por semana e adorando!â€? Nenhum deles teria chegado aonde chegou sem esse nĂvel de comprometimento e qualidade. E, na ĂĄrea de tecnologia, o Software Livre ĂŠ uma das ferramentas mais poderosas para ajudĂĄ-lo a fazer a diferença! Aproveite. â–
EDITORIAL
Editores FlĂĄvia Jobstraibizer fjobs@linuxmagazine.com.br
Rafael Peregrino da Silva Diretor de Redação 3
ÍNDICE
CAPA Ao resgate, homens!
33
Que atire o primeiro pendrive, aquele que nunca perdeu um arquivo precioso, seja por acidente ou descuido.
Ufffa!
34
O TestDisk, e seu primo PhotoRec, irão ajudá-lo a recuperar os dados que você pensou ter perdido.
Visualize sua rede
40
A grande quantidade de ferramentas de monitoramento de redes para SNMP torna mais fácil a vida do administrador que precisa lidar com uma abundância de dados em constante modificação.
Ferramentas perigosas de teste
45
A ferramenta de monitoramento OpenNMS é uma arma útil e que pode fornecer uma gama de informações importantes para os administradores.
4
www.linuxmagazine.com.br
Linux Magazine 87 | ÍNDICE
TUTORIAL
COLUNAS Zack Brown
07
Klaus Knopper
08
Charly Kühnast
10
Kurt Seifried
11
Alexandre Borges
14
Augusto Campos
16
Uma nuvem para chamar de sua
55
NOTÍCIAS Geral
17
➧ PostgreSQL na nuvem da Amazon Configure uma nuvem pessoal no seu servidor com o ownCloud.
➧ Um tablet com a interface Plasma do KDE
Entrega silenciosa
60
CORPORATE Notícias
20
➧ Greg Kroah-Hartman deixa a SUSE para trabalhar na Linux Foundation ➧ Lenovo ameaça liderança da HP ➧ Android aumenta sua presença nos tablets ➧ Dez anos de suporte da Red Hat Entrevista com Nils Brauckmann
22
As chaves do sucesso para o Código Aberto
26
Coluna: Jon “maddog” Hall
30
Coluna: Alexandre Santos
32
ANDROID Sem amarras
ANÁLISE Ônibus corporativo
64
50
Via de regra, os fabricantes de smartphones equipados com Android definem o que os usuários podem ou não podem fazer com o telefone. Com alguns truques, entretanto, é possível obter o controle total do seu aparelho.
Um serviço de Bus corporativo é uma via expressa centralizada para dados em ambientes com arquitetura orientada a servidor. Um bom ESB lida com orquestração, roteamento de mensagens e análise de eventos.
SEGURANÇA Entrevista: Jim Reavis
O Offlineimap sincroniza suas contas IMAP em uma máquina local, oferecendo backup completo e uma série de funções offline.
48 Duelo de bancos de dados
72
A competição entre MySQL e PostgreSQL é tão antiga quanto os próprios bancos de dados e sem um vencedor claro. Apesar disso, é sempre emocionante e elucidante assistir à batalha dos dois.
SERVIÇOS Sentamos-nos com Jim Reavis, co-fundador e diretor executivo da Cloud Security Alliance, para falar sobre a função e a missão da CSA, agora e no futuro.
Linux Magazine #87 | Fevereiro de 2012
Editorial
04
Emails
06
Linux.local
78
Preview
82
5
Coluna do Alexandre Borges
COLUNA
Sistemas de criptografia Nosso colunista apresenta aos leitores alguns dos algoritmos de criptografia mais conhecidos e outros nem tanto…
E
m continuação ao assunto do mês anterior, é comum ouvirmos falar nos mais diversos modelos (alguns chamam de sistemas) de codificação. É claro que não é possível entrar em qualquer detalhe mais específico nesta coluna, contudo vamos tentar comentar algo aqui. Um sistema antigo e digno de nota é o modelo chamado “Null Cipher” (ou cifragem de encobrimento) onde, na verdade, não ocorre qualquer criptografia, entretanto o leitor sabe quais linhas ou letras ler no texto e, com isto, recuperar a mensagem pretendida (por exemplo, no filme “Desconhecido” há algo nesse sentido). Outros sistemas clássicos, já que temos hoje em dia algoritmos mais modernos como as cifragens de bloco e streams, assim como os modelos de chave pública e privada, são as cifras de substituição (que, como o ROT 13, são muito curiosas ), pois envolvem algum tipo de substituição de uma letra por outra baseando-se numa variável criptográfica ou temos as cifras de transposição onde é realizado o deslocamento do alfabeto para a criação do mapa de substituições. Em geral, ambas são aplicadas em conjunto. Por exemplo, poderíamos criar algo mais simples aqui tendo a primeira linha com as linhas do texto original que encontramos e a segunda com a troca a ser feita:
14
podem ser vistos em páginas da Wikipédia sobre essa forma de criptografia [1] [2]. O problema destas cifras é que elas são suscetíveis à análise de frequência, ou seja, é possível inferir qual letra da codificação resultante corresponde a qual letra verdadeira do texto original pela taxa de ocorrências (o leitor pode aprender mais em uma página do Wikibooks sobre o tema [3]), algo que não ocorre com One-Time Pad (inventado por Gilbert Vernan) porque, nesse caso, a chave pode ser tão longa quanto se queira (em geral, do tamanho do texto a ser codificado) e nunca se repete. Para que este esquema seja eficiente, ambas as partes trocam previamente uma sequência de letras, atribui-se a cada letra sua série numérica natural (A=0, B=1, C=2,...) e usa-se ainda a função matemática “mod” pois existem apenas 26 letras (lembre-se que 30 mod 26 = 4) . Observe uma aplicação simples do que acabamos de expor: Sequência aleatória trocada entre as partes: eoralqjdnagflrappmkdlahwakxnazcqerdloqpjd...
Sequência “numérica” das letras: A B C D E F G H I ...X Y Z 0 1 2 3 4 5 6 7 8 ...23 24 25 Texto a ser codificado:
L
I
N
U
X
ABCDEFGHIJKL ... EFGHIJKLMNOP ...
Equivalência numérica:
11
8
13
20
23
Equivalência aleatória:
E
O
R
A
L
Neste caso, a palavra “GEEK” transformaria-se em “KIIO”. Acho que o leitor já entendeu que deslocamos na linha de baixo o alfabeto em cinco posições. Aliás, o romano Júlio Cesar (13/07/100 a.C – 15/03/40 a.C) já usava tal mecanismo, mas com o deslocamento de apenas 3 letras! Outros modelos de transposição
Equivalência numérica:
4
14
17
0
11
Valor resultante cifrado:
15
22
30
20
34
Após aplicação do módulo:
15
22
4
20
8
Texto codificado final:
P
W
E
U
I
Tabela 1 Codificação da palavra Linux.
www.linuxmagazine.com.br
Feito isto, podemos levar adiante nosso exemplo (tabela 1). Então, usando o método de One-Time Pad, a palavra “LINUX” se transformou em “PWEUI”. Você pode encontrar mais detalhes sobre o método em sua página da Wikipédia [4]. Por fim, outra maneira interessante de não permitir que ninguém possa ler a mensagem trocada entre duas partes é fazer uso da Esteganografia (que o leitor já conhece bem) o qual realiza a ocultação (codificando ou não) das mensagens em outros meios como fotos ou arquivos mp3. Existem boas ferramentas para Linux como o SteGui, Steghide e OutGuess. No mês que vem eu irei encerrar esta sequência justamente comentando sobre as principais características dos principais algoritmos que estavam envolvidos na primeira coluna desta série sobre criptografia e outros detalhes. Até mais. ■
Mais informações [1] Transposition cipher: http:// en.wikipedia.org/wiki/ Transposition_cipher [2] Vigenère cipher: http:// en.wikipedia.org/wiki/ Vigen%C3%A8re_cipher [3] Cryptography/Frequency analysis: http:// en.wikibooks.org/ wiki/Cryptography/ Frequency_analysis [4] One-time pad: http:// en.wikipedia.org/ wiki/One-time_pad
Alexandre Borges (alex_sun@terra.com.br) é instrutor independente e ministra regularmente treinamentos de tecnologia Oracle (áreas de Solaris, LDAP, Cluster, Containers/OracleVM, MySQL, e Hardware), Symantec (Netbackup, Veritas Cluster,Backup Exec, Storage Foundation e SEP) e EC-Council (CEH e CHFI), além de estar sempre envolvido com assuntos relacionados ao kernel Linux.
Linux Magazine #87 | Fevereiro de 2012
15
Coluna do Augusto
COLUNA
Em 2012, aprenda a programar Seja para desenvolver e modificar algum programa ou simplesmente para entender o que se passa no seu computador, nunca o conhecimento em programação foi tão importante como agora.
L
eitores da Linux Magazine já têm fartas oportunidades para aprender alguma linguagem de programação: por aqui já foram publicadas séries memoráveis de artigos de expoentes do desenvolvimento, transmitindo seu conhecimento e técnicas em boa parte das tecnologias atuais populares em ambientes Linux. Mas aprender uma linguagem de programação não é a mesma coisa que aprender a programar. Quem já aprendeu a programar geralmente não encontra grandes dificuldades em fazer a transição para uma nova linguagem ou ambiente (e este costuma ser o foco dos artigos a respeito), mas aprender os fundamentos da programação em si usualmente exige mais esforço e algum apoio interativo, de preferência vindo de um professor, tutor. Embora as sequências, repetições, decisões, entradas e saídas sejam técnicas simples de descrever, aprender a usá-las de forma estruturada é um desafio para muitos, que nem sempre encontram os recursos e a motivação necessários para superá-los. Se esse for o seu caso, ainda estamos suficientemente no início do ano para que eu possa aproveitar este espaço para lhe transmitir um convite: que tal incluir em seus planos para 2012 aprender a programar, mas de uma maneira diferente? Esta proposta circulou bastante na virada do ano, vinda do site Code Year [1], que vai oferecer lições interativas semanais de programação, e promete que os interessados vão programar aplicativos e sites antes mesmo que se deem conta. Como muita gente que deu seus primeiros passos na programação usando BASIC nos computadores pessoais de 8 bits nos anos 1980, é perfeitamente possível aprender os conceitos básicos usando um ambiente interativo, e é essencialmente isso que o Code Year oferece como complemento as suas lições.
16
A proposta é interessante, e centenas de milhares de pessoas se inscreveram nos primeiros dias do ano. Elas já passaram pelas lições iniciais e, provavelmente, se divertiram interagindo em seu próprio navegador para ter um primeiro contato com a forma como operações aritméticas são definidas e resolvidas, como obter confirmações do usuário e outros elementos essenciais (como variáveis numéricas, strings, vetores, seleções, repetições etc.) que, aos poucos, vão construindo um primeiro programa. É só na altura da segunda lição que o aluno chega a ser informado que a parte introdutória do curso usa a linguagem Javascript e, para ser franco, a forma como o curso é construído me surpreendeu pela linguagem que se adequa à finalidade de experimentar interativamente os rudimentos da lógica de programação. Aprender a programar pode ser útil para quem quer estar apto a desenvolver ou modificar (no espírito do código aberto, é claro) aplicativos, utilitários e complementos que lhe interessam, mas também, pode servir para, simplesmente, entender melhor o que acontece nos bastidores do seu computador, como usuário ou gestor. E a quem já sabe programar, apresento duas extensões do mesmo convite: que tal aprender uma nova linguagem ou ambiente em 2012 e aproveitar para ensinar os primeiros passos a algum novo interessado (talvez até com ajuda do Code Year)? Eu já coloquei em prática os dois enfoques, e estou gostando. Experimente você também! ■
Mais informações [1] Code Year: http://codeyear.com/ Augusto César Campos é administrador de TI e, desde 1996, mantém o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.
www.linuxmagazine.com.br
Em 2012 chega ao Brasil a maior revista alemã de informática e tecnologia
e 4S
Teste | iPhon
one te | iPh
4S
Tes
ne 4S
iPho Teste |
de sinível tes e os o ren tam dife o mes. Tes ações ena ente a ant ias situ exatam nov vár el faeu em nec possív a 14,4 nal perma no 4S. vez é 4S cosa one 4, mas suas ça ele no 4 e eira e em prim no iPh ren mo texto r a dife ssor. Pela nloads do iPhonepermanec qual pelo ece Tal e mesmo determina se ant uciosa zer dow o dobro upload de Mbit/s, e de a sair Nem de-se 4S e o min o eiro po one paraçã o o fato dad o primple com os tas re o iPh a com es com m alguns veloci foi Ap model , ent 4S s um detalh estare que faz da os de one 3GS Apena revelar volume baixo, o de proiPhone ricas don fáb adas mas os tir do iPh o ou do s pode tões de is para inhas feit per 5, par os bo tros ma umas cap mais geraçã alizado iOS á nas sa eira ra milímeque alg encaixem smo est caça ser atu a libe antigo terc me na car dimais touch de podem sistem mite se ça com o não per as tas ren do e iPod também O nov nes e feit teção . A dife as pre esquer rutura 1 e. linh o iTu es sejam iPad ament a est molados mente novas do dos idindo s gratuit arras com alizaçõ a acordo , dua mínio, res, div atu tra trêsário par a de alu as am uras rias Fi. fut traz, melho i- de o superio tes, con necess is um que ar”, via Wi- ema 200 de not reit tro par Isso foi de ma que sist ção defeito de“pelo novo , mais de ema ovado, em qua erior. stru o O ant um ple con o sist era ren uma uen nov delo dar a e rige a Ap peq segucom do um app Câm (tarefas) gra- acomo que cor 4 a um as: ao inte , neira, blic incluin s, um app bretes á agora antena o iPhoneções pú certa ma rede lem igo aa ou ficaçõelista de Ele est o ant rela elh al da one um lev . ui de esp de , o sin o iPh reuma virtual substit e faz o que sastre fone r, ca ge tele a antena . Com ças à a ind um ban Twitte iMessa permit a rar o do a o ralo is, gra import ao o ada pan ma lay, na do S pel o AirP conect está tam r ia par ntece s. Não recepde SM com a TV e o que em de- celula não aco antena relho, a os sa , isso cia de mento a, em umtament apa ram o nos 4S Ent em poréma ure dân ra cta. se vej TV, exa fone. ão, dun se seg inta idades A out Apple seu tele as nov iOS 5. tware como manece da recepçado com do tela sobre ess al sobre o do sof a usuá- ção per lidade aument es A quanão ter talh a especi de do lad web par ou PCs, matéri novida serviço t, Macs s maté- parece grande ud, um er iGadge icamo iClo ded . lqu éo bém ção de qua rios o qual tam nessa edi para pletas com rias
O 4S one
Teste
| iPh
iCloud
iCloud
iCloud oéo ecentem do serviç bacana ente o pelo agen Outra parteFotos. Se ativad todas da está , na reda Contatos e comprom iCloud no que finalmen ção: “Min pode artilhar issos Com os endereços MacBoo PC casa, ha Essa opção no Comp o recurso faz com capturate igua no bém dos servidores io, 30 dias aplicativos. uer momento foi para compromis pa!” O k da editora. meu iPho lzinha e ou últimos tos e de ós- usuár ta do incorpor sos e contatos time ne e O iClo > Diagn da a qualq fotos dos ra do seu iPhon Fotos com o ado na da c’t iCloud. no soluto. Apple infelizment a ud é et as ser altera Geral > Sobre entr guro câme acontece e não é assim uma ncia de em seu iGadg a arqu Ele perm versão grat colega O que pod ou em silên supimtão generosa. Mas Outrora das pela ssim como a Apple lança à Sequê enados nos Ajustes, Depois disso o ite o ivos emo uiquem já criou iCloud umuma cio ab- Mac da X, sisteele tentrepresentant s dizer isitos: problem adicionadas dos e armaz conta no iCloud, sua casae pastas que acesso se- usado qua do seu Mac OS istivos tico e uso. o para usar! tado ao noss seja uma nova novos pré-requ e envia ado a apenas anos traz atualizada . Os dipos fotos, pretend ndo um estão os serv pront a part de ou sejam o ção r do escr Apple uma ironicam de vendas? da Apple migração versão todo iços estará l todos no dos exec ir do do MobileMe, itório, s ospode ores da O novo até 1000 serviço online de se val de e se enc grupo de truque de sincroni ente dize Teria com don cional móve ente com um facilmente encontrar Mac OS utivos, ago sem ontrar nublado amigos tam- servid armazenam não tem limite ma opera a com pu- exem música r que soluçõe criar um ano, sozinho os en- os de um os com iOS 5 ou nenhumvelho e que zação já almente e conteúdo da com iOS s com túnel ra um velh dereços dessese-mails, até Mac, iPho 2007, juntam plicae. Esse equipad ou PCs plo, sem em cam em um festi Parci eram ivos prop nome iPhon VPN servidores. Macs ndo desde dom dados a sisao o com disposit ósito, um iClo do? Afin novidad o con lo de O endene, iPad ou usar telefona ínios promisso mas os te migra reço para o servidor apenas a não o faz juz os entou o a nec po aberto, troca de enviar isso hecial, não era Snow ou iPod novo mode s para a essi . O recurs doo Mob e de abalud esa apres volvedores A de calendários por gradualmen O que a empres s, endereç nada de o obje rem deze Leopard não func dinâmicos. pessoais encontra-se em a empr touch: ter antigo .Mac ar ileM bém vêm USB com o iTune anos já algum ento, ou seja, nas de dade de iona A con tivo O desen . brincar nas nuvens. os e nota A App porém, ˜/Library/Catua se já perm e e até o munmais de end . Há podem alendars, leto aos ão via de fotos. ento. o mom seus lizad trole sejaiColou em um arquivo le trou X 10.7 capdo iCloud opodsto, vezes. Caso mes no o recu s em todo o rolo Ocu .plist que fica dentro os insta tema compantes do lançam empresa conex et – caso se queira contatos, caas fotos xe ao rso e mui ereços, com itiam e equ mo o algumas partes bast prom s, vídeos para Inov M ltar dos ch s ntaneam do diretório que s os seus ,a de todas egaou direta-o usuário é que tas outr iparação ou iPod Buscar meu iCloud prom usar o ete com da para Seguido três mese quinta versão além das intern el obter email s de contas começa issouma também backup açãoac ente. O Uma cópiaodeixa issos, 10.5. displava claro as cois imp s X touch). ou e OS iOS é envia sequência bizarra iPho co sério possív mui atravé ositi res. ção orta Mac favo é apena além: o Mas na nov onli as. Servine to mais mm com . “Nun vos nte foi de letras ritos O serv o serviço , mas Mas (ou iPad iOS. Até an ne de iO pen funcio S cu iOS 3 ou com rios e notas turadas ou IMAP. ir um passo , mas tam e termina compor Leonh e números iço de o nov a nuvem assim como uitas gratuito O iCloa pagar cemca achei que não, ele fa- permitindinclusive estendid mesmo com o teoce dispositieévos a extensãoard resolveu melhorias e novas concep- lendá eMe, Exchange Buscar iPhone, até e para localiza- , backup entã stao Becker .caldav. bém não uem a o que ão Wi-Fi, amAs o novid o sso funcion da ud é entã dólares fotos valesse que O endereço para e Ole Mein Mobil os ment conex com men inúmeras que vão desde máq , que prec respr,ons deixa de nais como que App le ações r todos com o aos a res cidos ou com está A conta de ee-mailil ers mável pelo com uma er novas fotos. Fotos no ades os (d DAV fica escondido o servidor Cardisso.” do iCloud pod roubado putadore Macs, um uinaes ter suas com é gratuito o supimpapor a de notific ce, o ços adicioilidade de apaga e a sincrodotá pode ser visualizada nalidades, a ser as alg é gra rec o iCl começa usu comisav Stöbe ncia de para e gr ! Assi chances IMAP, como o Mail bbasicamente ácabo s espara receb àpor i amente em qual Markus s man5 GB de em sua , apenas Aha novo sistem es de interfa feito un ou do nas entranhas ainda mais funlam Sequê amente a possib do OS X 10.5. Apenas qualquer cliente com , sa USB, ário m com de sere tenham aça!) fazem ção do caso tuito sincroni Po poros us nadas cem autom mento has. ar. O d nã ndo do do sistema em as notas ficam separadas ectado na s se ssuporte capacida versão era o con nome no servidor. mai ical com t a dados remot nos detalh do Safari máquina o no iOS, m enc Library/Application ˜/ rviço que em uma pasta normal iTunes.udad do adicio também apare dispositivos bási com uário zero o ser s, nem e serve paco o tem de de ontrado o- serviços zaçãr oMa até peque seu cordão umbil é mais seus o dos favoritos nizadorenas nuvens. os Suport/Addresssem rkufio de mesmo s pod os Apesares, alt o deste ano, iPhoto oM do s foram armazenca gem não Book/Sources. s Stö s de nizaçã do em todos em env donos dess s. feita ciente viço. que sej para te de qu não outubro , bloq . O recurs iOS 5 corta partir de agora Também aqui obile diversas s mais expeMas para com men iCloud, ela beser um da erna Caso ticamente a essa conta o e deve iar uma uea é possíos sinc a- mente a ap a ma entra e as s. A vel achar um utador s rem parte, desde. novidad tivas po, rien Me, conta o iTune da arquivo Configurat ior en seus r ou apagar mensa- libertar te na estratég se encaixa dos os um comp po para configuovido lizar seus iPhones iCloud es no tes vão acharoconectados em uma seu o por padrã dad pelo ion. não plist dentro de seus nível de-se você 5 GB as pa ia do para o iOS 5. com) iCloud. necessário ou Windows para caixa e novo iCloud consiste Por den uma dispositi ia da App pervem ativad nte autorizado um r locaUm outro os à distânc completa- amarras s. Pa falta de sej ra tes s Mas para uma eço @me. au corretamente X O - não ma para com uma sequência pasta nomeada tirar da recurso lização, tro da ia. no app Notas e, parte do serviço ra qu rência com Mac vos móv le de m no Mac OS O iClo is ba até menta pois de am ins tar (com endercontatos, calen ser explicitame aparecem em do siset. Basta de . s letras existe no sere OS X nuv email s base 55 e dest eis ud de 10.6, iGadg uma núFotos meros. rat r como uma subpasta e PCs de de entrada fotos ufi em s hum das foto mer a vez mera ado atualizaçõe rar seu de e-m é basicam em para o do app uma nização favoritos e notas usuário. As da seção jáantigPara os o que oGB e o preo espaçoum tem Apple utiliza para pelos fundos. A Lembretes em app Ami anos, mesmo dos iGad s captura . A tran para cado de fotos ial, dentr e sincro ente Ambos os arquivos eu . Se você seus che Com o e-mail, calendáloca envio ail IMAP usar. Até das pela sfelembretes, iGadgets e podem ser aberps e envio “pelo ar” – o . das o, é pre que do Mo ço co dispo rios e contatos álbum espec2 também receb er a Sevia pus com noti um serviço mente gos, disp ga na form lizar tros partilhar gets fica esses últimos sistemas,já estiver com tos em editores dários, seus já os Vista câ-ma TV onib padrões os tema, backu r são feitos du bil receb Fotos. a carg de texto simples, ows ficaç IMAP, Cal- mesmo é possível até a do ils, com h e sinc tipo 4. migra ran ciso usav eM ntinua zar o na App Stor ilizado DAV e CardDAV, O Apple utado como o TextWrangler entre todosOS X Lion, Wind para poder ar todas as editar o texto das e. ronizaçã ões de seu com o iOS respectivamente. gratuita Docume s de arqu Para todo o do favoritos prom o comp (gratuito Mo ram te ess aceitar am o calendários atualização notas, mas re). isso e mostr gicamen marido e. Além ivos endereço de O s os ouLED impossível ntos a mu alg ser bileM de Macs com s, contatos e Procure pelo termo na App Stoacesso aos servidores nos mais antigos apenas novidad e tarefas, s, agenda o de esua TV ou seus da loca que era na Nuv deve-se web. Os quência de Fotos na viç te do co via um a iCloud mes leitura Email ape estão da e li- Tod o usar o s e Bum! permitida, sendo é Lá está o nosso nta até mesmo em em. filho nas ou 7. mos rafias direto listas Por si e em rela esse últim , notas, acessíveis s ain nça. as pe hosp de 20 pode impossível criar os a ente. temporá – é pos a aprovaçã s – loém são suas fotog também de suporte oficial um documento vas notas umbilical só necessário Os rm no- nome desses endereço. No geral, o ou editá-las. não seria esse con ção ao Mobo uma sível ma da ao edag 12, o no site da empreCordão 5 não é mais ão ou res- tamb dários incluem no novo app de 60” automágicam qu o dos Ninguém bordo! rio à servidores deve mem iCl sa. Para receber em seu nter, ativas e iOS ser algo ileM calen está como p04-caldav. ativaç bro do localizaç obter aces grar gle, Yah m lá essa junto de me oud. e-mails o endereço Com o de acessíveis e podem ser do icloud.com para s para a ns ou iPod recursose. com o nto s cois já No é imap.mail.me.com sit iDisk, até tarefas, oo e iCloud ão de qua so tar para o iClo forçando 5 as os bro mais as, já de acesso, nas nuve os usuários entan es, pa Ga meatantos usar o iTune um iPhone, iPad convite de retes do iOS você seu nov e para enviar lquer s pesso ud. É que ou s leria iTunes 4.3.3 TV, -mails endereço de ea ral outros que Goo algo chav do Mo contatos to, com outra Apple menos a do iOS irrecusável iTunes, Lemb é smtp.mail.me.com. tauração séries de s muito concordar Mac com o iPhone possível con mio co elame e artilhados mantém mesma oferecem ao invés do A partir O nome de usuário músicas, 4S . útil de co cativ es, sen bileM via USB o da ecpagand na iTune touch. Ao tar o dispositivo cois as- comp e a senha são e, a m ou mpart nte o iClo em grupo .com também podem baixar man ou seu ser os mesmos usados educado instanos e has, compradossitivo autori- grailhaud livre a. Mas a sin tro para uso do. Mas . O processo eira trad novo no end a, inclusive do seu Apple para conec ido por um do iCloud r meu iPho- livros e apps iCloud dispo icional, de ereço já está disponível ID, inno tan itens prefer croniz s mempara que ajuda clusive o que vier No site é até receb do o ao Busca ên qualquer ctiva. ea usar do ação www.ic acesso via prouração, Alt quiser. você é os depois do @, já Entr mai para quem o iClo e o acess aos documentos s Store em um ernati mente Dash cias que respe de config a, o país, ativar é preciso um e-mail Com têm tuitamente pode etanto, nem loud.com web ud é s rápide de a sistente pri- oferec válido para poder vai além. pela conta como te criado preciso entrar iClou conta vame parte board apli- O 1Pa er o idiom ação e a sua se registrar no nuvem do MobileMe autotodo . ne, assim requer ou Keyno aticamen- zado iTunes naUsuários para nte rs ssw baixar iCloud. a escolh do ão escolher d ser de de Pode ser um O conta até sep mundo mesm ord , Nume de localiz fio. A ativaç autom endereço @me.com oportunidade ra feita anpode passa ão ou um um Mac rodaa festa. O ara então tem aa opção a red sincro A Pages e enviados ador é serviços comp o serviço ou riorm anua o ve da você ão sem registro dispositi -se do. ndo o e sem niza internet. ço de e-mail qualquer. outro enderequalquerusandoos seusde sua Com no iOS . Pelo naveg baixar ele, amen entre tecontinuar l do ncim para en meira conex conexão à OS X o criar vo ou a turm fio ou as senhas r ou venciment paradetodos 10.7.2 uma confi- te para a nuvem uma en mu te mi us a data Tanto no iOS 3 nos a mesa dos rodando em mátic tigos até Store ar, apaga pela requer não escolher gra Mobil to de ar o dar tes, exig quanto no Mac s com ou a o pular de vez para el duplic ento disponível de na iTune intern coletadas tradoou r eM OS pode-se X 10.5 podemos o Win ente, sup PCs a App iOS 5. cadasanual ente nova um possív assinatura e é pre é po de ve a sua ess pode seguir, necessidade et, usa dire su entrar esses dados iCloud. dows de ortando le é melissíve z pa uer docum disositivos elimin ando a aça, do completam documento conta e po a ac e ser ndo inc manualmente mos uma fato ndo tament lha ciso , da Maria-Fum dentro ste guração o de dados a partir s ou qualq formatos. Um pode ser baiem uma nova a você Vista. Mas inclu o r- de ess vidor o Dro e ser l mescl ra a no lusive Há, porémestá iTune ma contaA favor do antig conta IMPA no Mail iCloud o po como nós mos sive pbo entrre os compda conta cu est de desca nização. MobileMe te va. recuperaçã pode estar no o digitar vários te, por exemplo, e usar l, PDF ou de sincro a x. ida ar esc derá ará. a opção dispos com praticamen que com- da to rigina nessa em máquinausar os serv traree-mails normalme nossa conta de funciona Apple ras na com doso duas Como Keyno Chav eleativar é precis suasantigos que ao ser Se for olher backup, el subir itivos ediç nte. seu forma iços do m s velh ático detos ligado a . Para isso mitação: os até on um , caso s lojas a qu com conta notas são movidas Até mesmo as equipamen Um eiro xado em . Também é possív conect inhas O recu ão. ma no Bra de todos estaria no iCloud ficaatualizouelseus ento autom -IDnão a da al ser a esc s, ionaesses pro- regam a para uma pasta de ainda co is ráp sil, -ID. ado ete que até rso De serem das pa para ainda sem ções própria – o que o Apple io é quest PowerPoint Quem s em atíveis com navegador. É possív Apple. Ma s conta ntrári app e ão fei oVolta ido o não é de se admirar, no iOS, dias. iosam seu Apple seus Macs , o usuár aqui rtes viag r “dados arquivos comp 90iOS 5 ouApple a uma pras o o s vas fun clu pelo de por com fio ou su o mú . último ans ao envia tas era já s para pa a que a no do Por bs são apenas rascunhos ser ído iCloud mui Meu ma em sto sozinho de iGadgets ch no mínim na lojadeda , da mes- ele por iCloud, os compromissos fora doconta – e a dispo s para o mos“ auMac não s ex ra mu á tra sped sica da pesso aves, tituída is co arm fun o Dr a assin tos com podem marcapode-se acessar -ID está baixar dos comimpossíveis de 200 OS X Lion ist um op cio o mot considerado , mp para do se estari gratui sé atura óstico anôni . Segun- grama volvedores seus apps à nu- muda r ooApple ou ento público de calendários tantor-irrisão tão uma etiqueta especial. são são da e subsitos do ática ida de pro ais. sive na no box. azená-la , mais ivo para Isso é um ento para anual ar ação partir do iOS A Ao assinar o URL Os desen em eventos existentes a Apple. enO sis seja, a sin licada uso e diagn para a Apple ch ple fun o desca mom Com o auxílio do compartilham s gra O integr mudanças . Ap de segundo titu Já aliz iClou do 4, uer mos entos mas 10.5. ser Ap ira, as X apropriado exemplo, propriado pag tou alg cro s de notas aparecem e ao dame tem da para com ap mo A partir na nte te, que, por MobileM d faz de uum servidor atu anôni d no iCal do OS tos mane ar viç un tuitos ple id CalDAV no iCal, aqueles do do docum do a ios qualq nu pela internet mesmo iCloud até mesmo a- ma c’t espec tomaticame esses dados , inform tante paraalmen a da s suas nização nte os dados do calendário e, tam e-mail, por a sincronização bileM s são , ma e mu à altura os ex lha iOS que Wind ps dis autom daqu vem e o iPo sem o Lion. 5, nova sincronizan sitivos do usuár esa, teúdo manu um Mac novo com o Lion 77 100 02/2012 ial 02/20 Segun são atualizados - em criação de novos. exem coisas s po itas ve e. Ro até . Ele - te m de que fer integ Apple senha especial es do vem, m s da a empr possuem 12 o iPad da atua- quanto a ático i, tudo sob seus daows. Umponív outras c’t os dispo iCloud.com plo. Em de meno c’t especial 02/2012 no iOS e, querem 02/2012 for rad não itens entre me web. r ze s todos s ificaçõ co ou especial em comp ram c’t eis tes on o via s em comp . lho isso ensação, e espec penho e tre outro pre mper incluem, Elas nseg ma tra mas não podem para , incluen o ao é tão -ameri guard dos ma a de o acess o iPh res me não aração presen sa hardware agora nspa tas qu OS mas sem cano a do para erda) is sig svanta iOS vanta s for da com o que smo ao Mobi nave até co uem pode-se já ções de as de desem amenda – ne 4S (à esqu volume. leMe, nece maçã configura equip Drop serviç iloso gem e gado nseg ser tão rente e tra X pro foi no ecos o Mo a, métric ge da dos vid como us sistem ns de ba r regra rar do 100 ad o on s est o uso ore es e co sistem é bo ue res 13 ble tícia aguar ce-se o iPho ker s de e-ma as regras de botõ s em conc res 113 plo 112 arã ma usad as na wo ma x, e arm m int confo amen dados sobre ret a a dos tem ntar , rd pa s co is de que no line no o il na versã nhe acim rd Bec fun têm-se Cupe as. Se nha automas no intern aze egrar rtáveis. - Sto a o recoLeopret o web, alg com diatpor cio re e ra ma m seg uma passa rtena -se um linha perso nand ainda rtino ca um atica Finde et, ma r as a ve aos De ime pela c’t especia c cu ura vez do as do r l 02/2012 O O l 02/2012 exata naliza o. Alé parte ir, po s ser c’t especia seg 1Passw mente não são s as senha 6 tan Keyc rsão pa sta US nça. O sobre ape ap nas s r ue ord , por 1Pa supo chaves Qu mente r as m dis dos rec exem - autom sin para to na hain2Go ra iOS 50 c’t especia ssem cro ex é so na ofe l 02/2012 l 02/2012 sim custa sai po rtas , é po ursos App impo atica nizar um de emplo rtada Este iOS, ma versã às c’t especia s r ple não o de ssí pre suas sm um de rtar, mente sua ba sses qu . 101 um progra s ain para apen US 10. 76 ser vel se for . O a em ente cisa ch ne po se e ma da est OS X as US ves aves esq do cessi viços pre tem pre progra de da con- ele rod uco á qu sa de uecê iDi dade ciso, se do OS e sen a em difere um em fas anto ma do sk c’t esp hosp -lo e po s. site redigi X, pa has do o seu po s pla nte doa abord e beta. ecia edag contr de no s ac tar tod ra qu Acess mo de l 02/ de Poste um 1Pa agem 2012 e vo lho em atar fun ssw ula os os cê não às Ch rio de do ord si- leção rmen dos ao seus ano o : para em um te é Ma lon registr precic os outro c’t espe arq possí go cial 02/2 s dis uivo vel sal dos an em 012 positi loc os va vos al, trans r a co . em O Key um ferí-lo a red c’t e com chain2Go e o com progra sincro iGadge ma Ace niza ts. sso seu ban às Cha co de ves do Ma dados o c OS Xe
A
r elho zes m cdeos doviOeS 5 e o iCloud Cin da novi
raos o futuro lta paantig De vo equipamentos iCloud em
Entre o céu
iCloud para
todos os gostos
R e a Terr a
Dan
ça d
Com pleta ndo
a Ch
o iC loud com outr os se rviç os
uva Q
O
As
ram as fo câtranh hor as en s, mel oS do as su .M rápi re e ais ssor sm wa tece áfico ard ri. u an gr h Si se e, fala l ao ovo l-Cor ca. igua to de e bran on Dua te r en preta s en o cores sado ecim am el nas am atic oces disponív conh está é pr Test ne 4S vo pr e de re 4S O iPho s: no ar ,o fora rada softw Por vo elho o no to m 5e mui S ann a, iO Ehrm mer por
S
e4
on
iPh
Ste
phan
a iri n
tica prá
12 101
Em março nas bancas!
iClou
d
Resgate de dados
CAPA
Ao resgate, homens! Que atire o primeiro pendrive, aquele que nunca perdeu um arquivo precioso, seja por acidente ou descuido. por Kemel Zaidan
Q
uem nunca perdeu um arquivo ou pasta importante, de certo não tem intimidade com computadores há muito tempo. É quase impossível não passar por alguma situação desse tipo um dia. Mas fique tranquilo, se esse é o seu caso, certamente este momento haverá de chegar para todos, porque como diz aquele outro ditado americano: "sh*t happens". Motivos para desastres não faltam: talvez você tenha arrastado acidentalmente uma pasta para a lixeira ou quem sabe derramou café no seu HD externo; ou mais provável ainda, tenha formatado uma partição perdida em sua máquina para poder testar a última distribuição Linux do momento, sem se dar conta de que nela haviam arquivos importantes. Independente de qualquer sentimento que possa advir dessa situação, muita coisa pode ser feita para recuperar os seus dados mesmo que você tenha trocado o sistema de arquivos da partição comprometida. Para não dizer adeus de vez à coleção de fotos da sua família – que você acumulou por anos – ou ainda às 15 temporadas completas do seu seriados favorito, é preciso estar preparado não apenas com as ferramentas certas, mas também com o conhecimento de como utilizá-las. No campo do resgate de dados, o Linux se destaca, pois sua capacidade de interoperar com diversos outros sistemas operacionais e de arquivos faz dele a opção ideal para esse tipo de uso. Junte isso à possibilidade de executar o sistema em modo Live-CD e você terá um kit de ferramentas básicas de recuperação de formato simpleS e sempre acessível. Há
inclusive distribuições dedicadas a esse fim, como o SystemRescueCD ou mesmo o bom e velho Knoppix. Contudo, de nada adianta ter todas as ferramentas na mão se você não souber o que elas podem fazer por você. Duas das estrelas dessa edição são o PhotoRec e o Testdisk. Com eles você poderá encontrar arquivos perdidos na imensidão de seus discos, mesmo que esses já tenham sido formatados mais de uma vez. Por isso, da próxima vez que algo do tipo acontecer, não deixe o desespero tomar conta da situação. Vá direto para a sua coleção de edições da Linux Magazine, lembre-se do número #87 e das páginas que vai ler agora. Boa leitura! ■
Matérias de capa Ufffa!
34
Visualize sua rede
40
Ferramentas perigosas de teste
45
Linux Magazine #87 | Fevereiro de 2012
33
Nuvem pessoal com ownCloud | TUTORIAL
Construa o seu serviço pessoal na nuvem
TUTORIAL
Uma nuvem para chamar de sua Configure uma nuvem pessoal no seu servidor com o ownCloud. por Dmitri Popov
M
over seus dados e aplicativos para a nuvem parece ser uma ótima solução para muitos problemas. Você pode acessar seus arquivos e documentos a partir de qualquer dispositivo conectado à Internet, sincronizar dados entre várias
máquinas, e permanecer produtivo enquanto está em movimento. Uma infinidade de serviços baseados em nuvem de terceiros, ficariam felizes em armazenar seus dados e oferecer-lhe acesso a seus aplicativos baseados na web por uma taxa mensal ou
Figura 1 A ferramenta tasksel pode rapidamente transformar um desktop com Ubuntu ou Debian em um servidor.
Linux Magazine #87 | Fevereiro de 2012
anual, mas esta abordagem levanta um outro conjunto de questões de
Quadro 1: Experimente o OwnCloud Se você quiser experimentar o ownCloud sem se comprometer com uma instalação completa, há várias opções à sua disposição. O site do projeto mantém uma instalação de demonstração do ownCloud, que você é livre para explorar sem se registrar ou criar uma conta. A última versão estável do ownCloud também está disponível como um appliance virtual baseado no openSUSE [3], de modo que você pode experimentar o ownCloud usando um programa de virtualização como o VirtualBox. Finalmente, se você preferir testar o ownCloud em sua rede sem instalá-lo em uma máquina dedicada, pode usar a solução XAMPP [4] que vem com todas as peças necessárias (Apache, MySQL, PHP5 etc.) pré-configuradas e prontas para serem executadas.
55
TUTORIAL | Nuvem pessoal com ownCloud
funcionar como um servidor tem os componentes necessários, incluindo o servidor web Apache, PHP5, e o servidor de banco de dados MySQL. Um grande número de fontes na web pode ajudá-lo a instalar e configurar esta pilha de coisas. A maneira mais fácil de transformar uma máquina em um servidor é instalar a versão servidor do Ubuntu. Alternativamente, você pode transformar um Ubuntu ou sistema desktop regular baseado em Debian em um servidor usando dois comandos simples. Para instalar o pacote tasksel, digite: Figura 2 Instalar o ownCloud é um procedimento de apenas uma etapa.
segurança e privacidade. Além disso, serviços de terceiros vêm e vão. Mesmo os serviços mais populares e bem estabelecidos na nuvem e que parecem grande demais para falhar poderiam desaparecer com o tempo. Em teoria, você deve ser capaz de recuperar seus dados, mas as coisas nem sempre funcionam na prática. Mesmo que você consiga recuperar seus documentos e arquivos, a migração para outro serviço baseado na nuvem pode ser um tanto demorada e cara. Em vez de confiar nos serviços da nuvem de terceiros, você pode criar seu próprio servidor na nuvem. Desta forma, você não tem que pagar pelo privilégio de acessar seus próprios dados e pode parar de se preocupar com questões de privacidade em potencial. Claro que você tem que considerar algumas coisas antes de ir nesta rota.
Para começar, você precisa de uma máquina dedicada ou servidor virtual, bem como uma Internet confiável e relativamente rápida. Ter o seu servidor próprio na nuvem também significa que você tem que mantê-lo funcionando sem problemas. Em suma, você deve considerar todas as vantagens e desvantagens de hospedar seu próprio servidor na nuvem antes de fazer a sua jogada.
Implementação do ownCloud Entre as várias soluções possíveis para configurar um servidor pessoal na nuvem, o ownCloud [1] é o mais promissor e, provavelmente, mais fácil de implementar. Mas antes de instalar o ownCloud, você precisa fazer algum trabalho preparatório. Para começar, certifique-se se a máquina que irá
# sudo apt-get install tasksel
Em seguida, execute o comando sudo tasksel no terminal, selecione
o pacote LAMP Server, e pressione OK (figura 1). Além do MySQL, o ownCloud também pode usar o SQLite como seu banco de dados, que é uma boa opção se você quiser uma instalação mais leve e compacta do ownCloud. No Ubuntu e sistemas baseados em Debian, instalar o SQLite é uma questão de executá-lo # apt-get install sqlite php5-sqlite
como root. Uma vez que você tiver feito isso, tem que habilitar o suporte ao SQLite no Apache. Para fazer isso, abra o arquivo php.ini para edição com o nano, por exemplo: # nano /etc/php5/apache2/php.ini
como root. Em seguida, adicione as seguintes linhas ao arquivo de texto: extension=pdo.so extension=pdo_sqlite.so extension=sqlite.so
Enquanto você está aqui, pode querer aumentar o limite padrão do tamanho de upload para arquivo. Para fazer isso, localize as seguintes linhas e especifique os valores desejados: Figura 3 O ownCloud pode lidar com vários usuários, e você pode organizálos em grupos.
56
upload_max_filesize = 2M post_max_size= 2M
www.linuxmagazine.com.br
Nuvem pessoal com ownCloud | TUTORIAL
banco de dados disponível, e você tem que escolher o que deseja usar com o ownCloud (figura 2). Se você optar por MySQL, precisa entrar com os dados de informação de conexão, em seguida clique no botão Finish setup para finalizar a instalação. Uma vez que o ownCloud está instalado e funcionando, você pode entrar com as credenciais especificadas anteriormente.
Usando o ownCloud
Figura 4 O ownCloud vem com um punhado de aplicativos, incluindo gerenciamento de sites favoritos.
Para salvar as alterações e reiniciar o servidor Apache, execute # /etc/init.d/apache2 restart
como root. Por fim, instale um punhado de pacotes opcionais: # apt-get install mp3info curl libcurl3 libcurl3-dev php5-curl zip
usando a sua ferramenta de gestão preferencial como o phpMyAdmin. Aponte seu navegador para http://127.0.0.1/owncloud (substitua 127.0.0.1 com o endereço IP real ou nome de domínio do seu servidor) e crie uma conta administrativa. O instalador do ownCloud detecta automaticamente o servidor de
Quando você loga, o ownCloud automaticamente te leva a seção Files, e você pode começar a adicionar arquivos e documentos imediatamente. No entanto, antes de fazer isso, é uma boa ideia fazer algumas configurações básicas. Se você planeja compartilhar sua instalação ownCloud com outros usuários, deve criar contas para eles. Para fazer isso, clique no ícone Settings, no canto inferior esquerdo da janela principal do ownCloud, selecione Users e adicione contas de usuários (figura 3). Para cada conta de usuário, você pode especificar a quota de espaço em disco para limitar a quantidade de dados que cada usuário pode carregar e armazenar. E, para manter
Com todas as peças no lugar, você está pronto para instalar o ownCloud. O site do projeto oferece versões estáveis e de desenvolvimento. Pegue a versão que você deseja, descompacte o arquivo baixado, renomeie o diretório resultante para owncloud, e mova-o para a raiz de documentos do seu servidor. Conecte ao servidor via SSH e faça o diretório owncloud acessível ao Apache: chown -R www-data:www-data owncloud/
Note que o usuário do Apache e do grupo pode ser diferente em sua distribuição Linux. Finalmente, se você planeja usar o ownCloud com o MySQL, crie um banco de dados
Linux Magazine #87 | Fevereiro de 2012
Figura 5 A seção Pessoal contém a URL WebDAV da sua instalação do ownCloud.
57
TUTORIAL | Nuvem pessoal com ownCloud
separados vários usuários, você pode organizá-los em grupos. O ownCloud vem com vários aplicativos simples, que você pode desativar e ativar na seção de Apps. Atualmente, a seleção é bastante limitada, mas alguns aplicativos essenciais e, ainda que básicos, estão disponíveis, incluindo calendário, contatos, mídia e favoritos (figura 4). Na seção de Apps, você também vai encontrar ferramentas mais avançadas, tais como o gerenciador do LDAP para autenticação de usuários através de um servidor LDAP e OpenID, que permite aos usuários fazer login no ownCloud através de um provedor de OpenID. Finalmente, na página Personal da seção Settings, você pode configurar um idioma e o fuso horário preferido e alterar sua senha. A página também contém URLs para diferentes serviços prestados pelo ownCloud. Quais serviços estarão disponíveis depende de quais aplicativos você ativou. No mínimo, você deve observar a URL WebDAV: você precisará dela para acessar o armazenamento do ownCloud remotamente (figura 5). Embora você possa usar os aplicativos fornecidos para gerenciar seus contatos e compromissos, ouvir música, e manter abas em seus favoritos, o ownCloud é voltado para armazenamento de arquivos e documentos e para torná-los acessíveis a partir de clientes remotos. A seção de Files permite fazer upload de arquivos e documentos e agrupá-los em pastas. Se você tiver o pacote
Figura 6 O ownCloud possui uma marcação de sintaxe embutida. zip instalado no seu servidor, pode
fazer upload de vários arquivos de uma só vez. O ownCloud não suporta a funcionalidade de edição de documento, no entanto, pode exibir arquivos nos formatos mais populares, incluindo JPG e PNG e arquivos de texto puro. O ownCloud também inclui um marcador de sintaxe; então, quando você visualizar scripts e arquivos de programas, o sistema convenientemente colore o código (figura 6). O ícone Share ao lado de cada arquivo armazenado no ownCloud permite a você
compartilhar um arquivo ou documento específico rapidamente com usuários individuais ou grupos (figura 7). Você também pode tornar arquivos públicos, assim qualquer um pode baixá-los usando URLs públicas geradas pelo ownCloud. Como mencionei anteriormente, o ownCloud pode ser acessado a partir de uma máquina remota usando o protocolo WebDAV. No KDE, você pode acessar rapidamente os arquivos armazenados no ownCloud digitando a URL WebDAV no gerenciador de arquivos Dolphin (é preciso substituir o prefixo http:// por webdav://). Em
Figura 7 Você pode facilmente compartilhar arquivos com usuários individuais ou grupos.
58
www.linuxmagazine.com.br
Nuvem pessoal com ownCloud | TUTORIAL
Cloud. Infelizmente, o WebDAV Navigator não é gratuito, mas você pode tentar uma versão Lite do aplicativo antes de comprá-lo.
Conclusão O ownCloud está longe de ser uma solução completa e madura. Mas, mesmo na sua forma atual, o ownCloud pode ser uma solução interessante para a implementação de um servidor pessoal na nuvem, especialmente se você estiver interessado em hospedagem e compartilhamento de arquivos e documentos. ■
Mais informações Figura 8 Adicionar um atalho de rede no Dolphin.
vez de digitar a URL, cada vez que você precisar acessar seus arquivos, pode-se criar um atalho de rede no Dolphin. Para fazer isso, clique na entrada Network no painel Places do Dolphin, em seguida, clique no ícone de Add Network Folder. Dê um nome descritivo ao novo atalho no campo Name e digite seu nome de usuário do ownCloud no campo User. Em seguida, especifique o endereço IP
Figura 9 Usando o aplicativo WebDAV Navigator, você pode acessar o ownCloud de um dispositivo Android.
Linux Magazine #87 | Fevereiro de 2012
ou nome de domínio (sem o prefixo http://) do seu servidor ownCloud e o caminho WebDAV nos campos apropriados (figura 8). Para terminar, basta pressionar o botão Save & Connect e digitar sua senha. As coisas são ainda mais fáceis para os usuários do gerenciador de arquivos Nautilus. Basta digitar o URL WebDAV na barra de Localização (você pode chamá-la com o atalho de teclado [Ctrl]+[L]), substituindo o prefixo http:// com dav://. Isso abre o armazenamento do ownCloud e monta, automaticamente, a pasta de rede na área de trabalho. Claro que você não está limitado ao ambiente de trabalho Linux, e pode acessar seus arquivos de qualquer plataforma e aplicativo que suportar o protocolo WebDAV. Por exemplo, se você deseja se conectar ao ownCloud de seu dispositivo Android e recuperar documentos e arquivos, pode usar um aplicativo WebDAV como o WebDAV Navigator [2], que permite navegar e baixar os arquivos armazenados no ownCloud, criar pastas e fazer upload de arquivos a partir do seu dispositivo Android (figura 9). É possível até mesmo tirar fotos com a câmera embutida e jogá-las diretamente para o own-
[1] ownCloud: http:// owncloud.org/ [2] Aplicativo WebDAV Navigator para Android: https://market. android.com/details?id=com. schimera.webdavnav [3] ownCloud na caixa: http:// susegallery.com/a/TadMax/ owncloud-in-a-box [4] XAMPP: http://www. apachefriends.org/ en/index.html
O autor Dmitri Popov é formado em letras (idioma russo) e lingüística computacional; há vários anos trabalha como tradutor técnico e colaborador free-lancer. Já publicou mais de 500 artigos sobre software de produtividade, computação móvel, aplicativos web e outros tópicos relacionados à informática. Seus artigos já apareceram em sites e revistas da Dinamarca, Inglaterra, EUA, Alemanha, Rússia e, agora, do Brasil.
Gostou do artigo? go? Queremos ouvir sua a opinião. op ão. Fale conosco em cartas@linuxmagazine.com.br com.b Este artigo no nosso so site: sit http://lnm.com.br/article/6379 artic 379
59
ANÁLISE | Ambiente com arquitetura orientada a serviço
ANÁLISE
Ambiente com arquitetura orientada a serviço
Ônibus corporativo Um serviço de Bus corporativo é uma via expressa centralizada para dados em ambientes com arquitetura orientada a servidor. Um bom ESB lida com orquestração, roteamento de mensagens e análise de eventos. por Markus Feilner, Arne Rossmann e Christine König
S
e seu negócio requer o tipo de configuração no qual múltiplos sistemas se comunicam com múltiplos serviços, sua rede encara o perigo de se transformar em uma arquitetura espaguete (figura 1), onde cada serviço se comunica com outro por meio de uma série de interfaces não similares. Ao chegar a esse estágio, faz sentido pensar na introdução de uma arquitetura orientada a serviços (SOA) [1] e na integração de um serviço de Bus corporativo (ESB, do inglês Enterprise Service Bus) [2]. As técnicas SOA oferecem um modelo para implementar um processo complexo de negócios por meio de um conjunto de softwares que interagem uns com os outros, trocando informações. Aplicativos de usuários e do fornecedor trocam dados em forma de mensagens SOAP. Essa arquitetura permite que uma empresa adicione e integre novos componentes da arquitetura de software de forma fácil com mudanças mínimas nos componentes existentes. O conceito SOA também oferece um padrão de desenvolvimento que garante a interoperabilidade com serviços em conformidade com a SOA.
64
A tecnologia SOA é muito usada para a integração de serviços diversos usados em cenários corporativos. Um cenário típico pode ser uma solução na qual informações de clientes, produtos, pedidos e entregas estão todas integradas e acessíveis por meio de um ambiente comum de aplicativos. O termo “serviço de bus corporativo” refere-se normalmente ao componente de software que passa e traduz mensagens entre vários serviços em um ambiente SOA. O ESB forma um componente essencial que geralmente é conhecido por um nome mais genérico, o middleware corporativo. Os sistemas ESB sofisticados de hoje não somente passam mensagens, mas também criam registros de eventos de mensagens e, em alguns casos, oferecem recursos de tradução para permitir que serviços com diferentes formatos de mensagens realizem interconexões de forma transparente. Um ESB pode atuar como uma instância central (figura 2) e remove a necessidade de interfaces independentes múltiplas entre os serviços. Mais e mais companhias estão cientes da relevância de integrar serviços
distribuídos em aplicativos corporativos heterogêneos, o que significa que o ESB está em alta. Produtos proprietários, como o WebSphere [3], da IBM, BizTalk [4] da Microsoft, Integration Adapters [5] da Oracle e JBoss [6] da Red Hat competem no mercado com produtos gratuitos como Mule ESB [7], Apache ServiceMix [8] e Talend ESB [9] (antigamente conhecido como Sopera [10]). O Lisog, que agora é parte da Open Source Business Alliance, deu ao ESB um papel importante em sua solução de nuvem [11]; no nível do produto, Sopera e Mule são alternativas gratuitas e compatíveis. Implementar um ESB pode ser caro e é uma decisão com consequências de amplo alcance. Mesmo implementações pequenas requerem investimentos de, pelo menos, cinco dígitos, sendo os gastos alocados tanto na programação quanto em um serviço abrangente de consultoria. Todos os fornecedores de ESB defendem que o investimento vale a pena porque torna os sistemas mais fáceis de manter e expandir. No entanto, um gerente de TI ou administrador precisa estar ciente
www.linuxmagazine.com.br
Ambiente com arquitetura orientada a serviço | ANÁLISE
de que a escolha do ESB significa estar comprometido com um produto a longo prazo. A decisão por um fornecedor é difícil de reverter e a mudança futura seria muito cara. Consultores concordam em pelo menos uma coisa: é impossível dar uma recomendação genérica para o produto ESB ideal. Cenários individuais, recursos dos serviços e requisitos do ambiente afetam a escolha. A tabela 1 mostra alguns dos recursos associados com três dos mais populares sistemas ESB de código aberto (Mule ESB, Apache ServiceMix e Talend ESB). Neste artigo, avaliamos de perto as três alternativas mais importantes.
Mule ESB O ESB da MuleSoft é o mais popular entre os aplicativos do gênero em código aberto, com mais de 1,5 milhão de downloads e 2,5 mil usuários empresariais. O software é escrito em Java e componentes de sistemas existentes como JMS, serviços web e HTTP podem ser integrados de forma bem simples. Ao mesmo tempo, a MuleSoft gosta de destacar o alto nível de escalonabilidade do Mule ESB, que daria aos usuários a possibilidade de combinar um número maior de aplicativos. O Mule ESB, que é adequado tanto para cenários com SOA quanto com aplicativos embarcados em plataformas centralizadas, usa seu próprio dialeto XML para fins de configuração. O exemplo exibido na listagem 1 mostra a configuração para um aplicativo simples no Mule ESB. O aplicativo recebe um nome e uma URL e, então, exibe um resultado. O código primeiramente configura um namespace para os componentes requisitados. Após um comentário curto em description (linha 12), o aplicativo inicia o fluxo. O Mule indica uma sequência na qual os módulos, como os componentes, são implementados neste fluxo. O ESB
Linux Magazine #87 | Fevereiro de 2012
aceita a entrada que chega através de uma URL, como definido pela tag inbound-endpoint (linha 19). A entrada de dados é fornecida por meio de um serviço web JAX-WS (API do Java para serviços web XML). O Mule passa essa entrada por um componente echo (org.mule.example. echo.Echo), conforme pode ser visto na listagem 2 e o componente simplesmente dá como saída o nome que foi inserido. Já o Mule Studio permite a visualização do fluxo (figura 3). Os usuários de uma versão comercial podem acessar ferramentas adicionais de integração, como as Native WebSphere MQ e Premium JBDC. Além disso, o console Mule Management permite o controle e gerencia-
mento de desempenho. Clusterização e implantação são compatíveis na versão 3.2. Os usuários normalmente implantam seu próprio analisador do fluxo de serviços (Service Flow Analyzer) para verificar conflitos. O usuário pode, ainda, requisitar suporte adicional, assim como mecanismos adicionais de segurança, como SAML e controles de acesso baseados em recursos de usuários.
Apache ServiceMix O Apache ServiceMix é uma solução ESB já utilizada em muitos produtos e organizações de TI. O ServiceMix é baseado na especificação Java Business Integration (JBI) [12], que define um padrão de ar-
Listagem 1: Configuração do Mule 01 02 03 04 05 06 07 08 09
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xml ns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/ schema/mule/cxf/3.1/mule-cxf.xsd 10 http://www.springframework.org/schema/beans http://www. springframework.org/schema/beans/spring-beans-3.0.xsd 11 http://www.mulesoft.org/schema/mule/core http://www.mulesoft. org/schema/mule/core/3.1/mule.xsd"> 12 <description> Essa configuração constrói um serviço JAX-WS com CXF. Nós usamos uma "serviceClass"que é interface JAX-WS 13 que definimos. Isso permite que se garanta que o WDLS 14 só é gerado para o método "echo" (em oposição a todos os outros métodos no EchoComponente). 15 Isso mantém nosso WSDL limpo e elegante, mas não é requisitado. 16 Para acionar o serviço Echo vá à URL - http://localhost:65082/ services/EchoUMO/echo/text/hello 17 Para visualizar o WSDL para o serviço Echo vá para http:// localhost:65082/services/EchoUMO?wsdl</description> 18 <flow name="EchoFlow"> 19 <core:inbound-endpoint address="http://localhost:65082/services/ EchoUMO" 20 exchange-pattern="request-response" doc:name="Generic" 21 doc:description="Generic endpoint specified by address URI"/> 22 <cxf:jaxws-service serviceClass="org.mule.example.echo. Echo" 23 doc:name="SOAP" 24 doc:description="Torne um serviço web disponível via CXF"/> 25 <component doc:name="Component" doc:description="Invoke a Java component"> 26 <singleton-object class="org.mule.example.echo.Echo"/> 27 </component> 28 </flow> 29 </mule>
65
ANÁLISE | Ambiente com arquitetura orientada a serviço
quitetura tão útil para ferramentas Java quanto para ESB. A arquitetura abrange uma coleção de componentes para fornecer ou consumir serviços, sendo que pontos de integração são implementados como plugins. O Apache ServiceMix implementa a versão 1.0 (JSR 208) da especificação JBI e inclui uma série de componentes, sendo que os mais importantes são: ➧ servicemix-bean: utiliza POJOs (Plain Old Java Objects) ➧ servicemix-eip: mecanismo de serviço que inclui uma implantação de roteador alinhada com o EIP (Enterprise Integration Patterns) ➧ servicemix-file: acesso a sistema de arquivos ➧ servicemix-http: acesso a serviços SOAP e HTTP ➧ servicemix-jms: acesso a implementações JMS como o Apache Active MQ Um exemplo simples de um copiador automático de arquivos mostra como administradores trabalham com o Apache ServiceMix. Se você
quer que o copiador mantenha cópias de arquivos de um diretório (/home/ servicemix/input) para outro diretório (/home/servicemix/output), é necessário primeiro criar um novo diretório para o projeto e, depois, editar o arquivo pom.xml para configurar o Maven [13], uma ferramenta de gerenciamento do projeto Apache. O seguinte comando cria a unidade de serviço: mvn archetype:createDarchetypeArtifactId=servicemixservice-unitDarchetypeGroupId=org.apache. servicemix.toolingDartifactId=tutorial-file-su
Então, é necessário adicionar as dependências do Apache ServiceMix no arquivo pom.xml (listagem 3). Agora só falta a configuração para os endpoints do arquivo. Será necessário algo para enviar os arquivos e algo para criar um pool deles. A listagem 4 oferece um exemplo do arquivo obrigatório xbean.xml onde tudo o que você precisa fazer é agrupar o resultado em um serviço:
Figura 1 Se cinco serviços precisam se comunicar um com o outro, o resultado é um tipo de arquitetura espaguete. No pior cenário, o departamento de TI tem que programar e manter cada conector dentro de casa.
66
mvn archetype:createDarchetypeArtifactId=servicemixservice-assemblyDarchetypeGroupId=org.apache. servicemix.toolingDartifactId=tutorial-sa
Em seguida, mude o nome do projeto no arquivo pom.xml e adicione as dependências na unidade de serviço (Service Unit – listagem 5). Para uma implementação eficiente, mude para o diretório com um modelo de projeto, tutorial-sa, e emita um comando mvn install para construir o projeto. Isso gera um arquivo ZIP, que pode ser copiado para o diretório $SERVICEMIX_HOME/hotdeploy. Para mais detalhes sobre o ServiceMix do Apache, confira a documentação do ServiceMix [14]. A variante corporativa do Apache ServiceMix leva o nome de Fuse ESB e é comercializada pela FuseSource [15]. A edição corporativa oferece recursos extras e também inclui o Fuse Message Broker (baseado no Apache Active MQ), o Fuse Medidation Router (que usa o Apache Camel [16]) e o Fuse Service Framework (com Apache CXF).
Figura 2 Um ESB atua como um caminho central para que as mensagens passem entre os serviços.
www.linuxmagazine.com.br
Ambiente com arquitetura orientada a serviço | ANÁLISE
Os desenvolvedores também usam o Fuse IDE como um ambiente integrado de desenvolvimento e a interface gráfica Fuse HQ para gerenciar e monitorar o ESB. Se você estiver interessado, o Fuse Soft também oferece suporte e treinamento.
Talend ESB O Sopera ASF é uma plataforma de integração orientada a serviço desenvolvida para a integração de projetos no Deutsche Post AG. O fornecedor oferece o software de código aberto desde 2008. Em novembro de 2010, a Talend comprou a Sopera e, agora, continua o projeto sob o rótulo Talend ESB. A ferramenta tem uma estrutura modular: ela integra aplicativos de terceiros, processos, dados e soluções SOA dentro de seu próprio SOA, suportando tanto padrões básicos como SOAP, WSDL e XML, assim como padrões mais abrangentes, como UDDI, WS Policy e BPEL. Outra variante do SOA associada com o Talend ESB é o Apache Camel. O framework de integração de código aberto Camel suporta EIP para negociar regras de mediação. Uma vez que o framework é baseado em URLs simples, os administradores podem trabalhar com quase qualquer modelo de transporte, como HTTP, JMS (Active MQ ou outra implementação JMS) ou JBI. Os usuários podem trabalhar em rede com Talend ESB em ambientes Java e Microsoft, e combinar os dois por meio de um framework SOA padronizado. Para essa finalidade, o Talend ESB suporta os padrões Java J2SE, J2EE e a API Windows Communication Foundation (WCF) no framework .NET 3.0. O Talend ESB usa uma arquitetura distribuída e pode ser implementada em ambientes distribuídos e geograficamente separados. Nesse contexto, distribuído também significa que um Bus centralizado não é essencial. Em vez disso, as funções são executadas em bibliotecas backbone de serviços.
Linux Magazine #87 | Fevereiro de 2012
O exemplo a seguir mostra como um aplicativo SOA é projetado em Talend ESB. Esse exemplo usa um serviço web para simplesmente mostrar qualquer entrada de dados (echo). Um cliente alimenta o serviço com dados e o provedor oferece o serviço. Existe um tutorial detalhado sobre essa configuração no endereço [17].
Para criar um cliente, você primeiro precisa de uma nova tarefa. Então, você pode proceder com a definição de uma entrada de dados simulados por meio do componente FixedFlowInput e transformar isso em uma mensagem XML por meio do tXMLMap. A mensagem é, então, alimentada para o tESBConsumer, que dispara a chamada de serviço para
Listagem 2: Componente Echo 01 02 03 04 05 06 07 08 09
@WebService public class Echo { @WebResult(name="text") public String echo(@WebParam(name="text") String string) { return string; } }
Listagem 3: pom.xml 01 02 03 04 05 06 07
<dependencies> <dependency> <groupId>org.apache.servicemix</groupId> <artifactId>servicemix-file</artifactId> <version>${servicemix-version}</version> </dependency> </dependencies>
Listagem 4: xbean.xml 01 02 03 04 05 06 07 08 09 10 11 12 13
<beans xmlns:file="http://servicemix.apache.org/file/1.0" xmlns:tut="urn:servicemix:tutorial"> <!-- add the sender endpoint here --> <!-- add the poller endpoint here --> </beans> <file:sender service="tut:file" endpoint="sender" directory="file:/home/servicemix/output" /> <file:poller service="tut:file" endpoint="poller" file="file:/home/servicemix/input" targetService="tut:file" targetEndpoint="sender"/>
Listagem 5: pom.xml 01 02 03 04 05 06 07 08 09 10 11
<project> [...] <dependencies> <dependency> <groupId>org.apache.servicemix.tutorial</groupId> <artifactId>tutorial-file-su</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> [...] </project>
67
ANÁLISE | Ambiente com arquitetura orientada a serviço
o provedor ESB. Novamente, você pode configurar o arquivo de linguagem WSDL (Web Service Definition Language) requisitada para isso. Tudo o que você precisa agora é de um provedor com dois componentes ESB: um que aceite a requisição e outro que retorne a resposta. Novamente, você precisa de uma tarefa para o fornecedor. Os dois componentes são combinados por um tLogRow, de forma que o fluxo de dados entre eles seja exibido na linha de comando. O tESBProviderRequest tem que ser configurado usando o mesmo arquivo WSDL que o cliente acabou de criar. Então, é possível iniciar o provedor
para os serviços requisitados. Para tanto, vá à aba Start na parte inferior da área de trabalho. O cliente recebe, então, o comando para iniciar usando o mesmo mecanismo. A edição corporativa do Talend ESB também suporta a integração de plugins comerciais adicionais. Pacotes opcionais permitem aos usuários implementar o Sopera ESB .NET, Sopera BPM, Sopera Application, Data Integration e Sopera HQ (gerenciamento de sistema e serviço). O fornecedor também suporta ambientes runtime comerciais. A versão corporativa é sujeita a uma licença separada. O que faz da edição corporativa do Talend ESB interessante é a coope-
ração aprimorada entre equipes administrativas por meio do repositório Talend e o console administrativo uniforme para gerenciamento centralizado das atividades e localização dos serviços.
Comunidades, suporte e IDEs Os três fornecedores de ESB possuem comunidades bem ativas, embora a maior seja, sem dúvidas, a do Mule, onde membros da comunidade oferecem suporte útil, extensões e I-Beans que eles mesmo programaram. O repositório Git do Mule contém muitos plugins.
Mule ESB
Apache ServiceMix
Versão atual
3.12
4.30
Licença
Community edition (CPAL) e Enterprise edition com suporte comercial
Licença Apache 2.0
Arquitetura
Java, centralizada
Java, centralizada
Comunidade
Comunidade ativa Muleforte, com extensões, I-Beans, fóruns e listas de correio
Fórum ativo, listas de correio
Suporte
Pessoa de contato, atualizações de software, suporte 8/5 ou 24/7, suporte, service packs
Sistemas operacionais suportados
Linux, Windows, Solares, AIX, HP-UX, Mac OS X
Servidor de aplicação suportado Suporte de linguagens para serviços/dispositivos Suporte de desenvolvimento
Geronimo, Jboss, WebLogic, WebSphere, Oracle, Sun One, Tcat, Tomcat, Resin, Jetty, Framework Spring Groovy, Java, JavaScript, Jaxen, Jython (Python), JRuby, JXPath O desenvolvimento suporta Eclipse Mule IDE, Mule Studio, Profiler, Japex, Data Integrator IDE, Ant, Maven
Fóruns de discussão, suporte 8/5 ou 24/7, service packs Windows XP e 2000, Solaris, HP-UX, Linux, Mac OS X Geronimo, Jboss, Jonas Java, Groovy, JRuby, Rhino, JavaScript Console web para desenvolvimento de componentes JBI
Gerenciador de processo de negócios
JBPM, BPEL
BPEL (Apache ODE), Bpm-Script
Monitoração
Gerenciamento e monitoração, correção do gerenciamento, ferramentas de migração
JMX, Ant Tasks
Disponibilidade Persistência de mensagem Transações
Alta disponibilidade e resistência a falhas, políticas de repetição de tentativas para autocorreção da conectividade Filas de VM persistentes (filas internas do SEDA forçam a persistência) Independente de transporte (por exemplo, JDBC, XA, JMS, reconhecimento de mensagens, transações de múltiplos recursos)
Alta disponibilidade e clusterização de contêineres JMS, JDBC JMS, JCA
Tabela 1 Resumo dos três fornecedores de ESB de código aberto.
68
www.linuxmagazine.com.br
Ambiente com arquitetura orientada a serviço | ANÁLISE
Após a aquisição da Sopera pela Talend, os usuários agora se beneficiam de uma comunidade muito forte. Uma comunidade bastante ativa cresce em torno do Talend Open Studio, com comunicação intensa por fóruns e muito trabalho de desenvolvimento oferecido pelos membros. Embora uma comunidade exista para o Apache ServiceMix ou Fuse ESB, ela não possui o mesmo grau de movimentação das concorrentes. Os três fornecedores oferecem versões corporativas. Os clientes podem escolher entre diversos modelos com diversos recursos. Corporações tendem a optar pela versão Enterprise TalendESB (Sopera) 4.21 Licença pública Eclipse (Community edition); anteriormente licença Sopera (Enterprise edition) Java, sob demanda, distribuída Fórum, blog, seminários online Telefone, help desk, atualizações gratuitas, service packs Windows XP, Vista e Server 2003, Solaris, Linux Geronimo, Jboss, WebLogic, WebSphere, SAP NetWeaver, Tomcat, Jetty Java, .NET Kit de ferramentas próprio (Eclipse) Sopera BPM (baseado em Intalio BPM), Apache ODE, SAG, webMethods BPMS Eclipse, interface de gerenciamento para o Service Registry, JMX, arquitetura distribuída Sopera HQ
das ferramentas com suas garantias de suporte, principalmente em se tratando de aplicativos de missão crítica. Nesse caso, a organização de TI da companhia não precisa depender da comunidade em casos de desastre. Os três fornecedores também oferecem suporte de desenvolvimento. Além do Mule IDE, que é baseado em Eclipse, o MuleSoft tem agora o Mule Studio em seu portfólio. O Mule Studio dá aos programadores a capacidade de modelar fluxos graficamente e configurar os componentes, como uma conexão JDBC. Esse componente gráfico torna possível a definição de um fluxo genérico em um curto período de tempo. Apesar disso, os desenvolvedores podem se concentrar em integrar os componentes requisitados. Seguindo a aquisição da Sopera pela Talend, a versão 4.2 agora tem uma ferramenta gráfica que permite aos administradores integrar seu SOA. Isso dá aos usuários uma interface gráfica, assim como fazem as ferramentas mais familiares Talend Open Studio e Data Profiler, que oferecem a possibilidade de arrastar componentes em um tipo de quadro onde eles podem ser combinados e configurados. Programadores podem, assim, se concentrar em desenvolvimento puro de componentes Java. O Fuse também oferece uma ferramenta que dá aos usuários um espaço de trabalho gráfico onde eles podem arrastar, vincular e configurar componentes
no formato do Fuse IDE. Todas as soluções são baseadas em Eclipse.
Concorrentes: IBM, Red Hat e Microsoft Os concorrentes proprietários servem a grupos muito diferentes. Os usuários sempre podem encontrar ajuda em fóruns, grupos de usuários, blogs, webcasts e wikis. O BizTalk, da Microsoft, é mais apropriado para clientes que já tem soluções da empresa, pois está disponível somente na plataforma Windows. A plataforma SOA da Red Hat, JBoss, cria uma API proprietária e é vendida como uma solução stand-alone sem Tomcat ou middleware similar. Suas forças estão no setor de mensagens. O WebSphere, da IBM, é uma das soluções mais caras, mas que consegue oferecer aos clientes pagantes respostas para quase qualquer problema.
ESBs de código aberto: algo para todo mundo Cada uma das três soluções ESB abordadas tem seus benefícios e uma versão corporativa com suporte do fornecedor. Os clientes podem escolher entre diversos modelos com diversos níveis de disponibilidade. Os fornecedores não oferecem suporte para as edições comunitárias, mas contam com comunidades movimentadas.
Arquitetura distribuída JMS JMS, JDBC
Figura 3 Um exemplo simples de um aplicativo no Mule Studio.
Linux Magazine #87 | Fevereiro de 2012
69
ANÁLISE | Ambiente com arquitetura orientada a serviço
O Mule ESB oferece as vantagens de uma grande comunidade. Além disso, conta com muitos conectores para serviços de nuvem, como o Salesforce, Amazon Web Services ou Twitter. Isso facilita a tarefa de desenvolver soluções ESB que acessam serviços web – algo interessante – levando em consideração que a integração dos serviços baseados em nuvem com
aplicativos legados pode se tornar mais importante no futuro. Em contraste, a Talend oferece um IDE muito intuitivo para a programação de sua própria solução baseada em ESB. A Talend ampliou seu portfólio para incluir uma solução ESB e está gradualmente chegando perto do Mule. O Apache ServiceMix e Fuse ESB possui uma curva de aprendizado maior se comparado aos outros forne-
cedores, sendo assim, próprios para desenvolvedores experientes. As principais vantagens desses programas é a excelente interoperabilidade com outros projetos Apache relevantes, como o Active MQ, Camel ou CXF. Além disso, o OSGi (Open Services Gateway Initiative [18]) criou uma base atemporal para uma plataforma de integração baseada em um padrão reconhecido. ■
Quadro 1: Análises de ESB
Mais informações
As empresas de pesquisas de mercado Forrester e Gartner investigaram de forma constante os ESBs em anos recentes. Os melhores produtos são destacados como líderes e os de desempenho mais forte também são recomendados. Os bons fornecedores de acordo com a Gartner são corporativos que têm soluções ou tecnologias inovadoras no portfólio e cujo uso tem alguma influência no usuário final. Dito isso, os candidatos podem pontuar de 0 (muito fraco) a 5 (muito forte) para cada característica na pesquisa.
[1] SOA: http://en.wikipedia.org/wiki/ Service-oriented_architecture
Uma visão geral dos resultados: ➧ Fuse ESB 4.0 baseado no Apache ServiceMix foi listado como líder no estudo de 2011 da Forrester. Sua orquestração ganhou 5 pontos, a arquitetura ficou com 4.88 e as conexões com 4.70. ➧ O BizTalk ficou como líder em 2010 de acordo com a Forrester. O analista investigou o BizTalk Server 2010 e o ESB Toolkit. O BizTalk alcançou um bom valor de 5 na categoria Estratégia. ➧ A IBM também foi citada como líder em 2011 pelos seus produtos WebSphere Enterprise Service Bus Registry Edition (WESBRE) e WebSphere Message Broker (WMB). O IBM WebSphere Enterprise Service Bus (WESB) garantiu um lugar na categoria de forte desempenho. ➧ O levantamento da Forrester vê o Mule ESB 3 como de forte desempenho. Seus principais benefícios são conexões 5.0, arquitetura (4.70) e mudança e controle (4.47). ➧ A plataforma SOA JBoss 5.0.2 foi listada como de forte desempenho pela Forrester com notas de 3.98 para mediação, 3.37 para mudanças e controle de 3.33 para conexões. ➧ O Gartner citou o Sopera como um bom fornecedor no quesito plataforma e integração em 2010.
[2] ESB: http://en.wikipedia.org/ wiki/Enterprise_service_bus [3] IBM WebSphere: http://www-01.ibm. com/software/decision-management/ operational-decision-management/websphereoperational-decision-management/ [4] Microsoft BizTalk: http://www.microsoft. com/biztalk/en/us/default.aspx [5] Adaptadores de integração da Oracle: http:// www.oracle.com/technetwork/middleware/ adapters/overview/index.html [6] Plataforma SOA JBoss Enterprise: http://www.Jboss.com/ [7] MuleSoft: http://www.mulesoft.org/ [8] Apache ServiceMix: http:// servicemix.apache.org/ [9] Talend: http://de.talend.com/productsapplication-integration/index.php [10] Sopera: http://www.sopera.de/en/ [11] Levantamento da Forrester Research: http://www.oracle.com/us/corporate/ analystreports/infrastructure/forresterwave-esb-q2-2011-395900.pdf [12] JBI: http://en.wikipedia.org/wiki/ Java_Business_Integration [13] Apache Maven: http://maven.apache.org/ [14] Guia de iniciantes para Apache Service-Mix: http://servicemix.apache.org/2-beginnerusing-maven-to-de-velop-jbi-applications.html [15] FuseSource: http://fusesource.com/ [16] Apache Camel: http://camel.apache.org/
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco co em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/6435
70
[17] Tutorial do Talend ESB tutorial: http://www. talendforge.org/tutorials/tutorial. php?language=english&idTuto=94 [18] Iniciativa Open Services Gateway: http://www.osgi.org/
www.linuxmagazine.com.br
ANÁLISE | MySQL vs. PostgreSQL
Duelo entre PostgreSQL e MySQL
ANÁLISE
Duelo de bancos de dados A competição entre MySQL e PostgreSQL é tão antiga quanto os próprios bancos de dados e sem um vencedor claro. Apesar disso, é sempre emocionante e elucidante assistir à batalha dos dois. por Jens-Christoph Brendel e Flávia Jobstraibizer
M
ontamos uma equipe de benchmark (análise de desempenho baseada em diversos fatores), com o apoio de especialistas em banco de dados (quadro 1), para descobrir como o MySQL e o PostgreSQL seriam executados em casos de teste. Não antecipei os resultados desde o início, pois diferentes parâmetros, tais como a carga de trabalho ou o tamanho de banco de dados provavelmente retornariam resultados diferentes. Portanto, eu não estava interessado principalmente na vitória ou na derrota, mas sim no caminho que os especialistas levaram para atingir os seus objetivos: o que preciso para medir estes dois sistemas? Que ajustes posso fazer? Qual o efeito que cada ação tem? Que tipo de aumento de desempenho posso conseguir com os bancos de dados no que tange à configuração padrão? Qual banco de dados utiliza hardware rápido de forma mais eficiente? Finalmente, resta dizer que a velocidade não é o único critério quando você precisa fazer uma escolha entre dois tipos de gerenciadores de bancos de dados (SGBDs). Em muitos casos, o fator decisivo é um aplicativo que o banco de dados precisa ser capaz
72
de suportar, a facilidade de gestão, aproveitando sua experiência já existente em vários campos, mecanismos com falhas de segurança (e, portanto, coisas como agrupamento e replicação de dados), suporte ou opções de migração, ou muitas outros itens que podem facilmente ser mais importantes do que alguma percentagem a mais de desempenho. Apesar de tudo isso, no entanto, o desempenho não é obviamente um fator insignificante na avaliação global. Uma nota final: o SQL nos procedimentos de benchmark é inegociável – no mundo real, e assumindo a experiência para avaliá-los, aí se encontra o maior potencial de ajuste, afinal de contas, as consultas elaboradas desajeitadamente em um projeto de banco de dados pobre, pode lhe custar mais velocidade do que uma configuração inteligente pode compensar.
O benchmark A ferramenta de benchmark DBT-2 [1] foi utilizada para a comparação, e foi originalmente desenvolvida pelo Open Source Development Labs (que, infelizmente, já não o mantém atualmente). O benefício deste benchmark é que ele oferece não apenas formas
para a criação de um processo de carga de trabalho (OLTP) relativamente complexo e transações online com configuração versátil, como também se baseia em um método reconhecido de análise, o mesmo sistema que o padrão da indústria, TPC-C [2], em que é modelado, utiliza. Embora os valores resultantes do TPC-C e DBT-2 não sejam diretamente comparáveis, os bancos de dados, basicamente, passam a utilizar os mesmos procedimentos em ambos os casos. Ao instalar o benchmark, algumas armadilhas, na forma de pequenos bugs, tiveram que ser resolvidas. Em um caso, a sintaxe nos scripts SQL está incorreta, e em outro, o Shell Bourne ocorre na linha shebang (ou hashbang), onde você precisa do Bash, além disso, há alguns caminhos nos scripts que apontam para diretórios inexistentes. Estas questões não são nada que um usuário bastante experiente não pudesse resolver, mas custa tempo. Uma versão futura irá remover esses bugs – pelo menos assim nos foi dito. Pouco tempo atrás, tentei convencer os ex-mantenedores a assumirem seus projetos órfãos de novo, mas não obtive qualquer sucesso. Quando o benchmark é executado, ele simula um aplicativo comercial
www.linuxmagazine.com.br
MySQL vs. PostgreSQL | ANÁLISE
em outras circunstâncias. As melhorias de desempenho são tipicamente documentadas ao longo de três séries de medições, nas quais as cargas foram aumentadas, sem tempo para pensar, de 1 a 20 armazéns e os testes de estresse eram executados por cinco minutos após a fase de adaptação em que as conexões de banco de dados foram estabelecidas.
O MySQL entra no ringue
Figura 1 Efeitos obtidos com ajustes nas diversas configurações do MySQL.
em que um número de empregados inicia uma série de transações em seus terminais cobrindo encomendas, entregas, assentamentos, acompanhamento, processamento de pedidos e acompanhamento de estoque. Estas transações são lançadas em uma mistura predefinida no banco de dados, com o New Order ocorrendo com mais frequência, seguido pelo Payment, Order Status, Delivery e Stock Level. A métrica central é o número de novos pedidos por minuto que o sistema de banco de dados pode manipular. O ambiente no qual tudo isso acontece é composto por armazéns, onde cada armazém serve a 10 distritos. Cada distrito tem 3.000 clientes. Cada armazém administra 100 mil artigos. Um em cada 10 pedidos deve ser repassado para um armazém diferente, porque nem todos os artigos estão em estoque. Dez processos terminais são lançados por armazém, por padrão. Todas as transações de benchmark são procedimentos armazenados no banco de dados. O benchmark contribui com dois componentes de software em tempo de execução: o primeiro cliente abre um número definido de conexões de banco de dados, e os de referência aguardam a fase de adaptação para serem concluídos. Após isso,
Linux Magazine #87 | Fevereiro de 2012
sào iniciadas as transações através do cliente. O benchmark é altamente configurável. Em particular, você pode configurar o seguinte: ➧ O número de armazenamentos (o fator de escala central) (-w) ➧ O número de conexões de bancos de dados paralelos (-c) ➧ O tempo de execução (-d) ➧ Se deve ou não usar um tempo de reflexão (-n) Nos resultados discutidos neste artigo, fiz os testes sem o tempo de reflexão, pois eu precisaria de um grande número de armazéns para atingir o limite de carga, que por sua vez implicaria em ter um grande número de processos terminais. Isso significaria decidir a competição no mérito destes tópicos terminais, em grande extensão. Todos os valores medidos aqui são médias e a dispersão foi nivelada. Para cada configuração, o benchmark funcionou, pelo menos, três vezes, e muito mais vezes em alguns casos. Os testadores tentaram acelerar cada banco de dados, sucessivamente, pelo aplicativo de uma série de ajustes. Neste artigo, não vou analisar ajustes sem sucesso, em vez disso, vou nas opções de banco de dados que aumentam a velocidade alcançada significativamente, ou pelo menos que teria um efeito positivo
A direção inicial para qualquer ajuste em ambos os sistemas de bancos de dados certamente tem que ser a prevenção de acesso ao disco. O benchmark gera uma enorme quantidade de acessos ao disco, e este é um número de pedidos mais lento do que as operações de RAM com a qual estas poderiam ser substituídas. Dois bancos de dados oferecem um grande número de ajustes, por exemplo, o MySQL, através do comando SHOW GLOBAL VARIABLES; lhe dá uma visão geral das variáveis presentes no sistema. A lista é longa, mas nunca tenha medo: apenas alguns parâmetros são realmente relevantes para o ajuste. Em primeiro lugar, estabeleça um valor de referência; o desempenho foi medido com a configuração de banco de dados inicial depois de instalados os pacotes. Então, utilizei algumas variantes diferentes no caso do MySQL. O ajuste de parâmetros começou com uma variante de baixo custo que envolvia alterar somente as configurações de banco de dados sem reinstalar nada. Depois, eu queria testar uma versão mais recente do MySQL do que a oferecida pelo repositório LTS Ubuntu 10.04. Teoricamente, eu poderia ter utilizado outra abordagem e testado os derivados principais do MySQL como o MariaDB, o servidor Percona, ou o Drizzle. No entanto, isso pode causar mais obstáculos em um ambiente de produção (por exemplo, sob a forma de custos adicionais) porque você pode perder todo
73
ANÁLISE | MySQL vs. PostgreSQL
o suporte comercial que porventura tenha comprado para o MySQL. Em terceiro lugar, a sobrecarga me obrigou a aplicar alguns limites. O benchmark foi executado cerca de 2.000 vezes no total para os dois bancos de dados, a um tempo de execução médio entre sete e oito minutos, o que totalizou 250 horas – ou mais de 10 dias de benchmarking durante um único dia. Em quarto lugar, e isso foi testado fisicamente, eu queria saber quais benefícios a substituição do disco rígido original por um SSD rápido poderia oferecer. Todas as medidas foram tomadas no mesmo hardware: um Dell PowerEdge T110 com dois processadores Intel Dual-Core i3 530 executados a 2,93 Ghz. O servidor tinha 8GB de memória RAM. Nosso dispositivo de armazenamento era um disco interno de 300GB da Western Digital, ou um Intel 320 séries SSD (160GB), para o qual os diretórios de dados do banco de dados foram movidos para fins de teste. O sistema não tinha outras tarefas para completar naquele momento, além de executar os benchmarks.
Ajuste tangível A primeira ação no caso do MySQL foi a atualização da versão antiga, 5.1.41 (figura 1, linha A) a partir do repositório do Ubuntu para a versão 5.5.15 atual (figura 1, linha B). O banco de dados mais recente era duas vezes mais rápido em suas configurações iniciais, sem qualquer ajuste, o que é explicado em parte por alguns valores configurados de forma mais generosa nos parâmetros padrão, do que os definidos nas versões mais antigas do MySQL. O ajuste irá acelerar consideravelmente a versão legada, mas a versão mais recente ainda se mantém na frente, razão pela qual todos os benchmarks seguintes foram realizados com o banco de dados mais recente. Com base nestes dados, as atualizações são definitivamente recomendadas para o MySQL.
74
O segundo passo foi aumentar o tamanho do buffer para bancos de dados no formato InnoDB. Você precisa modificar o parâmetro correspondente innodb_buffer_ pool_size para alcançar um valor de referência de 80% do tamanho da memória RAM disponível ou, se você tiver uma grande quantidade de memória e um pequeno banco de dados, tanto a memória quanto o banco de dados podem possuir mais 10% desta memória disponível. O banco de dados mais antigo somente aloca escassos 8MB, enquanto a versão mais recente aloca pelo menos 128MB. Seja qual for o caso, é importante ter memória RAM suficientemente poupada para manter o sistema operacional (tabelas de páginas, buffers de conexão etc.) e os outros consumidores MySQL felizes (cache de consultas, tabelas temporárias, tópicos, buffers de chaves etc.) e em funcionamento. O servidor de teste tinha 8GB de RAM e o banco de dados de benchmark começou em 4GB. Sendo assim, 5GB foi uma boa escolha para o valor de pool do buffer InnoDB. Este valor proporcionou um aumento de desempenho de 88%, de imediato (figura 1, linha C), em comparação com a configuração desafinada da versão dos MySQLs mais novos.
A terceira ação é relacionada com o arquivo de logs do InnoDB. Se você quiser alterar o seu tamanho, é importante apagar os registros antigos com o banco de dados desabilitado; caso contrário, o arquivo de log não irá corresponder ao tamanho do novo arquivo recém-configurado e o MySQL irá se recusar a iniciar. Depois de remover o arquivo de log, o banco de dados cria um novo arquivo do tamanho necessário quando iniciar. Além disso, é preciso considerar que um arquivo de log muito grande pode atrasar consideravelmente o reinício do MySQL depois de algum acidente porque em primeiro lugar, o banco de dados procura todos os logs de transações que só foram realizados na memória RAM, mas não estão escritos no disco. Esta tarefa de refazer os logs é proporcional ao seu tamanho, mas também depende de tantos outros fatores que talvez seja melhor realizar um teste para estabelecer os valores para o banco de dados que você estiver investigando. Finalmente, o tamanho de todos os arquivos de log em conjunto deve ser inferior a 4GB. Todas estas considerações me levaram a escolher por apontar o tamanho do arquivo de log
Figura 2 Ambas as bases de dados – ajustadas para desempenho máximo – com e sem discos SSD para armazenamento em massa para os arquivos de dados. Os valores com o disco SSD são pelo menos o dobro.
www.linuxmagazine.com.br
MySQL vs. PostgreSQL | ANÁLISE
Figura 3 Comparação entre várias configurações do PostgreSQL.
do InnoDB em 1GB. Isso levou a um aumento de desempenho de 52% (figura 1, linha D) em comparação com a versão anterior da configuração. A quarta ação de ajuste é um caso limite porque se relaciona com a segurança do banco de dados. Por padrão, o parâmetro flush_log_at_ trx_commit é definido como 1, o que significa que o MySQL escreve o log de transações para o disco, sempre que uma transação for confirmada. Isto significa que você nunca perderá uma transação, mesmo que o MySQL ou o sistema operacional travem. Para cargas de trabalho OLTP (Online Transaction Processing ou Processamento de Transações em Tempo Real) com muitas operações de escrita para armazenar, este prâmetro pode agir como um freio de mão que é liberado quando você mudar o parâmetro. Se for definido o valor como 0, você estará desativando o log depois de um gerenciamento de dados; se for definido o valor para 2, os dados de registro não são escritos fora do disco imediatamente, mas sim, no cache do sistema operacional. Isto significa que a transação vai sobreviver a uma potencial falha do banco de dados, mas seria perdida no caso de uma falha do sistema operacional. Optei por um alterar este padrão e neste
Linux Magazine #87 | Fevereiro de 2012
caso, o resultado foi um aumento de desempenho de mais de duas vezes a velocidade anterior (figura 1, linha E). A quinta ação refere-se ao parâmetro innodb_buffer_pool_instances, que permite dividir a área de buffer em regiões separadas, o que, por sua vez, acelera o processamento de leitura e escrita de operações competitivas.
Quadro 1: Regras de conduta Para assegurar que o grande duelo de bases de dados, PostgreSQL versus MySQL, seja uma luta justa e para garantir que os combatentes não se restrinjam e estejam em perfeita forma, chamei alguns testadores experientes. Cada equipe contribuiu com as melhores dicas de ajuste fino para suas bases de dados. No lado do MySQL, sou grato pelo apoio de Oli Sennhauser, um antigo Senior Database Consultant para o MySQL junto à Sun, e que hoje é um consultor autônomo e neutro de MySQL que gerencia sua própria empresa, a From-Dual. Do lado do PostgreSQL, a equipe editorial recebeu o apoio de Susanne Ebrecht, desenvolvedora do PostgreSQL e co-fundadora do European PostgreSQL User Group, entre outras coisas. Hoje ela está empregada pelos especialistas em PostegreSQL, 2ndQuadrant.
Você vai ver muitas recomendações de alteração para o valor innodb_buffer_pool_instances nos manuais do MySQL. Nosso especialista recomenda definí-lo com o mesmo valor que o número de núcleos da máquina. Outra recomendação para o parâmetro innodb_buffer_pool_size é a mudança do valor em GB mais o número de CPUs/2 que teria alcançado aproximadamente os mesmos resultados, e uma boa dica é usar um mínimo de 1GB para cada parte do pool de buffer, o que lhe dá a mesma configuração que o número de núcleos. Isto novamente levou a um aumento de desempenho considerável (figura 1, linha F). Este gráfico começa a decair conforme o número de bancos de dados aumenta porque, na extremidade superior do espectro de carga, mais ações paralelas são realizadas em até 200 threads que podem ser manipuladas para obtenção de desempenho máximo. Não é coincidência que a maioria dos gráficos de desempenho alcançam seus picos quando de 30 a 60 threads
Quadro 2: WAL O registro prévio da escrita (WAL, que quer dizer Write Ahead Logging) é uma abordagem padrão para registrar transações. Seu conceito central é que as alterações nos arquivos de dados (onde as tabelas e os índices residem) devem ser escritas somente após terem sido registradas, ou seja, quando os registros que descrevem as alterações tiverem sido descarregados em um meio de armazenamento permanente. Um dos benefícios da utilização do WAL é a redução significativa do número de escritas em disco, uma vez que, no momento em que a transação é efetivada somente precisa ser descarregado no disco o arquivo de registro, ao invés de todos os arquivos de dados modificados pela transação. Outro benefício seguinte é a consistência das páginas de dados. A verdade é que antes do WAL o PostgreSQL nunca foi capaz de garantir a consistência dos dados no caso de uma pane.
75
ANÁLISE | MySQL vs. PostgreSQL
terminais estão sendo executados ao mesmo tempo. Os resultados encontrados ao mover o diretório de dados para um dispositivo SSD estão em uma categoria completamente diferente (figura 2). Eles atingiram um pico de quase 20 mil novas solicitações por minuto – mais uma vez, duas vezes mais rápido que o efeito total de todas as ações de ajuste anteriores. A razão é porque o disco rígido não é mais o componente mais lento. A linha inferior é uma configuração MySQL criada para funcionar a uma velocidade 10 vezes mais rápida do que a versão legada não ajustada, e usando um disco SSD alterado a um fator de 20.
dos para o benchmark são programas C compilados, enquanto o MySQL utiliza scripts SQL que são interpretados pelo servidor para o mesmo fim. Dito isto, a diferença não é tão grande.
PostgreSQL entra no ringue
blockdev --setra 4096 /dev/sda
Mais uma vez, em primeiro lugar foi testada a versão do PostgreSQL fornecida pelo repositório do Ubuntu, que é a versão 8.4.8 (figura 3, linha A). Mas, para manter as coisas justas, instale o PostgreSQL 9.1.0 atual (figura 3, linha B). Esta versão não era muito mais rápida do que sua antecessora; no entanto, ganhou o concurso da configuração padrão. A configuração padrão do PostgreSQL mais antiga é quase tão rápida quanto os MySQL atuais não ajustados, mas o último PostgreSQL é um pouco mais rápido em sua configuração padrão e decidiu esta competição a seu favor (figura 4). A razão para a vantagem do PostgreSQL padrão é que ele verifica ativamente os valores de alguns parâmetros, sem interferir no sistema operacional, quando o banco de dados é inicializado na fase de instalação. O MySQL não se incomoda com essa verificação e, portanto, utiliza padrões conservadores para evitar conflitos com o sistema operacional. Claro, isso significa que o MySQL é muito mais lento sem ajuste, porque não tira proveito de suas próprias opções. Além disso, o PostgreSQL tem um trunfo na manga: seus procedimentos armazena-
76
Acelere o PostgreSQL A próxima ação de ajuste do PostgreSQL realmente não se relaciona com o banco de dados, mas sim com o sistema operacional. Como o PostgreSQL depende da leitura de buffer do sistema operacional, pode valer a pena aumentar seu tamanho – o Ubuntu só o define a um baixo valor de 256. Isto costumava ser feito com o comando hdparm, mas o kernel 2.6 introduziu um comando separado para isso:
onde o dispositivo e o número de blocos são apenas alguns exemplos. No entanto, a carga de trabalho para este benchmark é constituída, principalmente, por operações de gravação, e a alteração não teve qualquer efeito positivo perceptível. Se este não é o caso em seu aplicativo, você deve adicionar o comando rc.local ou algum
outro script de inicialização para evitar perder o ajuste com a próxima inicialização da máquina. A ação seguinte é também muito intimamente relacionada com o Linux. Se você deseja alocar mais memória compartilhada para o banco de dados (principalmente na forma de buffers compartilhados), esta quantidade não deve exceder o limite definido pelo sistema operacional – caso contrário, o banco de dados falharia ao tentar alocar mais memória do que o possível. Uma regra de ouro aqui é reservar cerca de um quarto de sua memória RAM para buffers compartilhados – em outras palavras, 2GB, neste caso – com os seguintes passos: comece editando o arquivo /etc/sysctl.conf e adicione as linhas: kernel.shmmax = 4190150656 kernel.shmmall = 10229896
Em seguida, recarregue as configurações através do comando sysctl -p (você precisaria fazer isso após a reinicialização da máquina também). O parâmetro SHMMAX do sistema operacional é definido em 4GB. Agora você pode configurar o tamanho do buffer
Figura 4 Competição entre as configurações padrão de várias versões dos bancos de dados.
www.linuxmagazine.com.br
MySQL vs. PostgreSQL | ANÁLISE
pelo cache no arquivo postgresql.conf: max_connection = 25 e shared_ buffers = 2 GB (anteriormente, 32MB). Para dizer ao PostgreSQL quanto de cache ele pode esperar do sistema operacional, você finalmente precisa definir o valor do tamanho do cache eficaz de RAM menos os buffers compartilhados, neste caso: effective_cache_size = 6GB
Surpreendentemente, essa ação não teve nenhum efeito perceptível no desempenho do PostgreSQL. Embora o banco de dados utilize o cache, como é evidenciado pela boa taxa de acerto (94%), este provavelmente não é um fator decisivo por conta da preponderância das operações de gravação. Por outro lado, o PostgreSQL parece responder mais ao tamanho cada vez maior do banco de dados durante o benchmark. Perto do final do teste, também notei uma queda no desempenho com o MySQL. Por esta razão, reiniciei o MySQL uma vez depois de cerca de 700 cargas de teste e o PostgreSQL múltiplas vezes após 350 cargas de testes após reinstalado o banco de dados padrão. Teria sido impossível chegar a estes valores de cada série de testes por conta da sobrecarga, e de qualquer maneira, essa não é uma abordagem muito prática em um ambiente de produção. A próxima tentativa de ajustes é relacionada ao gerenciamento de memória. A variável work_mem permite configurar a quantidade de memória disponível para operações de classificação interna e tabelas hash. O padrão é 1MB, e eu aumentei este valor para 24MB. A variável maintanance_work_mem permite que você veja a quantidade máxima de memória disponível para operações como VACUUM, CREATE INDEX ou ALTER TABLE ADD FOREIGN KEY. O valor padrão é de 16MB, mas a aumentei para 512MB para a realização dos benchmarks. Novamente, o efeito dessas ações foi perdido na estatística de ruído branco (figura 3, linha C).
Linux Magazine #87 | Fevereiro de 2012
Ajuste de log O equipe de benchmark também definiu alguns pontos de controle (checkpoints), onde o PostgreSQL garantiu que os dados de todos os arquivos heap e index data são atualizados e todas as páginas de memória alteradas são escritas no disco. Após um travamento, o procedimento de recuperação iria procurar um outro ponto de controle e identificar as operações que ocorreram anteriormente e foram portanto, escritas no disco. Você pode configurar quantas vezes o processo de escrita em segundo plano desencadeia esses pontos de controle. Uma boa abordagem é estipular o número de logs dos segmentos em 16MB (checkpoint_segments) depois que um ponto de controle foi escrito. O padrão é 3. Este valor é muito pequeno, especialmente se você tiver um grande número de operações de gravação, então o aumentei para 32, o que pode aumentar o tempo de recuperação de falhas, mas também elimina a necessidade de muitos pontos de controle de entrada e saída de dados. Esta ação foi muito bem sucedida visivelmente: o aumento de desempenho foi de até 100% (figura 3, linha D). Mais tarde, experimentos mostraram que os valores mais elevados de checkpoint_segments não levam a quaisquer melhorias significativas. Você pode dar mais um passo nessa direção, e desativar a opção padrão synchronous_commit, o servidor do banco de dados não irá aguardar a escrita dos logs (WALs ou registro prévio da escrita – quadro 2) para fazer o seu caminho até o disco antes de passar uma mensagem de sucesso para o cliente. Embora seja mais rápido, isto pode lhe custar transações individuais no caso de um travamento. Em alguns casos, poderá aceitá-lo para obter maior desempenho (por exemplo, em uma aplicativo de mensagens em um fórum), mas certamente não é aceitável para transações financeiras, por exemplo. Obviamente você
precisa saber o que está fazendo. Para manter as coisas justas, também testei esta variante de ajuste. Com um gerenciamento de dados assíncrono, o número de transações subiu para um nível máximo similar ao alcançado pelo MySQL, em mais de 15 mil transações por minuto (figura 3, linha E).
Conclusão O PostgreSQL teve um excelente começo, mas foi difícil melhorar depois disso. O MySQL começou a com uma configuração padrão inferior, mas conseguiu melhorar de forma gradual. Em termos de caching, em particular, ele tocou em reservas que o PostgreSQL provavelmente nunca teve, porque foi melhor otimizado personalizadamente. Depois de substituir o acesso ao disco tanto quanto possível, através de operações de memória RAM, os dois bancos de dados foram beneficiados consideravelmente, reduzindo a sobrecarga causada pelo inevitável log de transações. No melhor cenário, o que implicou em um compromisso de segurança, os dois concorrentes foram bastante equilibrados. O que deu às duas bases de dados um impulso ainda maior foi a mudança de gravação para discos SSD. Na melhor configuração e com um disco SSD como meio de armazenamento, o número de transações dobrou. Empate técnico? Os dois bancos de dados, no final das contas, não deixam nada a desejar! ■
Mais informações: [1] DBT-2: http://is.gd/7BJTVs [2] TPC-C: http://www. tpc.org/tpcc/
Gostou do artigo? o? Queremos ouvir sua opinião. nião. Fale conosco em cartas@linuxmagazine.com.br .com.b Este artigo no nosso o site: site http://lnm.com.br/article/6432 ticle 32
77
Inclua em seu currículo a principal certificação Linux no mundo – LPI.
Em tempos de crise, soluções de código aberto – como o Linux – se destacam na adoção por empresas de todos os tamanhos, como solução ideal para aumentar eficiência nos negócios e reduzir custos. Atualmente há no mercado uma carência por profissionais certificados para atender a essa demanda crescente. Aproveite essa oportunidade e inclua em seu currículo a principal certificação Linux no mundo.
Inscrições e mais informações:
www.lpi-brasil.org treinamentos@vectory.com.br Tel (11) 3675-2600
R
Linux Professional Institute
PREVIEW
Linux Magazine #88 Vai dar Samba A interoperabilidade é uma constante na vida de grande parte dos usuários corporativos e até mesmo domésticos da atulidade. É comum encontrar redes heterogêneas onde é necessário que haja convivência harmoniosa entre computadores e servidores que possuem Linux, Windows, Mac OS X e alguns outros. E para ter tranquilidade, garantindo a harmonia em sua rede, na próxima edição da Linux Magazine, vamos falar sobre as várias formas de interoperar com os diversos sistemas, utilizando Samba e outras ferramentas que irão garantir a paz em sua rede. ■
Admin Magazine #05 Monitoramento Na Admin Magazine #05, você irá conhecer as melhores opçoes em softwares para monitoramento de sistemas. Seja em redes Linux, Windows ou mesmo em redes mistas, o monitoramento de redes e sistemas está presente no dia a dia de nove entre dez administradores de sistemas. Se você é um deles, não perca nossa próxima edição!
82
www.linuxmagazine.com.br