Você está interessado em saber como hospedamos o ORCID Registro e APIs? Gostaria de saber como lidamos com alta disponibilidade, escalabilidade e recuperação em caso de desastre? Se sim, então este post é para você!
Lidamos com oito milhões de page views todos os meses no ORCID Registro, mas a maior parte do nosso tráfego está nas APIs, que atualmente recebem mais de 100 milhões de acessos por mês. Uma de nossas principais estratégias é investir no desenvolvimento de uma infraestrutura de informações robusta, portanto, precisamos ter certeza de que a tecnologia que usamos para dar suporte a esse uso é confiável e segura.
O Registro e o resto do site em orcid.org são roteados por meio de uma Content Delivery Network (CDN) - um provedor de serviços em nuvem que possui mais de 150 datacenters em todo o mundo. Quando seu navegador se conecta a orcid.org, as partes estáticas do site são atendidas a partir de um datacenter local perto de você, para permitir tempos de carregamento mais rápidos.
O CDN tem alguns outros recursos úteis, como proteção contra ataques distribuídos de negação de serviço (DDoS)e verificação de segurança em tempo real contra ameaças de hackers.
As páginas do Registro são hospedadas em nosso datacenter principal, onde o tráfego é balanceado por carga em um cluster de servidores de aplicativos, enquanto os dados do Registro são armazenados em um cluster de três poderosos servidores de banco de dados, em sistemas de arquivos criptografados. Um é um banco de dados mestre, onde são feitas atualizações e dois são servidores de réplica, que recebem uma cópia dos dados em tempo real. Os servidores de réplica são usados para a maioria das operações de “leitura” do Registro e APIs, mas também são servidores de espera ativa, o que significa que podem ser promovidos a mestre em caso de falha.
Temos uma variedade de outros servidores que dão suporte ao sistema de produção, que misturam dados para construir índices de pesquisa, manter um despejo atualizado de dados públicos em um data center diferente e executar tarefas agendadas, como lembretes por e-mail.
Fazemos backup automático do banco de dados duas vezes ao dia, criptografamos o dump e enviamos para outro provedor de serviços em nuvem em um continente diferente para que, em caso de um desastre em nosso datacenter principal, possamos usar o backup do banco de dados para restaurar o sistema. Testamos regularmente se esse processo está funcionando usando um servidor off-line temporário.
Esta é uma base sólida. Contudo, ORCiD continua crescendo e somos cada vez mais confiados como parte da infraestrutura de informações de pesquisa. Portanto, precisamos fazer mais para garantir que a comunidade continue a depender de nós.
O que gostaríamos de melhorar?
Gostaríamos de ter servidores de aplicativos e réplicas de banco de dados em vários locais, para não precisarmos depender do processo de restauração de banco de dados um tanto demorado ou perder dados desde o último backup. Gostaríamos de poder provisionar novos servidores em questão de minutos, em vez de horas, em caso de aumento repentino na demanda.
Estamos considerando separar as partes mais críticas do sistema, como registro, login e autorização para um sistema isolado, e também gostaríamos de garantir que os problemas de tráfego de API pública não afetem o Registro e as APIs de membros.
E gostaríamos de uma arquitetura mais flexível usando tecnologias padrão da indústria, como Recipientes Docker e Kubernetes, o que nos ajudará a fazer as melhorias mencionadas acima.
Deixe-nos saber o que você pensa sobre nossos planos! Como nos comparamos com sua própria organização e outros serviços dos quais você confia? Há mais coisas que poderíamos ou deveríamos fazer? Você tem algum conselho para nós baseado em sua própria experiência? Entre em contato conosco com sua opinião e feedback!