Mostrando postagens com marcador opensource. Mostrar todas as postagens
Mostrando postagens com marcador opensource. Mostrar todas as postagens

quarta-feira, 2 de outubro de 2013

Cassandra Trip Brasil [Agradecimentos]

O evento Cassandra aconteceu entre os dias 2 e 6 de setembro com o objetivo de falar dos conceitos de nosql, bigdata, do cassandra e da sua arquitetura além das novidades com a nova versão, o Cassandra 2.0. O evento foi um sucesso, com isso, gostaríamos de agradecer todos que participaram e ajudaram o evento de alguma forma.
Para saber mais sobre o Cassandra, trocar experiência e tirar dúvidas técnicas ou conceituais foi criado o grupo Cassandra Trip Brasil, para mais informações aqui.
Slides utilizados no evento:
http://www.slideshare.net/bcoverston/tutorial-session
http://www.slideshare.net/edwardribeiro/cassandra-tripbrasil
http://www.slideshare.net/otagonsan/cassandra-trip
Fotos da Trip: http://goo.gl/mFVDsl
Existirá uma próxima atividade para o Cassandra que é o um mini-curso gratuito de Cassandra. No dia 10 de outubro, quinta-feira, na Global Code.
Título: Primeiros passos com o Cassandra
Descrição: O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM, dentre muitas outras. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.
Público alvo: Desenvolvedores, DBAs,  entusiastas com curiosidade de conhecer mais sobre bancos de dados nosql e o banco Cassandra.
  Ementa:
  • Conceito Data Science
  • Conceito BigData
  • NOSQL
  • Histórico
  • Tipos de Bancos
  • Comparação com o Modelo relacional
  • Cassandra
  • Arquitetura Cassandra
  • Configurações Básica do Cassandra
  • Configuração de multi-nodes no Cassandra
  • Conhecendo o DevOpsCenter
  • Instalando os Agentes

Para aqueles que não são de São Paulo:
Link : https://globalcode.webex.com/globalcode/onstage/g.php?t=a&d=662489296
Pass: cassandra
Mais informações: http://goo.gl/S3LQBm

sexta-feira, 18 de janeiro de 2013

