Image Image Image Image Image
Scroll to Top

Topo

hadoop

10

abr
2012

Sem Comentários

Em Blog

Por Allison

Como será o futuro dos desenvolvedores?

Em 10, abr 2012 | Sem Comentários | Em Blog | Por Allison

Fonte: Cezar Taurion

Outro dia recebi um e-mail muito interessante de um desenvolvedor recém-formado, que se questionava sobre quais tecnologias deveria se dedicar nos próximos anos. Debatemos o assunto e creio que um pequeno resumo do debate pode ser de interesse para outros desenvolvedores que estejam diante da mesma dúvida: como será o futuro do desenvolvedor?

Bem, minha bola de cristal dá “tela azul” toda vez que tento fazer previsões, mas podemos discutir alguns cenários que já estão claramente delineados.

Os desenvolvedores estão as voltas com uma verdadeira convergência tecnológica, na qual cloud computing, mobilidade, social business, Big Data e Internet of Things requerem novas habilidades para o desenvolvimento de aplicações inovadoras. As empresas esperam que sejam desenvolvidas novas aplicações para novos dispositivos, com a finalidade de resolver novos tipos de problemas.

O desafio das empresas e de seus desenvolvedores é de criar estas novas aplicações, ao mesmo tempo que devem manter as atuais funcionando sem interrupções. Em muitas organizações, isso significa manter programas Cobol e escrever aplicações PHP ou Ruby simultaneamente.

As aplicações que farão diferença em um mercado altamente competitivo criam grandes oportunidades, mas ao mesmo tempo, geram novos desafios. Desenvolver uma aplicação usando interfaces touch-screen, ou de reconhecimento de voz, que interaja com tecnologias de midia social, como Facebook ou Twitter, demandam habilidade, métodos e processos diferentes. Por exemplo, a computação social demanda habilidades sociológicas e antropológicas para criar novos processos que atendam à demanda das interações sociais que os usuários desejam. Não espero que os desenvolvedores estudem a fundo antropologia, mas as equipes de desenvolvimento deverão ter uma multidisciplinaridade de habilidades que trabalharão em conjunto. Assim, métodos e práticas de desenvolvimento colaborativo serão fundamentais para a criação destas novas aplicações.

Também é desafiadora a criação de aplicativos que interajam com tecnologias de Big Data, como o Hadoop e o MapReduce. Juntamente com mobilidade e social business, teremos aplicações socialytics (social business + business analytics) sendo acessadas por dispositivos móveis, como smartphones e tablets.

O Hadoop é um desafio à parte, pois é um conjunto de diversos projetos open source desenvolvidos para trabalhar com grandes volumes de dados, de forma paralela. Para termos uma ideia do Hadoop, pense que ele contém projetos como o Hadoop e MapReduce, que são um framework Java para processamento paralelo, HDFS, que é um sistema de arquivos distribuídos, Pig (linguagem de programação), Hive (linguagem similar ao SQL, chamado de HiveSQL), e diversos outros. Uma visita ao site mostra os diversos projetos associados ao Hadoop.

Cada projeto não se integra, necessariamente, com os demais e portanto é necessário um exaustivo trabalho de integração. Surgem, então, as distribuições Hadoop, que atuam mais ou menos de forma similar às distribuições Linux. Existem várias distribuições – cada uma com caracteristicas diferentes. Entre as mais conhecidas temos a Cloudera, a InfoSphere BigInsight da IBM (que usa GPFS ou General Parallel File System) como alternativa ao HDFS e DataStax, que usa Cassandra ao invés do HDFS. Portanto, muito estudo e trabalho pela frente!

O recente CES 2012 (Consumer Electronics Show) mostrou mais alguns futuros desafios para os desenvolvedores. As interfaces estão saindo rapidamente do tradicional contexto teclado+mouse para multitouch, voz, gestos, reconhecimento facial e até mesmo “eye tracking”. Já temos casos de sucesso: o Siri do iPhone 4S sinaliza que os usuarios começarão a interagir com seus dispositivos através de comandos de voz. A Samsung anunciou um conjunto de APIs abertas e um SDK (Software Development Kit) para desenvolvimento de aplicações para sua Smart TV. A empresa realizou recentemente uma competição para desenvolvedores criarem aplicativos para esta plataforma e coisas muito interessantes foram geradas. Vejam em aqui. A LG anunciou o Gesture Cam, que permite o controle da TV através de gestos; de forma similar ao Kinect do Xbox360. Provavelmente, em breve as diferenças entre PCs, TVs, smartphones e tablets serão apenas o tamanho da tela, uma vez que todos usarão as mesmas interfaces.

