Google e Enterprise: deu “match”?

Na semana passada aconteceu em São Francisco o evento Google NEXT 2017: principal evento da plataforma de cloud computing da Google do ano. Algumas coisas me chamaram atenção: o tamanho do evento (maior que o Google IO), a abrangência da oferta – que agora inclui também o G Suite e, principalmente, o clima enterprise do evento, contrastando com todas as edições de qualquer evento que seja da gigante da internet.

Parece que realmente a Diane Greene está conseguindo mudar a cultura da empresa. Os Googlers já não usam mais calças jeans desbotadas e camisetas coloridas… usam camisas, blazers e calças sociais. O palco dos keynotes foram recheados de empresas, clientes ou parceiras, que demostravam seus cases e fortalecimento do ecossistema. Algumas verdadeiramente surpreendentes: como SAP (parceria para a plataforma cloud, incluindo o Hana) e HSBC (cliente para processamento de dados na nuvem). Andando pelo meio da audiência, muitos clientes e prospects fazendo networking, contrastando com os já tradicionais developers apaixonados.

Sobre os developers, muita reclamação e rancor aparecendo nos fóruns e redes sociais. Tudo começou há algumas semanas com o lançamento do Cloud Spanner. O preço inicial (pouco mais de 700 dólares / mês) deixou a comunidade de desenvolvedores independentes e startups indignados pelo “alto valor”. Coloco entre aspas pois para contratos corporativos isso não é absolutamente nada. O keynote gerou críticas fortes nos fóruns que participo, todos se sentindo traídos por esse novo Google.

É isso, deu match. Finalmente começou o relacionamento da Google com o mundo enterprise. Pessoalmente, eu parabenizo a empresa pelo movimento. Acho que existe espaço para trabalhar ambos os mercados e, no final do dia, alguém precisa pagar o almoço. Sem um movimento nesse sentido, os espaços seriam engulidos por AWS, Microsoft e talvez IBM, e talvez a Google fosse forçada a fazer o que sempre fez e que sempre gerou críticas de todos: descontinuar os produtos. Vida longa ao GCP no enterprise!

From idea to market in less than 6 months

Hi,

This is my presentation on GCP Next 2016. In this presentation I talk about how CI&T created a new product using Google Cloud Platform in less than 6 months. I explain how we got the vision, the challenges we went through and how we made every decision based on business needs. We are using Google App Engine, Compute Engine, Pub-sub and several other GCP products to build Smart Canvas.

Hope you like it!

Cheers,
Daniel V.

Cloud Computing: “do zero” é fácil… mas o que faço com o que eu já tenho?

Olá,

Estamos chegando ao final de 2015 e fico muito feliz de ver como a adoção de cloud computing melhorou no mercado nacional. Empresas de diversos tamanhos e indústrias estão finalmente colocando cloud computing dentro da categoria de “assunto sério” de discussão. Entretanto, a dúvida que ainda escuto com muita frequência é: o que fazer com o restante dos meus sistemas que estão rodando on-premises ou em clouds privadas?

É possível colher vários benefícios das plataformas de nuvem mesmo nesse cenário! Quero aqui explorar algumas dessas possibilidades.

1. Lift-and-shift

Comecei pelo que eu menos gosto, mas que pode ser interessante a depender do cenário da sua empresa. O termo em inglês “lift and shift” é usado para descrever uma estratégia de migração para a nuvem simplesmente movendo o que hoje roda em um datacenter local para uma plataforma de nuvem sem qualquer redesign da aplicação. Nesse caso, o foco é IaaS (Infrastructure as a Service), que oferece servidores na nuvem (normalmente Windows ou Linux) que vão fazer exatamente o que o seu servidor local faz. Sendo assim, esse processo é praticamente uma troca de datacenter.

Benefícios: maior agilidade no provisionamento de servidores, não se preocupar com a estrutura física de máquinas ou datacenters e, dependendo do seu contrato atual de hosting, pode trazer alguma redução de custos.

