2015-05-31

10) Quão urgente é aprender Big Data ?

#bigdata #hadoop #spark

Estou montando um curso de Big Data. O público-alvo inclui empreendedores, engenheiros de software, desenvolvedores, analistas e gerentes de projeto de tecnologia. O curso será divulgado em breve. Enquanto conversava com um consultor amigo, para refletir sobre aspectos do curso, meu amigo fez umas ponderações interessantes, que merecem ser comentadas aqui no Blog. Nesse post, vou comentar duas dessas ponderações: “1) Big Data não está no horizonte de urgências das pequenas empresas” e “2) De que maneira Big Data pode trazer mais clientes para as pequenas empresas?”.

A primeira ponderação pode ser re-escrita de forma mais geral como o título desse post: “Quão urgente é aprender Big Data?”. Minha resposta para essa pergunta é que o nível de urgência para aprender Big Data depende do que se considera "urgência". É necessário lembrar que nosso país vive um momento com características especiais. Há um conjunto de várias crises simultâneas, todas graves. Diante desse momento, é realmente de se ponderar se o investimento de tempo e dinheiro para se aprender Big Data é ou não uma "urgência". Acontece que a parte dinâmica do mundo não está nada parada. Muita gente está exatamente agora investindo pesadamente em modernizar-se e incorporar novas formas de se viver e empreender - com lauto uso de tecnologias digitais, em especial Big Data (a tecnologia inovadora atualmente no foco). O mundo vai seguir modernizando-se. Quem tiver qualquer motivo para não conseguir ou não querer investir para modernizar-se, com certeza vai ficar para trás.

Há algo melhor que aprender com os próprios erros: é aprender com os erros dos outros. Pode-se estudar história com foco em refletir sobre erros e acertos do passado, e dessa forma destilar de grandes lições. Abaixo listo alguns exemplos históricos.

  • Na década de 1980, a IBM era líder em tecnologia de informação, e ganhava muito dinheiro vendendo mainframes. A Apple provou que havia mercado para computadores pessoais, e a IBM reagiu criando uma divisão nova para vender seu próprio computador pessoal IBM-PC. Mas não entendeu que a grande oportunidade estava no software e não no hardware. O resultado foi perder para a Microsoft a oportunidade de ganhar dinheiro com software (em particular com sistema operacional). Com o jogo já muito avançado, tentou recuperar o terreno lançando seu próprio sistema operacional, mas demasiado já tinha acontecido, e o mercado ficou mesmo com a Microsoft. A IBM perdeu tempo, e perdeu oportunidade.
  • Na primeira década do século 21, a Microsoft era dominante absoluta do mercado de software para computador pessoal. Após alguns casos impactantes de briga agressiva e vitória sobre concorrentes (o mais notável foi a guerra dos browsers, de 1994 a 1998, que derrotou a Netscape), parecia impossível alguém vencer o colosso Microsoft. A Google cresceu sem concorrer diretamente com a Microsoft, atuando no mercado de busca (então dominado pela Yahoo e Altavista), com a inovação de usar tecnologias automáticas para a busca. Essas tecnologias mais tarde se transformariam em tecnologia de Big Data. Aos poucos o mundo foi mudando, e a Google amadureceu vários produtos que hoje competem e em muitos casos ganham da Microsoft. Ainda se poderia falar na tecnologia de mobile, na qual a Google chegou atrasada com o Android, conseguiu crescer e hoje é dominante. No longo prazo, a Google está melhor que a Microsoft. A Microsoft perdeu tempo, e perdeu oportunidade.
  • As gravadoras de música (EMI e outras) tem lembranças doces do gigantesco lucro que um dia conseguiram obter. Somente com os Beatles, as vendas foram um colosso. Muito se vendeu no formato LP (Long Play). Na década 1980, iniciou-se a venda de CD, com o mesmo modelo (controlar a venda da media permitia o controle da venda do conteúdo). Inovações modificaram completamente o cenário. O uso de mp3, Internet e software de compartilhamento (napster e depois outros), fez a venda de CD praticamente desaparecer. O mercado de música mudou completamente. Dentre as empresas de destaque atualmente no cenário de música incluem-se a a Apple com o iTunes, a Amazon, que vende vários tipos de media, e a Google com o youtube. As gravadoras perderam tempo tentando manter vivo um modelo de negócios marcado para morrer, e perderam a oportunidade que hoje está com as empresas dominantes do setor.

