O que é a segregação de ambientes?

Um problema comum no meio de tecnologia é aquele encontrado no momento de se testar um novo produto ou serviço desenvolvido. Como podemos testar de uma forma que garanta que ele não vai falhar na hora H? Existe alguma forma de testar o sistema e garantir que estamos vendo o seu comportamento como ele vai ser no mundo real?

Apesar de nenhum teste substituir o mundo real (e usuários reais), podemos sim utilizar algumas técnicas conhecidas para amenizar o efeito de possíveis falhas, e tratá-las antes que cheguem aos usuários. Uma técnica é o uso de um ou múltiplos ambientes de teste para o desenvolvimento de sistemas.

Esta prática já esta muito consolidada no meio de engenharia de software, e parte, praticamente de 3 princípios:

  1. Propósito: cada ambiente tem seu propósito, público alvo, severidade de falha, critérios de aceitação e, principalmente, níveis de acesso diferente.
  2. Isolamento: ambientes diferentes não devem poder se comunicar ou compartilhar informação (pense em cada ambiente como um “experimento” diferente).
  3. Replicabilidade: o time deve ser capaz de entregar serviços da mesma forma em qualquer ambiente, ou seja, as “capabilidades” dos ambientes devem ser as mesmas.

Seguindo estes conceitos, podemos definir os 3 ambientes fundamentais para o sucesso de qualquer desenvolvimento em larga escala:

  1. Development: onde os desenvolvedores tem total liberdade de testar alterações, funcionalidades e validar funcionalmente seu trabalho.
  2. Staging: aqui entra o trabalho de quality assurance em que toda alteração, adição ou subtração deve passar por um processo rigoroso para garantir que atende ao esperado.
  3. Production: quando as mudanças no serviço chegam aqui, já começam a ser entregues para usuários finais, e qualquer erro ou falha vai ter um impacto real nos clientes.

No entanto, como em muitas áreas, o desafio começa quando tentamos colocar essa teoria em prática. Uma das normas que tenta padronizar a aplicação desta entre outras boas práticas da tecnologia da informação é a ISO/IEC 28002.

Com anos de aplicação destas práticas em projetos de larga escala, os engenheiros da LMIT Consulting podem auxiliar na implementação e transformação de seus processos ou sistemas para adequar-se às mais recentes práticas do mercado. Entre em contato agora