Em 2018, decidi usar meu tempo livre para ajudar a modernizar o negócio de um familiar. Ao longo do caminho, eu queria ganhar alguma experiência e compreensão da AWS.
No final das contas, descobri que quase todo o meu tempo livre era gasto aprendendo conceitos de infraestrutura em nuvem AWS. Eu tinha apenas uma pequena fração do meu tempo para me concentrar na construção da solução moderna baseada na nuvem que originalmente tinha em mente. À medida que planejava mais solicitações de recursos para o aplicativo, percebi que precisava de uma abordagem melhor.
No início de 2020, descobri o Heroku. Como não precisei me preocupar com configurações de nuvem subjacentes, pude concentrar meu tempo na adição de novos recursos.
O ecossistema Heroku funcionou muito bem para meu caso de uso simples, mas comecei a me perguntar sobre casos de uso mais complexos. E quanto ao cenário em que um conjunto de serviços seguros e privados precisa interagir entre si para uma solução de processamento de pagamentos?
Este caso de uso me forçaria a viver no ecossistema de um dos três grandes provedores de serviços em nuvem? Eu vou descobrir.
Durante vários anos, tive a sorte de trabalhar em um ambiente que valorizava o ciclo de vida do DevOps . A equipe de DevOps cuidou de tudo relacionado à nuvem para mim, para que eu pudesse me concentrar na arquitetura e na construção de microsserviços para atender às necessidades dos meus clientes.
Durante aquela época da minha vida, esse ambiente era a exceção, não a norma. Acabei de fazer uma pesquisa por “empresas sem conhecimento de infraestrutura em nuvem” em meu navegador e os resultados produziram algumas conclusões bastante surpreendentes:
Os principais resultados da pesquisa falaram sobre a falta de compreensão dos principais conceitos da nuvem e a necessidade de treinamento crucial para que as equipes sejam eficazes. O treinamento que a maioria das equipes precisa geralmente fica no esquecimento, pois as demandas e os resultados dos clientes têm maior prioridade.
Com esta abordagem atual, a maioria das implementações de nuvem são forçadas a avançar em um ritmo mais lento e muitas vezes ficam expostas a vulnerabilidades desconhecidas.
O estado atual de proteção de seus microsserviços na nuvem não é feliz.
O estado ideal para soluções nativas em nuvem seguiria uma declaração de missão pessoal que estabeleci há vários anos:
“Concentre seu tempo em fornecer recursos/funcionalidades que ampliem o valor de sua propriedade intelectual. Aproveite estruturas, produtos e serviços para todo o resto.”
– J. Vester
Neste contexto, aqueles que têm uma diretriz para avançar em direção a soluções nativas em nuvem devem ser capazes de avançar em um ritmo alinhado aos objetivos corporativos. Eles não devem ser retardados pela curva de aprendizado associada à infraestrutura de nuvem subjacente.
Então, como é isso quando estamos diante de uma solução em nuvem que abrange vários microsserviços , todos os quais precisam ser isolados do público e aderir às regulamentações de conformidade (como SOC, ISO, PCI ou HIPAA)?
Minha experiência com o Heroku em 2020 foi positiva. Então, eu queria ver como funcionaria com esse caso de uso complexo. Foi quando descobri os Espaços Privados .
Espaços privados estão disponíveis como parte do Heroku Enterprise. São ambientes dedicados para execução de microsserviços em uma rede isolada. Esta abordagem permite que as equipas implantem os seus serviços numa rede que não está exposta à Internet pública. Nos bastidores, esses serviços funcionam exatamente da mesma forma que no meu caso de uso básico. Posso configurá-los por meio da CLI do Heroku, e comandos simples baseados em Git podem acionar implantações.
Para as necessidades de conformidade regulatória, posso contar com o Heroku Shield para me ajudar a estar em conformidade com PCI DSS, HIPAA, ISO (27001, 27017 e 27018) e SOC (1, 2 e 3).
Em alto nível, o Heroku me permite implementar um design seguro nativo da nuvem que pode ser ilustrado assim:
Aqui, temos uma implementação que aproveita o Heroku Shield em um espaço privado. Isso permite que uma coleção de microsserviços – utilizando diversas linguagens de programação diferentes – interaja com todas as principais redes de placas primárias e secundárias, ao mesmo tempo em que adere a vários requisitos de conformidade regulatória. Além disso, obtenho comunicações seguras com a plataforma Salesforce e GitLab.
Usando o Heroku CLI, posso colocar meu Private Space e Heroku Shield em funcionamento. No Heroku, isso é chamado de Shield Private Space . Aqui estão alguns exemplos de alto nível para trabalhar no processo.
Para criar um novo espaço privado Shield, usamos spaces:create
e adicionamos a opção --shield
.
$ heroku spaces:create payment-network --shield --team payments-team --region oregon Creating space payment-network in team payments-team... done === payment-network Team: payments-team Region: oregon State: allocating
Se o caso de uso exigir intervalos de roteamento entre domínios sem classe (CIDR), posso usar os sinalizadores --cidr
e --data-cidr
.
Você notará que criei meu Espaço Privado na região de Oregon. Você pode criar um Espaço Privado em uma das 10 regiões disponíveis (nos EUA, Europa, Ásia e Austrália). Para obter uma lista de regiões disponíveis, faça o seguinte:
$ heroku regions ID Location Runtime ───────── ─────────────────────── ────────────── eu Europe Common Runtime us United States Common Runtime dublin Dublin, Ireland Private Spaces frankfurt Frankfurt, Germany Private Spaces london London, United Kingdom Private Spaces montreal Montreal, Canada Private Spaces mumbai Mumbai, India Private Spaces oregon Oregon, United States Private Spaces singapore Singapore Private Spaces sydney Sydney, Australia Private Spaces tokyo Tokyo, Japan Private Spaces virginia Virginia, United States Private Spaces
Para cada microsserviço que precisa ser executado no Espaço Privado payment-network
, simplesmente adiciono a opção --space
ao executar o comando apps:create
:
$ heroku apps:create clearing-service --space payment-network Creating app... done, clearing-service
Para conceder aos consumidores acesso ao espaço payment-network
, posso manter a lista de permissões de IPs confiáveis:
$ heroku trusted-ips:add 192.0.2.128/26 --space payment-network Added 192.0.2.128/26 to trusted IP ranges on payment-network ▸ WARNING: It may take a few moments for the changes to take effect.
Muitas vezes, as equipes recebem uma orientação superior para adotar uma abordagem nativa da nuvem. Mas muitas equipes têm uma séria lacuna no entendimento quando se trata de implantar arquiteturas de nuvem seguras. Se você estiver usando um dos três grandes provedores de nuvem, preencher essa lacuna terá um preço – provavelmente prazos perdidos esperados pelo proprietário do produto.
Existe uma opção melhor para implantação segura na nuvem? Acho que os Espaços Privados combinados com o Heroku Shield representam a melhor opção. Para mim, pessoalmente, também importa que o Heroku faça parte da plataforma de soluções da Salesforce, que tem um histórico de dedicação em fornecer uma alternativa de adoção da nuvem com foco no sucesso de seus clientes. Então, senti que essa era uma estratégia de longo prazo a ser considerada.
Tenha um ótimo dia!