Numa tentativa de resumir o que se pode aprender com esses exemplos, digo que é imperativo adaptar-se aos novos tempos. Muita empresa grande apegou-se demais ao sucesso do passado, demorou a reagir e perdeu. Muitas empresas que existem hoje vão  acabar por tornarem-se incapazes de competir com os métodos e expedientes que se exige na atualidade. É sábio investir em modernização enquanto ainda é tempo. 

A segunda ponderação do meu amigo também tem resposta. Empresas que vendem pela Internet podem colocar um painel com sugestões de produtos que outros clientes compraram depois de comprar o que está no carrinho de compras. Um painel desses é tipicamente produzido com tecnologia de Big Data. O marketing pode ficar muito mais eficaz pela incorporação de informações de Business Inteligence vindas de processamento de com Big Data sobre log de vendas, ou sobre redes sociais. Big Data pode ser aplicado hoje para resolver problemas já existentes, e também para criar serviço inovador e valioso. O mesmo instinto de oportunidade que fez a empresa ser criada no primeiro momento, deve ser usado para prospectar usos para Big Data hoje, para potencializar as possibilidades da empresa.

O Spark (Big Data Geração 2) está crescendo exatamente agora. O artigo que mostrou o enorme ganho de desempenho que Spark tem sobre a geração anterior é de outubro de 2014 (Veja esse post). Apesar de dificuldades que o Brasil passa especificamente agora, é imperativo conseguir investir para se criar cultura de uso de Big Data. O momento de se investir é agora. Em relativamente pouco tempo, as melhores oportunidades terão ido para quem está investindo agora. Precisamos construir um futuro que tenha alta criação de valor nas atividades que são feitas por brasileiros, ou os demais países alegremente nos conduzirão para uma posição subalterna de fornecedor de produtos básicos. 

A única forma de se obter prosperidade coletiva é construir uma sociedade eficiente, com alta produtividade. O uso intensivo e sábio de tecnologia de informação é fator essencial de eficiência e produtividade. Há inúmeros setores no Brasil esperando para tornarem-se mais eficientes com o uso de TI. Big Data é a tecnologia no foco. Os principais projetos atualmente vão usar essa tecnologia. Empresas que investirem agora vão pegar as melhores oportunidades. Profissionais de TI que investirem agora vão valorizar seus currículos. 

--------------------------------------------------------------------------------
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-05-21

9) Spark lazy execution

#bigdata #hadoop #spark

Uma característica pouco compreendida no processamento de Big Data em Spark é a “execução preguiçosa” (lazy execution). A princípio é de se desconfiar que uma característica com nome de “preguiçosa” possa ser de alguma forma útil e adequada no caso de computação, mas como se verá, trata-se de algo muito bom para o desempenho de execução.

Um engenheiro de software, quando escreve código que chama uma determinada função, imagina que o programa vai executar a tal função no momento em que chegar na linha que a chama. É assim na execução tradicional (não preguiçosa). Mas em Spark não é assim que funciona. Dentre os componentes da API do Spark está o “Spark Core”, que implementa as funcionalidades mais básicas, incluindo o agendar, distribuir e monitorar as tarefas sobre os workers do cluster, cuidar da recuperação no caso de falha de um worker, gerência de memória e outros. A classe mais usada para código em Spark é a RDD (resilient distributed datasets), que logicamente representa uma coleção de itens de tipo genérico. Como o nome diz, um RDD é distribuído (tira proveito da distribuição de tarefas pelos workers do cluster), e resiliente (resiste a eventual falha de um worker).

Os programas para Spark são baseados em SparkContext (sc), que reconhece as características do cluster onde os workers estão. Um RDD é criado levando em conta o sc, o que garante que conseguirá interagir com o cluster. Em Spark, o software representa os dados em RDDs, e transforma RDDs em outros RDDs usando os métodos existentes na API do Spark, eventualmente passando funções como argumentos dos métodos. Sem trabalho explícito do programador, o Spark Core distribui os RDDs pelo cluster. Cada RDD é imutável (isso é, de apenas leitura). A criação de um RDD é feita ou a partir de se carregar um dataset externo, ou de forma programática. Uma vez criados, os RDD podem ser alvo de 2 tipos de operações: transformações e ações. Um exemplo de transformação de RDD é filtrar os dados para que cumpram um critério. Um caso seria filtrar as linhas que contém a palavra “ERROR”. Outro caso seria filtrar os campos cujo valor numérico é maior que um argumento dado. Lembre-se que um RDD é uma coleção de um tipo genérico, isso é, pode ser uma coleção de strings ou uma coleção de pares chave-valor.

