quinta-feira, 26 de março de 2015

Abra sua mente



De tempos em tempos, surgem novidades tecnológicas que rompem conceitos e paradigmas mudando totalmente a maneira como desenvolvemos e processamos sistemas de informação.

Neste exato momento de 2015, estamos de frente para um imenso degrau tecnológico e cultural, o qual muitas empresas já subiram, enquanto ainda ficamos discutindo e usando técnicas de mais de 10 anos.





"Always in motion is the future"
Yoda, Star Wars - The Empire strikes back

Um dos maiores erros que uma empresa pode cometer em Tecnologia da Informação, é amarrar-se em uma ferramenta ou tecnologia. No caso de empresas de TI, isso é um crime, que deveria ser punido com a demissão dos responsáveis.

Mas toda empresa tem a idéia "genial" de criar uma "área de arquitetura tecnológica", cujo objetivo parece ser apenas o de manter a empresa enredada em seus sistemas aplicativos, usando tecnologias ultrapassadas e sem sentido.

O que já foi "tecnologia de ponta" há dois anos, hoje é "legado". Imagine se falarmos de tecnologias e ferramentas de mais de 10 anos de idade?

Sistemas aplicativos deveriam poder ser escritos e descartados com facilidade, sem maior comprometimento por parte da Empresa. E tem mais: deveria ser possível utilizar a linguagem, o framework, ou o componente mais adequado à solução. Ao invés disso, graças a esses "gênios arquiteturais", usamos as mesmas ferramentas, independentemente da sua adequação ao problema em questão.

Lightweight Stacks já são coisa do passado

Eu venho defendendo a adoção de uma arquitetura "lego" (marca registrada), ou seja, diluída, que permita "acoplar" componentes, substituindo-os sem ter que recompilar todo o meu sistema.

Tendo isso em mente, eu enveredei pelo caminho do C10k, e adotei o MEAN Stack como uma das possíveis soluções.

Até que, outro dia, um amigo me perguntou: E aí? Pensando muito no MEAN Stack? E eu respondi: "Cara, isso é tecnologia de mais de 2 anos!"

E é verdade! Parafraseando o Grande Yoda, o futuro está sempre em movimento. E por que deveríamos prestar atenção a isso? Porque o que criamos hoje, se tornará "legado" em pouco tempo. Dependendo da flexibilidade e da modernidade dos componentes usados, esse tempo será maior ou menor.

Devops, humpf!

Devops, por exemplo, é uma coisa que nunca emplacou completamente aqui, no Brasil, porém, lá fora, já não é novidade há muitos anos. Empresas como Amazon, Netflix Twitter LinkedIn e muitas outras, já adotam o modelo de "time de dua pizzas", criado por Jeff Bezos, no qual as equipes devem ser enxutas e devem cuidar de todo o ciclo de vida a aplicação. Esse negócio de "ambiente de produção", já não faz o menor sentido, já que eles instanciam novos ambientes como parte do seu processo de entrega contínua.

O preço que o Brasil paga é muito alto! Nossa defasagem de Tecnologia da Informação é enorme, mas não é causada pela Dilma! Somos nós mesmos, e nossa política de não investir em Pesquisa e Desenvolvimento, que aumentamos a cada dia nosso "gap" com o resto do mundo.

As Universidades não inovam, as empresas são extremamente conservadoras, e todos ficam tentando defender seu "território" da mesma forma que cães: Com urina!

No Brasil, a meritocracia é depreciada! Aqui, valoriza-se mais o QI (Quem indicou) do que a capacidade e o conhecimento das pessoas. Até hoje, qualquer um pode dar palpite em TI, mesmo que nem seja formado por uma Faculdade, o que já não significaria muita coisa.

Os fornecedores ditam o que as empresas precisam seguir. Nós somos um país consumidor de tecnologia e não um criador de tecnologia. E a culpa é nossa!

Tá e onde eles estão agora?

Enquanto nós ficamos discutindo Jenkins, e imaginando como passaremos nossos sistemas para a "produção", sem ofender os brios dos operadores, eles já estão na era dos Immutable Service Containers, criados com parte do processo de Entrega Contínua, instanciando ambientes sob demanda e de maneira elástica.

Eles já desenvolvem aplicações na forma de micro serviços independentes e distribuídos, com coordenação também distribuída. Ferramentas como: Zookeeper, Cassandra e Spark, já são utilizados para implementar essa nova arquitetura de serviços, com alta disponibilidade e tolerância a falhas. 

E tudo sendo entregue na forma de containers imutáveis Docker.

Eles estão vivendo a era da  pós-virtualização, na qual Cloud Computing é "Commodity"! 

Ninguém sério pensa em criar hierarquias complexas de classes, e desenvolvimento em camadas!

Micro serviços propõem uma nova maneira de particionar nossas aplicações, que leva o "reuso" para outro nível, permitindo a criação de aplicações de maneira ad-hoc, por Composição.

E nós aqui... Ainda perdendo tempo, comparando SOAP com REST... E ainda achamos que ESB é "tecnologia de ponta"! Ponta sim, de precipício!

E o que o Bom Programador pode fazer?

Como sempre, vamos criar uma série de artigos "Abra sua mente", para criarmos uma discussão saudável sobre o estado da arte tecnológico, e o que podemos fazer para convencer os "cabeças-de-bagre" daqui a evoluir.


Cleuton Sampaio, M.Sc.