Top Azure PaaS Serviços Que os Desenvolvedores Amam e Porquê

A nuvem do Microsoft Azure oferece muitos serviços para quase todos os cenários que você possa precisar. Você pode categorizar esses serviços em tipos de computação em nuvem como IaaS, PaaS e SaaS para determinar a quantidade de controle e responsabilidade que você tem versus o tempo que você pode gastar na construção de coisas que importam.

Deixe-me explicar esses tipos um pouco mais:

IaaS (Infrastructure-as-a-Service)

Serviços típicos de IaaS são Container Service e Máquinas Virtuais. Estes permitem que você tenha muito controle sobre como executá-los, mas também exigem que você seja responsável por coisas como o SO, Antivírus e Balanceamento de Carga. Por causa disso, você e sua equipe podem gastar menos tempo trabalhando para agregar valor ao negócio.

PaaS (Platform-as-a-Service)

Exemplos de serviços PaaS são App Services, Azure Search e Azure CDN. Você não precisa se preocupar com o SO ou mesmo com o servidor, você pode simplesmente rodar sua aplicação. Você é responsável por algumas configurações de servidor, como o escalonamento, embora para alguns serviços, como o Azure Functions, isso aconteça automaticamente.

SaaS (Software-as-a-Service)

Exemplos de serviços SaaS são coisas como o Azure IoT Suite e o Office 365. SaaS é o nível de abstração mais alto e permite que você apenas use a aplicação, você nem precisa construí-la. Basta configurá-lo. Não precisa de se preocupar com o SO ou mesmo escalar a aplicação. Isso permite que você trabalhe no valor do negócio, mas oferece pouco controle sobre o seu aplicativo.

Para desenvolvedores de software, PaaS é um ótimo tipo de computação em nuvem para usar. Você tem controle suficiente para apenas trabalhar no seu aplicativo e ajustá-lo para estar certo e você não precisa se preocupar com todas as coisas de operações. As coisas só rodam sem se preocupar com patches de SO ou balanceamento de carga.

Azure tem uma oferta de PaaS muito forte, que é muito atraente para os desenvolvedores. Este artigo irá discutir os principais serviços do Azure PaaS para desenvolvedores que podem tornar sua aplicação melhor.

Top Azure PaaS Services

Um dos principais serviços do Azure PaaS é o Azure App Services. Os Serviços Azure App Services fornecem múltiplos tipos de serviços, cada um voltado para hospedar a sua aplicação ou lógica de negócio para um caso de uso específico. Além disso, os tipos de serviços App Service compartilham capacidades comuns como escalonamento automático, autenticação e autorização e domínios personalizados e SSL.

Vamos através dos tipos de serviços App Service:

Aplicações Web

Azure App Service Web Apps são essenciais se você quiser hospedar uma aplicação web ASP.NET padrão. Web Apps são uma abstração de um servidor Web como IIS ou Tomcat e podem executar aplicações que são escritas em .NET, PHP, Python, Node.js, Java e muito mais. São muito fáceis de configurar e fornecem muitos benefícios out-of-the-box, como o fato de que, por padrão, eles estão disponíveis 99,95% do tempo. Não precisa de se preocupar com o tempo de inactividade. Serviços App agora estão disponíveis para Windows e Linux tanto.

Mobile Apps

Azure também pode ajudá-lo quando você está criando aplicações móveis. Você pode hospedar um backend para sua aplicação móvel em Azure Apps Mobile Apps Services. Você pode se conectar facilmente a este backend usando os SDKs para Azure Mobile Apps que estão disponíveis para IOS, Android, Windows, Xamarin.IOS, Xamarin.Android e Xamarin.Forms.

O backend móvel fornece alguns benefícios exclusivos. Um deles é a capacidade de fazer a sincronização offline. Isso permite que um usuário continue trabalhando com o aplicativo se ele estiver offline e sincronizar os dados de volta ao backend quando ele voltar a ficar online. Outra capacidade é a de notificações push. Isto permite que você envie notificações sobre o seu aplicativo para o dispositivo do usuário. Além disso, o Mobile Apps tem todos os mesmos recursos que o Web Apps tem, como escalonamento automático e alta disponibilidade.

Logic Apps

Azure Apps Service Logic Apps são diferentes do Web Apps e Mobile Apps no sentido de que você não hospeda um aplicativo nele, mas orquestra a lógica de negócios com ele. Pense em Logic Apps como uma forma de automatizar um processo de negócio apenas configurando-o.

