1 infra x 6 dev x 100 servidores: Pode isto, Arnaldo?

1414-equilibrando-pratos_800A regra é clara: Se você adota a cultura de DevOps, automatiza sua TI e implementa Deploy Contínuo, sim!

Nas empresas em que trabalhei como Gerente de TI e infraestrutura, sempre foquei em automação das atividades diárias da infra. Mesmo com equipes pequenas (três técnicos, um de Linux, um de Windows e um atuando com redes e segurança), demos conta de ambientes com mais de 120 servidores virtuais. Atuando sozinho, em uma startup, subi e mantive um Cluster Hadoop com mais de 150 nós!

Agora, atuando como Consultor de TI e Cloud Computing, tenho visto em várias empresas (para não dizer na grande maioria) equipes de TI sobrecarregadas com atividades corriqueiras; equipes de infraestrutura batalhando para atender os desenvolvedores (e seus deploys) e tecnologias ultrapassadas de gestão de ambientes.

Nestes últimos meses, desenvolvi nestas consultorias um processo rápido (processo: não é uma “bala de prata” para todos os problemas) que dá um “respiro” nesta situação, aliviando a carga do pessoal de infra, deixando os desenvolvedores realizarem seus deploys a qualquer momento e atendendo as demandas do negócio.

Basicamente, este processo se resume em:

1) Automação da Infra (10 dias)
Pessoal de infra! Parem de reinventar a roda a cada novo servidor que “sobe”, novo path a ser aplicado ou novo deploy. Já fui técnico e sei que o mais difícil é “largar o osso”; automatizar a infra não irá tirar seu trabalho – mas sim, deixará você com mais tempo para pensar em novas implementações ou melhorias.

Suba um servidor Opscode Chef, defina quais são os padrões de cada SO que você administra e crie cookbooks/recipes que automatizem as tarefas de instalação/atualização. Crie uma Role com este recipe e aplique em seus servidores.

2) Automação do Deploy (5 dias por aplicação)
Existem vários recipes prontos em community.opscode.com, para as mais diversas linguagens de programação existentes hoje, que vão desde uma aplicação .NET até uma aplicação em Node.JS.

Suba um git server em seu ambiente (ou adote um pago, como o github.com ou bitbucket.org) para que seus desenvolvedores possam subir o código-fonte da aplicação e o script de automação faça o deploy “automagicamente”.

Adote Paretto: Escolha aqueles 20% de aplicações que demandam 80% de seu tempo e foque na automação delas inicialmente.

Disponibilize um servidor de logs real-time como o log.io (logio.org) para que seus desenvolvedores possam acompanhar em real time os logs e debugar a aplicação.

3) Implemente um Processo de Integração Contínua (20 dias)
Adote um Servidor de Integração contínua como o Jenkins (ou o TFS da Microsoft); Crie regras para testes unitários, performance, segurança e outras, com os diversos plugins existentes.

4) Evolua! – Processo contínuo
Pesquise as novidades existentes no mercado. Há muita tecnologia nova e inovadora sendo lançada a cada mês e em uso nos grandes (Facebook, Twitter, Netflix, Paypal). Estas empresas estão há anos-luz no uso destas tecnologias – e as usam em ambientes de 10.000 servidores e mais de 1MM de usuários simultâneos. Se é bom para eles, deve ser para você também.

———————

#Fica a Dica:
1) Para desenvolvedores: APIs RESTful, Node.JS, ElasticSearch (principalmente para substituir as querys de banco de dados!). Pense em um frontend que tem a função somente de “cuspir” conteúdo: ele busca a informação em uma API RESTful de seu backend, monta e entrega para o Browser (e um frontend em Node.JS, assincrono, irá te dar uma performance enorme – o Paypal adotou este modelo).

2) Para o “pessoal da infra”: “Infrastructure as Code”. Este é futuro. Em um ambiente com dezenas, centenas ou milhares de máquinas virtuais, vários SOs e várias linguagens de programação usadas pelos desenvolvedores, nosso método de trabalho “na unha” está morto. Aprenda Ruby (usado tanto no Chef como no Puppet), aprenda Phyton e foque em Cloud (públicas, privadas, AWS, RackSpace, Softlayer, OpenStack e CloudStack). São todas tecnologias que vieram para ficar e, a cada dia, estarão mais presentes no seu cotidiano.

TI: Como ganhar mais horas no seu dia?

Ao longo dos últimos anos tenho investido tempo em ferramentas de automação. CFEngine, Puppet e Chef foram as que me dediquei com mais afinco chegando à escolha do Opscode Chef, em 2011.

Escolha acertada, já que foi a escolha da Amazon como base para seu produto OpsWork  e pelo Facebook, um dos maiores usuários da plataforma.

Recentemente, realizei um JOB de migração de um site e uma das máquinas colocadas no pacote foi o Opscode Chef (versão community). Por menor que seja o ambiente do cliente (neste caso, 11 instâncias) o ganho é enorme e, a economia de tempo, maior ainda. Tudo o que foi desenvolvido no ambiente de DEV, através dos cookbooks e recipes, foi replicado em minutos em 7 máquinas de frontend e duas de banco (com replicação master-master).

Em um outro JOB, este em um ambiente com +70 instâncias, os técnicos demoravam aproximadamente entre 6 a 8 horas para subir um servidor WEB com todos os pacotes, apache customizado, FTP, e políticas de segurança. Este mesmo processo, hoje, pode ser feito em 5 minutos.

Já fui um técnico; Criar documentação ou até scripts para uso de outros era um sacrilégio. O Mundo mudou. Antes, gerenciar 10 a 20 servidores era uma tarefa relativamente fácil e que mantinha um técnico suficientemente ocupado para garantir seu emprego.