A Internet das Coisas (Internet of Things, ou IoT) também abre novas frentes. Estamos falando de coisas como eletrodomésticos, automóveis, ativos da empresas (edifícios inteligentes, por exemplo) e infraestrutura das cidades conectadas à Interrnet e interagindo entre si e com os aplicativos corporativos. Quando adicionamos inteligência (leia-se software) aos objetos e eles começam a interagir e a negociar entre si, isso nos abre inúmeras oportunidades de novos negócios. Claro que as empresas vão olhar esta possibilidade de obter vantagens competitivas com atenção. Um exemplo é a criação de uma logistica muito mais inteligente que a maioria das empresas tem hoje. Imaginem uma “self-controlled logistics”!

Bem, o que os executivos demandarão? Novos aplicativos que explorem a IoT e que, por sua vez, demandam novas habilidades dos desenvolvedores como EDA (event-driven architecture). Um texto basico sobre EDA pode ser encontrado na Wikipedia.

Claro, .NET e Java continuarão a dominar o cenário das linguagens usadas nas empresas, pelo menos no horizonte previsível. Mas começa a surgir espaço para novas linguagens, como Perl, Ruby ou PHP. Por brincadeira consultei algumas vagas de desenvolvedores para o Facebook e encontrei de maneira geral demandas por profissionais que conheçam Java e/ou C++ e tenham conhecimento de PHP, Perl ou Python, além, é claro, de Hadoop.

Este cenário leva a uma outra discussão: até que ponto os métodos ágeis de desenvolvimento substituirão ou complementarão os métodos de desenvolvimento mais tradicionais? Me parece que os métodos ágeis estarão mais próximos da velocidade de resposta que os negócios demandam dos desenvolvedores. Além disso, está claro que os desenvolvedores nunca terão todas as respostas para as inumeras demandas dos seus usuários. Aí é que entra o conceito das aplicações mashup. Os usuários passarão a também desenvolver pequenas aplicações em cima das APIs geradas pelos desenvolvedores. Veremos os desenvolvedores-cidadãos! E isso tende a se acelerar à medida que a geração digital se insere no mercado de trabalho. Eles entram nas empresas já com vários anos de prática na criação de apps para smartphones e tablets (são verdadeiros app entrepreneurs) e vão querer usar suas habilidades para desenvolver apps para interagirem com as aplicações corporativas.

Na minha opinião, as aplicações serão cada vez mais heterogêneas em tecnologias, misturando diversas linguagens no mesmo sistema. Além disso, novas funcionalidades deverão ser incorporadas de um dia para o outro. O SOA (service-oriented architecture) e os métodos SODA (service-oriented development of applications) são a resposta.

Por tudo que debatemos, nosso amigo ficou mais preocupado ainda… Por outro lado, enxergou que terá, como desenvolvedor, uma longa carreira pela frente!

Tags | , ,

30

jan
2012

Sem Comentários

Em Blog
Dados
NoSQL

Por Allison

A revolução do Big Data está prestes a acontecer

Em 30, jan 2012 | Sem Comentários | Em Blog, Dados, NoSQL | Por Allison

Fonte: Cezar Taurion/IMasters

O termo Big Data começa a despertar muita atenção, mas ainda é um conceito mal definido e compreendido. Com uma rápida pesquisa ao Google, identifiquei, pelo menos, uma dúzia de definições. Neste artigo, vou falar um pouco sobre o assunto e debater alguns desafios que temos para conseguir colocar projetos de Big Data em ação.

Sem entrar em definições e nos atendo apenas à conceitos, podemos resumir com uma fórmula simples o que é Big Data: volume + variedade + velocidade de dados. Volume porque, além dos dados gerados pelos sistemas transacionais, temos a imensidão de dados gerados pelos objetos na Internet das Coisa, como sensores e câmeras, e os gerados nas mídias sociais, via PCs, smartphones e tablets. Variedade porque estamos tratando tanto de dados textuais estruturados, quanto dos não estruturados, como fotos, videos, emails e tuítes. E, por fim, velocidade porque, muitas vezes, precisamos responder aos eventos quase que em tempo real. Ou seja, estamos falando de criação e tratamento de dados em volumes massivos.

Outro desafio: criar e tratar apenas de dados históricos, como os veteranos Data Warehouse e as tecnologias de BI (Business Intelligence) começam a se mostrar lentos demais para a velocidade com que os negócios precisam tomar decisões. Aliás, o termo BI já tem mais de 50 anos. Ele foi cunhado por Hans Peter Luhn, pesquisador da IBM em um artigo escrito nos idos de 1958.

