DevSecOps

7 out, 2015

Centralizando e facilitando a utilização de serviços de infraestrutura interna

Publicidade

Desde o surgimento do cloud computing, boa parte das empresas de TI (ou que possuem um departamento de TI) decidiu terceirizar seu setor de infraestrutura (servidores, telefonia, redes) com o objetivo de reduzirem custos, ficarem mais independentes de tecnologias físicas e, como estamos falando de um setor que depende de disponibilidade (elétrica, Internet etc.), estarem sempre online.

Contudo, há empresas que, devido ao seu nicho de mercado, ou até mesmo por cultura de segurança, optam por trabalhar com uma infraestrutura interna própria, a fim de terem maior controle sobre seus sistemas, dados e rede. Obviamente que, com uma infraestrutura própria, deve-se estar preparado para disponibilizar rede e serviços de alta qualidade, uma vez que não se utiliza a Internet para trafegar nenhum tipo de dado interno, ou seja, são necessários profissionais extremamente especializados, espaço próprio adaptado e equipamentos de ponta.

Um dos desafios para um administrador de infraestrutura está nessa disponibilização de serviços de alta qualidade. Imaginemos um cenário de uma empresa de serviço web que possui vários setores de desenvolvimento, e cada setor é responsável por um subsistema que faz parte do sistema web da empresa, trabalhando com um tipo de linguagem/tecnologia diferente. Nesse cenário, o setor de infraestrutura é responsável por disponibilizar serviços para esses subsistemas, tais como gerência e controle das tecnologias utilizadas por cada setor, gerência e manutenção de bancos de dados diferentes, gerência e controle de serviços de hospedagem, gerência de controles de versionamento, envio e recebimento de mensagens internas e externas (e-mails, SMS etc.), entre outros.

Além disso, o setor de infraestrutura é responsável pela integração entre a empresa e os serviços externos, controles de backup de bancos de dados, regularização de servidores de resolução de nome (DNS), controle de chegada e saída de Internet (Firewall), controle de roteadores internos e roteador de borda, alta disponibilidade, segurança computacional e de rede, entre muitos outros.

É nesse ponto que aparece a necessidade de se criar uma camada interna de oferta de serviços de infraestrutura para o setor de desenvolvimento. Essa camada deve abstrair toda a complexidade de implementação e configuração dos serviços propriamente ditos, já que o desenvolvedor, no âmbito de sua produtividade e prazo de entrega, não deve estudar, implementar e configurar serviços como enviar um e-mail. Nada mais apropriado para isso do que uma API RESTful de serviços de infraestrutura, nos quais a Amazon é líder no mercado, entre outras empresas especializadas que surgiram ao longo dos anos.

Para que uma empresa tenha sua infraestrutura e seus serviços acessíveis por uma API, algumas mudanças são visíveis logo no planejamento. Muitas vezes, algumas demandas de infraestrutura são feitas com alguns shell scripts rápidos ou até manualmente. Por isso, a primeira mudança é tornar possível, via código, toda implementação e configuração de servidores, ou seja, automatizar o serviço no próprio setor de infraestrutura.

Além disso, é preciso que o fluxo operacional de toda a empresa sofra algumas alterações, de forma que o setor de infraestrutura participe dos momentos em que seja importante o controle de algum serviço. Por exemplo, numa situação em que um funcionário é admitido na empresa, ele deverá ter acesso à rede intranet. Isso é controlado de alguma forma pelo setor de infraestrutura, porém, para a automatização dessa demanda, o setor deve ser notificado da admissão desse funcionário e, então, realizar as operações de entrada dele.

Outro ponto que atormenta muito sysadmin é quando os sistemas rodando em vários servidores diferentes precisam enviar e-mails. Por exemplo, um cliente fez cadastro no sistema da empresa e precisa receber uma mensagem no seu endereço eletrônico para confirmar o cadastro. Por meio da API de infraestrutura, o desenvolvedor só precisa escrever um método que consome um webservice, sem preocupações. A escolha do método de saída da mensagem é da infraestrutura, que pode também configurar outras diretivas no envio de mensagens.

Com uma API realizando a integração, tornam-se mais práticas a gerência de credenciais e as permissões, além de centralizar as opções de serviços somente em um local. É absolutamente necessário em uma empresa de pequeno, médio ou grande porte, que possui uma infraestrutura própria, centralizar os serviços oferecidos por sua infraestrutura, de forma a organizar seu crescimento. Essa topologia ainda prevê redundância geográfica, o que é a menina dos olhos para sistemas que requerem alta disponibilidade.

***

Artigo publicado originalmente na Revista iMasters: http://issuu.com/imasters/docs/revista_imasters_15_agosto2015