2016-01-01

22) Big Data Posts – Façamos 2016 ser próspero buscando eficiência estrutural e usando tecnologia de informação

#bigdata #hadoop #spark

Os Slides gratuitos do curso Geonumerica Training de "Big Data Spark Developer" podem ser baixados nesse link.

É ano novo. Todos queremos um plano e uma esperança. Há uma grave crise em andamento, com perspectivas ruins. A crise muitas vezes nos deixa cegos. É adequado relembrar alguns conceitos básicos de economia, para nos guiar na superação da nossa crise.


  • O aumento da prosperidade decorre do aumento da produção de bens e serviços, e não do aumento de salários ou do dinheiro em circulação.  
  • Com recursos sempre limitados, a melhor forma de se aumentar a produção é aumentar a produtividade, isso é, “fazer mais com menos consumo de recursos”. Em outras palavras, nosso plano para conquistar a prosperidade de deve fazer aumentar a “eficiência estrutural” da sociedade.  
  • O uso intenso e sábio de tecnologia de informação, aliado a um sistema de educação forte, tem alto potencial de implantar grandes ganhos de eficiência estrutural na sociedade.

Daí decorrem perguntas bem práticas:

1)   Como se implanta aumento de eficiência?
2)   Como a tecnologia de informação colabora com o aumento da eficiência?
3)   Porque precisamos aliar nossos planos com um sistema de educação forte?
4)   Como e porque a tecnologia de Big Data abre novas possibilidades de aumento de eficiência?

Vou responder com exemplos. Comecemos pela primeira e a segunda perguntas: Pense numa fábrica qualquer. Pode ser uma fábrica de alimentos. Digamos: uma fábrica de macarrão. É possível fazer macarrão com técnicas muito simples, manualmente. Resumidamente a receita é a de se misturar os ingredientes básicos na proporção certa, cortar a massa no formato adequado, fazer o pré-cozimento e embalar. Agora pensemos em produzir grandes quantidades de macarrão. Sem o uso de máquinas para auxiliar a produção, fica muito difícil e caro fazê-lo. As máquinas ideais devem ter alto nível de automatização. Máquinas muito manuais desregulam-se facilmente, provocando inconformidade no produto final, desperdiçando tempo, energia e matéria prima, entre outros fatores. O sonho de consumo do dono da fábrica é que ela seja 100% automática, em que se injeta a matéria prima, energia e recolhe-se o produto final sem erros, com perda mínima, pelo menor custo possível, e com produção integrada com os varejistas (i.e., clientes), que vão comprar o que foi produzido (provavelmente para revender).

Quem fornece equipamentos, software e serviços para o dono da fábrica (de macarrão ou de qualquer coisa) deve reconhecer o desejo do cliente, e entregar produtos que lhe sejam valiosos. Um dos valores que se pode oferecer é a integração da produção da fábrica com seus clientes. As fábricas mais evoluídas têm um sistema de software para venda da produção integrada com os varejistas. Um sistema desses faz a venda da produção garantindo os parâmetros de comercialização exigidos pelas partes compradora e vendedora. O sistema também produz automaticamente as informações derivadas das transações econômicas (tal como o número do lote vendido, local de entrega, etc.) Quem já viu um sistema de vendas feito de forma não automatizada, com muitos agentes de vendas ligando o dia inteiro, e preenchendo papeis – em geral desorganizados – e comparou isso com um sistema de vendas automatizado, em que o computador faz tudo e apenas emite as guias para as operações de entrega, reconhece imediatamente o enorme ganho de eficiência que se tem com um sistema de vendas automatizadas. Por usar um sistema automático, a fábrica e o varejo produzem, vendem e lucram muito mais, em muito menos tempo, com muito menos gente envolvida no processo, e com muito menos erros. Ou seja: implantar um sistema de vendas automática cria eficiência estrutural.

Pela perspectiva do dono da fábrica, a compra do sistema de vendas automáticas deve gerar aumento de lucro financeiro, isso é, a operação com o sistema automático deve gerar excedentes financeiros maiores que com o sistema manual. Como todos vivemos em ambiente competitivo, o dono da fábrica eventualmente será pressionado a abaixar o preço do produto (ou o cliente comprará de outro); portanto, o “aumento de lucro” que se obteve com o sistema novo eventualmente torna-se a diferença entre sobreviver empresarialmente ou ser forçado a fechar a empresa (como aconteceu com muitas indústrias no Brasil nesse ano).

Não é difícil imaginar muitos outros exemplos em que a tecnologia de informação faz aumentar a eficiência estrutural. Vou citar alguns. Imagine sempre como seria fazer a tarefa com e sem o uso de tecnologia de informação.


  • O sistema de agendamento de vistorias de carros do Detran do RJ.
  • O sistema de vendas de empresa aérea para venda de bilhetes e check-in pela web/mobile.
  • O sistema de comércio eletrônico por web/mobile de empresas de varejo.
  • O sistema de banco eletrônico por web/mobile.
  • O sistema de acompanhamento de processos jurídicos pela web de vários tribunais.