Quando falamos em volume, os números são gigantescos. Se olharmos globalmente, estamos falando em zetabytes, ou 10²¹ bytes. Grandes corporações armazenam múltiplos petabytes e mesmo as pequenas e médias empresas trabalham com dezenas de terabytes de dados. Este volume tende a crescer geométrica mente. Em mundo cada vez mais competitivo e rápido, as empresas precisam tomar decisões baseadas não apenas em palpites, mas em dados concretos. Assim, para um setor de marketing faz todo sentido ter uma visão 360° de um cliente, olhando não apenas o que ele comprou da empresa, como registrado no ERP, mas saber o que ele pensa e diz sobre a empresa e como os faz – pelo Facebook e Twitter, por exemplo.

Hoje, já é consenso que dados são os recursos naturais da nova Revolução Industrial. Na atual sociedade industrial, ter apenas recursos naturais, como minério, e exportá-los de forma bruta – importando em troca produtos manufaturados, não garante a competitividade de um país no longo prazo. O importante é a tecnologia e o conhecimento que cria produtos manufaturados. Afinal, um quilo de satélite vale imensamente mais forte que um quilo de minério de ferro.

Fazendo um paralelo, na sociedade da informação é crucial saber tratar os dados na velocidade adequada. Dados não tratados e analisados em tempo hábil são dados inúteis, pois não geram informação. Dados passam a ser ativos corporativos importantes e como tal, podem – e deverão – ser quantificados economicamente.

Big Data representa um desafio tecnológico, pois demanda atenção à infraestrutura e tecnologias analíticas. O processamento de volumes massivos de dados pode ser facilitado pelo modelo de computação em nuvem, desde, é claro, que este imenso volume não seja transmitido repetidamente via Internet. Só para lembrar, os modelos de cobrança pelo uso de nuvens públicas tendem a gerar processamentos muito baratos, mas tornam caro a transmissão de muitos dados.

A principal base tecnológica para Big Data Analytics é o Hadoop e os bancos de dados NoSQL, onde “No” significa Not Only SQL, ou seja, usa-se bases de dados SQL e não SQL. A importância do “Not Only” SQL explica-se pelo fato do modelo relacional ser baseado na época de sua criação, no início dos anos 70. Nessa época, acessar, categorizar e normalizar dados era bem mais fácil do que hoje. Praticamente não existiam dados não estruturados circulando pelos computadores da época. Também não foi desenhado para escala massiva, ou para um processamento muito rápido. Seu objetivo básico era possibilitar a criação de queries que acessassem bases de dados corporativas e, portanto, estruturadas. Para soluções Big Data, tornam-se necessárias varias tecnologias, desde bancos de dados SQL, a softwares que utilizem outros modelos, que lidem melhor com documentos, grafos, processamento paralelo, etc.

A complexidade do Big Data vem à tona quando lembramos que não estamos falando apenas de armazenamento e tratamento analítico de volumes massivos de dados, mas de revisão, ou criação, de processos que garantam a qualidade destes dados e de processos de negócios que usufruam dos resultados obtidos. Portanto, Big Data não é apenas um debate sobre tecnologias, mas, principalmente, sobre como os negócios poderão usufruir da montanha de dados que está agora à sua disposição. Aí emerge a questão da integração: como integrar bases de dados estruturadas e não estruturadas com diversos softwares envolvidos?

O Big Data abre oportunidades profissionais bem amplas. Na minha opinião, existe espaço para dois perfis profissionais: um mais voltado para os negócios e qualificados para tratar analiticamente as informações geradas por estas imensas bases de dados e outro com viés mais técnico, ou Data Architect.

Pelo viés dos negócios, um artigo interessante que foi publicado há poucos meses pelo Wall Street Journal, na edição brasileira, aponta como problema a escassez de talentos. Ele fala que muitas empresas americanas começaram a procurar profissionais que saibam interpretar os números usando a análise de dados, também conhecida como inteligência empresarial. Mas encontrar profissionais qualificados tem se mostrado difícil. O resultado foi que várias faculdades americanas, como a Faculdade de Pós-Graduação em Administração da Universidade Fordham e a Faculdade de Administração Kelley, da Universidade de Indiana, começaram a oferecer disciplinas eletivas, cursos de extensão e mestrados em análise de dados. Já o Data Architect deve lidar com tecnologias SQL e NoSQL, conhecer profundamente conceitos como stream processing e Event Driven Architecture (EDA) e, portanto, ter capacidade de desenhar estratégias para manusear e analisar grandes volumes de dados de formatos diferentes, quase que em tempo real.

