O blog da AWS
Como o Escritório Administrativo dos Tribunais do Arkansas economizou 40% com a modernização de .NET
Motivação para modernizar
“Um componente central do Plano Estratégico do Judiciário do Arkansas é adotar a tecnologia. ‘Os tribunais devem responder às mudanças no ambiente tecnológico fornecendo aos usuários do tribunal acesso remoto a informações, registros e serviços.’
A AWS está nos ajudando a fornecer esses serviços por meio desse projeto.” — Marty Sullivan, Administrador do Tribunal Estadual do Arkansas
Para melhor atender aos tribunais estaduais do Arkansas e ao povo do Arkansas, a AR-AOC, após avaliar vários fatores, decidiu modernizar suas aplicações antigas. Esses sistemas legados não tinham integração e fluxo de dados adequados e exigiam a entrada manual de dados em cada sistema para mantê-los coordenados. Isso fez com que os funcionários do tribunal passassem mais tempo atualizando e mantendo registros em vários lugares. Quando a manutenção manual não era feita corretamente, os sistemas geralmente acabavam com informações conflitantes e dados obsoletos. Isso exigiu ainda que os usuários do sistema passassem mais tempo identificando e corrigindo discrepâncias nos dados.
A agência decidiu iniciar um esforço de modernização com o Sistema de Gestão de Tribunais (Court Management System – CMS), um componente de seus sistemas legados que era usado nas atividades diárias de funcionários e advogados do tribunal.
O AR-AOC avaliou os custos de compra de um sistema semelhante a SaaS de acordo com suas necessidades, mas percebeu que tinha um preço alto – mais de $80 milhões de dólares. Existem apenas alguns sistemas de gerenciamento de tribunais comerciais prontos para uso (Commercial-off-the-shelf – COTS) no mercado, e a maioria deles não tem os recursos necessários para sistemas judiciais menores. Esses fatores apoiaram a decisão da agência de se modernizar construindo um novo sistema internamente.
Parceria da AWS com AR-AOC
Como primeira etapa, a agência e a equipe de contas da AWS realizaram uma sessão de Working Backwards que estabeleceu a base para a jornada de adoção da nuvem da agência. Durante a sessão, a equipe da AWS trabalhou em estreita colaboração com as principais partes interessadas do AR-AOC para entender a funcionalidade da aplicação CMS. A equipe da AWS aprendeu sobre seus desafios atuais e identificou as metas de negócios para a jornada de modernização. Isso ajudou a estabelecer uma visão compartilhada entre todas as principais partes interessadas da agência.
Como essa foi a primeira vez que a AR-AOC trabalhou com nuvem, a equipe de Arquitetos de Soluções da AWS (Solutions Architects – SAs) ministrou uma série de workshops que proporcionaram às equipes de TI capacitação técnica introdutória na AWS. À medida que a agência se familiarizou com os serviços da AWS e operou em um modelo de nuvem, as discussões passaram para tópicos avançados focados na aplicação CMS e em seu roteiro de modernização.
O AR-AOC criaria a nova aplicação CMS usando .NET, plataforma de desenvolvimento de código aberto multiplataforma, e SQL Server para criar a camada de persistência de dados. O plano de modernização incluiu a conteinerização de aplicações .NET e o uso dos serviços de container da AWS para hospedá-los. A arquitetura foi baseada em um design de aplicação orientado a serviços.
Arquitetos de Soluções da AWS, especializados em cargas de trabalho .NET e SQL Server na AWS, (Specialist Solutions Architects – SSAs) trabalharam em estreita colaboração com a agência para validar a arquitetura proposta. Os SSAs da AWS também realizaram uma série de workshops que proporcionaram à equipe de desenvolvimento da agência uma experiência prática com os serviços da AWS.
Para impulsionar e acelerar sua jornada de modernização, a agência e a equipe de Microsoft SSAs da AWS decidiram criar uma prova de conceito (POC) para um ambiente fora de produção de ponta a ponta, construído em nuvem e serverless, juntamente com automação de infraestrutura e pipelines de CI/CD. A POC foi liderada e executada pelas equipes de desenvolvimento de software e infraestrutura da AR-AOC em estreita colaboração com os Microsoft SSAs durante uma semana de trabalho de 40 horas. No final da semana, eles tinham um protótipo funcional da aplicação CMS implantado na AWS para servir como seus ambientes de desenvolvimento e teste.
“Trabalhar em estreita colaboração com a equipe de arquitetos especialistas da AWS desde o início nos economizou 3 meses de tempo de desenvolvimento!” — Tim Holthoff, CIO do Judiciário do Arkansas
Arquitetura da solução
A arquitetura modernizada que a Administração dos Tribunais de AR acabou adotando foi composta principalmente pelo Amazon Elastic Container Service (Amazon ECS) e pelo Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server. Como a AR-AOC estava criando o CMS em .NET 6, o cliente podia usar containers Linux em Amazon ECS com AWS Fargate. O uso do AWS Fargate permitiu que eles eliminassem a necessidade de provisionar e gerenciar servidores, pagar por recursos por aplicação e melhorar a segurança por meio do isolamento de aplicativos. O uso de containers Linux eliminou a necessidade de licenças de Windows Server. Para o banco de dados de aplicativos, o AR-AOC aproveitou sua experiência existente com o SQL Server usando o Amazon RDS for SQL Server. O Amazon RDS facilita a configuração, a operação e a escalabilidade de implantações de SQL Server na nuvem. É um banco de dados durável totalmente gerenciado, criado para cargas de trabalho corporativas em grande escala. O uso de um Amazon RDS totalmente gerenciado liberou a equipe para se concentrar no desenvolvimento de aplicações.
O diagrama na Figura 1 representa a visão geral da arquitetura proposta.
Figura 1: Arquitetura do sistema CMS do AR-AOC na AWS
- O tráfego do navegador da web do cliente é direcionado primeiro para o Elastic Load Balancing (ELB) configurado como um Application Load Balancer (ALB). Dependendo do cabeçalho do host e do caminho da solicitação, o ALB encaminhará a solicitação ao serviço de API correspondente para responder à solicitação.
- A arquitetura utiliza um ALB interno para front services (Case API) que não exigem acesso externo. Esse ALB interno só permite que outros tribunais que operam na Amazon Virtual Private Cloud (Amazon VPC) o acessem e, ao mesmo tempo, restrinjam o acesso externo.
- Um cluster do Amazon ECS hospeda os diferentes serviços da aplicação:
- O Amazon ECS está configurado para distribuir tarefas pelas zonas de disponibilidade (AZ) para fornecer alta disponibilidade e escalar automaticamente para lidar com picos de tráfego.
- O Amazon ECS registra as tarefas individuais com suas metas de ALB correspondentes.
- O ALB direcionará a solicitação para o destino específico com base na URL do pacote.
- Quando a solicitação do ALB chegar às tarefas do AWS Fargate, o container processará a solicitação, extrairá os dados do banco de dados do RDS, se necessário, e enviará a resposta de volta ao ALB.
- O Amazon RDS está configurado para implantação Multi-AZ para fornecer maior disponibilidade, durabilidade de dados e tolerância a falhas para instâncias de banco de dados. No caso de manutenção planejada do banco de dados ou interrupção não planejada do serviço, o Amazon RDS automaticamente passa para a instância de banco de dados secundária atualizada. Essa funcionalidade permite que as operações do banco de dados sejam retomadas rapidamente sem intervenção manual.
Resultados do Working Backwards a partir das metas de negócios
Redução no custo total de propriedade (TCO) — Ao garantir que todos os novos desenvolvimentos usassem estruturas multiplataforma (.NET e .NET Core), o AR-AOC transferiu o ambiente de hospedagem de aplicações de um ambiente local baseado em Windows para um ambiente serverless da AWS, baseado em containers Linux. Com essa mudança, eles reduziram as taxas de licença de Windows Server e, ao mesmo tempo, se colocaram em posição de aproveitar todas as inovações que acontecem nas plataformas Linux.
Desligando ambientes quando não estavam em uso — O AR-AOC viu a oportunidade de otimizar ainda mais os custos de seus ambientes que não eram de produção, desligando os recursos computacionais quando não estavam em uso. A AR-AOC e a AWS desenvolveram técnicas de escalabilidade para seus serviços do Amazon ECS usando o Amazon CloudWatch e o AWS Lambda e para suas instâncias de RDS usando o AWS Systems Manager. Os SAs da AWS forneceram orientação sobre o uso do AWS Cloud Development Kit (AWS CDK) para criar módulos que permitiram ao AR-AOC desligar recursos fora do horário de expediente e trazê-los de volta durante o horário normal de trabalho. Essa solução simples permitiu que eles configurassem facilmente o agendamento para todos os serviços do Amazon ECS e bancos de dados RDS sem configurar manualmente cada recurso.
Agilidade por meio de DevOps — Quando a AR-AOC iniciou sua jornada na nuvem, eles identificaram a agilidade como uma de suas principais metas de negócios. À medida que o escopo da aplicação aumenta e o tamanho da equipe aumenta, eles queriam ser ágeis na forma como operavam e otimizar a produtividade de seus desenvolvedores e a confiabilidade de suas operações. A AR-AOC adotou a mentalidade de DevOps desde o início de sua jornada na AWS e se posicionou para colher os benefícios de velocidade, entrega rápida, confiabilidade, escala, melhor colaboração e segurança à medida que cria mais aplicações e funcionalidades para seus clientes na AWS.
Ferramentas familiares — As equipes de desenvolvimento do AR-AOC usam o Visual Studio para desenvolvimento .NET. Para esse projeto, eles utilizaram o plug-in do AWS Toolkit para Visual Studio, que os ajudou a interagir com seus ambientes da AWS sem sair de seu IDE favorito.
Otimizando desempenho da aplicação CMS e reduzido custos via serverless — Depois de explorar várias opções, o AR-AOC optou pelo mecanismo serverless do AWS Fargate para hospedar os serviços .NET em containers. Essa abordagem reduziu o tempo de manutenção da infraestrutura e os custos de infraestrutura. O AR-AOC otimizou ainda mais seus custos ao projetar o Amazon ECS para reduzir a contagem de tarefas do Amazon ECS para zero durante as horas de folga em seus ambientes que não são de produção.
Sobrecarga operacional eliminada pelo banco de dados gerenciado — Ao migrar para um serviço de banco de dados gerenciado, o Amazon RDS for SQL Server, eles transferiram os esforços necessários para sua manutenção operacional para a AWS, liberando assim as equipes de desenvolvimento para se concentrarem mais no desenvolvimento de aplicações. Em linha com a meta de otimização de custos, a equipe do AR-AOC e os SAs da AWS trabalharam em uma solução para iniciar e interromper automaticamente a execução de suas instâncias do Amazon RDS com base nas horas normais de uso em ambientes que não eram de produção. O AR-AOC economizou no mínimo 40% nos custos de computação de banco de dados e licença de SQL Server ao implementar essa estratégia.
O que vem a seguir para o AR-AOC
Agora que o AR-AOC está mais familiarizado com o ambiente da AWS, eles continuam otimizando o custo e o desempenho de sua aplicação CMS:
- Modernização de banco de dados: para otimizar ainda mais os custos, a agência está procurando maneiras de modernizar sua camada de banco de dados. Depois de aprender mais sobre esse fator de negócios, a equipe de SAs da AWS proporcionou à agência uma experiência prática com o Amazon Aurora. Para economizar nos custos de licenciamento de SQL Server, a AR-AOC planeja mover seu banco de dados para o Amazon Aurora usando o Babelfish for Amazon Aurora PostgreSQL.
- Consolidação de Elastic Load Balancing para ALBs: A agência também está trabalhando para consolidar vários ALBs em um. Eles estão reconfigurando suas aplicações para aproveitar o roteamento baseado em caminhos.
Conclusão
Em parceria com a AWS, a AR-AOC construiu com sucesso uma aplicação CMS moderna, baseada em nuvem e orientado a serviços usando serviços serveless do AWS Fargate. Eles usaram o AWS Toolkit for Visual Studio, que se integra às ferramentas nativas de .NET, para criar e configurar seus ambientes que não são de produção. A agência atingiu suas metas de negócios iterando, ajustando e construindo uma arquitetura que reduziu o custo total de propriedade e, ao mesmo tempo, otimizou o desempenho das aplicações. Eles também reduziram sua sobrecarga operacional migrando para serviços gerenciados sempre que aplicável.
Ao aproveitar os serviços serverless da AWS, como o AWS Fargate, para executar seus containers Linux, a AR-AOC obteve uma economia de aproximadamente 40% em recursos de computação em comparação com a hospedagem de suas aplicações em EC2. Ao modernizar sua aplicação para uma versão multiplataforma moderna de .NET, eles também economizaram em licenciamento de Windows Server.
Este artigo foi traduzido do Blog de AWS em Inglês
Sobre os autores
Michael Kaiser é arquiteto de soluções da AWS. Ele trabalha com clientes do setor público estadual e local nos EUA para ajudar a modernizar seus processos de negócios. Ele traz 13 anos de experiência trabalhando em governo estadual como funcionário do setor público, de estudante a vice-diretor de TI. Suas paixões são ajudar a integrar processos de desenvolvedores e administradores de sistema para trabalhar em estreita coordenação e automação.
Jagadeesh Chitikesi é arquiteto sênior de soluções, especializado em Microsoft, na AWS. Ele trabalhou como desenvolvedor e arquiteto em empresas de todos os tamanhos nas áreas de saúde, finanças, varejo, serviços públicos e governo nos últimos 20 anos. Ele é apaixonado por nuvem e toda a inovação que acontece na AWS.
Revisores
Luciano Bernardes trabalha atualmente como Sr Solutions Architect na AWS, especializado em workloads Microsoft. Com 16 anos de experiência no mercado, trabalhou a maior parte em consultoria técnica especializada em Microsoft, em clientes de várias verticais, com demandas voltadas para infraestrutura on-premises e em nuvem. Como SA, trabalha próximo a clientes e parceiros de consultoria em U.S. e LATAM, para apoiá-los em tomadas de decisão e revisão de arquitetura de workoads Microsoft na nuvem AWS.