Mas apesar de haver tanto valor criado sistemas como os mostrados acima, ainda há muitíssimo por se fazer. Abaixo listo alguns exemplos de coisas que estão esperando para serem automatizadas ou melhoradas com o uso de tecnologia de informação.

  • Porque não podemos fazer um sistema de procuração automática por software, usando CPF eletrônico? Que outras formas de automatização (ou eliminação) de procedimentos de cartórios devem ser feitas?
  • Porque muitas escolas tem um sistema de controle acadêmico de forma manual, com muitos funcionários e muitos papéis para controlar tudo?
  • Porque não temos um sistema simples de entender que nos permita ver como o governo gasta o dinheiro do povo? (algo mais simples que o portal da transparência, com muitos gráficos mostrando a alocação de recursos).
  • Porque o governo usa o dinheiro do povo para imprimir centenas de milhões de livros didáticos, quando poderia pagar muito menos para que esse material ficasse disponível de forma eletrônica, e ao mesmo tempo ajudar pessoas menos favorecidas a ter acesso de sistema eletrônico para ler o material didático em formato eletrônico?
  • Porque não fazemos uma fila eletrônica de caminhões no porto (para evitar que os caminhões fiquem fisicamente na fila na estrada), o que liberaria a via e traria conforto para os caminhoneiros?
  • Porque há muitos hospitais que não tem sistemas de agendamento de consultas, em que os pacientes pedem para entrar na fila pela web ou mobile?
  • Como podemos reduzir os desperdícios de alimentos com um sistema de informação?
  • Como podemos incentivar a reciclagem de lixo com um sistema de informação?
  • Como podemos ajudar a encontrar vazamentos de água com um sistema de informação?
  • Como podemos ajudar a eficiência policial com o uso de tecnologia de informação?
  • Como podemos criar mais oportunidades no turismo com o uso de tecnologia de informação?

O leitor já entendeu que o potencial de se prosperar com o uso de tecnologia de informação é gigantesco. Os chamados “países desenvolvidos” já entenderam que devem tirar proveito de TI para criar uma sociedade eficiente. Nós podemos fazer o mesmo. Mas vamos agora responder a terceira pergunta “Porque precisamos aliar nossos planos com um sistema de educação forte? ”. Porque uma sociedade com padrão contemporâneo, com alto nível de automação e eficiência estrutural, requer profissionais muito qualificados para opera-la e projeta-la. Quase tudo que se faz tem alto nível de conhecimento. O sistema de educação precisa formar pessoas que efetivamente tenham conhecimento e capacidade de interagir com a sociedade sofisticada que desejamos criar. Em resumo: educação é a base de tudo.

Por último, vamos a quarta pergunta: “Como e porque a tecnologia de Big Data abre novas possibilidades de aumento de eficiência? ”. A resposta é que a tecnologia de Big Data expandiu muito e também simplificou a forma como se implantam sistemas de software com capacidade de processar enormes volumes de dados. Muitos problemas que envolvem processamentos de dados volumosos eram considerados não resolvíveis, ou caros demais para serem resolvidos. Com a nova tecnologia, passamos para um novo mundo em que muitas coisas passaram a ser possíveis. Veja algumas coisas que se pode fazer com tecnologia de Big Data.


  • Processar dados de redes sociais, inclusive em tempo real, e gerar painéis que ajudem a decisão (comercial, de segurança e outras).
  • Processar dados de log de telefonia, para identificar padrões que permitam otimizar a implantação das (caríssimas) antenas de cobertura de sinal de celular.
  • Processar dados de log de web de empresas, para identificar padrões dos clientes, com vistas a melhorar o serviço.
  • Pelo poder computacional e pela robustez, usar Big Data para substituir o computador de grande porte (mainframe).
  • Processar volumosos dados ambientais e geoespaciais, para pesquisar padrões que permitam entender mudanças climáticas.
  • Processar volumosos dados de transações financeiras, buscando identificar padrões de transações fraudulentas.
  • Processar dados de acesso “por cliente” para gerar experiências customizadas em sites (com painéis do tipo “clientes que compraram esse produto também se interessaram por esses outros produtos).
  • Processar dados que sugiram opões de media para ser consumida (vide o caso do Netflix).
  • Processar “curtidas” e “posts” em redes sociais, num volume gigantesco.

Para resumir: eficiência estrutural é a chave da prosperidade. Tecnologia de informação juntamente com educação são fatores essenciais de implantação de eficiência estrutural. Big Data é a tecnologia inovadora do momento em TI. A melhor tecnologia para Big Data é Spark. Quem já usou Spark, e entente o seu enorme potencial, vai entender a minha profecia contundente a seguir: “quem seguir de fato atuando no mercado de tecnologia de informação tem chances de 100% de usar Spark”.

Desejo a todos que possamos fazer com nosso trabalho e nossa sabedoria o ano de 2016 ser próspero.

--------------------------------------------------------------------------------
Sergio Barbosa Villas-Boas (sbVB), Ph.D.
software development, Big Data, cloud, mobile, IoT, HPC, optimization
sbvillasboas@gmail.com, sbvb@poli.ufrj.br
Skype: sbvbsbvb
http://www.sbVB.com.br
https://www.linkedin.com/in/sbvbsbvb
+55-21-97699-1337

2015-12-24

21) Big Data Posts – Natal, reflexão e superação da crise

#bigdata #hadoop #spark #crise


Os Slides gratuitos do curso Geonumerica Training de "Big Data Spark Developer" podem ser baixados nesse link.

Caros colegas da espécie humana, que comigo compartilham o Brasil e também nosso planeta; todos sabemos das dificuldades que o Brasil em particular está enfrentando atualmente. Desejo a todos nesse natal que aproveitemos o momento de reflexão de fim de ano para que pensemos como podemos colaborar de forma concreta para que nossa nação supere a atual crise. Há muita polarização e intolerância na mente das pessoas. Recomendo que conversemos com calma, com nossos conhecidos e familiares, sobre o presente do nosso país, e também como desejamos que seja o nosso futuro. Diante da atual crise, o que nós vamos efetivamente FAZER (além de protestar, reclamar)?