Muitas vezes, escreve-se um algoritmo a partir de criar-se um RDD carregando um dataset externo, e sobre esse RDD aplica-se um conjunto de transformações. Esse conjunto de transformações é registrado pelo Spark, mas não é executado imediatamente, devido ao conceito sofisticado de execução preguiçosa. Apesar de soar bizarro, o fato de a execução ser preguiçosa faz muito sentido no caso de dados volumosos. Por exemplo: quando se cria um RDD a partir de um dataset muito volumoso, e sobre esse RDD se faz um conjunto de filtragens que faz diminuir muito o tamanho resultante, é possível diminuir o consumo de recursos computacionais (tarefas executadas, dados em memória, etc) por se otimizar o conjunto de transformações de RDD. É menos custoso executar o conjunto otimizado de transformações de RDD que executar cada transformação tomada isoladamente. Essa otimização é transparente para o programador.

Quando o código encontra uma ação aplicada sobre um RDD, então o Spark é forçado a efetivamente executar todo o conjunto de transformações e produzir a saída. Em outras palavras, apenas apenas quando uma ação ocorre é que o Spark deixa de ser “preguiçoso”. Dentre os exemplos de ações incluem-se a produção de saídas em console ou em disco.

Aplicações Spark simples, tal como word count, consistem em apenas criar um RDD a partir de dataset externo, transformá-lo algumas vezes e produzir a saída. Aplicações mais sofisticadas tem várias fontes de dados, e produzem várias saídas. Nesses casos mais sofisticados, pode-se melhorar o desempenho de execução acrescentando códigos para cacheamento de RDDs intermediários. O sistema Spark sem interferência de código de cacheamento cria um registro de transformações de RDD para cada ação que se deseja. Caso existam duas ações que tem uma parte do processamento comum, o Spark sem cache fará o processamento idêntico mais de uma vez. Nesses casos pode-se melhorar o desempenho escrevendo código que faça cache da parte comum.


--------------------------------------------------------------------------------
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-05-20

8) História do Big Data, Geração 1 e Geração 2

#bigdata #hadoop #spark