A ideia de stream processing, ou stream computing, é fantástica; é um novo paradigma. No modelo de data mining tradicional, uma empresa filtra dados dos seus vários sistemas e, após criar um data warehouse, dispara “queries”. Na prática, faz-se uma garimpagem em cima de dados estáticos, que não refletem o momento, mas sim o contexto de horas, dias ou mesmo semanas atrás. Com o stream computing, esta garimpagem é efetuada em tempo real. Em vez de disparar queries em cima de uma base de dados estática, coloca-se uma corrente contínua de dados (streaming data) atravessando um conjunto de queries. Podemos pensar em inúmeras aplicações, sejam estas em finanças, saúde e mesmo manufatura.

Vamos ver este último exemplo: um projeto em desenvolvimento com uma empresa de fabricação de semicondutores monitora em tempo real o processo de detecção e classificação de falhas. Com o stream computing, as falhas nos chips que estão sendo fabricados são detetadas em minutos e não em horas ou semanas. Os wafers defeituosos podem ser reprocessados e, mais importante ainda, pode-se fazer ajustes em tempo real nos próprios processos de fabricação.

Quanto ao EDA, pode-se começar a estudar o assunto acessando seu verbete na Wikipedia.

O termo Big Data vai aparecer na tela do radar dos CIOs em breve. Aliás, já aparece no canto da tela de um ou outro CIO, e, provavelmente, em alguns anos já será um dos temas mais prioritários das tradicionais listas de “tecnologias do ano”. Portanto, é bom estar atento à sua evolução e começar a colocar em prática algumas provas de conceito.

Tags | , , , , ,

01

set
2011

Sem Comentários

Em Blog

Por Allison

Microsoft SQL Server Conectado com Hadoop

Em 01, set 2011 | Sem Comentários | Em Blog | Por Allison

Através de um anúncio feito pela própria Microsoft, já estão disponibilizados dois conectores Community Technology Previews (CTP) para a plataforma open source map/reduce Hadoop. A tecnologia Hadoop é desenvolvida sob a égide da Apache Software Foundation para o gerenciamento e análise de grandes quantidades de dados. Os conectores permitem a transferência de dados entre o sistema Hadoop, Microsoft SQL Server 2008 R2 e SQL Server Parallel Data Warehouse (PDW).

Esses conectores permitem que grandes quantidades de dados estruturados e não estruturados, sejam manipulados pelo Hadoop utilizando sistemas de bancos de dados da Microsoft. Isso significa que os clientes podem analisar os dados não estruturados no Hadoop, e integrar os resultados extraídos desses dados para o seu produto de data warehouse.

Além disso, conectores SQOOP (Hadoop para SQL) podem fazer uma transferência de dados entre o Hadoop File System (HDFS) e os bancos de dados relacionais.

Fonte: Under-Linux

Tags | , , , , , ,

30

ago
2011

Sem Comentários

Em Blog

Por Allison

SQL Server e Hadoop poderão ser conectados

Em 30, ago 2011 | Sem Comentários | Em Blog | Por Allison

A Microsoft anunciou duas Comunidades Prévias de Tecnologia – em inglês Community Technology Previews (CTP) – de conectores para plataforma map/reduce Hadoop. Os conectores permitem a transferência dos dados em ambos sentidos entre o Hadoop e o SQL Sever 2008 R2 e SQL Sever Parallel Data Wharehouse (PDW).

Assim, uma grande quantidade de dados estruturados ou não-estruturados poderão ser manipuladas pelo Hadoop usando o sistema de banco de dados da Microsoft. Por exemplo, os clientes podem analisar dados estruturados no Hadoop e integrar os resultados encontrados no armazenamento de dados da Microsoft.

Os conectores usam SQOOP (Hadoop para SQL) para armazenar transferências de dados entre o sistema de arquivos Hadoop (Hadoop File System – HDFS) – e os bancos de dados relacionados. O conector PDW também usa o alto desempenho da ferramenta PDW Bulk Load/Extract para importar e exportar.

De acordo com o anúncio, o conector SQL Server é compatível com Denali; este é o nome do código para a próxima versão do SQL Server, que está atualmente na terceira CTP. É possível requisitar uma cópia da versão de testes do conector para PDW pelo serviço de suporte ao cliente da Microsoft; para o conector para SQL Server já existe uma página para download.

Fonte: IMaster

Tags | , , ,