Escolher uma opção de hospedagem adequada para o aplicativo MySQL
Se você estiver desenvolvendo um novo aplicativo ou modernizando um existente, escolher a opção de hospedagem certa é crucial para otimizar o desempenho, a segurança e o custo-benefício. Tradicionalmente, os aplicativos eram hospedados em servidores Web, como Serviços de Informações da Internet (IIS), Apache ou no NGINX em hardware físico ou virtualizado local. Embora essa opção tenha a vantagem de oferecer à equipe de infraestrutura o controle total do ambiente, ela tem várias desvantagens em termos de sobrecarga de gerenciamento, custos iniciais, disponibilidade, escalabilidade, resiliência, segurança e conformidade.
Ao implantar seu aplicativo na nuvem, você elimina a necessidade de gerenciar essas áreas. A hospedagem de um aplicativo na nuvem reduz os custos gerais de configuração, aprimora a disponibilidade e a confiabilidade com as opções de Continuidade dos Negócios e Recuperação de Desastres (BCDR), permite dimensionar os recursos do aplicativo sob demanda e oferece segurança avançada.
O Microsoft Azure oferece uma variedade diversificada de opções de hospedagem de aplicativos personalizadas para atender aos requisitos de arquitetura e casos de uso do aplicativo.
Muitas dessas opções de hospedagem de aplicativos se integram perfeitamente ao Banco de Dados do Azure para MySQL – Servidor Flexível, um serviço particularmente eficaz para bancos de dados de back-end devido à escalabilidade, ao desempenho e à capacidade de gerenciamento. Esta unidade explora algumas arquiteturas comuns de aplicativos MySQL e serviços do Azure para ajudar você a determinar a opção de hospedagem mais adequada para a carga de trabalho do aplicativo.
Aplicativos Web no Serviço de Aplicativo do Azure
Como resultado de sua portabilidade, velocidade, escalabilidade e confiabilidade a baixos custos, o MySQL é um dos bancos de dados mais populares para o desenvolvimento de aplicativos Web e móveis. Ao usar o Banco de Dados do Azure para MySQL – Servidor Flexível no back-end, você pode criar mais facilmente aplicações LAMP (Linux-Apache-MySQL-PHP) leves ou críticos para a missão na escala da Internet. Você também pode desenvolver projetos usando sistemas populares de gerenciamento de conteúdo, como o WordPress, o Drupal ou o Joomla, sistemas de gerenciamento de aprendizagem, como o Moodle, e plataformas de comércio eletrônico, como o Magento, todos compatíveis com o Banco de Dados do Azure para MySQL – Servidor Flexível.
Os desenvolvedores podem implantar esses aplicativos Web e móveis com suporte do MySQL em um ambiente Windows ou Linux usando o Serviço de Aplicativo do Azure, que é uma solução de Plataforma como Servio (PaaS) baseada em HTTP para hospedar aplicativos Web, APIs REST e back-ends móveis. Com o Serviço de Aplicativo do Azure, você pode reduzir a sobrecarga de gerenciamento, desenvolver em suas linguagens favoritas, automatizar a implantação de aplicativos, aumentar e diminuir rapidamente e até mesmo "encaixar" seu aplicativo para hospedar contêineres personalizados do Docker do Windows ou do Linux.
Aplicativos de Contêiner no Serviço de Kubernetes do Azure ou aplicativos de contêiner do Azure (arquitetura de microsserviços)
Recentemente, os aplicativos com arquiteturas de microsserviços têm sido cada vez mais populares devido a eficiência, resiliência, escalabilidade e facilidade de implantação. Ao contrário dos aplicativos monolíticos tradicionais, cada microsserviço ou contêiner opera de modo independente e pode ser atualizado sem exigir a reimplantação do aplicativo todo.
No Azure, você pode implantar esses microsserviços no Serviço de Kubernetes do Azure (AKS), um serviço Kubernetes totalmente gerenciado que ajuda você a definir, implantar, depurar e atualizar até mesmo os aplicativos conteinerizados mais complexos com rapidez e facilidade.
Além do AKS, os Aplicativos de Contêiner do Azure (ACA) oferecem um serviço de hospedagem de contêiner sem servidor ideal para aplicativos modernos criados a partir de microsserviços. O ACA simplifica a implantação e o dimensionamento de contêineres sem gerenciar a infraestrutura subjacente, como máquinas virtuais ou clusters do Kubernetes. Ele se integra bem aos Aplicativos Lógicos do Azure e ao Azure Functions para arquitetura controlada por eventos, dando suporte ao dimensionamento rápido e ao gerenciamento de componentes do aplicativo. O ACA é particularmente benéfica para o aplicativo que exige operações ágeis e iterações rápidas, fornecendo opções de dimensionamento dinâmico com base no tráfego HTTP ou gatilhos controlados por eventos. Esse serviço dá suporte a contêineres do Windows e do Linux, permitindo que você implante microsserviços desenvolvidos em vários ambientes de programação perfeitamente.
Aproveitando a ACA junto com as implantações tradicionais do Kubernetes por meio do AKS, você pode aproveitar mais flexibilidade na forma como eles orquestram, dimensionam e gerenciam seus aplicativos em contêineres. Essa abordagem não apenas maximiza a eficiência operacional, mas também aumenta a capacidade de responder rapidamente às mudanças de mercado e às demandas dos clientes.
Aplicativos sem servidor controlados por eventos com o Azure Functions e os Aplicativos Lógicos do Azure
Os aplicativos sem servidor aceleram o desenvolvimento usando um modelo controlado por eventos, com gatilhos que executam automaticamente o código para responder a eventos e associações para integrar serviços adicionais diretamente. Você só é cobrado pelo tempo e os recursos necessários para executar o código.
O Azure Functions e os Aplicativos Lógicos do Azure são soluções sem servidor no Azure que ajudam a criar sistemas para reagir a uma série de eventos críticos.
- O Azure Functions é um serviço de computação sem servidor altamente versátil que executa código em resposta a uma variedade de gatilhos, como solicitações HTTP, eventos de temporizador (trabalhos cron) ou eventos de serviço do Azure (como mensagens de Filas de Armazenamento do Azure ou Barramento de Serviço). Essa flexibilidade permite que você crie aplicativos que respondam em tempo real às alterações sem gerenciar a infraestrutura do servidor. O Azure Functions dá suporte a uma ampla variedade de linguagens de programação, incluindo C#, Java, JavaScript, Python e PowerShell, tornando-o acessível a uma base de desenvolvedores diversificada. Essas funções também podem interagir com outros recursos do Azure.
- Os Aplicativos Lógicos do Azure fornecem uma experiência de design sem servidor que ajuda a automatizar e orquestrar tarefas, processos e fluxos de trabalho entre aplicativos e empresas. Usando um designer visual no portal do Azure ou no Visual Studio, você pode configurar fluxos de trabalho para automatizar cenários de negócios complexos com codificação mínima. Esses fluxos de trabalho sem servidor que orquestram uma coleção de funções ou etapas chamadas de ações, que são executadas para realizar uma tarefa complexa, como processar pedidos em lote e agregar resultados.
O Azure também fornece serviços como a Grade de Eventos do Azure, o Barramento de Serviço do Azure e os Hubs de Eventos do Azure para retransmitir e gerenciar eventos e mensagens que podem disparar aplicativos sem servidor em fluxos de trabalho controlados por eventos.
Aplicativos herdados monolíticos em VMs do Azure
Algumas organizações podem ter aplicativos herdados com arquiteturas monolíticas que estão fortemente acopladas a processos empresariais e difíceis de modernizar. Você pode migrar esses aplicativos para o Azure usando um modelo de lift-and-shift e hospedá-los nas Máquinas Virtuais do Azure, que é um serviço de infraestrutura como serviço (IaaS).
Embora as vantagens do Azure incluam a capacidade de habilitar serviços de backup e restauração, criptografia de disco e opções de dimensionamento que não exigem custos iniciais, você ainda precisará aplicar esforços manuais para implantar, manter e gerenciar os aplicativos nas VMs do Azure.