Entenda-se “Big Data” como a tecnologia de computação que baseia-se em sistema de arquivos distribuído, e que usa arquitetura de software baseado em Map Reduce. O resumo da história do Big Data assim definido é descrito a seguir. Em junho de 2003 houve uma demonstração do nutch (http://nutch.apache.org/), que é um software open source para busca na web, escrito por Doug Cutting e Mike Cafarella. Em 2004 a Google publicou um white paper a respeito do sistema de arquivos distribuído Google File System (GFS) e da arquitetura software Map Reduce (http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf). Em 2005, Yahoo patrocinou um projeto spin off do nutch – open source e hospedado pela Apache – baseado no paper da Google. Para isso contratou Doug Cutting e Mike Cafarella. O software foi chamado de Hadoop. Uma curiosidade é que o nome “Hadoop” é o som que o filho pequeno do Doug Cutting fazia para referir-se a um boneco de elefante, que é um dos símbolos de Big Data. O Hadoop, assim como o nutch é escrito em Java originalmente, mas admite ser usado com outras linguagens também. O site http://hadoop.apache.org/ disponibiliza todas as versões de Hadoop. A mais antiga é a versão 0.14.1 de setembro de 2007. O site mostra diversas versões de Hadoop, que segue em contínua evolução. Pode-se considerar Hadoop como a primeira geração de Big Data. Em 2009 Matei Zaharia iniciou o projeto Spark na universidade UC Berkeley, que pode ser considerado como a segunda geração de Big Data. No site http://spark.apache.org/ são disponibilizadas versões de Spark desde 2013. Em 2014 foi publicada uma demonstração em que o Spark bateu de longe o desempenho do Hadoop (http://www.datanami.com/2014/10/10/spark-smashes-mapreduce-big-data-benchmark/).

Spark é escrito na linguagem Scala, que foi desenvolvida inicialmente por Martin Odersky, na École Polytechnique Fédérale de Lausanne (EPFL), Suiça, em 2001. A linguagem Scala foi projetada para ser compatível em código compilado com a máquina virtual java. O código fonte *.scala é compilado com scalac, e gera bytecodes, da mesma forma que código fonte *.java compilado com javac. Todo código compilado com scalac pode ser usado numa máquina virtual java sem nem mesmo requerer que se avise ao administrador do computador que se está fazendo isso. Em outras palavras, Scala é o eterno “amigo” compatível perfeitamente com Java. Scala pode usar classes Java dentro do seu código, assim como bibliotecas Java compiladas *.jar. Com essa compatibilidade total e eterna, o Spark (compilado de Scala) pode conviver lado a lado com Hadoop (compilado de Java). Ou seja, para as empresas que instalaram algum sistema com Hadoop no passado, e que desejam expandir as funcionalidades, é possível instalar Spark na mesma máquina e ir acrescentando novas funcionalidades aos poucos, sem precisar parar com o Hadoop. Isso é muito conveniente.

Para as empresas e profissionais que estão entrando no desenvolvimento Big Data agora, recomendo que usem Spark, sem “perder tempo” com Hadoop. Spark é melhor em tudo que Hadoop. É melhor em desempenho de execução, o que é uma vantagem evidente. Mas é também melhor em desempenho de manutenção de código. O código Java do Hadoop, com base em orientação a objetos, torna-se muito “burocrático” ou “verborrágico”. Há quem diga que com Java “há muito código para encanamento, e pouco código para o algoritmo”. Em comparação, a linguagem Scala é funcional, e adapta-se muito bem para a finalidade de escrever algoritmos para Big Data. Para quem tem base em Java e orientação a objetos, o uso de linguagem funcional pode parecer um pouco complexa ao início, mas nas aulas tenho observado que os alunos aprendem rápido e em pouco tempo conseguem entender e escrever código muito bom com Scala/Spark.

Há grandes usuários de processamento digital, incluindo grandes empresas, setores governamentais e outros. Essas entidades são especialmente interessadas na existência de um saudável e vigoroso mercado a lhes suprir hardware e software, para que os sistemas digitais efetivamente possam entrar em produção. Desde 1983, Richard Stallman iniciou o projeto GNU, e ajudou muito a expandir o conceito de software open source. Muitos desconfiaram de que esse modelo pudesse prosperar. Hoje em dia, inclusive em função do uso massivo de cloud computing, o uso de software open source já ganhou enorme aceitação. Um cliente que adote uma solução de software closed source privado precisa aceitar o risco de que a empresa proprietária do software eventualmente no futuro imponha seu produto de forma desvantajosa (e.g. aumente o preço), ou que corte o suporte. O software open source não tem esse problema. Muitas empresas adotam software open source, e pagam por profissionais de suporte, o que resulta em muitas situações em soluções mais econômicas e melhores que as alternativas closed source privadas. Sendo a tecnologia de Big Data toda ela open source, todas as vantagens desse modelo de software são presentes. Para as empresas, é excelente implantar sistemas baseado em tecnologia open source, e poder contratar profissionais que sejam treinados nessa tecnologia. Quanto mais vigoroso o mercado, tanto melhor para todos.

A economia do Brasil ganha muito por uso massivo de open source em geral. Isso porque quanto mais se usa open source, mais se moderniza a sociedade sem que essa modernização implique em transferência maciça de recursos para o exterior. Big Data, pelo seu enorme potencial de processamento e implantação de sistemas modernos e eficientes, sendo open source como é, será um fator de modernização da sociedade ao mesmo tempo em que se reduz o fluxo de capitais para o exterior. As pessoas que desenvolvem software ou prestam suporte são em geral profissionais que moram no Brasil, e. portanto, reforçam a economia local. Com o dinheiro sendo mantido dentro do Brasil, cria-se um fator adicional de prosperidade para toda a nação.

Outro dinheiro que pode ser mantido dentro do Brasil é o de treinamento. Eu fiz o curso da Cloudera University de Spark Developer. O curso é excelente. Mas ressalte-se que o material é licenciado, e que cada aluno deve pagar pelo material, transferindo dinheiro para o exterior. Mas a licença não impede que o material de curso seja reinventado com um novo formato, novos exemplos e aplicações, e com isso se criar um novo curso. Quanto mais se criam cursos sobre um assunto, mais conhecimento se tem sobre o tal assunto. É sinal claro de vigor intelectual a multiplicação de numerosos cursos. Educação é o melhor investimento.


--------------------------------------------------------------------------------
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-05-15

7) Big Data, empregabilidade e destruição criativa