Preocupações: primeiramente, por mais simples que seja, mover uma aplicação de um lado para outro adiciona um risco sem trazer benefício de negócio nenhum. Se houver alguma integração com legados, a situação pode demandar uma preocupação especial para criação de redes híbridas e cuidados com latência. Além disso, com o preço do dólar no Brasil, pode ser que o ganho financeiro não exista. Em resumo, é a abordagem de menos valor de negócio, muito técnica. Por isso não gosto tanto.

2. Criação de uma Arquitetura Híbrida

Eu particularmente acredito bastante numa tendência de vermos cenários híbridos crescerem no curto prazo. Algumas coisas rodarão on-premises, outras em clouds privadas e outras em clouds públicas. O que roda em cloud pública, pode aproveitar o que existe de melhor dessas plataformas: PaaS, containeres, serviços gerenciados etc. Nesse cenário, não existem mudanças significativas nos legados, o ponto chave aqui é definir uma estratégia de integração entre as diversas redes. A maneira mais simples é usar serviços próprios dos provedores (exemplo: Google Cloud Interconnect) que permitem criar extensões de sua rede na nuvem pública deles. Outra possibilidade que pode ser adicionada à solução de rede é investir em APIs. Expor serviços dos seus legados como APIs utilizando gateways é a minha abordagem favorita para integrações internas e/ou externas (terceiros, open innovation). Existem muitos produtos que fazem isso, como o Sensedia API Manager (solução nacional que gosto muito).

Benefícios: conseguir utilizar todo o potencial das novas arquiteturas de nuvem para coisas novas preservando o investimento que foi feito em legados. Criar uma arquitetura de integração que pode beneficiar tanto a utilização da nuvem mas também as aplicações atuais e produtos de terceiros.

Preocupações: gerenciar vários ambientes. A arquitetura projetada, tanto de rede quanto de software, precisa ser cuidadosamente projetada para não gerar excessivos pontos de falha e aumentar a complexidade da área de operações de modo significativo.

3. Utilização de Serviços Gerenciados

Que tal simplesmente adicionar “capacidades” às aplicações atuais que vocês já possui?  Essas capacidades (do inglês, “capabilities“) podem ser funcionalidades de real-time para aplicações web ou móveis, analytics / big data, machine learning etc. Ou seja, você vai manter a sua aplicação exatamente como ela é hoje mas adicionar componentes que podem mudar dramaticamente a experiência do usuário ou o seu entendimento com relação ao negócio. E o melhor disso, é que isso pode ser feito sem necessidade de hardware ou software e, via de regra, de modo extremamente simples. Produtos como Firebase para funcionalidades de realtime, Big Query para Big Data, Translate API para tradução e detecção de linguagens, Vision API ou Prediction API para machine learning etc estão aí para serem utilizados.

Benefícios: rejuvenesça, transforme a experiência de produtos atuais adicionando componentes em nuvem que podem mudar dramaticamente a experiência atual do usuário através de serviços gerenciados prontos para uso. Podem ser usados sem grandes investimentos iniciais, possuem impacto pequeno na arquitetura atual e são um excelente passo para usar incrementalmente cloud computing.

Preocupações: semelhante ao ponto anterior, é necessário ter cuidado com o projeto da arquitetura e como fica o gerenciamento da solução final. Mas a preocupação aqui é menor visto que são, via de regra, capacidades extras que estão sendo incorporadas, movimentos menores e mais cadenciados.

4. “Containerizar” suas Aplicações

A utilização de containers (Docker, Kubernetes etc) aponta como uma das grandes tendências da área de software há algum tempo. A capacidade de colocar sua aplicação numa “caixa” que pode rodar em qualquer ambiente (local ou de nuvem), super leve pois carrega apenas o que é específico da sua aplicação (não carrega um SO, não é uma VM), performático pois possui menos camadas de virtualização e ainda com a possibilidade de ser implantado em ambientes gerenciados como o Google Container Engine ou num cluster Kubernetes em qualquer lugar, abriu os olhos de muita gente para possibilidades interessantes nas áreas de TI. Colocar suas aplicações atuais em containers e criar as novas já usando essa abordagem pode trazer benefícios importantes para sua empresa: melhoria no processo de DevOps, mais entradas em produção com menor risco, independência de datacenter (pode rodar local, em cloud privada ou qualquer provedor de nuvem pública), potencializar uma arquitetura de micro-serviços na sua empresa etc. E a adoção da nuvem ficará bem suave, seja em máquinas ou ambientes gerenciados oferecidos pelos principais players hoje. Ao contrário do lift-and-shift que você tem apenas “mais do mesmo”, aqui você promove uma melhoria mais profunda nos seus processos de software com benefícios claros para o negócio, como maior disponibilidade e escalabilidade (ao usar Kubernetes, por exemplo), mais rapidez para colocar features novas em produção etc.