Podemos ser no futuro o que desejarmos ser. O que fazemos no presente é que constrói nosso futuro. São pessoas excelentes, mais que qualquer outro elemento, que estão por trás das grandes realizações humanas. Precisamos curar nossos problemas. Curar significa cuidar. Precisamos cuidar de gente, parar de perder tempo com bobagem e construir um ambiente em que incentivemos quem quer estudar, trabalhar e investir. Precisamos investir sempre e muito em educação, a base de tudo. Precisamos estudar para aprender, e não para obter um diploma. Precisamos entender o mundo em que vivemos e estar ciente de seus problemas concretos. Usando nosso tempo, o conhecimento imenso já acumulado pela humanidade, e também as tecnologias maravilhosas que conseguimos inventar, podemos construir um mundo muito mais sensato, eficiente e próspero.


Preserve-se física e mentalmente.
E que possamos fazer com nosso trabalho o ano de 2016 ser próspero.

--------------------------------------------------------------------------------
Sergio Barbosa Villas-Boas (sbVB), Ph.D.
software development, Big Data, cloud, mobile, IoT, HPC, optimization
sbvillasboas@gmail.com, sbvb@poli.ufrj.br
Skype: sbvbsbvb
http://www.sbVB.com.br
https://www.linkedin.com/in/sbvbsbvb

+55-21-97699-1337

2015-11-28

20) Big Data Posts – Slides gratuitos Big Data Spark Developer

#bigdata #hadoop #spark

Os Slides gratuitos do curso Geonumerica Training de "Big Data Spark Developer" podem ser baixados nesse link (o usuário deve registrar-se e confirmar email, para então fazer download).

No período outubro 27~29 eu estive no Spark Summit Europe 2015, em Amsterdam. É de impressionar qualquer um constatar a quantidade de aditivos open-source para Spark que a comunidade está criando. O Spark é um produto tão bom, tão disponível (por ser open-source), tem uma comunidade tão sólida de usuários-desenvolvedores, que o apelo para o usar Spark é irresistível. Mas todo esse movimento de aprimoramento e adoção maciça de Spark esconde um paradoxo. É preciso que se construa um ambiente econômico que dê sustentação para as pessoas envolvidas. Percebi claramente que diante do cenário descrito, o que muitas pessoas e empresas estão fazendo é especializar-se no trio – treinamento, consultoria e suporte (de Spark). Nesse momento, em que está ocorrendo um forte crescimento da adoção de Spark, isso faz muito sentido. É isso com certeza que eu estou fazendo. A sustentabilidade de longo prazo dessa prática é algo que a história haverá de mostrar.

Estamos vivendo a segunda década do século 21, com o mundo repleto de inovações, em especial as inovações relacionadas a tecnologia digital. O futuro de diversas atividades econômicas está sendo refeito nesse contexto. Analisemos o que está acontecendo com o Education Business. Um dos fenômenos do ambiente é o MOOC (Massive Online Open Course). Um ator de grande impacto que pratica o MOOC é o Khan Academy, com um modelo de negócios baseado em empresa não orientada a lucro. Outro ator é o Coursera, que tem vários cursos gratuitos e alguns serviços pagos. Ainda outro ator a citar é o PluralSight, que tem foco em tecnologia de informação, com muitos assuntos e muito material, e que permite período de cortesia em que o aluno experimenta o produto e depois decide se quer ou não comprar inscrição para continuar a ver o material. Claro que há muito mais gente que poderia ser citada, mas algumas características importantes já ficam claras com esses exemplos:
  1. A maior parte dos materiais é em Inglês.
  2. Espera-se que o aluno tenha maturidade para ver o material e aprender com ele, com dose considerável de esforço individual; caso seja necessário suporte, esse deve ser feito com tecnologia remota (email, chat, videoconferência, etc.)
  3. O material deve conter uma sequência lógica para que o aluno possa seguir uma linha e aprender o conteúdo em questão.
  4. O material deve sugerir e incluir exercícios para a prática do conteúdo em questão.
  5. Muitos cursos tem alguma componente gratuita, o que ajuda a atrair atenção; mas para sustentar-se os cursos buscam vender seu material de alguma forma.
Inspirado em tudo isso, eu iniciei em 2015 um projeto em que estou dando consultoria para montar com a empresa Geonumerica – da incubadora de empresas da UFRJ – na sua sucursal de treinamento chamada Geonumerica Training, um curso de Big Data Spark Developer. O curso é um projeto ambicioso que está sendo construído agora, já com muitas partes funcionando. No futuro, vamos incluir no curso o assunto de Dados Geoespaciais e sua ligação com tecnologia de Big Data. Optamos por liberar os slides do módulo Big Data Spark Developer do curso gratuitamente (o usuário deve registrar-se e confirmar email, para então fazer download). O link é esse.

O material do curso é todo feito na empresa, sendo os slides e material de apoio todo feito em português. Nosso objetivo é o de efetivamente absorver o conhecimento relacionado a esse assunto, e inclusive por isso optamos por criar nosso material original em português (embora o texto do código fonte muitas vezes seja em inglês). O assunto Big Data Spark Developer é empolgante, assim como os assuntos derivados (Datos Geoespaciais e outros). Por liberar os slides do curso, esperamos atrair uma comunidade de gente que quer estudar e aprender. Na sociedade do conhecimento, compartilhar é essencial. O objetivo é compreender efetivamente esse assunto, de forma a conquistar as boas consultorias nessa área.

O mundo é sempre muito competitivo. Na área de software, as desvantagens brasileiras (muitas vezes chamadas de “custo Brasil”) são relativamente menos relevantes, pois usamos as mesmas ferramentas que nossos concorrentes no exterior. Quem for da área de tecnologia de informação e estiver buscando opções para progredir na carreira, faz muito favor a si mesmo por estudar Big Data Spark Developer agora, quando a comunidade está crescendo.

2015-11-20

19) Big Data Posts – Spark 1.6: Project Tungsten

#bigdata #hadoop #spark