#bigdata #hadoop #spark

A história mostra numerosos exemplos de tecnologias inovadoras em seu tempo que transformaram profundamente o ambiente econômico. Lembremos de alguns: a mecanização no setor rural, a automatização e robotização em fábricas, os super cargueiros que transportam mais matéria em menos tempo e por menos custo, o uso de software para aumento de eficiência de serviço burocrático e de secretaria. A humanidade já acumulou muito conhecimento tecnológico, e seguimos acumulando cada vez mais. Já vimos muitos processos produtivos serem transformados por tecnologias, e muito mais ainda está por vir. Joseph Schumpeter cunhou o termo “destruição criativa” que pode resumir o processo como uma tecnologia suplanta a anterior. Big Data é uma tecnologia de informação que está no foco dos tempos atuais, com alto potencial de criar novos valores e processos. É característica fundamental do século 21 o uso massivo de computação, e muitas vezes a tecnologia por trás disso é Big Data. Alguns exemplos do uso quotidiano de Big Data é buscar algo no Google, postar no facebook ou comprar na Amazon. No Brasil temos exemplos também, tal como o painel de notícias recomendadas do globo.com, ou o relacionamento com clientes do Hotel Urbano. Mas tudo que se fez até agora é pouco. A maior parte das transformações ainda está por vir. Governos, empresas e profissionais de TI prudentes e antenados com seu tempo devem investir tempo para buscar adaptar seu modo de viver, criar e trocar valor. Quem apega-se a modelos de vida com pacto com o passado pode ter sérias dificuldades de viver com prosperidade.



Os profissionais de TI, que vivem de prestar serviços profissionais no mercado de trabalho, já estão acostumados a verem tecnologias novas tornarem-se valorizadas pelo mercado. O vigoroso dinamismo é a característica mais marcante do mercado de TI. Para esses profissionais, o recado agora é claro: a tecnologia da vez é Big Data. Os melhores salários, as melhores oportunidades, os melhores projetos, tendem a ser vinculadas a Big Data, e por isso o profissional faz muito bem para sua empregabilidade por estudar essa tecnologia.


Muitas empresas têm relação forte com TI, e podem beneficiar-se do uso de Big Data para criar mais valor. De fato, quanto mais nos damos conta de o que se pode fazer com a tecnologia digital, mais nos parece primitivo trabalhar sem observar os resultados por essa tecnologia produzidos. A concorrência – sempre muito grande, e crescente mais e mais – serve de estímulo para que empresas invistam em tecnologias inovadoras com o objetivo de ganhar produtividade. A empresa pode investir para melhorar processos que já tem, e também para explorar novos valores inovadores a partir do uso de Big Data. Repita-se: ainda há muito a ser feito. Se a empresa não investir, pode acontecer de em pouco tempo tornar-se sem competitividade para se sustentar no mercado.

