Microsoft Azure
O Microsoft Azure é uma plataforma de computação em nuvem de classificação empresarial aberta e flexível.
Utilizar esta plataforma de maneira adequada pode trazer uma série de vantagens competitivas para as empresas, dentre elas uma maior agilidade de implantação e uma redução drástica nos custos de hospedagem.
Por este motivo, a MSTech está empregando esforços para adaptar nossas aplicações para esta plataforma. Mas, antes de começarmos a ver quais são estes esforços e o que isto irá modificar em nossos processos de desenvolvimento, vamos entender melhor a plataforma.
Índice
Modelos de Computação em Nuvem
Infrastructure as a Service (IaaS - Infraestrutura como um serviço)
Neste modelo você contrata capacidade de Hardware, que é disponibilizada através de virtualização. Você possui controle total sobre as máquinas virtuais, sistema operacional, armazenamento, aplicativos instalados, etc. Todo o custo de gerenciamento e o aumento ou diminuição da capacidade estão sob sua responsabilidade.
Apesar do Azure oferecer algum nível de automação, a capacidade contratada não se adapta facilmente a capacidade utilizada, permitindo que hajam constantemente 2 situações indesejadas: gargalos de desempenho (quando a capacidade é menor que a demanda), ou, de forma oposta, ociosidade, gerando custos desnecessários.
Por exemplo, digamos que um aplicativo precisa suportar o acesso de 1000 usuários simultâneos. Para evitar gargalos, temos que provisionar recursos (quantidade de servidores, processamento, memória, armazenamento, etc) para suportar essa quantidade. No entanto, na maior parte do tempo, apenas 100 usuários simultâneos acessam o aplicativo, gerando um enorme desperdício de recursos. Também pode acontecer de, inesperadamente, 2000 usuários simultâneos acessarem o aplicativo. Como sua infraestrutura está preparada para 1000 usuários, o resultado será queda de desempenho e consequente descontentamento dos usuários.
Este modelo serve apenas para hospedagem de aplicações que não são compatíveis com os modelos mais modernos, descritos a seguir.
Platform as a Service (PaaS - Plataforma como um serviço)
Modelo que oferece uma plataforma completa para o desenvolvimento de aplicativos na nuvem, no qual toda a infraestrutura, armazenamento e comunicação para os aplicativos são de responsabilidade do fornecedor. O desenvolvedor pode se preocupar exclusivamente com o desenvolvimento do aplicativo enquanto o seu fornecedor trata do gerenciamento, atualização e a manutenção da infraestrutura disponibilizada para o aplicativo.
Diferentemente do modelo IaaS, o modelo PaaS não enfrenta problemas de gargalo ou de ociosidade, uma vez que disponibiliza mais ou menos recursos de acordo com o que o aplicativo necessita. Desta forma, os custos e os riscos de gargalos são reduzidos drasticamente.
Apesar das vantagens, este modelo exige um cuidado maior na construção dos aplicativos. Uma vez que os custos estão diretamente relacionados aos recursos utilizados, o desenvolvedor precisa se preocupar em otimizar suas aplicações para utilizar o menor número de recursos possível. Bugs que façam o aplicativo consumir recursos de forma exagerada, podem fazer este modelo custar mais caro do que o modelo IaaS.
Além disso, este modelo traz uma série de diretrizes que precisam ser seguidas desde o início do projeto para que o aplicativo seja compatível.
Software as a Service (SaaS - Software como um serviço)
O modelo SaaS é o modelo de cloud computing mais difundido hoje em dia, você pode não saber mas quando acessa um sistema de e-mail como Gmail, Hotmail, Office 365, ou entra em uma rede social como Facebook ou Twitter, você esta na verdade acessando um serviço disponibilizado como SaaS.
A diferença entre SaaS e PaaS é pequena, no PaaS é fornecido uma plataforma para você desenvolver suas próprias aplicações e disponibiliza-las na nuvem, enquanto o SaaS trata do fornecimento de aplicações na nuvem. Em outras palavras, a MSTech pode contratar o modelo PaaS para desenvolver e hospedar suas aplicações e pode oferecer estas mesmas aplicações no modelo SaaS para seus clientes.
Opções de Hospedagem disponíveis no Azure
O Azure oferece os modelos de computação que acabamos de ver na forma de serviços. Os cinco componentes para fornecer aplicativos à partir do Azure são:
- App Service and App Service Environment;
- Azure Cloud Services;
- Azure Virtual Machines;
- Azure Service Fabric; e
- Azure Container Service.
Na imagem ao lado (Principais Serviços) é possível visualizar, de forma sucinta, os principais pontos de cada um dos principais serviços. A seguir, uma breve descrição de todos os modelos disponíveis:
App Service and App Service Environment
Você pode usar o App Service para provisionar e criar aplicativos web rapidamente no Azure. O App Service é uma solução PaaS, portanto, as soluções do App Service são executadas em um ambiente de máquina virtual. Portanto, a infraestrutura e os detalhes do sistema operacional e de gerenciamento são virtualizados e transparentes para o aplicativo hospedado pelo Azure.
Você pode criar soluções para o App Service usando as seguintes linguagens:
- Microsoft ASP.NET;
- PHP;
- Node.js; e
- Python.
Os aplicativos da que usam o App Service também podem se integrar a outros serviços do Azure, incluindo banco de dados SQL, Service Bus ou armazenamento BLOB. Ao usar várias cópias de um aplicativo em máquinas virtuais separadas, você pode rapidamente provisionar e dimensionar aplicativos que usam o App Service.
Você também pode usar o Azure App Service Environment para criar um ambiente dedicado no qual você pode executar aplicativos Azure, como Web apps, Mobile apps e Logic apps. Estes aplicativos podem conectar-se através de uma rede virtual definida pelo escopo de rede do App Service.
Azure Cloud Services
Com o Azure Cloud Services, você pode estender a funcionalidade de sua solução baseada em nuvem, pois suporta escalabilidade para aplicativos e maior controle sobre o ambiente de hospedagem, sendo mais adequado para:
- Aplicações Web de várias camadas;
- Aplicações Web que exigem um ambiente altamente escalável e de alto desempenho; e
- Aplicações Web que possuem requisitos adicionais relativamente simples, como aplicativos secundários ou alterações menores de ambiente.
Azure Virtual Machines
O Azure Virtual Machines, e fornece a maior flexibilidade e controle das opções de computação disponíveis, tal como uma solução IaaS. Desta forma, você tem controle completo sobre a máquina virtual no nível do sistema operacional, o que implica também em manter a máquina virtual no nível do sistema operacional, incluindo a manutenção da continuidade do negócio e a instalação de atualizações. Esta modalidade é mais adequada para:
- Aplicativos altamente personalizados que exigem componentes de infra-estrutura complexos; e
- Hospedar servidores de aplicativos e infraestrutura do Windows Server ou Linux, como controladores de domínio, servidores DNS ou servidores de banco de dados.
Azure Service Fabric
O Service Fabric fornece uma tecnologia confiável e flexível que pode-se usar para criar ambos os tipos de aplicativos: stateful e stateless. Os aplicativos de Service Fabric são compostos de microservices executados em um pool compartilhado de computadores, denominado Cluster Service Fabric, sendo usado principalmente para criar aplicativos em nuvem complexos.
Azure Container Service
Com o Azure Container Serviceé possível criar clusters para suportar aplicativos, permitindo que as empresas criem aplicativos em cluster escaláveis rapidamente, como aplicativos baseados em Docker.
Em qual modelo a Mstech se encaixa atualmente?
Atualmente as aplicações desenvolvidas pela MSTech se enquadram no modelo Azure Virtual Machines. Como já vimos, este modelo não traz nenhuma vantagem para a empresa. Por isso, nossos esforços para tornar nossas aplicações compatíveis com o Azure App Services.
Migrando Aplicações para o Azure App Services
Devido a grande mudança de paradigma entre o desenvolvimento voltado à infraestrutura e o desenvolvimento voltado a nuvem, reunimos aqui uma coleção de informações que podem ajudar no desenvolvimento do dia a dia. Uma das maneiras mais simples para você fazer isso agora (e de graça) é se inscrever em uma conta de avaliação do Windows Azure, nos seguintes endereços:
- Crie sua conta gratuita no Azure [1].
- Aprenda a implantar um aplicativo ASP.NET no Azure App Service, usando o Visual Studio [2].
A seguir listamos as principais restrições que o serviço em nuvem do Azure apresenta com relação ao serviço on-primese (baseado em infraestrutura):
Microsoft SQL Server
Quando optamos por utilizar o banco de dados SQL como serviço disponibilizado pelo Azure nos deparamos com os seguintes recursos para os quais não há suporte (atenção aos itens em vermelho):
- Agrupamento de objetos do sistema;
- Administrador de recursos;
- Auditoria do SQL Server (em vez disso, use a auditoria do Banco de Dados SQL);
- Coletor de dados;
- Conexão relacionado: instruções de ponto de extremidade, ORIGINAL_DB_NAME. O Banco de dados SQL não dá suporte à autenticação do Windows, mas dá suporte à autenticação do Azure Active Directory semelhante. Alguns tipos de autenticação exigem a versão mais recente do SSMS (SQL Server Managment Studio);
- Configurações do servidor relacionadas ao hardware: memória, threads de trabalho, afinidade da CPU, sinalizadores de rastreamento etc. Em vez disso, use níveis de serviço;
- Consultas cruzadas de banco de dados usando nomes de três ou quatro partes;
- Credenciais do servidor. Em vez disso, use credenciais no escopo do banco de dados;
- Criptografia: gerenciamento extensível de chaves;
- DATABASEPROPERTY (em vez disso, use DATABASEPROPERTYEX);
- Depuração de Transact-SQL;
- Diagramas de banco de dados;
- Disparadores: no escopo do servidor ou gatilhos de logon;
- Encadeamento de propriedades de bancos de dados, configuração TRUSTWORTHY;
- Eventos: eventos, notificações de eventos, notificações de consulta;
- FILESTREAM;
- Funções: fn_get_sql, fn_virtualfilestats e fn_virtualservernodes;
- HAS_DBACCESS;
- Integração do CLR com o SQL Server do .NET framework;
- Itens no nível de servidor: funções de servidor, IS_SRVROLEMEMBER, sys.login_token. Permissões de nível de servidor não estão disponíveis, embora algumas delas sejam substituídas por permissões de nível de banco de dados. Algumas DMVs (exibições de gerenciamento dinâmico) de nível de servidor não estão disponíveis, embora algumas delas sejam substituídas por DMVs de nível de banco de dados;
- KILL STATS JOB;
- Logons de EXECUTE AS;
- Pesquisa semântica;
- Rastreamento do SQL Server;
- Recursos que dependem do leitor de log em execução no Banco de Dados SQL: replicação push, Change Data Capture;
- Recursos que dependem do SQL Server Agent ou do banco de dados MSDB: trabalhos, alertas, operadores, gerenciamento baseado em políticas, database mail, servidores de gerenciamento central;
- Recursos relacionados à alta disponibilidade, que é gerenciada por meio de sua conta do Microsoft Azure: backup, restauração, AlwaysOn, espelhamento de banco de dados, envio de logs e modos de recuperação;
- Recursos relacionados à localização de arquivos de banco de dados, o tamanho e os arquivos de banco de dados que são gerenciados automaticamente pelo Microsoft Azure;
- Serverless express: localdb, instâncias de usuário;
- Service broker;
- Servidores mestre/de destino;
- Servidores vinculados, OPENQUERY, OPENROWSET, OPENDATASOURCE, BULK INSERT e nomes de quatro partes;
- SET REMOTE_PROC_TRANSACTIONS;
- SHUTDOWN;
- Sinalizadores de rastreamento. Alguns itens do sinalizador de rastreamento foram movidos para os modos de compatibilidade;
- sp_addmessage;
- sp_helpuser;
- sp_migrate_user_to_contained;
- SQL Server Profiler; e
- Tabelas temporárias globais.
Os serviços destacados em vermelho são utilizados atualmente pelas aplicações desenvolvidas pela MSTech:
- Consultas cruzadas de banco de dados usando nomes de três ou quatro partes:
- Neste item estão os sinônimos e JOIN's entre bancos de dados. Este é um dos recursos mais utilizados pelas aplicações da MSTech.
- Diagramas de banco de dados:
- Utilizados por algumas equipes para a modelagem do Banco de Dados.
- Integração do CLR com o SQL Server do .NET framework:
- Na maior parte é utilizada para operações de strings, já foi realizada análise sobre este item e é possível mudar o código para remover esta integração.
- Logons de EXECUTE AS:
- Em alguns clientes da MSTech foi utilizada esta clausula devido as restrições de permissões impostas. Em sua grande maioria está relacionada com o start de Jobs
- Recursos que dependem do SQL Server Agent ou do banco de dados MSDB: trabalhos, alertas, operadores, gerenciamento baseado em políticas, database mail, servidores de gerenciamento central:
- As aplicações utilizam-se de jobs para processos de longa duração.
- Servidores vinculados, OPENQUERY, OPENROWSET, OPENDATASOURCE, BULK INSERT e nomes de quatro partes:
- Também conhecido como Linked Server.
- Tabelas temporárias globais:
- Sabemos que algumas aplicações usam este tipo de recurso.
Vale ressaltar que, além dos recursos apresentados acima, o SQL Azure não possui o serviço de Reporting Services, amplamente utilizado pelas aplicações desenvolvidas pela MSTech. Durante um tempo houve o serviço Windows Azure SQL Reporting, contudo, o mesmo foi descontinuado [3]. A solução apresentada pela Microsoft para o Reporting Services após a remoção do serviço Windows Azure SQL Reporting foi a criação de uma máquina virtual com o serviço de Reporting Services[4] nativo instalado. Contudo, a ideia de se utilizar uma máquina virtual para executar o Reporting Services não atende ao modelo de nuvem proposto pela MSTech para a migração de suas aplicações. A solução mais plausível seria construir no FrontEnd uma página em C# que renderize o relatório com um framework mais leve, como Angular por exemplo. A questão de exportações, seria necessário a utilização de bibliotecas de terceiros, como o EvoPDF (no caso de exportação para PDF).
Microsoft IIS (Internet Information Services)
A Microsoft disponibiliza um Assistente de Migração de Aplicativos WEB [5] que irá analisar a sua aplicação no servidor de IIS, identificar quais sites podem ser migrados para a nuvem, realçar quaisquer elementos que não possam ser migrados ou aos quais a plataforma não dá suporte. A seguir, alguns dos principais itens aos quais você deve se atentar e que são verificados durante a análise de compatibilidade:
- Associações de porta – aplicativos Web somente dão suporte à porta 80 para HTTP e à porta 443 para tráfego HTTPS. Configurações de porta diferentes serão ignoradas e o tráfego será roteado para 80 ou 443.
- Autenticação – os aplicativos Web dão suporte à Autenticação Anônima por padrão e à Autenticação de Formulários onde especificado por um aplicativo. A autenticação do Windows pode ser usada somente com a integração com o Active Directory do Azure e o ADFS. Não há suporte no momento para nenhuma outra forma de autenticação - por exemplo, Autenticação Básica.
- Cache de Assembly Global (GAC) – os aplicativos Web não dão suporte ao GAC. Se seu aplicativo faz referência a conjuntos que você normalmente implanta no GAC, você precisará implantar na pasta bin do aplicativo em aplicativos Web.
- Modo de compatibilidade IIS5 – não há suporte para esse modo nos aplicativos Web.
- Pools de aplicativos – em aplicativos Web, cada site e seus aplicativos filho são executados no mesmo pool de aplicativos. Se o site tiver vários aplicativos filho utilizando vários pools de aplicativos, consolide-os em um único pool de aplicativos com as mesmas configurações ou migre cada aplicativo em um aplicativo Web separado.
- Componentes COM – aplicativos Web não permitem o registro de componentes COM na plataforma. Se seus sites ou aplicativos utilizarem componentes COM, você deve reescrevê-los em código gerenciado e implantá-los em seu site ou aplicativo.
- Filtros ISAPI – os aplicativos Web podem dar suporte ao uso de filtros ISAPI. Você precisa fazer o seguinte:
- implantar as DLLs com seu aplicativo Web
- registrar as DLLs usando Web.config
- Coloque um arquivo applicationHost.xdt na raiz do site com o conteúdo seguinte:
<?xml version="1.0"?> Para obter mais exemplos de como usar transformações de documentos XML com o seu site, consulte Transformar seu Site do Microsoft Azure [6].
- Outros componentes, como SharePoint, extensões de servidor do FrontPage (FPSE), FTP, certificados SSL não serão migrados.
Outro ponto importante a ser frisado é que o Banco de Dados da aplicação pode ser migrado em conjunto com a mesma, desde que a sua string de conexão esteja no web.config da aplicação, caso contrário a migração automática do Banco de Dados não é realizada.
Dos pontos acima mencionados chamamos a atenção para o item Pools de aplicativos. Nossas aplicações, devido a quantidade de sistemas geralmente são construídas em torno de apenas uma URL padrão (geralmente a do CoreSSO), enquanto todos os demais módulos e sistemas são aninhados como filhos da aplicação, também conhecidos como Application. Para cada Application criada temos por padrão criar um Pool de aplicativos próprio para separar a execução das aplicações. Este modelo trás algumas implicações técnicas na hora de efetuar a migração para o Azure pois, ou todos utilizam o mesmo pool ou devem ser criados sites individuais para cada aplicação, e é aqui onde as implicações técnicas começam.
No Azure, não existe o conceito que utilizamos de infraestrutura compartilhada, onde temos um servidor IIS com diversos sites utilizando os recursos disponíveis do servidor. Quando criamos um site na nuvem do Azure este é hospedado individualmente em uma instância individual de IIS, que possui sua configuração própria de hardware. Sim, para cada site publicado individualmente ele está atrelado a um tipo de máquina para realizar a sua execução, em outras palavras, se temos hoje um site com 15 applications e vamos migrá-lo para websites individuais é como que se no final tivéssemos nada mais nada menos que 15 servidores sustentando essa aplicação. O problema aqui é o custo elevado para manter a aplicação, visto que mesmo sem uso, essas 15 instâncias estariam ativas e consumindo créditos da empresa.
Desenvolvendo Aplicações para o Azure
Como visto anteriormente, o Azure possui o Azure App Service especializado na hospedagem de aplicativos Web, aplicativos para dispositivos móveis e Aplicativos de Interface de Programação (API) sem a necessidade de configurar uma máquina virtual e o software da plataforma associada. Para tanto, é possível fazer o upload de um aplicativo da Web personalizado do Microsoft Visual Studio ou de outra ferramenta de desenvolvedor da Web.
Introdução ao App Service
Há uma crescente demanda pelas organizações para entregar aplicativos móveis e web que envolvam e conectem com seus clientes. Além disso, esses aplicativos têm que trabalhar em qualquer dispositivo e devem ser capazes de consumir e integrar com dados de qualquer lugar. O App Service fornece uma plataforma poderosa que integra tudo o que as empresas precisam para criar aplicações web e móveis que podem funcionar em qualquer dispositivo. Esses aplicativos podem se integrar facilmente a outros aplicativos de Software como Serviço (SaaS), como Microsoft Office 365, Microsoft OneDrive for Business, Facebook e muito mais, ou conectar-se a aplicativos corporativos locais, como SAP, Oracle e outros.
Panorâmica do App Service
O App Service fornece uma plataforma abrangente para a criação de aplicativos baseados em nuvem que os usuários podem consumir em qualquer dispositivo, além de fornecer um serviço hospedado que os desenvolvedores podem usar para criar aplicativos para celular e web. Além disso, os desenvolvedores podem usar esse serviço para desenvolver API's e usá-las para integrar aplicativos SaaS usando aplicativos lógicos, para que eles possam combinar a lógica de negócios para obter diferentes funcionalidades em seus aplicativos. O App Service é um novo serviço Azure que substituiu os seguintes serviços Azure: Azure Websites, Azure Mobile Services e Azure BizTalk Services. O App Service agora é um serviço integrado único e possui recursos mais avançados do que seus predecessores, a saber:
- Web Apps: Fornece uma plataforma comum para desenvolver, construir, hospedar e gerenciar aplicativos da web;
- Mobile Apps: Fornece uma plataforma para a construção e suporte de aplicativos móveis que os usuários podem consumir em quase qualquer dispositivo;
- API Apps: Fornece uma plataforma de serviço hospedada que pode ajudar os desenvolvedores a criar, hospedar e consumir facilmente APIs que são desenvolvidas usando plataformas conhecidas, como ASP.NET, PHP e Python; e
- Logic Apps: Permite links rápidos entre aplicativos baseados em nuvem, para que você possa criar soluções conectadas.
Web Apps
O recurso Web Apps é uma plataforma de tecnologias que permitem a criação de aplicativos Web no Azure sem configurar e manter suas próprias máquinas virtuais. No Azure, você pode executar aplicativos Web que são desenvolvidos usando os frameworks ASP.NET, PHP, Node.js e Python. O recurso Web Apps permite que os desenvolvedores usem o mesmo conjunto de ferramentas e frameworks para criar aplicativos Web, fornecer versões de aplicativos, atualizar os aplicativos com novas funcionalidades e ter uma funcionalidade de monitoramento completa por meio do ciclo de vida dos aplicativos Web. Os principais recursos do Web Apps são:
- Gallery applications: Pode-se usar o Azure Marketplace para escolher entre soluções predefinidas para configurações populares, como sites de blogs, frameworks, aplicativos de inicialização ASP.NET e outros. Pode-se encontrar a seleção completa de soluções na seção de Aplicativos Web do Marketplace;
- Auto scaling: Pode-se implementar várias instâncias de cada aplicativo Web para aumentar a capacidade e garantir a resiliência. O balanceador de carga do Azure distribui automaticamente as solicitações de entrada entre essas instâncias. Pode-se também pode configurar a funcionalidade de crescimento automático para lidar com cargas recebidas dinamicamente;
- Continuous integration: Pode-se implantar o código de aplicativos à partir de sistemas de controle de versão na nuvem (como o Visual Studio Online e o GitHub), sistemas de controle de versão on-premise (como o Team Foundation Server e o Git), e de ferramentas de implantação (como Visual Studio, clientes FTP, WebMatrix e MSBuild). Pode-se também usar ferramentas de integração contínua para automatizar a compilação, testes e testes de integração;
- Deployment slots: Ao usar o plano padrão para o App Service é possível criar dois ou mais slots para cada aplicativo Web. Por exemplo, pode-se criar um slot para o o ambiente de produção e, em seguida, implantar o código testado e aceito. Em seguida, pode-se criar um segundo slot para o ambiente de teste e implantar o novo código para executar testes de aceitação (o slot de teste terá uma URL diferente)
- Testing in production: Quando uma nova versão do seu aplicativo Web instalado no slot de teste passar todos os testes, você pode implantá-lo com segurança no ambiente de produção trocando os slots. Isso também fornece um caminho de reversão simples. Se a nova versão causar problemas inesperados, você pode trocar os slots novamente para reverter para o site de produção antigo;
- Azure WebJobs: O recurso WebJobs executa processos em segundo plano para aplicativos Web, descarregando assim a maior parte das tarefas demoradas e com uso intensivo de CPU dos aplicativos Web. Pode-se executar tarefas comuns, como atualizar um banco de dados ou mover arquivos de log facilmente usando WebJobs; e
- Hybrid connections: Pode-se implementar conexões híbridas de aplicativos Web e móveis no Azure para acessar recursos locais, como bancos de dados SQL ou outros recursos publicados. Ao usar o Gerenciador de conexões híbridas é possível compartilhar a conexão em vários aplicativos Web ou aplicativos para dispositivos móveis, além de limitar as portas TCP necessárias para acessar sua rede. No serviço Premium é possível usar o App Service Environment para integrar-se a uma rede virtual do Azure. Um cenário comum no qual as conexões híbridas são utilizadas é quando o aplicativo Web precisa acessar um banco de dados ou um serviço da Web que está sendo executado em uma máquina virtual hospedada em uma rede virtual do Azure.
Os aplicativos Web geralmente requerem dois serviços de suporte: armazenamento de dados e armazenamento de arquivos. Os dados brutos que o código do lado do servidor formata em uma página da Web e envia para o usuário muitas vezes está em um banco de dados. No Azure, você pode usar um banco de dados SQL para hospedar esse banco de dados. Como alternativa, você pode provisionar um banco de dados em uma máquina virtual ou usar o armazenamento de tabela Azure. Os aplicativos da Web geralmente incluem arquivos de mídia, como: imagens, vídeos e arquivos de som. O desempenho normalmente é melhorado se você não armazenar esses arquivos de mídia em um banco de dados. No Azure, você pode usar uma conta de armazenamento para esses arquivos.
Mobile Apps
O recurso Mobile Apps é uma parte do App Service e fornece uma plataforma para criação e suporte de aplicativos móveis, resolvendo problemas comuns para os desenvolvedores. Os requisitos comuns de aplicativos para dispositivos móveis incluem que eles precisam de:
- Armazenar e acessar dados estruturados;
- Receber notificações quando eventos acontecem na nuvem;
- Autenticar e autorizar usuários com base no Facebook, Twitter, Microsoft ou outras identidades; e
- Definir a lógica de negócios.
O recurso Mobile Apps permite que desenvolvedores criem aplicativos multiplataforma que podem ser executados no Windows, iOS ou Android. Esses aplicativos podem ser executados apenas na nuvem ou conectar-se à infraestrutura local para fins de autenticação e autorização. Os desenvolvedores podem usar mais de 40 conectores API SaaS para integração com uma variedade de aplicativos em nuvem, além de beneficiar-se do mecanismo de notificação build-push que pode enviar um grande número de notificações push personalizadas para quase qualquer dispositivo móvel que esteja usando o iOS, o Android ou o Windows.
O Mobile Apps suporta back-end' escrito em Java e PHP back-end e já vem preparado com crescimento automático (auto-scale) e balanceamento de carga. Além disso, suporta vários slots de implantação para produção e testes, fornecendo também alertas e arquivos de log para monitoramento e solução de problemas, contando ainda com a integração com o New Relic fornece uma visão profunda do desempenho e da confiabilidade dos aplicativos para dispositivos móveis desenvolvidos.
É possível aproveitar todos os novos recursos migrando as soluções existentes de uma de duas maneiras:
- Migração: Este processo só altera o ambiente subjacente sem reescrever qualquer código. Após a migração todos os novos recursos, como WebJobs, nomes de domínio personalizados, slots de teste, crescimento automático e balanceamento de carga estarão disponíveis; e
- Atualização: Este processo é mais complexo porque requer alterações de código. Normalmente, é necessário criar uma segunda instância do aplicativo, atualizar o projeto para usar os novos kits de desenvolvimento de software para servidor (SDKs) e, em seguida, liberar o novo aplicativo.
Logic Apps
Logic Apps automatizam um processo de negócios, permitindo links rápidos entre aplicativos baseados em nuvem como: Office365, Google Services, Salesforce e muitos outros, utilizando para tanto um editor visual para pode combinar conectores do Azure Marketplace para diferentes cenários de integração.
Os Logic Apps usam um mecanismo de fluxo de trabalho para projetar processos de negócios graficamente e, em seguida, interliga-los através de conectores para que os usuários possam acessar os dados e serviços necessários. A funcionalidade dos conectores é baseada nas APIs que podem acionar novas instâncias do fluxo de trabalho com base em um evento específico, onde cada etapa do fluxo de trabalho é uma ação que acessa dados ou serviços através do conector. Cenários de integração mais avançados podem usar regras, transformações, validações e recursos que fazem parte dos Serviços BizTalk.
Algumas das principais APIs mais comuns incluem:
- Conector do Office 365: API para criar uma ação que possa enviar e receber e-mails além de gerenciar calendários e contatos para uma conta do Office 365;
- Conector Microsoft OneDrive: API para criar uma ação que possa se conectar ao seu Microsoft OneDrive pessoal e carregar, excluir ou listar arquivos;
- Conector Microsoft Yammer: API para se conectar à sua assinatura do Yammer para postar ou obter novas mensagens;
- Conector do Facebook: API para se conectar à sua conta do Facebook para publicar mensagens, fotos, receber comentários e executar outras ações; e
- Conector HTTP: API para abrir um HTTP listener para ouvir uma solicitação HTTP recebida em um endereço específico.
Os conectores de integração empresarial podem estender os serviços de aplicativos e fornecer integração e conectividade aos sistemas SAP, Oracle, DB2, Informix dentre outros.
Ao desenvolver uma solução é possível usar conectores com gatilhos para poll ou push. Um cenário comum de gatilhos poll é integrar o aplicativo quando novos dados estiverem disponíveis em um local de arquivo, no armazenamento Azure ou em um banco de dados SQL. Em seguida, pode-se usar o gatilho de pesquisa para obter esses dados e usá-los no aplicativo. Geralmente, os gatilhos push são utilizados para iniciar uma nova instância de uma aplicação lógica quando ocorre um evento específico.
Além disso, Logic Apps podem incluir conectores que iniciam uma ação, por exemplo, conectores podem ser usados para gravar, atualizar ou excluir dados de uma conta de armazenamento ou de algum outro aplicativo vinculado.
Referências
- ↑ Microsoft. Create your free Azure account today, Acesso em 21 de fevereiro de 2017.
- ↑ Burstein, G., et al. Deploy an ASP.NET web app to Azure App Service, using Visual Studio. Publicado em 16 de dezembro de 2016. Acesso em 21 de fevereiro de 2017.
- ↑ Microsoft. Relatórios SQL. Publicado em fevereiro de 2015. Acesso em 20 de fevereiro de 2017.
- ↑ Saxton, Adam. Use o PowerShell para criar uma VM do Azure com um servidor de relatório em modo nativo. Publicado em 11 de janeiro de 2017. Acesso em 20 de fevereiro de 2017.
- ↑ Microsoft. Azure App Service Migration Assistant. Acesso em: 20 de fevereiro de 2017.
- ↑ Wei, Zhao. Transform your Microsoft Azure Web Site. Publicado em 17 de junho de 2014. Acesso em 21 de fevereiro de 2017.