No período outubro 27~29 eu estive no Spark Summit Europe 2015, em Amsterdam. Um dos assuntos muito debatidos nesse Summit foi o Project Tungsten, que está prometido para ser entregue como um módulo dentro da versão 1.6 do Spark. A incorporação do Project Tungsten ao Spark é uma orientação estratégica de alta tecnologia, com consequências para quem pretende desenvolver software para Spark.

A proposta original do Spark é centrada na classe RDD (Resilient Distributed Dataset), concebida pelo autor do Spark - Matei Zaharia - em sua tese de doutorado. O texto dessa tese pode ser baixado nesse link. O código com uso de RDD, associado ao conceito de “lazy execution”, faz criar um DAG (Directed Acyclic Graph), que é o grafo que descreve como a execução será feita quando chegar o momento. A análise especializada do código gerado dessa forma permite que se façam propostas de padrões de código que melhoram o desempenho de execução. Mas essa análise requer aprofundamento muito intrincado em tecnologia, o que torna o uso de Spark menos palatável para o grande público do que se desejaria.

Os “gurus do Spark” acreditam que com o Project Tungsten chegaram a uma proposta adequada para entregar uma versão de Spark que é ao mesmo tempo otimizada em eficiência de execução e relativamente pouco complexa para ser programada. Para que essas qualidades sejam de fato obtidas, recomenda-se aos usuários de Spark que dentro do possível deixem de trabalhar com RDDs e passem a trabalhar com DataFrames. Isso porque o RDD, embora seja e será sempre o centro do Spark, não permite otimização automática das DAGs. Mas o DataFrame gera um tipo de estrutura que pode ser otimizada antes de ser executada, e essa otimização faz bastante diferença no desempenho. No final das contas, um programa com RDD, se for otimizado “na mão”, com todas as intrincadas técnicas de análise de DAG, terá na melhor das hipóteses um desempenho tão bom quanto um programa feito com DataFrame, que é otimizado automaticamente e não requer análise intrincada por parte do programador Spark. E há uma vantagem adicional: considerando que todas as linguagens Spark usam o mesmo DataFrameAPI, o desempenho otimizado dos DataFrames ocorre igualmente para qualquer linguagem que o programador desejar usar (atualmente incluindo Scala, R, Python, entre outras). Em contraste, o uso direto de RDD tem desempenho melhor quando feito em Scala, em relação a outras linguagens.

Para quem está aprendendo Spark agora, a mensagem é a seguinte: é preciso aprender RDD, porque há funcionalidades de Spark que apenas funcionam assim, e porque ainda há muito código com o qual se precisa interagir que é baseado em RDD. As novas versões do Spark não terão qualquer problema com código para RDD. Mas ao mesmo tempo, seja pela simplicidade de uso, seja por desempenho, é bom apostar na estrutura de dados baseado em DataFrame, pois sinaliza-se que o futuro do código Spark tende para essa direção. Pode-se usar DataFrame desde as versões atuais. Mas será a partir da futura versão 1.6 (que inclui o Project Tungsten) que se espera que o uso pleno de DataFrames, com seu potencial e desempenho plenos sejam disponibilizados para o público.

A propósito: considerando que no Summit havia um clima de forte incentivo ao open-source, eu pedi para o pessoal da Databricks que me dessem o código com o qual eles implementaram a famosa quebra de recorde de benchmark, em outubro de 2014 (aqui e aqui). Eles não me deram esse código, e explicaram o motivo. Acontece que o código realmente bateu o recorde, mas foi feito com muitos “truques de baixo nível”. Esses truques são úteis para pesquisa, mas não são boas práticas de programação. Com a pesquisa feita com esses truques, eles evoluíram e criaram estruturas de alto nível, e as colocaram no Project Tungsten.

Em resumo: o Spark segue evoluindo rapidamente, como a comunidade espera, e como deve ser. Para o desenvolvedor Spark, o Data Analyst ou Cientista de Dados, o que interessa é que a estrutura de dados no foco deve ser mais e mais o DataFrame, ao invés de RDD, mas esse último continuará sempre funcionando muito bem. A próxima versão 1.6 vai ser liberada em breve, e será um marco no estímulo ao uso de DataFrames. As versões atuais já permitem o uso de DataFrames, para quem quiser fazer experiências com essa estrutura de dados.

--------------------------------------------------------------------------------
Sergio Barbosa Villas-Boas (sbVB), Ph.D.
software development, Big Data, cloud, mobile, IoT, HPC, optimization
sbvillasboas@gmail.com, sbvb@poli.ufrj.br
Skype: sbvbsbvb
http://www.sbVB.com.br
https://www.linkedin.com/in/sbvbsbvb
+55-21-97699-1337

2015-11-07

18) Big Data Posts – Spark Summit Europe 2015

#bigdata #hadoop #spark

No período outubro 27~29 eu estive no Spark Summit Europe2015, em Amsterdam. É muito importante que se registre e se divulgue o que está acontecendo: uma revolução! A quantidade, qualidade e velocidade das transformações que estão ocorrendo no ambiente de tecnologia de informação são de tal magnitude que a situação atual não pode receber outra qualificação. E como se sabe por exemplos (Google, Smartphones, Uber, e muitos outros), grandes projetos de tecnologia de informação tem o potencial de mudar a vida de muita gente.