Benefícios: containeres ficam no meio do caminho entre infraestrutura e plataforma como serviço. Ao ter suas aplicações em containers, você poderá ter uma série de benefícios da plataforma como serviço (auto-scaling e balanceamento transparentes), com a flexibilidade da infraestrutura como serviço (qualquer linguagem, qualquer middleware), melhorar seus processo de DevOps (diminuir riscos de deployment, melhorar a integração contínua) e ainda não ter “lock-in” com nenhum provedor de nuvem ou datacenter específico.

Preocupações: o processo de mover aplicações atuais para containers pode não ser tão simples e direto, vai depender da arquitetura e dependências das suas aplicações atuais. Uma maneira mais simples de “testar a água” aqui é começar com as novas aplicações, mesmo que para implantação on-premises.

Estes são alguns exemplo de movimentos que podem ser feitos para adotar de forma incremental serviços em nuvem, com risco controlado e com benefícios mais rápidos. Em todos eles, o mais importante é ter um bom projeto, clareza dos benefícios que querem ser alcançados e um bom plano de implantação. A boa notícia é que certamente vai ser bem mais simples do que implantar os complexos produtos de caixinha que, infelizmente, tivemos que enfrentar durante tanto tempo.

Feliz 2016!

Abraços!

 

Por que utilizar uma plataforma na nuvem?

Olá!

Tenho feito algumas visitas e participado de alguns eventos de startups e de grandes empresas juntamente com a Google e percebo que ainda existe uma dúvida: por que eu deveria considerar plataformas de desenvolvimento na nuvem? Quais os benefícios que eu posso ter? No fundo, eu sinto que todos perceberam que o caminho de cloud computing é inevitável, mas ainda falta algo concreto para de verdade “pular na piscina”. Bom, vou tentar sumarizar aqui as principais razões pelas quais as pessoas deveriam considerar uma plataforma em nuvem nas suas novas iniciativas.

[1] Entregar valor MUITO mais rápido

Trabalhando para a CI&T no projeto da campanha de marketing da Copa do Mundo 2014 para a Coca-cola, em 3 meses saímos da assinatura do contrato para a entrega da primeira versão do sistema que capturava, moderava e armazenava, com consentimento do usuário (feito de forma automática), imagens de redes sociais (Facebook, Twitter e Instagram) para bater o recorde do maior mosaico de fotos do mundo. Essa campanha global capturou milhões de imagens por todo o mundo. Usamos o Google App Engine nesse projeto. Já prestei serviço para empresas que demorava mais tempo do que isso apenas para ter um servidor disponível. Ao usar uma arquitetura padrão, uma plataforma que já lida com escalabilidade, alta disponibilidade, replicação de dados etc de maneira nativa, a conversa é “o que vamos construir?” desde o primeiro dia de projeto.

[2] Inovar com novas capacidades para suas aplicações

Antes você não podia armazenar todos os cliques do usuário para entender melhor a usabilidade do seu sistema e a jornada do seu consumidor? Não conseguia juntar o máximo de informações possível e processá-las em tempo real para extrair insights? Era muito complicado ter sistemas com atualizações de UI em tempo real para gerar experiências incríveis como os grandes produtos digitais como Uber e What’s App entregam hoje em dia? Hoje é possível utilizar produtos como Firebase e plataformas de Big Data como a da Google para adicionar essas capacidades às suas aplicações e se destacar no meio da multidão. O que antes era muito caro do ponto de vista de infraestrutura ou de pessoas, agora está a um clique de distância da sua empresa.

