suporte à programação em azure
Transcrição
suporte à programação em azure
RQUITETURA AVANÇADA DE SISTEMAS CLOUD PROGRAMMING RICARDO MENDÃO SILVA RMSILVA AT UAL DOT PT MARÇO 2015 RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS • As máquinas virtuais podem ser utilizadas para partilhar recursos computacionais, tanto de modo flexível como seguro. • A Amazon tem sido líder no fornecimento de Cloud Pública, nomeadamente através de recursos IaaS (http://aws.amazon.com ). • A arquitetura da Amazon assenta nos seguintes blocos: • EC2 (Elastic Compute Cloud) – fornece platformas virtualizadas. • S3 (Simple Storage Service) – Fornece armazenamento orientado a objetos. • EBS (Elastic Block Service) -‐ Fornece uma interface para um bloco de armazenamento, que pode ser utilizado pelas aplicações tradicionais. • SQS (Simple Queue Service) – Garante a troca de mensagens entre dois processos com fiabilidade. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS • As ofertas da AWS resumem-‐se a: RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS • As ofertas da AWS resumem-‐se a (continuação): RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS • A Amazon tem um serviço denominado ELB (Elastic Load Balancing) que é responsável por distribuir todo o tráfego de entrada pelas várias instâncias EC2 disponíveis, permitindo evitar nós não-‐operacionais e implementando balanceamento de carga. • Tanto o auto-‐escalamento e o ELB são ativados pelo CloudWatch que monitoriza as instâncias em execução. • O CloudWatch é um web service que fornece monitorização aos recursos do AWS. • Fornece aos clientes a visualização sobre a utilização de recursos, performance operacional e padrões de utilização genéricos, tais como CPU, discos e trafego de rede (tal como o vClient no TL1). RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS • Tal como o Azure, a Amazon oferece bases de dados relacionais RDS (Relationship Database Service). • AWS Import/Export permite a transmissão de grandes volumes de dados entre EC2. • A Amazon CloudFront implementa uma rede de conteúdos distribuída. • A Amazon DevPay é um serviço simples de pagamentos e gestão de contas on-‐line, que facilita a comercialização de aplicações implantadas no AWS. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS PLATAFORMA AWS • O FPS (Flexible Payments Service) fornece aos programadores de sistemas comerciais no AWS uma forma conveniente para taxar os clientes que utilizam tais sistemas sobre AWS. • Com FPS os clientes podem pagar com os mesmos recursos e credenciais que utilizam no site da Amazon. • O FWS permite que a Amazon controle todo o sistema de venda e shipping de produtos em nome dos fornecedores tradicionais. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) • A Amazon foi a primeira empresa a introduzir VMs disponibilizadas como serviço. • Desde então, os clientes podem alugar VMs em vez de máquinas físicas para executar as suas aplicações. • Ao utilizar VMs os utilizadores podem instalar e utilizar qualquer software sobre estas. • A elasticidade deste tipo de serviço é que um cliente pode criar, iniciar e terminar instâncias de servidores consoante as necessidades, pagando os servidores ativos por hora. • A Amazon fornece uma série de VMs pré-‐instaladas. Essas instâncias são geralmente chamadas Amazon Machine Images (AMIs). RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) • Existem AMIs configuradas com diferentes sistemas operativos, Linux e Windows, e pré-‐configuradas com diverso software aplicacional. • Existem três tipos de AMIs: Tipo de imagem Definição da AMI AMI Privada Imagens criadas pelo utilizador, que são privadas por defeito. Podem ser dadas permissões a outros utilizadores para iniciar estas imagens privadas. AMI Pública Imagens criadas pelo utilizador e partilhadas com a comunidade AWS. AMI Pagas O utilizador pode criar AMI específicas e cobrar pelo uso das mesmas a outros utilizadores. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) • As AMIs são assim o template para instâncias de VMs. • O fluxo necessário para criar uma VM é o seguinte: • Criar uma AMI -‐> Criar um par de chaves -‐> Configurar a firewall -‐> lançar. • Essa sequência é suportada por AMIs públicas, privadas e pagas. • As AMIs são formadas a partir da virtualização de capacidade computacional, de armazenamento e outros recursos de servidores. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) • As instâncias definidas no IaaS da Amazon são diversas, classificadas em cinco tipos: • Standard instances – são máquinas típicas razoáveis para qualquer aplicação. • Micro instances – fornece um pequeno número de recursos de CPU consistentes e permite aumentar a capacidade de CPU quando existe essa disponibilidade. São aconselhados para aplicações com poucos requisitos e web sites com ciclos de computação periódicos. • High-‐memory instances – oferece muita memória para aplicações exigentes, incluíndo bases de dados e aplicações de caching. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) • As instâncias definidas no IaaS da Amazon são diversas, classificadas em cinco tipos (continuação): • High-‐CPU instances – são máquinas com mais CPU que RAM e desenhadas para alta computação. • Cluster computer instances – fornecem proporcionalmente recursos de CPU com performance de rede aumentada, sendo dirigidos para HPC – high-‐ performance computing. Tipicamente utilizam interligações 10GBps. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) • RESUMO EC2 (2010) RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) • RESUMO PREÇO EC2 (2010) RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON SIMPLE STORAGE SERVICE (S3) • O serviço Amazon S3 fornece uma simples interface web service que pode ser utilizada para guardar e descarregar qualquer quantidade de dados, em qualquer lugar, em qualquer altura. • O S3 fornece um serviço de armazenamento orientado a objetos. • Os utilizadores podem aceder aos seus objetos através do protocolo SOAP, através dos browsers ou de qualquer outra aplicação que suporte o mesmo. • Para além de SOAP, REST é também suportado. • SQS (Simple Queue Service) é responsável por garantir um serviço de mensagens fiável entre dois processos, mesmo quando o receptor não está em execução. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON SIMPLE STORAGE SERVICE (S3) RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON SIMPLE STORAGE SERVICE (S3) • A unidade de operação fundamental do S3 é chamada objeto. • Cada objeto é guardado num balde (bucket) e acessível através de uma única chave. • Noutras palavras o bucket é o container do objeto. • Para além da chave única, o objeto tem outros atributos, tais como, valores, metadados e informação de controlo de acesso. • Da perspectiva do programador, o fornecedor de armazenamento S3 pode ser visto como um par chave-‐valor. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON SIMPLE STORAGE SERVICE (S3) • Através da interface de programação <chave, valor> os utilizadores podem escrever, ler e eliminar objetos contendo desde 1 byte até 5 GB de dados cada. • Como mencionado anteriormente, existem dois tipos de interfaces distintas para acesso aos serviços: • REST • SOAP • As propriedades do S3 são as seguintes: • Redundância através de dispersão geográfica. • Desenhado para fornecer 99.999999999% de durabilidade e 99.99% de disponibilidade dos objetos/ano, considerando o modelo de redundância mais barato – Reduced redundancy storage (RRS). RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON SIMPLE STORAGE SERVICE (S3) • As propriedades do S3 são as seguintes (continuação): • Mecanismos de autenticação para garantir que os dados são mantidos seguros de acessos não autorizados. Os objetos podem ser tornados privados ou públicos e podem ser administrados direitos por utilizador. • ACLs e URLs por objeto. • O HTTP é o protocolo de download por defeito. Existe ainda uma interface BitTorrent, que permite melhor performance em sistemas largamente distribuídos. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON SIMPLE STORAGE SERVICE (S3) • As propriedades do S3 são as seguintes (continuação): • $0.0055 (para mais de 5, 000 TB) até 0.15 por GB/mês. • O primeiro GB de tráfego por mês é grátis. A partir dai tem um custo de $0.08 a $0.15 por GB transferido para fora da região S3. • Não existe cobrança para transferências entre EC2 e S3 dentro da mesma região ou para dados transferidos entre Amazon EC2 Northern Virginia e Amazon S3 U.S. Standard region, entre outras. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC BLOCK STORE (EBS) • O Elastic Block Store (EBS) fornece interfaces para guardar e restaurar imagens virtuais de instâncias EC2. • Tradicionalmente as instâncias de EC2 seriam destruídas depois de utilizadas. • Com EBS é possível guardar o estado dos EC2, mesmo depois da máquina ser desligada. • Os utilizadores podem utilizar o EBS para guardar dados persistentes e montar nas instâncias EC2 em execução. • Denote-‐se, que o S3 é Storage as a Service com uma interface de mensagem. • O EBS é semelhante a um sistema de ficheiros distribuído, com acesso tradicional pelo Sistema Operativo. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC BLOCK STORE (EBS) • O ESB permite criar diferentes volumes de armazenamento desde 1 GB até 1 TB, que podem ser montados em instâncias EC2. • Múltiplos volumes podem ser montados na mesma instância. • Esses volumes de armazenamento funcionam como disco raw, não formatados, com o nome fornecido pelo utilizador e uma interface típica de acesso via SO. • É possível criar um sistema de ficheiros nesses volumes de armazenamento ou utiliza-‐los de qualquer outra forma. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS AMAZON ELASTIC BLOCK STORE (EBS) • São fornecidos Snapshots de modo a que os dados possam ser guardados incrementalmente. • Deste modo é garantida a performance tanto do backup como do restore. • Em termos de preço a Amazon fornece um pay-‐per-‐use similar ao EC2 e S3. • A cobrança é efetuada com base na quantidade de GB alocados, com um preço a rondar os $0.10 por GB/mês. • O EBS cobra ainda $0.10 por 1 milhão de pedidos I/O efetuados sobre o volume. • Em clouds OpenSource existe um equivalente ao EBS, nomeadamente o Nimbus. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS SIMPLEDB • O SimpleDB fornece um modelo de dados simplificado baseado em modelos de bases de dados relacionais. • Os dados estruturados devem ser organizados em domínios. • Cada domínio pode ser considerado uma tabela. • Os items são as linhas da tabela. • Uma célula na tabela é reconhecida como o valor de um atributo específico (nome da coluna) na linha correspondente. • Ou seja, isto é semelhante a uma tabela numa base de dados relacional. • Porém, é possível atribuir mais do que um valor a cada célula da tabela. • Tal não é permitido numa base de dados relacional tradicional, uma vez que se prevalece a consistência dos dados. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AWS SIMPLEDB • Muitos developers simplesmente querem rapidamente guardar, aceder e pesquisar dados guardados. • SimpleDB remove o requisito em manter esquemas de bases de dados com forte consistência. • SimpleDB custo $0.140 por SimpleDB/hora, com as primeiros 25 horas/mês grátis. • SimpleDB, tal como o Azure Table, pode ser chamado de “LittleTable”, uma vez que são desenhadas para lidar com pequenas quantidades de dados. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE • Em 2008 a Microsoft lança a plataforma Windows Azure para apanhar o comboio da Could. • O Azure foi desenvolvido sobre os centros de dados da Microsoft, com recurso às tecnologias da mesma, Windows OS e Hyper-‐v. • As aplicações são instaladas em VMs que são implantadas nos centros de dados. • O Azure gere todos os servidores, armazenamento e recursos de rede dos centros de dados. • No topo de toda a infraestrutura existem uma série, crescente, de serviços disponibilizados. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE • O Azure assenta na seguinte plataforma de serviços RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE • A plataforma Azure fornece uma serie de serviços ao nível da cloud, entre os quais: • Live service • .NET service • SQL Azure • Sharepoint service • Dynamic CRM service • Os utilizadores podem ou não utilizar estes serviços, ou seja, as suas aplicações podem assentar nestes ou diretamente no Windows Azure. • A platforma Azure fornece estes serviços tanto em REST como em SOAP RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE • Na imagem que se segue esse modelo é detalhado, incluindo o SQLAzure e os subsistemas de armazenamento e programação. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE • Focando no essencial, podemos verificar que primeiro temos o Azure fabric, que consiste no hardware virtualizado juntamente com um avançado ambiente de controlo que implementa a alocação dinâmica de recursos e tolerância a falhas. • O Fabric implementa ainda DNS e capacidades de monitorização para os recursos suportados. • Quando o sistema está em execução, os serviços são monitorizados, permitindo a consulta de logos de eventos, dados de debug, contadores de performance, logos do IIS, crash dumps entre outros logs. • Essa informação pode ser guardada no próprio Azure. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE • As propriedades básicas do Azure podem ser divididas entre armazenamento e computação. • O Azure está ligado à Internet através de VMs customizadas, chamadas web role, que suportam as propriedades base do web hosting Microsoft. • Para além dessas VMs existem outras máquinas de suporte que não têm capacidade de web server e servem somente para processamento de trabalhos. A estas denomina-‐se de worker role. • A comunicação com os roles é realizada via HTTP(S) e TCP. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE • Os roles oferecem os seguintes métodos: • OnStart() – é chamado pelo fabric no arranque, permitindo executar tarefas de inicialização. • OnStop() – é invocado quando o role está a ser desligado. • Run() – contem a lógica principal do role. • Os roles podem ser balanceados consoante a carga. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE SQLAZURE • O Azure oferece soluções de armazenamento bastante interessantes e diversas, como podemos verificar na figura anterior. • O AzureSQL oferece SQL Server as a Service, com todos os métodos acessíveis via interfaces REST. • Para além desses métodos, implementa um sistema semelhante ao Amazon EBS denominado Drives. • As interfaces REST são automaticamente associadas a URLs e todo o armazenamento é replicado três vezes para garantir tolerância a falhas e consistência no acesso. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE SQLAZURE • O sistema de armazenamento básico é construído por blobs (binary large object) o que o torna análogo ao S3 da Amazon. • Os Blobs são organizados numa hierarquia a três níveis: • Account -‐> Containers -‐> Page or Block Blobs • Os containers são análogos às diretorias dos sistemas tradicionais, com o account a funcionar como a raiz. • O Block Blob é utilizado para o streaming de dados, com cada blob constituído por sequências de blocos de 4 MB cada e identificadores de 64 bytes. • Os Block Blob podem chegar aos 200 GB. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE SQLAZURE • Page blobs são utilizados para leituras e escritas aleatórias e consistem num array de páginas com um blob máximo de 1 TB. • As mesmas podem associar metadados aos blobs, com pares <nome, valor>, ocupando 8 KB por blob. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE TABLES • A Azure Table and Queue são modos de armazenamento desenhados para pequenas quantidades de dados. • As Queues fornecem entrega de mensagens com fiabilidade e são naturalmente utilizadas para suportar a comunicação entre os web roles e os worker roles. • As Queues consistem num número de mensagens ilimitado que podem ser obtidas e processadas pelo menos uma vez, com um limite de 8KB por mensagem. • O Azure suporta PUT, GET e DELETE para operações sobre mensagens. • E ainda CREATE e DELETE para operações sobre Queues. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE TABLES • Cada conta pode conter qualquer número de Azure tables que consistem em linhas chamadas entidades e colunas chamadas propriedades. • Não existe limite para o número de entidades de uma tabela e a tecnologia é desenhada para escalar bem perante grandes números de entidades. • Cada entidade pode ter até 255 propriedades definidas por <name, type, value>. • Uma entidade só pode conter no máximo 1 MB. Se for necessário maior volume, colocasse um link para um blob. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A OUTLINE • SUPORTE À PROGRAMAÇÃO EM AWS • • • • • • A PLATAFORMA AWS AMAZON ELASTIC COMPUTE CLOUD (EC2) AMAZON SIMPLE STORAGE SERVICE (S3) AMAZON ELASTIC BLOCK STORE (EBS) SIMPLEDB SUPORTE À PROGRAMAÇÃO EM AZURE • • • • A PLATAFORMA AZURE SQLAZURE AZURE TABLES AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK • O Azure permite ainda a integração das aplicações cloud com outras plataformas ou clouds. • É possível executar uma versão local do Azure e desenvolver para o mesmo utilizando o Azure SDK. • O Azure SDK permite que as aplicações Azure sejam desenvolvidas e depuradas em máquinas Windows. • TL3 -‐ http://azure.microsoft.com/en-‐us/downloads/ RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK ENUNCIADO DO TL3 • A empresa AAS Rulez, SA pretende migrar a sua aplicação BatalhaNaval do serviço PaaS da Google para o serviço PaaS da Microsoft. • Desse modo, serão necessárias uma série de ações base, nomeadamente: • A criação de uma nova Web App no Azure para implantar a aplicação Python a importar. • A criação de uma conta Git para controlo da implantação da Web App a importar e respetiva associação da mesma ao Azure. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK ENUNCIADO DO TL3 • A construção de uma App “Hello World” em Python, implantada via Git, para testar o ambiente. • A importação da aplicação em Python BatalhaNaval, desenvolvida no TL2, para a plataforma Azure, substituindo o “Hello World”, do ponto anterior. • A migração deverá ser desenvolvida por grupos de 2 ou 3 colaboradores e completada até dia 20 de Maio. • O delivery manager deverá entregar o projeto do Git, o link público do Azure (xxxx.azurewebsites.net) e o relatório. Neste último, deve ser salientado, entre outros, as dificuldades encontradas na migração da App. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK ENUNCIADO DO TL3 RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK ENUNCIADO DO TL3 RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK ENUNCIADO DO TL3 RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK • A implementação para python do Azure SDK, tal como o GAE, baseia-‐se no WSGI, definido no pep-‐333 https://www.python.org/dev/peps/pep-‐0333/ • Resumidamente, uma aplicação WSGI exige objetos python, ou seja, funções ou classes com um método __call__ que recebe dois argumentos: um ambiente WSGI e uma função para iniciar a resposta. • A aplicação tem de iniciar a resposta utilizando a função fornecida e devolve um objeto iterável onde cada item yielded significa escrita e flushing. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE APP.py AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK • Adicionalmente ao main é necessário um web.config, tal como no IIS • Denotar que neste web.config é definida uma key para o handler WSGI. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE VIRTUAL ENVIRONMENT PROXY AZURE SDK Este script é utilizado para obter o handler WSGI, ativar o ambiente virtual e os logos de erros. O mesmo foi desenhado para ser genérico e não deve ser modificado. RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK RICARDO MENDAO SILVA RMSILVA AT UAL DOT PT A S A SUPORTE À PROGRAMAÇÃO EM AZURE AZURE SDK • Criados os ficheiros anteriormente apresentados, pode ser ainda incluido os ficheiros: • requirements.txt – define qualquer requisito extra, como por exemplo a versão minima do azure. • runtime.txt – define o ambiente python-‐2.7 ou 3.4 • Uma vez criados, os ficheiros devem ser enviados via git (command line), para o Azure, utilizando os comandos fornecidos no momento da criação da web app. • Ex: • • • • git init git add . git commit -‐m ”another bug” git push azure master A S A THE CUTTING EDGE COURSE RMSILVA AT UAL DOT PT CAPÍTULO 4 & 6: HWANG K, DONGARRA J., GEOFFREY F., Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Morgan Kauffman, 2011