Peço ao leitor a permissão de mencionar brevemente minha história e sua relação com Big Data. Desde que voltei do doutorado no Japão em 1998, tendo estudado “Controle Automático” (no nível de doutorado esse assunto torna-se “matemática aplicada”), tenho mantido atividade na área de consultoria relacionada à desenvolvimento de software de alta tecnologia. Como temos que estar sempre nos atualizando, naturalmente tomei conhecimento da tecnologia de software para Big Data. Tomei a decisão estratégica de estudar seriamente o assunto em 2014, quando trabalhei com Hadoop. Nesse mesmo ano solicitei e obtive aprovação para a criação de primeira disciplina de Big Data Developer da UFRJ, no DEL (Departamento de Engenharia Eletrônica e de Computação), onde trabalho desde 1991. Em março de 2015 eu fiz o curso da Cloudera de Spark Developer, na empresa paulista Semantix. Com esse excelente curso, o sentimento imediato foi: “eu vi o futuro: chama-se Spark”. Apliquei tudo que aprendi na minha turma de Big Data Developer da UFRJ de  2015_1, com cerca de 25 alunos. Fizemos excelentes trabalhos com Spark. Agora vendo o Spark Summit Europa, a mensagem é clara: “está confirmado: o futuro definitivamente é Spark, sendo esse já o presente para muitas empresas e pessoas”. Com esse post, pretendo reportar algumas passagens do Summit, bem como algumas reflexões pessoais.
  • A escala de adoção de Spark é muito impressionante sob qualquer perspectiva que se observe. A velocidade explosiva de incorporação de novidades é possível com tecnologia de informação, devido à natureza imaterial com que se trabalha. O efeito combinado da genialidade que começou com a tese de doutorado de Matei Zaharia, com a visão empresarial de Ion Stoica, CEO da Databricks está materializando a revolução. Partindo da ideia da tese do Zaharia, agora apoiado na Databricks por um time de gente brilhante, o Spark segue sendo aperfeiçoado rapidamente, sendo tudo disponibilizado de forma Open Source. Eu conversei casualmente com Ion Stoica (o Summit serve inclusive para permitir essas coisas); ele fizera na sua palestra alguns minutos antes da conversa comigo, algumas considerações sobre como tecnologias são incorporadas pela sociedade. Eu comentei que o Google chegou atrasado no mercado de mobile, e que conseguiu – com um modelo Open Source bem suportado por um time brilhante – fazer o Android vencer os concorrentes e ficar com a fatia do leão no mercado de mobile. O Ion Stoica abriu um sorriso, e disse que ele adora essa analogia, e que com certeza deseja que o mesmo ocorra com Spark. E está ocorrendo!
  • Em seguidas palestras, empresas importantes reportaram como trabalham com problemas reais relacionados a Big Data, e como Spark foi usado para resolve-los. Em uma dessas palestras, Anjul Bhambhri, Vice President of Product Development, Big Data and Analytics Platform, da IBM, repetiu merecidos elogios ao Spark (assim como muitos no Summit). Afirmou também que o Spark é um “Analytics Operating System”, e que a IBM fez a opção estratégica de apostar e incentivar o uso de Spark. Já há vários projetos da IBM sendo feitos com Spark.
  • Spark é um pacote único que funciona muito bem para resolver o que se propõe, é particularmente bom para tratar conjuntos de dados de tamanho enorme, conecta-se com muitas fontes de dados, possui interface para algumas linguagens de programação das mais usadas pelas pessoas da área: atualmente incluindo Scala, Java, Python e R. Spark funciona em vários ambientes (inclusive Windows, o que muitos achavam que não ia acontecer), sendo que a combinação de Spark com cloud (aluguel de datacenter com recursos que permitem automatizar o comando do aluguel por software, tendo a Amazon como empresa líder) torna o uso de Spark extremamente fácil.
Eu comecei a escrever esse post estando hospedado em uma residência de Amsterdam, refletindo sobre o significado de tudo o que vi no Spark Summit. Diga-se de passagem, o mecanismo que viabilizou eu estar hospedado em uma residência, e não num hotel como seria mais tradicional, é por estar usando o sistema Airbnb. Eu pessoalmente gosto muito de Airbnb, sendo que esse sistema é outra dessas novidades muito impactantes da tecnologia de informação nas nossas vidas. Voltemos para as reflexões. No Summit há sempre um local para estandes de patrocinadores, que são empresas divulgando seus produtos. É muito bom conversar com as pessoas das empresas. Eu abordei em conversas com várias pessoas um tema que me interessa muito: estratégia empresarial, isso é, planos empresariais de longo prazo. Como se sabe bem, uma empresa precisa ter bem claro para si mesmo e para o mercado o significado de sua existência. A empresa existe porque executa sua missão. Se a missão não existe mais, a empresa precisa encontrar outra missão, ou deixa de existir. Conversando com o pessoal de uma dessas empresas (MAPR), eu ouvi uma frase interessante: “Hadoop is loosing his job”. Hadoop, para quem não sabe, é a primeira geração de tecnologia Open Source para Big Data. Quando comparado com Spark, Hadoop parece complicado demais, sem falar no problema de desempenho de execução (Spark é superior). Quando Hadoop era a única alternativa para Big Data, e se necessitava que alguma tecnologia tratasse os volumes enormes de dados que se produzia, criou-se um ambiente empresarial para dar suporte a Hadoop. Muitos empregos bons, incluindo engenheiros de software, suporte e outros, foram criados no contexto de dar suporte para Hadoop, que por sua complexidade de fato requer muito suporte. Tudo isso custa um preço que os clientes pagavam para ter acesso ao desempenho superior que a tecnologia de Big Data proporcionava. Mas agora tudo isso está sob forte transformação. Spark incorpora tudo de forma mais simples, mais elegante, mais eficaz e com desempenho superior. Hadoop está perdendo o emprego, como disse o pessoal da MAPR. A filosofia Open Source está completamente implantada. Há tutoriais e fóruns por toda parte.