[3] Ser mais leve

Os americanos gostam de usar a expressão “travel light”, ou seja, viajar com poucas malas, carregar menos fardo. Como você vai conseguir inovar e usar tecnologia para diferenciar o negócio da sua empresa se ainda precisa tomar conta de servidores, middleware, services packs, infraestrutura etc? Não é aí que está o diferencial do seu negócio correto? Fique mais “leve”, deixe que empresas como a Google cuidem dessa parte para você. Você provavelmente vai estar mais seguro (em melhores mãos nesses quesitos) e certamente com a cabeça, energia e foco em fazer o melhor uso possível disso para ganhar mercado.

[4] Reduzir custos

Deixei como o último item de propósito, pois ainda vejo que mentalmente é o primeiro item na cabeça de muitos. É verdade, você pode sim diminuir custos. Vai depender de investimentos já feitos, contratos com datacenters atuais, tipo de sistemas que você quer manter na nuvem, se vai haver alguma redundância em algum momento etc, mas provavelmente haverá redução de custos. Para startups, é uma decisão óbvia a nuvem por esse motivo aqui, para grandes empresas nem tanto, pois a economia de infraestrutura pode não ser suficiente para romper a inércia de paradigmas atuais. Nesse caso, sugiro uma reflexão sobre os outros temas. Aqui a discussão é de “onde” rodar o meu sistema: local, nuvem privada ou uma IaaS em nuvem pública, tudo commodity ao meu ver. Lembre-se que as plataformas de nuvem oferecem muito mais do que isso com seus serviços gerenciados.

No próximo post vou falar do “como” ir para a nuvem, principalmente carregando um legado nas costas, situação certamente comum em 100% das empresas médias e grandes. Até lá!

Abraços!

Kubernetes v1 is here!

Hoje a Google anunciou em seu blog o lançamento oficial da versão v1 do Kubernetes, projeto open-source para clusterização e orquestração de containers. Tive a oportunidade de conversar com alguns Googlers a respeito da expectativa em relação ao tema e posso garantir que é bastante grande! Muito tem se falado a respeito de containers, dockers etc. Grande parte no contexto de DevOps e parte no sentido de portabilidade entre nuvens, APIs etc. Eu, particularmente, tenho um particular interesse no assunto: arquiteturas mais escaláveis e modulares com microserviços na nuvem. Acho que a maturidade do Kubernetes (e sua versão gerenciável: GKE – Google Container Engine) é um passo importante para termos uma base mais sólida na implementação dessas arquiteturas.

Vida longa ao Kubernetes e que venha o GA (general availability) do GKE logo!! 🙂

Windows Server em GA na GCP

Depois de um período em alpha e beta, os servidores Windows estão finalmente em GA (General Availability, disponível de modo definitivo, com SLA, suporte etc) na Google Cloud Platform (GCP). Apesar de eu nunca ter sido fã de Windows, nem no desktop nem muito menos para servidores, acho que é um passo de vital importância para consolidar a oferta de IaaS da Google.

Há um tempo eu comentei que IaaS é commodity, e reforço minha posição aqui. O anúncio das máquinas Windows na nuvem da Google fecha talvez o único gap realmente relevante que faltava na oferta da empresa. Fico ansioso de ver as novidades onde eu acredito que esses fornecedores vão poder se destacar: serviços gerenciados. Espero em breve escrever sobre novidades no App Engine por aqui 😉

Veja mais em: http://googlecloudplatform.blogspot.com.br/

Abraços!

IaaS é commodity. Qual o real benefício da nuvem?

No dia 16/06 aconteceu o Google Next – evento sobre Google Cloud Platform (GCP) – em várias cidades como Nova Iorque, Tokyo e São Francisco com live stream para o mundo inteiro. O keynote foi bem interessante e me fez refletir sobre o ponto que estamos no assunto cloud computing e o que esperar do futuro próximo. Compartilho abaixo algumas das  minhas reflexões:

1. Acabou o medo de se adotar infraestruturas e plataformas em nuvem