A Logic Apps é iniciada por um Trigger. Isto pode ser um tempo (a cada 15 minutos) ou uma fonte externa, como uma nova mensagem em uma fila. O Trigger passa valores para o workflow (como o conteúdo da mensagem da fila), que podem ser usados ao longo da aplicação de lógica. O resto do fluxo da Logic App consiste em chamar Connectors, que são APIs para serviços de terceiros, como Office365 ou Twitter ou suas próprias APIs.

Logic Apps escalam automaticamente e você só paga por elas quando elas são executadas. Isso às vezes é chamado de “serverless” porque significa que você pode focar completamente na sua aplicação ou lógica e não na infra-estrutura subjacente.

Azure Functions

Azure App Services Function Apps podem hospedar uma ou mais funções Azure. Você usa as Funções Azure para hospedar pequenas aplicações, como trabalhos em background ou um microservice que só é executado por um curto período de tempo.

Azure As Funções Azure podem ser acionadas por temporizadores configuráveis, como em uma programação (a cada 15 minutos) ou por um serviço externo, como quando um novo Blob é adicionado ao Azure Blob Storage. Quando acionado, o código na Função Azure pode usar o valor do disparo, como o Blob que foi adicionado. Também pode adicionar bindings de saída a uma Função Azure para emitir um valor a um serviço externo, sem escrever qualquer canalização. Isto pode, por exemplo, ser uma saída de Blob Storage onde você simplesmente retorna um Blob sem ter que escrever código para conectar ao Azure Storage.

Apenas como as Logic Apps, as Funções Azure são “serverless”, porque elas são escaladas automaticamente e você só paga por elas quando são executadas.

Azure WebJobs

Outra forma de executar tarefas em background é executá-las no Azure WebJobs. WebJobs são parte de Serviços App e rodam dentro de um Serviço App como uma Web App ou uma App móvel. Você pode escrever e hospedar código em WebJobs que é iniciado por um gatilho, como um timer (a cada 15 minutos) ou um serviço externo, como uma nova mensagem em uma fila.

WebJobs funcionam de forma semelhante ao Azure Functions na medida em que executam pequenos pedaços de código que podem ser acionados por fontes externas que não requerem nenhum código de encanamento para configurar.

São diferentes do Azure Functions na medida em que você precisa escalá-los manualmente. Você paga pelo Serviço App que hospeda seu Web Job, que é uma taxa mensal, independentemente se o WebJob é executado ou não.

Ler mais: Compare Azure Functions vs Azure WebJobs

O que usar quando

Então qual Serviço App você deve usar quando? Esta tabela pode ajudar:

>

Aplicações Web Aplicações Móveis Aplicações Lógicas Funções Emprego Web
Aplicações Web Host e APIs X
Host backend para aplicações móveis >X >
>Fluxos de trabalho de lógica de negócio de anfitriões > >X >
Tarefas de fundo do anfitrião X X
>Escalas automaticamente e só paga quando funciona > > X X
Controle de escala e pague uma taxa mensal X X X X

Aplicação de serviços compartilhados

Azure App Services compartilham algumas características incríveis, que os tornam muito convincentes de usar. Aqui estão alguns deles:

  • Autenticação e autorização fáceis
  • Entrega contínua
  • Domínios personalizados
  • Conexões híbridas
    • Permite conectar a recursos no local, como serviços web ou bases de dados
  • (automático)escala e balanceamento de carga
  • Slots de implantação
    • Estes permitem testar a nova versão da sua aplicação e implementá-la em produção sem tempo de parada. Eles até permitem que você encaminhe parte do seu tráfego de produção para a nova versão da sua aplicação, para ver se ela funciona como esperado.
    • Aprenda mais sobre os slots de implantação aqui

Desenvolvendo serviços

Criar uma nova Aplicação Web ou Aplicação Lógica é simples através do Portal Azure, mas você deve realmente automatizar suas implantações para que você possa repeti-las em ambientes diferentes e executar exatamente a mesma configuração. Você pode fazer isso criando modelos do Azure Resource Manager (ARM) que você implanta a partir do Visual Studio ou em um pipeline de entrega contínua usando um serviço como Visual Studio Team Services.

Modelos ARM descrevem seus recursos como Web Apps, Azure SQL Databases e grupos de recursos em documentos JSON. Você pode criá-los usando o modelo do projeto Azure Resource Group no Visual Studio e obter inspiração clicando no botão Automation Script em qualquer recurso no Portal Azure.