Os integrantes do governo que efetivamente desejam construir estruturas do Estado eficientes, têm muito a ganhar pelo uso de tecnologia de informação em geral, em particular Big Data. O uso de tecnologia de informação já mostrou enorme valor por exemplo no caso do sistema de imposto de renda no Brasil. Quem já declarou imposto de renda com sistema pré tecnologia de informação não tem nenhuma saudade daquela forma ineficiente de se trabalhar. É tecnicamente possível melhorar muitíssimo a eficiência da sociedade a partir do uso com sabedoria de tecnologia de informação em sistemas relacionados ao governo, incluindo a área de impostos, criação/fechamento de empresas, processamentos jurídicos e policiais, sistema carcerário, transparência fiscal, saúde pública, educação, transportes e muito mais. Registre-se que há iniciativas governamentais de se explorar o potencial de novas tecnologias para inovações que poderão trazer benefícios a população. Uma delas é a disponibilização de dados feito por algumas cidades, entre elas o Rio de Janeiro (http://data.rio.rj.gov.br/). No meu curso de tecnologia de Big Data da UFRJ, alguns dos trabalhos são feitos em que os alunos escrevem código Big Data em Spark para tratar esses dados.

Há que se comentar sobre o processo de implantação de tecnologias inovadoras. Um software novo e muito bem concebido é muitas vezes o centro de muitas inovações importantes. Mas é igualmente importante que se trabalhe a mente das pessoas que vão usar e interagir com o software em questão. Por exemplo: seja uma empresa que deseja incorporar o uso de um novo sistema baseado em Big Data para aprender como os usuários e clientes percebem o produto da empresa. O que realmente se espera fazer é tornar a empresa como um todo mais eficiente e, portanto,z mais lucrativa. Para esse objetivo ser atingido, é preciso que o time que usa o software compreenda como a empresa cria valor e lucra, para que se conduza os conhecimentos produzidos pelo processamento massivo de dados em ações e decisões que melhorem o desempenho e o lucro da empresa. O profissional de TI deve, portanto, ter também um bom conhecimento do modelo de negócios da empresa em que trabalha, para tornar-se um efetivo colaborador com a missão da empresa, hora pensando em detalhes sórdidos de tecnologia, hora pensando em processos e modelos de negócios. Os usuários e clientes muitas vezes interagem diretamente sobre o os dados, e para esses há que se pensar em interfaces intuitivas e modelos de negócio atrativos e com lógica simples.

A construção de uma sociedade estruturalmente eficiente é a única forma de se obter prosperidade coletiva. O uso intenso e sábio de tecnologia de informação, inclusive Big Data, é peça fundamental na transformação de aumento de eficiência da sociedade.

--------------------------------------------------------------------------------
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-05-06

6) Big Data, Cloud e SaaS versus IaaS

#bigdata #hadoop #spark

Para que se implante um novo serviço baseado em Big Data, é preciso que um cluster com n computadores (workers) exista em algum lugar. Quem deseja entregar um serviço de processamento, deve controlar o data-center que contém o cluster para a produção desse serviço. Essa é a situação por exemplo de quem faz funcionar uma empresa com modelo de negócios “Software como Serviço (SaaS)”, em que um cliente paga para usar um processamento que lhe é entregue pela rede. No ano de 2015 se está observando numerosa criação de startups que prestam serviços relacionados a Big Data, com modelo de negócios SaaS. Como já comentei nesse Blog, em serviços de tecnologia de informação, o foco correto deve ser na eficácia. Ganha o jogo quem entrega o serviço feito, nas condições que o ambiente requer. O que qualquer empreendedor precisa fazer é descobrir como oferecer seu produto ou serviço de forma que consiga atrair clientes, sendo que o cliente comprará o produto ou serviço pensando basicamente na sua própria perspectiva. Isso quer dizer que o produto ou serviço deve apresentar um conjunto de preço, valor, qualidade, suporte e outros que seja capaz de atrair clientes.

No caso de empresas relacionadas a Big Data, é particularmente provável e adequado atuar num modelo de negócios SaaS, onde o serviço é vendido no contexto de “Business to Business (B2B)”. Por exemplo: uma empresa de media (setor cultural) deseja obter um relatório sintetizado que mostra como o seu produto cultural está sendo comentado por redes sociais. Isso pode ser feito a partir dos dados, que são vendidos pelas empresas de rede social, e processados para que se obtenha a síntese desejada. A tecnologia de Big Data é muito adequada para dar conta desse requisito, mas sobre a tecnologia básica de Big Data é preciso que se desenvolvam algoritmos configuráveis para que se atinja o resultado na forma que o cliente realmente entenda e veja valor para si (e, portanto, anime-se a pagar pelo serviço). O empreendedor no modelo SaaS tem a responsabilidade de desenvolver o software sobre a tecnologia de Big Data, de colocar o software em produção, de vender o serviço, e de entender o que os clientes querem para seguir aperfeiçoando o software.

Uma empresa startup que se proponha a fazer algo como descrito acima opera no risco, como toda empresa privada com fins lucrativos. A proposta de negócio pode dar errado. Para que dê certo, o dinheiro que os clientes pagam deve ser suficiente para pagar salários, impostos e outros custos, e ainda dar lucro. Um aspecto interessante a considerar são as opções que um empreendedor como esse tem para viabilizar o data-center para seu negócio. É quase uma certeza que o empreendedor vai escolher alugar um data-center na nuvem. Isso porque um data-center na cloud é muitíssimo menos custoso e mais simples de se implantar que uma alternativa local.