Pelo menos para cenários como hospedagem de aplicações não-críticas, campanhas de marketing, big data ou aplicações digital / mobile. Há mais de 5 anos trabalhando quase que exclusivamente com o assunto, é nítida para mim a diferença de comportamento e aceitação de empresas de todos os tamanhos com o assunto. Hoje eu vejo empresas de todos os tamanhos e nacionalidades tratando o assunto com total naturalidade. A exceção acontece em alguns poucos segmentos mais conservadores ou fortemente regulados, mas mesmo assim movimentos significativos já acontecem em setores financeiros e farmacêuticos, por exemplo.

2. IaaS está se tornando commodity

Principalmente se considerarmos os principais provedores mundiais de nuvem. E commodity no sentido mais puro da palavra: pouca diferenciação por valor agregado e maior diferenciação por preço. Apesar do entusiasmo das empresas ao moverem os seus primeiros sistemas para um servidor rodando na nuvem, elas estão apenas no primeiro passo da jornada. Cada dia mais, a decisão de adotar GCP, AWS ou Azure – para IaaS – se parece com a decisão de ter um chip Vivo, Claro ou TIM. Algumas diferenças aqui e ali em termos de funcionalidades, mas condições comerciais e preços acabam sendo os principais fatores de decisão.

3. A diferenciação em potência de 10 acontece com serviços gerenciados

O salto de 10x de agilidade e agressividade de posicionamento digital vai acontecer para os que souberem fazer o melhor uso dos serviços gerenciados em nuvem. São eles que vão permitir criar coisas incríveis como aplicações com escalabilidade infinita em semanas, analisar e gerar insights a partir de volumes estrondosos de dados, manter sincronização real-time entre dispositivos etc, tudo isso com foco apenas em desenvolvimento. Isso significa colocar o foco e energia da sua empresa no local correto: gerar valor. E não em complexas arquiteturas lógicas e de infraestrutura. E aqui teremos um dilema que as empresas vão precisar lidar: vendor lock-in. Serão 3 opções:

IaaS para ter total controle com menor produtividade de desenvolvimento e maior custo de gerenciamento e operações;
PaaS e Serviços Gerenciados para ter maior produtividade e agilidade, muitas vezes sem necessidade de investimento em operações, utilizando soluções e arquiteturas definidas pelo provedor (vendor lock-in);
CaaS (Containers-as-a-Service) para ficar no meio termo, conciliando controle e abstração de ambiente de execução e escalabilidade. Por enquanto, tecnologia ainda amadurecendo;

Meu palpite é que grandes empresas vão considerar as três opções e decidir a melhor sob demanda.

E a Google Cloud Platform nesse cenário?

Vejo com bastante entusiasmo a posição atual da GCP nesse cenário desenhado. O evento “NEXT” mostrou como empresas como JDA e PwC estão adotando a plataforma no mundo corporativo com sucesso. Depoimentos de executivos dessas empresas deixaram clara a consistência de performance, escalabilidade e segurança da plataforma. E o mais interessante é que a GCP possui ofertas para todos os cenários que mencionei:

IaaS com Google Compute Engine: para hosting de aplicações legadas ou novos desenvolvimentos que demandem maior controle de código e infra;
PaaS com Google App Engine: para sistemas com alta-disponibilidade e escalabilidade e foco em produtividade e desenvolvimento;
Containers com Google Container Engine e Kubernetes: para criação e gerenciamento de cluster de conteineres;
Big Data com Big Query, Cloud Storage, Dataflow, Pub-sub etc: serviços gerenciados para processar, armazenar e analisar altos volumes de dados em tempo real;
Firebase e Cloud endpoints: para criar aplicações móveis utilizando serviços em nuvem e com sincronização em tempo real de todos os dispositivos conectados;

O distanciamento com relação a concorrentes vai acontecer para quem conseguir explorar ao máximo o que as plataformas de nuvem têm a oferecer. E principalmente para quem explorar os serviços gerenciados oferecidos por estas plataformas. Como disse o executivo da PwC no evento: “_Google is the original cloud company_”. Eu concordo. Na minha visão, a Google lidera indiscutivelmente em visão e execução de entrega destes serviços.