Azure Event Grid

Um serviço relativamente novo, o Azure Event Grid, atua como cola entre os serviços. O Azure Event Grid pode encaminhar eventos de qualquer origem para qualquer destino.

Almost every Azure Event Grid pode publicar eventos que o Azure Event Grid pode receber e usar para acionar sua aplicação. Você também pode ter suas próprias aplicações e serviços publicando eventos que o Azure Event Grid pode usar para rotear para outros serviços.

Azure Event Grid escalona automaticamente e você só paga pelo número de operações que você usa.

Azure Event Grid elimina a necessidade de sondagem. As suas aplicações podem ouvir e reagir a eventos a partir de qualquer serviço publicado no Azure Event Grid.

Pode, por exemplo, ter o Azure Event Grid a ouvir alterações na sua lista de correio e activar uma aplicação de lógica Azure quando algo muda.

Azure Service Bus

Um dos serviços mais antigos e mais usados e fiáveis no Azure é o Azure Service Bus. Ele consiste de múltiplos serviços, mais notadamente filas de ônibus do Azure Service e tópicos do Azure Service Bus.

Uma aplicação pode colocar mensagens em uma fila de ônibus do Azure Service. Cada mensagem é lida a partir da fila e processada por uma aplicação. As Filas de Barramento do Azure Service Bus têm algumas capacidades avançadas que você obtém fora da caixa como detecção de duplicatas e uma subfila de letras mortas onde as mensagens que não podem ser processadas são movidas para.

Azure Service Bus Topics são um pouco diferentes. As aplicações podem colocar mensagens em um Tópico do Azure Service Bus e múltiplas aplicações podem ler e processar a mensagem. Eles recebem as mensagens que têm atributos que lhes interessam. Eles se inscrevem em ‘tópicos’ na fila. Os Tópicos do Azure Service Bus têm as mesmas capacidades avançadas que as Filas do.

Alguns destes serviços permitem-lhe dissociar a aplicação que coloca mensagens na fila da aplicação que processa as mensagens. Este padrão permite que a aplicação de processamento processe tarefas no seu próprio ritmo sem fazer o utilizador esperar por elas. Isto é útil quando o processamento pode demorar algum tempo e você não quer que o usuário tenha que esperar nisso, por exemplo, quando você está processando um pedido que pode demorar 5 minutos.

Azure Storage

Um bloco de construção básico em qualquer aplicação é o armazenamento de dados. O Azure Storage fornece múltiplas opções para armazenar dados, como arquivos ou filas de dados. Ele oferece vários serviços diferentes que são todos relativamente baratos, escalam quase infinitamente e através de regiões geográficas e oferecem recursos como criptografia e autenticação. Você obtém tudo isso pronto para uso, apenas girando uma conta do Azure Storage. Vamos discutir os vários tipos de Armazenamento Azure:

Bob Storage

Amazena arquivos grandes, ou ‘blobs’ no Azure Blob Storage. Podem ser coisas como arquivos VHD ou arquivos de áudio ou vídeo ou backups de banco de dados.

Você pode escolher um nível de armazenamento Blob que determina seu desempenho e custos. Existe o Hot tier, para Blobs que você acessa frequentemente. Há também a camada Cool tier, que você usa para Blobs que você não acessa com frequência, talvez uma vez por mês. E depois há a camada Arquivo, para Blobs que você usa quase nunca. Quando você solicita um Blob da camada do Arquivo, pode levar horas até que você possa acessá-lo.

Table Storage

Você pode armazenar dados semi-relacionais em linhas e colunas usando o Azure Table Storage. Isto é perfeito para coisas como o registo de dados. Você armazena dados em tabelas que são similares às do SQL Server, mas são menos rígidas na medida em que não têm relações entre elas. O Azure Table Storage é rápido e relativamente barato, tal como os outros tipos de Azure Storage.

Queue Storage

Pode armazenar pequenas mensagens que podem ser recolhidas e processadas mais tarde nas Filas de Armazenamento do Azure, tal como as Filas de Bus do Azure Service. Esta é uma oferta um pouco estranha porque se sobrepõe às Filas de Autocarros do Serviço Azure. São diferentes porque as Filas de Autocarros do Serviço Azure têm filas de detecção duplicadas e as Filas de Armazenamento não. Além disso, as mensagens das Service Bus Queue permanecem disponíveis após 7 dias, onde as mensagens das Storage Queue só podem ser armazenadas por 7 dias.