Convido o leitor a especular comigo as principais características do ambiente profissional de tecnologia de informação que está sendo moldado, considerando as tendências que descrevi. Não se esqueça, caro leitor, que nossa espécie humana tem instinto egoísta. Muito pouca gente compra um produto de uma empresa pensando no sentimento do dono da empresa ou de seu funcionário. Quem compra pensa em si mesmo. Se Spark simplificou tudo, se a necessidade de suporte foi muito reduzida, bom para o consumidor (ou cliente), que poderá usar esses serviços pagando pouco (ou nada, se souber usar). Mas resta a ser definido qual o papel do profissional de tecnologia de informação.

Relembremos um aspecto da história. Os computadores de grande porte eram terrivelmente complexos de serem operados. Havia operadores contratados (gente treinada) para fazer aquilo funcionar. Hoje os computadores de grande porte que ainda existem são muito mais fáceis de se operar, e uma parte enorme do serviço de processamento é feito em computadores pessoais, com algum sistema operacional que espera-se ser suficientemente simples para que muitas pessoas consigam opera-lo sem precisar contratar suporte. Resultado: hoje usamos muito intensamente o processamento digital, e usa-se relativamente pouco suporte contratado; isso se deve ao efeito combinado de os sistemas terem ficado mais simples e de muita gente ter aprendido como usar os tais sistemas.

Concluo esse post tentando fazer senso de dessas tendências para definir as qualidades do profissional de tecnologia de informação valorizado no futuro.
  • Big Data é absolutamente importante, sendo que Spark vai ser (ou já é) a tecnologia central para resolver os problemas nessa área. Portanto, aprender os problemas clássicos de Big Data e como resolve-los com Spark é uma das grandes habilidades valorizadas.
  • Percebo que aumenta a importância de conhecimento de matemática e estatística. Muitos dos problemas que se deseja tratar estão relacionados a uma formulação matemática bem-feita. O computador não erra as contas. Mas quando se o programa erradamente, os resultados ficam errados. Interpretar dados erradamente, ou programar o computador para explorar uma quantidade exageradamente grande de possibilidades são outros erros comuns. Para resolver tudo isso, o profissional deve buscar uma boa formação em matemática.
  • O idioma inglês é claramente central, pois mais que nunca tudo está sendo feito de forma colaborativa. Há códigos fonte, tutoriais e blogs por toda parte, sendo a maior e melhor parte em inglês.
  • Outra característica é a meritocracia. No Summit pode-se var todo tipo de gente – altos, baixos, gordos, magros, todas as raças humanas, de todas as cores que pode haver na pele. A cultura da meritocracia é muito compatível com a do liberalismo econômico, que presa o lucro como recompensa para o esforço individual. Curiosamente a mesma visão de liberalismo econômico é quase sempre associada também ao culto a propriedade privada. Mas a ênfase enorme que se está dando ao compartilhamento de tudo o que se tem é em boa parte uma visão oposta.
  • O tempo está na essência de tudo. Embora a Internet esteja abarrotada de material, faz muito sentido fazer o que eu fiz: pagar para aprender mais rápido; igualmente importante é criar laços com a comunidade de gente que usa essa mesma tecnologia.
É preciso que se diga: vi muitas empresas no Summit que apesar de tentarem se diferenciar, eram no fundo parecidas. Eram empresas de suporte, treinamento e consultoria de Big Data, com especialidade em Spark. Essa parece ser a direção para onde todo mundo está indo, inclusive eu. Todos nós precisamos lutar para ter um diferencial, e precisamos também conseguir vender alguma coisa para alguém. Para que se venda, é preciso conseguir fazer algo valioso para o cliente. Quem deseja atuar como consultor, deve ter experiência comprovada, talento, tempo, habilidade para montar times se necessário, capacidade e visão empreendedora, entre outras coisas. Ajuda muito ter boa formação geral, especialmente em matemática, boa agilidade mental para ler rapidamente e fazer senso útil de toneladas de blogs e tutoriais, para transformar tudo isso em valor para clientes (pessoas e empresas) reais. É preciso entender REALMENTE o cliente deseja, e eventualmente montar um serviço para ser vendido para esse cliente. O mundo atual, está repleto de problemas interessantes que podem ser resolvidos com tecnologia de Big Data (Spark). Vamos construir esse mundo. O momento é esse.

--------------------------------------------------------------------------------
Sergio Barbosa Villas-Boas (sbVB), Ph.D.
software development, Big Data, cloud, mobile, IoT, HPC, optimization
sbvillasboas@gmail.com, sbvb@poli.ufrj.br
Skype: sbvbsbvb
http://www.sbVB.com.br
https://www.linkedin.com/in/sbvbsbvb
+55-21-97699-1337

2015-09-13

17) Big Data e Empresa Privada COM Fins Lucrativos

#bigdata #hadoop #spark

Convido o leitor a refletir sobre o seguinte: pense em um dia típico e nos objetos com os quais interage. Quase todos esses objetos são produtos produzidos por uma Empresa Privada COM Fins Lucrativos. Esse tipo de organização de pessoas é tão importante que merece uma sigla: EPFL. A lista dos objetos produzidos por EPFL inclui a cama onde o leitor dormiu, o pijama que usou para dormir, a escova de dentes e pasta que usou para a higiene bucal, a casa onde mora, a comida que comeu no café da manhã, todos os eletrônicos que usa, e muito mais. Da mesma forma, quase todos os serviços que atendem ao leitor são prestados por EPFL. Essa lista de serviços inclui o plano do telefone celular, o provimento de Internet, a tv por assinatura, o banco onde o leitor tem conta, o salão que corta o cabelo do leitor e muito mais. O comércio que abastece de bens o leitor também consiste basicamente de EPFLs. Não há dúvida: a grande maioria dos produtos e serviços que dão suporte a nossa vida é gerada por EPFLs. É, portanto, correto entender a EPFL como uma das bases da nossa sociedade, e também uma das formas mais comuns de ocupação de pessoas. Quando se foca nos produtos e serviços inovadores, é ainda mais clara a presença de EPFL.