opscode_server_complexityHoje, com a necessidade de updates quase diários e um parque de servidores médio por empresa na casa de 50 máquinas, a atividade de gerenciamento deixou de ser uma atividade trivial. Patches, de segurança, deploy de sistemas diários (DevOps), exigência de máquinas de testes “para ontem” e mais um “sem números” de exigências está levando para estas ferramentas.

A mudança de paradigma para os especialistas é alta: Ao invés de “colocar a mão na massa” e atuar diretamente no server, ele verifica os recipes criados, através de uma programação específica.

Como dizem “Infrastructure as Code”; com uma simples alteração em um script, você atualiza um parque de milhares de máquinas em minutos (vide facebook, por exemplo).

Como técnicos, precisamos deixar de temer as novas tecnologias e abraçá-las, brigando para a implantação em nosso ambiente de trabalho. Isto nos dará mais tempo livre para estudarmos outras tecnologias tão – ou mais – importante para a empresa. E para nosso aprimoramento profissional.

 

Fim da Neutralidade no Marco Civil!

Já fui um defensor do Marco Civil, em sua primeira versão (a que foi discutida com a Sociedade através do portal e-democracia e disponível no Cultura Digital).  Porém, hoje, sou mais um assinante  da  Carta Aberta das Organizações da Sociedade Civil ao Relator do Marco Civil da Internet, deputado Alessandro Molon (PT/RJ).

O Marco Civil, que conceitualmente deveria ser uma “Carta de Princípios, garantias, direitos e deveres”, acabou virando uma colcha de retalhos na tentativa de atender os mais diversos interesses.

imagemUm post do Luis Nassif, no portal Outras Palavras, abordou muito bem a questão de modelos de negócios da Televisão x Internet e os interesses e lobbys feitos no Marco Civil – vale a leitura.

Mas, voltando ao título deste post, enquanto as pessoas focam as atenções na votação do Marco Civil e na “briga” pela tal da Neutralidade e isonomia, o governo atende os interesses das teles de uma outra maneira.

Hoje (06/03) foi publicada uma matéria na Folha de SP sobre o Leilão do 4G e como o Governo irá fazer caixa – e atingir as metas de superávit fiscal, já que os “golpes contábeis”, a “maquiagem” das contas, já não estão funcionando mais.

Porém, o Governo pretende fazer caixa exatamente no ponto que está barrando a votação do Marco Civil: A Neutralidade da Rede. Veja este pequeno trecho desta reportagem:

O quarto bloco, maior de todos, ficaria completamente livre de obrigações e custaria muito mais, porque teria ainda um ‘prêmio': o vencedor poderia cobrar a mais de interessados em contratar, por exemplo, conexões mais rápidas de internet.

Empresas como o Netflix poderiam ter tratamento diferenciado para futuras transmissões em alta definição.

Este é o ponto que está “amarrando” a votação do marco civil. Assim, além de destrancar a pauta, o Governo conseguiu (1) atender as Teles; (2) aprovar o Marco Civil com os 3 pilares, incluindo no texto a tal de Neutralidade; e, (3) Reforçar seu caixa para atingir as metas de superávit .

Vinton Cerf, considerado o “pai da internet”, disse que não acredita na eficácia de leis contra crimes cibernéticos porque são medidas regionais que dificilmente terão efeitos numa rede mundial. “É preciso encontrar formas de coibir o abuso, talvez, por meio de acordos multilaterais entre países, mas não se pode construir normas que desencorajem o uso dessa extraordinária infraestrutura”, ressaltou. Infelizmente o Marco Civil, com a guarda de logs no Brasil, exigência de Datacenters locais e outras falácias inseridas estarão nos isolando do mundo e cerceando a nossa inclusão “de fato” social.

UPDATE 07/03 – 09:30hs

Em uma nova matéria da folha de SP Ministro descarta idéia de liberar 4G de regulação prevista em projeto, O Ministro das Comunicações, Paulo Bernardo, descarta a possibilidade de liberar a internet 4G da neutralidade de rede para aumentar a arrecadação. Segundo ele, “a neutralidade será mantida. Alguém pode ter apostado nisto, mas foi sonho de uma noite de verão” e, ainda, que o governo não abre mão de ver o princípio da neutralidade aprovado no projeto do Marco Civil.

“Quem viver verá”

 

1938 – A Primeira Startup conhecida

Zuse_Z1-2É interessante como os fatos às vezes ficam relevados à notas de rodapé na História.

Além de não constar nas retrospectivas sobre a história da computação, pouco se sabe sobre a história de Konrad Zuse, o criador do Z1 – computador eletro-mecânico que representa um marco histórico, pois é considerado a primeira máquina binária programável do mundo.

O Z1 foi concluído em 1938. Zuse trabalhou no Z1, com conhecidos e amigos na sala de estar do apartamento de seus pais, em Berlim, o que motivou que estes o proibissem de continuar. Porém, Zuse teve financiamento de muitas partes nessa época. Assim, o pai, um empregado, retrocedeu da decisão, enquanto destinava o salário da irmã e pedindo a alguns amigos para emprestar dinheiro a Zuse, desde que foi convencido do sucesso desde empreendimento.

Um outro fato curioso sobre a trajetória de Zuse é que, em 1945, ele especificou e desenvolveu a linguagem de alto nível Plankalkuel, que ele utilizou para desenvolver os primeiros jogos de Xadrez por computador – A linguagem FORTRAN apareceu somente 10 anos depois e a maioria das linguagens de programação de hoje seguem padrões definidos na Plankalkuel.

Em 1946 Zuse recebe fundos da ETH Zürich e da IBM, com opção de compra em suas patentes.

 

| Cloud Architect | IaaS | PaaS | CloudStack | OpenStack | Tech Visionary & Worklover |