Enterprise Architecture: conhecendo as capacidades de sua plataforma de aplicações

Olá pessoal, tudo certo?

Semana que vem teremos o Tech-Ed Brasil 2010, um evento que é também um show!

Muita gente de empresas e parceiros esperam o ano todo para participarem do evento, para conferir as sessões, reencontrar amigos ou para ver de perto algumas das tecnologias e recursos da plataforma Microsoft.

Aproveito para dar uma dica: se você vai participar do Tech-Ed esse ano, não deixe de aproveitar a noite ASK THE EXPERT, para conversar com outras pessoas sobre cenários e soluções possíveis para sua empresa e trocar algumas idéias com muitos especialistas do mercado em plataforma Microsoft.

Esse ano estou com algumas sessões sobre Plataforma de Aplicações, dividindo o palco com o Markus Christen (arquiteto de infraestrutura) em algumas salas. Enquanto a gente preparava as demos e cenários para demonstrações, percorremos o árduo (mas também divertido) caminho da instalação, configuração, aplicação de hotfixes, service packs, configuração de ambiente e ajustes, para que nossas aplicações rodassem em máquinas virtuais e algumas máquinas host.

Então me ocorreu o seguinte: conhecer as várias capacidades presentes no ambiente que suporta uma solução nunca foi tão necessário!

Por que? Pense no seguinte cenário:image

Você acha que esse ambiente é responsabilidade apenas de um arquiteto de soluções? Ou apenas de um arquiteto de infraestrutura? Ou será que ambos necessitam conhecer todas as capacidades presentes no ambiente, para a construção de uma solução que melhor aproveite o investimento já realizado pela empresa?

Por exemplo: uma empresa investiu alguns milhares de reais no cenário acima. Mas por desconhecimento, acabou investindo mais alguns punhados de dólares em um ambiente completo de monitoração de um segundo fornecedor. Qual o problema nisso? De fato, essa empresa pode ter perdido duas oportunidades: a primeira, de aproveitar as capacidades e recursos oferecidos pela própria plataforma já existente. A segunda oportunidade perdida foi a de consolidação ou simplificação de contratos com fornecedores, já que agora trabalha com duas plataformas, fornecedores e sistemas diferentes, exigindo contratos diferentes, treinamentos diferentes, roadmaps diferentes, etc.

A idéia não é unificar sempre sua TI com um único fornecedor. Em muitos casos isso é impossível ou não desejado pela orientação de negócio. A idéia é CONHECER as CAPACIDADES DE TI que estão presentes em sua plataforma e manter esse conhecimento atualizado ao longo do tempo. Conheço muitas empresas que não seguem essa recomendação e sofrem com custos adicionais para os departamentos de TI. Antes de cada projeto de TI, fazer uma seleção/identificação de quais capacidades serão necessárias e se estão presentes na atual infraestrutura é uma obrigação do time de proejto.

Ainda, cada vez mais uma solução fim-a-fim precisa considerar diversas capacidades da plataforma, que incluem monitoração, administração, tracking de mensagens, workflows, serviços, publish/subscribe, segurança, autenticação, autorização, acesso a dados, entre tantas outras capacidades. Podemos fazer uma classificação de responsabilidades sobre essas capacidades, claro! Podemos manter aspectos de virtualização, gerenciamento e segurança para algumas roles específicas, assim como aspectos de acesso a dados, modelo de bases e administração de bancos de dados para outros. Mas com o aumento da complexidade de ambientes, integrando diferentes infraestrutura, modelos de negócio, fronteiras entre empresas e diferentes consumidores, exigimos do arquiteto uma visão sempre mais ampla sobre todos os aspectos da arquitetura de TI. É desejável que o arquiteto tenha uma especialização, uma disciplina ou track onde seja um champion, mas ter uma visão ampla das outras disciplinas também é importante.

Em seu próximo projeto ou solução, separe um tempo para posicionar todas as capacidades presentes em sua TI se ainda não tiver esse mapa. Procure identificar quais são utilizadas e quais são as responsabilidades das equipes envolvidas, na administração, deployment e operação de cada uma delas. Finalmente, para sua solução, veja o que já existe e o que pode ser reutilizado.

Recomendo esses exercício para todos, seja um arquiteto de soluções, de infraestrutura, de banco de dados ou de segurança. Conhecer as capacidades presentes em sua plataforma e como uma solução as aproveita é quase uma obrigação hoje em dia e parte do caminho para uma TI de custos otimizados.

Por enquanto é só! Até o próximo post :)

Waldemir.