Toda sociedade tem uma cultura. A sociedade Brasileira, tem componentes de sentimento anti-capitalista. O capitalismo é uma filosofia que enfatiza a liberdade de iniciativa, decisão, e a responsabilidade individual; por isso é uma filosofia relacionada ao liberalismo, amante das EPFLs. Muita gente pouco compreende do funcionamento da sociedade, mas repete meio sem pensar chavões como “o empresário explora o trabalhador”, ou “os liberais não gostam nem respeitam os pobres”, entre outros. Há muitos erros e problemas em qualquer sistema em que se viva, por certo, posto que o sistema é sempre composto por humanos que são sabidamente cheios de defeitos. Mas os eventuais erros que os liberais tenham não faz a alternativa ser isenta de problemas, nem monopolista da virtude. Toda ideologia ou filosofia de vida merece ser debatida abertamente, e ter suas características analisadas a partir de fatos. Qualquer interessado pode estudar como vivem as pessoas em países com ideologia liberal e em países ideologia oposta, e chegar a suas próprias conclusões sobre quão bem a população vive.

No caso de tecnologias digitais, há um fenômeno econômico muito interessante que causa grande impacto no ambiente. A tecnologia evoluiu tanto, e fez o preço de vários produtos baixar a tal ponto, que se tornou viável oferecer muita coisa sem se cobrar nada. Armazenar conteúdos tornou-se gratuito. Muitas redes sociais são gratuitas. Muitos produtos de software têm várias funcionalidades gratuitas, e oferecem funcionalidades mais avançadas com planos pagos. No caso de desenvolvimento de software, surgiu o conceito de software open-source. No início foi visto com desconfiança. Mas o tempo passou e hoje muitas das melhores opções em software são open-source. Essa enorme quantidade de serviços digitais gratuitos ou baratos é um produto direto da filosofia liberal. Muitos produtos gratuitos eventualmente levarão a uma futura venda, e apenas por isso já há incentivo para que se invista. Nunca haveria o atual ambiente digital cheio de produtos gratuitos ou baratos se tudo tivesse sido construído com a ideologia comunista. O mundo digital atual, tão cheio de recursos, é um triunfo do liberalismo e do capitalismo.

A atual crise Brasileira é aguda, muito grave, e já está causando muita dor a muita gente, com juros altos, inflação, desemprego e talvez o pior de tudo: desesperança. É uma hora perfeita para repensarmos nossos valores. Quais as práticas do governo no passado recente? É lícito defender que foram essas práticas que causaram nossa crise. Se queremos superar a crise, é preciso um ambiente que incentive quem quer produzir. Há países em que muitas das necessidades básicas estão consideravelmente bem resolvidas. Nesses países, as empresas precisam disputar os clientes com dificuldade, fazendo produtos com características excelentes, e vendendo-os com margens cada vez menores, devido à enorme competição. No Brasil, com tantas deficiências ainda por serem resolvidas, há espaço de sobra para a implantação de EPFLs que atendam nossas carências. Mas o ambiente atual de crise está demasiadamente pouco atraente para as empresas. Há excesso de tributos, custo excessivo do Estado, incerteza severa na política, no marco regulatório e muitos outros incentivos negativos.

A vida pode melhorar por se investir em suprir várias de nossas carências de produtos e serviços. As EPFLs podem supri-los quase sempre de forma muito mais eficiente que o governo. A sociedade pode superar essa crise por criar um ambiente que atrapalhe pouco quem quer produzir e investir.  

Há que se pensar também no momento em que o mundo vive, em que se aprofunda a sofisticação da sociedade digital. O mundo repleto de serviços digitais é por vezes referido como “Big Data”, embora esse termo seja tecnicamente mais adequado para referir-se a software com sistemas distribuídos tal como Hadoop e Spark. Como sempre acontece com o ambiente cheio de inovações, há muita oportunidade. Mas ninguém duvida que as melhores oportunidades não ficarão disponíveis por muito tempo.

Vou repetir minha sugestão de que a sociedade brasileira opte estrategicamente por sair dessa crise por se criar um ambiente favorável para as EPFLs, estimulando quem quer produzir e investir. As EPFLs, pela sua procura natural de busca de resultados (lucro), investirão e criarão formas mais eficientes de prover para a sociedade. Muitas estruturas produtivas e serviços da sociedade foram concebidos em uma época com muito menos opções tecnológicas. Podemos repensar nossa forma de viver de forma estruturalmente mais eficiente, usando com sabedoria as tecnologias digitais. Devemos estimular que as novas tecnologias substituam as formas antigas de se trabalhar, sempre de olho na eficiência estrutural, na rapidez, na robustez. Devemos estimular que as EPFLs se estabeleçam, com base na competição sem viés, e na vitória do produto e serviço que seja o melhor e o mais econômico. Devemos educar a população para preparar-se mais e mais para viver no ambiente competitivo, e não proteger a sociedade da competição. Nossa cultura deve sistematicamente identificar e eliminar as ineficiências e desperdícios.

Proteção em excesso cria leniência, e baixa eficiência. Com o tempo, toda a sociedade fica ineficiente, com dificuldade de competir com o mundo, e, portanto, mais pobre como estamos agora. A solução para a nossa crise é optar pela filosofia liberal, pelo apoio às EPFLs e pelo uso intenso de tecnologia de informação, para sempre focando em eficiência estrutural.

--------------------------------------------------------------------------------
Sergio Barbosa Villas-Boas (sbVB), Ph.D.
software development, Big Data, cloud, mobile, IoT, HPC, optimization
sbvillasboas@gmail.com, sbvb@poli.ufrj.br
Skype: sbvbsbvb
http://www.sbVB.com.br
https://www.linkedin.com/in/sbvbsbvb
+55-21-97699-1337