Alguns clientes têm motivos – muito compreensíveis – para não permitir que os dados sejam processados fora de seu data-center local. Exemplos desses clientes incluem empresas financeiras e empresas com alta tecnologia (no setor de petróleo, farmacêutico, militar e outras). Mesmo para atender clientes assim, a cloud é muito útil para um empreendedor prestador de serviço. Isso porque antes de se fechar um contrato de maior valor, em geral são feitos vários testes ou provas de conceito. Isso pode ser feito na cloud a custos baixos, usando dados falsos (mas no formato dos dados verdadeiros). Em se ficando satisfeito com o desempenho experimental feito na cloud, com todos os envolvidos convencidos de que o serviço será de fato feito a contento, então passa-se para a fase de se implantar o serviço dentro do data-center do cliente, com a exata mesma tecnologia que se testou na cloud.

As empresas fornecedoras de data-center na cloud operam um modelo de negócios conhecido como “infraestrutura como serviço (IaaS)”. O custo do serviço prestado por essas empresas é um fator da maior importância para sua competitividade. Como consequência, as empresas nessa categoria têm altas vantagens por tornarem-se grandes e com abrangência mundial, e o preço do serviço torna-se cada vez menor. Uma lista das atuais empresas importantes nessa categoria inclui Amazon (produto AWS), Google (produto Cloud Platform), Microsoft (produto azure), Digital Ocean e muitas outras. O crescimento da atividade de IaaS tem sido explosivo. O leitor interessado pode procurar por exemplo por “amazon IaaS growth 2014”, e ler sobre isso.

O uso massivo e crescente de data-center remoto na cloud é um fenômeno mundial, e faz surgir questões de interesse estratégico. Esse uso massivo leva a que muito processamento seja feito fisicamente em local e infraestrutura não controlada pelo governo de um país. Tal situação permite prever teoricamente um novo tipo de pressão política entre nações, que poderia ser negativo para países como o Brasil. Uma política que eventualmente prevenisse essa situação seria a de se incentivar uma indústria local de cloud a partir de se onerar com impostos a compra de serviços IaaS feitos por empresas estrangeiras. Mas não há almoço grátis, ou seja, a eventual implantação de uma política para proteger a atividade local de IaaS é ao mesmo tempo um forte estímulo negativo para a atividade de se empreender e inovar no modelo SaaS. A sociedade deve estar preparada para discutir qual política deseja para regular a atividade de processamento digital de informações.

Eu trabalho na UFRJ desde 1991, e atuo ensinando e orientando alunos em temas como desenvolvimento de software para Big Data, cloud, mobile, otimização e outros. É com orgulho que observo que alguns dos nossos melhores alunos abrem empresas startups em atividades como SaaS. Entendo que é muitíssimo mais produtivo e promissor para toda a sociedade Brasileira apostar no crescimento das empresas no modelo SaaS (não necessariamente Big Data) do que proteger a atividade IaaS. Uma das poucas coisas que ainda se consegue fazer no Brasil com chance de ser competitivo mundialmente é uma empresa de software no modelo SaaS, pois nossas severas deficiências (que compõe o chamado “custo Brasil”) são menos relevantes no caso da atividade de software. A eventual política em favor de se proteger a atividade de IaaS vai encarecer o uso de data-center remoto, e retirar competitividade do SaaS, um promissor segmento para o Brasil.

Para o leitor que imagina que uma política para proteger IaaS onerando o SaaS seria boa, sugiro que pense como seria nossa vida se tivéssemos uma política análoga para proteger a produção de chip de CPU, que é uma atividade ainda mais competitiva e concentrada que IaaS. Digamos que seja possível produzir no Brasil CPU's no Brasil por um custo 100 vezes maior. Seria sensato onerar toda a sociedade Brasileira forçando todos nós a usar CPU's produzidas aqui, ao invés de comprar essa mercadoria por quem a produz de forma eficiente? Se eventualmente fizéssemos isso e de fato onerássemos toda a sociedade, haveria chance real de um dia termos uma indústria nacional de CPU que atingisse competitividade mundial? O que a história econômica recente nos ensina? O que fazem outros países?

--------------------------------------------------------------------------------
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