Criando aplicações com qualidade com .Net e trazendo alegria para o seu deploy

Primeiramente queremos apresentar a nossa empresa. A Social Miner é uma plataforma de People Marketing que ajuda empresas a automatizarem sua comunicação de marketing, entregando experiências personalizadas para cada indivíduo em grande escala. A startup possui mais de 36 milhões de usuários conectados através de seus plugins sociais e mais de 50 milhões de impressões únicas. Tendo em vista a esse cenário nós engenheiros de software temos foco total em escalabilidade, performance e resiliência. Com isso optamos pela arquitetura de microservices que com isso nos permitiu escalar de forma mais fácil, resolver pequenas regras de negócio e fazer deploy dessa regra sem impactar outras. Esse ambiente oferece bastante benefícios mas com isso trás uma grande complexidade. Com isso tivemos que criar uma cultura de testes, e vale salientar que não temos QA. Então como vocês criarão uma cultura de teste sem QA, então sem QA os próprios engenheiros tiveram que criar teste, mas antes de criar teste unidade, tivemos que ter um "Mindset" que precisamos criar códigos testáveis, ou seja, fazer uso do princípios SOLID, separação de contextos, métodos sem muitas mudanças de fluxos e entre outras técnicas. Depois partimos a criação de teste de unidade, mas depois vimos que era necessário criação teste de integração e com isso surgiu um problema para criação de ambiente de desenvolvimento(dev). Nosso produto tem 3 ambientes, o dev onde testamos nossas aplicações, beta onde o PO(product owner) que requisitou a funcionalidade faz uma bateria de teste e produção onde a funcionalidade entra de