2015-09-07

16) Big Data, demografia e eficiência

#bigdata #hadoop #spark

Considero tecnicamente correto definir um sistema computacional “com tecnologia Big Data” a partir da sua referência original, isso é, quando se está usando um sistema distribuído (em geral Hadoop e/ou Spark) capaz de usar cluster (em geral gerenciado por Yarn, Mesos ou Spark Standalone) sobre um sistema de arquivos distribuído (em geral HDFS). Contudo, a expressão “Big Data” tem sido mais e mais usada num contexto mais abrangente que a definição tecnicamente original acima. Essa definição mais abrangente refere-se a Big Data como o uso massivo de tecnologia de informação, isso é, o mundo em que muitas coisas são medidas, armazenadas, processadas, decididas e disponibilizadas digitalmente. A eficiência geral da sociedade está fortemente relacionada a “Big Data”, na sua definição abrangente. No contexto demográfico Brasileiro, que vive os momentos finais do “bônus demográfico”, recomenda-se especialmente que a sociedade adote massivamente a tecnologia de informação, mirando na eficiência.

Falemos sobre “bônus demográfico”. Esse é um fenômeno social no qual uma grande quantidade de pessoas faz a opção ao mesmo tempo de ter menos filhos. Como se sabe bem, o perfil econômico de uma pessoa é resumidamente de ter 3 fases: infância, idade ativa, senhoridade. Nas duas fases das pontas, a pessoa é economicamente inativa. O período economicamente inativo de uma pessoa ao nascer é longo, em geral definido como 15 anos (mas muita gente fica bem mais tempo estudando e se preparando para futura fase ativa, que vai até os 64 anos). Durante esse período inicial, a pessoa economicamente consome recursos e não os cria. Quando muitas pessoas decidem ao mesmo tempo adiar o momento de ter filhos, ou de ter poucos ou nenhum filho, essas pessoas em idade ativa deixam de investir tempo e dinheiro para criar a nova geração. Esse investimento que deixa de ser feito é tecnicamente um recurso adicional que a sociedade tem à disposição. Durante o bônus demográfico, a economia tende a ter melhor desempenho. Mas a boa notícia do bônus demográfico tem um recado claro: trata-se de um episódio único em uma sociedade, que tem data para terminar. Já se observou esse fenômeno em muitas sociedades, e sabe-se que esse bônus dura cerca de uma geração, isso é, cerca de 30 anos, ou no máximo 35 anos.

Muitos estudos alertam para um risco para o Brasil: tornar-se uma sociedade envelhecida sem antes emergir até o status de país desenvolvido. Enquanto o Brasil for “mais ativo” por consequência do bônus demográfico, deve construir uma forma mais desenvolvida de vida, isso é, deve aprender a ser eficiente e com isso tornar-se mais próspero.

Vou repetir nesse o post minha tese principal: o Brasil precisa adotar massivamente a tecnologia de informação para tornar-se eficiente. Isso é equivalente a usar Big Data, tanto na definição técnica original do termo quanto na definição abrangente supracitada.

A efetividade e eficiência da vida com uso de tecnologia de informação requer mais que a pura e simples instalação de hardware e software. É preciso que exista uma cultura de uso dos sistemas digitais de forma efetiva e eficaz. Essa cultura é criada inclusive com muito estudo. Mas acima de tudo, a sociedade precisa conscientizar-se dos seus objetivos estratégicos, e apoiar a construção do futuro que interessa a todos nós. É preciso que consigamos automatizar os sistemas e procedimentos que nos servem, fazendo-os funcionar com cada vez menos gente, e em muitos casos de forma totalmente automatizada.

Vou reportar um exemplo de nível elevado de automatização, implantada em país desenvolvido: quem já foi para os EUA (várias cidades) pela Delta deve ter feito escala em Atlanta. A Delta usa a cidade de Atlanta como “hub” (ponto de interconexão), fazendo muitos voos para essa cidade. Uma empresa aérea precisa resolver o problema de conectar muitos pontos (cidades) entre si. A abordagem tradicional é simplesmente conectar as cidades diretamente. Mas isso é muito ineficiente. A alternativa é usar hubs. Vai-se da cidade A para a cidade B passando pelo hub. Exemplo: Rio de Janeiro para Miami passando por Atlanta. O uso de hubs é muito mais eficiente que a ligação de todas as cidades diretamente. Mas isso cria um fluxo enorme no hub. O resultado é um aeroporto de tamanho gigantesco em Atlanta. Para dar conta de atender a todas as pessoas em trânsito no aeroporto de Atlanta, há nível muito elevado de automatização. Dentre os vários sistemas automáticos, incluem-se o sistema de informação para o local para onde os passageiros devem ir, e também o trem entre os “concourses” (alas do aeroporto), que opera sem piloto. Qualquer pessoa que tenha passado por esse aeroporto impressiona-se pela quantidade grande de gente que é atendida, com relativamente poucas pessoas para atende-las. Eficiência é isso. Dessa eficiência decorre a prosperidade que tanto desejamos.


Todos os países prósperos do mundo vivem com alto e crescente nível de automatização, sempre com base em muito estudo e sistema de educação forte. Se quisermos ser prósperos, temos que fazer como eles.

--------------------------------------------------------------------------------
Sergio Barbosa Villas-Boas (sbVB), Ph.D.
software development, Big Data, cloud, mobile, IoT, HPC, optimization
sbvillasboas@gmail.com, sbvb@poli.ufrj.br
Skype: sbvbsbvb
http://www.sbVB.com.br
https://www.linkedin.com/in/sbvbsbvb
+55-21-97699-1337