File Storage

Pode usar o Azure File Storage como um disco rígido extra que você monta no seu computador ou uma VM. Este é um ótimo serviço para começar com a nuvem, migrando seus arquivos para ela. Você pode fazer com que as aplicações o utilizem apenas apontando-as para o Azure File Storage em vez do seu próprio disco rígido. Isto permite que você comece a migrar para a nuvem.

ArmazenamentoDisk

Azure Disk Storage é uma característica premium e é altamente performante e útil para quando você precisa realizar trabalhos intensivos de E/S, como em um disco rígido primário de uma VM. Ele atua como um disco escalável de alto desempenho que você pode montar em uma VM.

Azure Cosmos DB

A nova versão e nome do Azure DocumentDB é Azure Cosmos DB. O Azure Cosmos DB é uma oferta de base de dados que se adapta perfeitamente à nuvem. Como um serviço PaaS, basta rodar um BD do Cosmos e está pronto a funcionar. Se você estava usando o Azure DocumentDB, agora você está usando automaticamente o Azure Cosmos DB. Seu código não precisa ser alterado.

Existem algumas coisas que tornam o Cosmos DB extraordinário:

  • Você pode programar contra ele usando diferentes ‘APIs’, como SQL, JavaScript, MongoDB, Gremlin e Table Storage. Você não escolhe mais um tipo de banco de dados, você apenas escolhe a forma como quer falar com ele, Cosmos DB cuida do resto
  • Não é mais necessário criar índices, Cosmos DB faz isso automaticamente para você
  • Cosmos DB é altamente performante. Ele ainda garante baixa latência em seu SLA
  • Você obtém escalabilidade geográfica fora da caixa. Você apenas indica onde no mundo você quer que seus dados estejam e eles são replicados em tempo real. Desta forma, você pode ter certeza que seus dados estão próximos aos seus usuários

Saiba como começar com o Azure Cosmos DB nestes tutoriais de 5 minutos.

Cosmos DB é mais adequado para dados não-relacionais ou semi-relacionados.

Azure Cognitive Services

Adicionar inteligência às suas aplicações nunca foi tão fácil como com o Azure Cognitive Services. Estes são um conjunto de APIs que fornecem habilidades quase mágicas, alimentados por IA e Machine Learning. Existem cerca de 30 Serviços Cognitivos e mais estão chegando. Aqui estão alguns exemplos:

  • API de Emoção, que analisa rostos em fotos e vídeos para detectar emoções como felicidade, tristeza, nojo e assim por diante
  • Serviço Inteligente de Compreensão da Linguagem (ou LUIS), que pode realmente compreender o contexto da linguagem em mais de 12 línguas. Você pode usar isso para criar um bot inteligente que realmente entenda o que você está dizendo a ele
  • Speaker Recognition API, que identifica os falantes com base na fala. Você pode usar isso para autenticar usando voz ou para identificar pessoas com base em sua voz
  • API Computer Vision, que pode detectar informações sobre conteúdo visual encontrado em imagens, como que o fundo é água e céu ou a jaqueta que a pessoa está usando é preta

Os Serviços Cognitivos são muito fáceis de usar, pois você só os usa da nuvem e não precisa gerenciar nenhuma infra-estrutura ou configuração.

Você pode usar seus próprios dados para treinar os serviços para melhorar seus resultados. Fazendo isso, o Face API poderia, por exemplo, retornar os nomes e idades dos seus colegas de trabalho. Além disso, os Serviços Cognitivos aprendem na hora, através dos dados que você os alimenta. Isso os torna mais inteligentes e precisos.

Para usar um Serviço Cognitivo, você simplesmente chama o endpoint da API, como https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect com uma chave de assinatura que você obtém quando se inscreve e alimenta os parâmetros necessários, como um Byte Array de uma imagem, no caso da API Face. Isso retorna uma resposta JSON como essa (algumas linhas são omitidas para economizar espaço):

Resultado da detecção de face:

 }, "smile": 0.826, "headPose": { "pitch": 0.0, "roll": -16.9, "yaw": 21.3 }, "gender": "female", "age": 23.8, "facialHair": { "moustache": 0.0, "beard": 0.0, "sideburns": 0.0 }, "glasses": "ReadingGlasses", "makeup": { "eyeMakeup": true, "lipMakeup": true }, "emotion": { "anger": 0.103, "contempt": 0.003, "disgust": 0.038, "fear": 0.003, "happiness": 0.826, "neutral": 0.006, "sadness": 0.001, "surprise": 0.02 }, … }]