Introdução ao BigData





    Demorou, mas finalmente conseguir um tempo para falar um pouco da minha apresentação no JavaOne 2012 que foi BigData. Com a evolução das aplicações e a necessidade do ser humano pela informações, mais e mais aplicações vem surgindo, deixando o homem cada vez mais refém da informação. Para isso basta lembra-nos da evolução do homem em que num passado existia muitas pessoas para uma máquina ( como o mainframe), em seguida uma pessoa por máquina ( o caso do computador pessoal) e nos tempos atuais em que para cada pessoa possue várias máquinas ( notebook, ultrabook, PC, tablet, smartphone, no futuro óculos, geladores, etc.). Com tantos aplicativos surgindo as informações são geradas exponencialmente, com isso a capacidade de gerenciar tantas informações se torna primordial para as aplicações atuais. Esse mesmo crescimento de dados acontece nos aplicativos empresariais com crescimento anual de 60%, se estima que uma empresa com mil funcionários gera anualmente 1000 terabytes sem falar que essa quantidade tende a aumentar cinquenta vezes até 2020.

    Com o recém surgimento do bigdata, a primeira dificuldade é encontrar o seu conceito, é possível vê-los de maneiras totalmente divergentes em cada blog que se lê, ou seja, se você ler 10 materiais sobre bigdata, provavelmente cada um trará conceitos diferentes. Dentre as matérias ao se tirar um mínimo comum se verá que o bigdata na sua raiz se fala em tratar um grande volume de dados com grande velocidade. No entanto se repara que essa definição é bastante abstrata pelo simples fato de que para uma pessoa A, por exemplo, um grande volume seja um gigabyte e para uma pessoa B um grande volume seja um terabyte e o mesmo pode acontecer ao se referenciar a velocidade e o tempo de resposta de uma requisição.
    Assim o grande desafio do bigData é estar administrando um grande volume de dados e minerando informações em um menor tempo de requisição. Com o grande volume de dados fazer com que a aplicação cresça a medida que é necessário é uma ótima estratégia assim uma escalabilidade vertical ( em que se aumenta o poder do hardware como aumento de memória e de processamento de uma única máquina) ou horizontal ( em que se aumenta a quantidade de máquina) deve ser analisada. Apesar de ser mais complexa a escalabilidade horizontal acaba sendo muito barata sem falar de ser mais fácil de crescer ou diminuir os recursos por demanda.
    Para armazenar as informações com a escalabilidade horizontal os bancos NOSQL são uma ótima estratégia, vale lembrar que o banco NOSQL significa não apenas, not only, e não sql, no sql. Uma diferença entre os bancos NOSQL e o SQL é que o primeiro possui uma grande variedade de bancos e cada um com características diferentes. Em termo de arquitetura os bancos NOSQL podem ser distribuídos ou não, embora sejam mais populares do tipo distribuído. Sua forma de armazenamento pode ser apenas memória ou apenas disco rígido ou configurável( vale apena lembrar que banco apenas na memória são muito rápidos, no entanto são volúveis, já os somente no HD tem informações permanentes, porém o I/O é muito alto). Outra características divergentes entre os bancos NOSQL está na forma do armazenamento que são: chave-valor, documento, família de coluna e grafos. Os bancos         NOSQL costumam ser muito rápido na leitura e na escrita, no entanto, possui uma grande deficiência por parte das buscas, normalmente são dadas apenas pela chave, para isso usar um serviço para terceirizar o serviço pode ser uma boa ideia, como o framework Lucene.
    Mesmo realizando estratégias de buscas terceirizadas ou buscando pelo id, se a informação não estiver na memória principal pode haver uma demora para recuperar essa informação, assim, ter um dispositivos de acesso rápido pode ser uma melhor opção, com isso o uso do cache. Ao se optar pelo cache deve-se levar em conta os dois maiores desafios:
  • Ter informação: O ato de esquentar a informação é extremamente importante para esse mecanismos, já que não adianta existir um cache se o mesmo não tenha nenhuma informação. Para isso ele pode ser esquentado de várias formas (ao iniciar uma aplicação, por demanda, por sessão do usuário) que desse ser definido com o aplicativo em questão não existindo uma bala de prata.
  • Matar o cache: Para o cache é necessário que exista apenas informações atuais, assim é importante que os dados atuais sejam mortos e trocado por informações mais atuais.


    Um outro aspecto no bigdata, que não é muito tratado, está relacionado na velocidade da modelagem além da velocidade no desenvolvimento de software. Um exemplo muito interessante é o twitter que viu muito usuários usando a hashtag ( o '#' adicionado com uma palavra) e em pouco tempo teve que realizar pesquisas através dos mesmos.
    Assim podemos verificar que o bigdata não apenas está relacionado apenas na velocidade de requisição, mas também em desenvolvimento, assim conhecer bem o negócio além de várias ferramentas poderá ser extremamente importante. Na linguagem Java conhecer o Java EE 6, muito em breve o java 7, além do JDK 7 trará velocidade de desenvolvimento, produtividade e um melhor gerenciamento de memória.
    Assim pode-se concluir que o conceito do BigData é relativamente muito fácil, mesmo sendo divergente em várias fontes, que é gerenciar um grande volume de memória em alta velocidade. O mais difícil certamente é chegar nesse objetivo já que para isso é necessário conhecer uma gama de ferramentas, frameworks, metologias, tipos de bancos como NOSQL, SQL e NewSQL, cache, serviço de indexação de buscas, tipos de escalabilidades, etc. Apesar de ainda ser muito discutida nas universidades a normalização foi desenvolvida em 1970 ( vale lembrar que os servidores da época possuíam 16kb de memória principal e 800kb de armazenamento e os celulares são muitas vezes mais rápido que estes servidores) ou seja não é certo afirmar que os aplicativos, os hardwares, as necessidades de hoje são os mesmos daquela época, assim é entender que esse padrão nem sempre é válido.


domingo, 16 de setembro de 2012

Palestras Desenvolimento no SFD 2012





      

O Software Freedom Day (SFD) é uma celebração mundial do Software Livre e do Código Aberto (Free and Open Source Software – FOSS). Para esse evento na grade de desenvolvimento teve uma sala voltada para os desenvolvedores de software, entusiastas ou profissionais, o objetivo foi demonstrar ferramentas livres, além das mais recentes tecnologias lançadas no mercado. Temas como Cloud Computing, Html 5, GitHub e dispositivos móveis fizeram parte dos temas abordados nessa sala.
Confiram as apresentações que fizeram parte dessas seletas palestra para o evento.