Você pode ver na saída que esse serviço em particular retorna um monte de dados. Ele até detecta onde as características faciais estão localizadas na foto e se a pessoa está vestindo maquiagem. Eu acho isso realmente incrível.

Azure CDN

Você pode acelerar suas aplicações descarregando o tráfego para o Azure CDN. O Azure CDN (Content Delivery Network) funciona como um endpoint para o seu conteúdo estático como vídeos, imagens, JavaScript e ficheiros CSS. Ao ter o Azure CDN a servir estes ficheiros, a sua aplicação não tem de o fazer e tem mais recursos para lidar com mais pedidos. Além disso, o Azure CDN replica o conteúdo estático para Pontos de Presença (PoPs) em todo o mundo, colocando assim o conteúdo estático perto de onde seus usuários estão e limitando a latência, o que é bom para o desempenho.

Você pode usar o Azure CDN criando um Endpoint Azure CDN, acoplando-o a uma fonte, como o Azure Storage e fazendo upload de arquivos para o Azure Storage. O Azure CDN replica automaticamente os arquivos para os PoPs em todo o mundo e você pode fazer um link para os arquivos através de uma URL como https://custom.azureedge.net/cd/myimag.png. Você também pode usar um nome de domínio personalizado para a URL.

Azure Redis Cache

Outra maneira de acelerar suas aplicações é através do cache de dados usando o Azure Redis Cache. Quando você obtém dados de um cache em vez de de outro, como um banco de dados, você acelera sua aplicação.

Isso porque um cache como o Azure Redis Cache guarda os dados na memória e armazena os dados em um formato chave/valor simples. Por causa disso, os dados podem ser ser servidos mais rapidamente, pois não precisam ser recuperados do disco e não precisam ser recuperados executando uma consulta complexa.

Azure Redis Cache fornece um cache como serviço e fornece capacidades avançadas, como clustering e geo-replicação. Ele é baseado no popular Redis Cache de código aberto e agora é apoiado por Microsoft SLAs e suporte empresarial. Azure Redis Cache é a opção de cache para aplicativos no Azure.

Azure API Management

Você pode usar o Azure API Management para melhorar suas APIs ou APIs de terceiros que você usa. O Gerenciamento da API Azure atua como um gateway entre a sua API e o mundo externo. Isso permite que você aprimore sua API.

Com o Gerenciamento de API, você pode criar um portal onde os usuários da sua API podem ir para gerenciar suas assinaturas e testar o aplicativo. Um exemplo de um portal para desenvolvedores é o site de um dos Serviços Cognitivos, que também usa Gerenciamento da API:

Você pode controlar o uso da API, definindo limites por usuário ou tipo de assinatura. Esta é uma boa maneira de rentabilizar sua API, por exemplo, oferecendo um nível de uso gratuito de até 10 solicitações por dia, e se você precisar de mais, você começa a pagar. Se os usuários tentarem usar mais, sem a assinatura correta, suas requisições serão aceleradas.

Adicionalmente, você pode melhorar as APIs tornando-as mais performantes. Você pode fazer o cache das respostas da API para que elas não tenham que obter as respostas fazendo cálculos ou compondo dados de uma fonte de dados.

E você pode proteger suas APIs com chaves, senhas, certificados e filtragem de IP. Além disso, você pode transformar a entrada e saída de e para as suas APIs. Você pode, por exemplo, transformar XML de entrada para JSON ou fazer o mesmo com respostas.

Azure API Management é realmente poderoso e aumenta o controle que você tem sobre suas APIs (e APIs de terceiros que você expõe através do Gerenciamento de API). E ele permite que você faça isso sem alterar a API.

Conclusão

Os serviços neste artigo são todos exemplos de serviços Azure PaaS. Todos eles são muito fáceis de rodar e requerem uma manutenção mínima. Eles permanecerão em funcionamento, são auto-cura e basicamente ‘apenas funcionam’.

O valor que estes serviços podem fornecer é enorme e fácil de incorporar em suas aplicações. Isto realmente cuida de muita da canalização e tarefas repetitivas que costumávamos construir e fazer nós mesmos.

Azure PaaS permite-nos focar na construção de coisas que importam. Lembre-se de sempre focar em melhorar suas aplicações também usando uma ferramenta APM de ciclo de vida completo como o Stackify Retrace. Saiba mais.

Deixe uma resposta

O seu endereço de email não será publicado.