June, 2010

Posts
  • Windows Azure e SQL Azure - Blog do Condé

    Condé Demo – Usando as APIs PutBlock/PutBlockList para uploads em um Blob

    • 0 Comments

    Boa tarde a todos !

    A “Condé Demo” de hoje foi fruto de uma reunião de arquitetura com um ISV que desenvolveu um produto para marketing promocional de campo. Basicamente, o produto consiste de registrar através de vídeos/fotos ações de marketing de guerrilha dentro de bares/resturantes. Você sabe quando aquela modelo vai até a sua mesa de bar oferecer aquela garrafa de uísque com desconto “imperdível” ? Bem isto é uma ação de marketing de guerrilha.

    A motivação para a “Condé Demo”

    Este produto foi desenvolvido sobre o Azure, com intuito de hospedar os vídeos/fotos registrados em uma ação de marketing, além é claro da aplicação de visualização de vídeos/fotos. Basicamente o fluxo de publicação, utilizando o Azure, segue o exemplo abaixo:

     

    image

    Esta abordagem é totalmente aceita, porém começaram a surgir alguns problemas na abordagem:

    • E se a conexão entre o celular e a webrole cai no meio de um upload ?
    • Como enviar múltiplas vídeos/fotos ao mesmo tempo e garantir que chegam até o Blob?
    • Como fazer upload a partir de celulares que tem browsers limitados?

    Assim, após a reunião com o time de desenvolvimento, dicustimos algumas sugestões para otimizar o processo de upload, e chegamos juntos as seguintes :

    • Realizar o upload direto do celular para o Blob através das APIs REST que a Microsoft disponibilizou.
    • Através das APIs PutBlock e PutBlockList, a aplicação do celular pode fazer o upload através de blocos. Com isto se a rede de telefonia, por alguma razão ficasse indisponível, a aplicação poderia retornar o upload a partir do ponto exato.
    • Para os celulares que não rodam .NET Framework, poderiam trabalhar com Shared Signatures, afim de promover a interoperabilidade.

    O resultado da nova arquitetura ficou assim:

    image

    Condé Demo

    Achei interessante registrar passo-a-passo como utilizar o recurso de PutBlock/PutBlockList dentro de uma demonstração. Para baixar o código-fonte desta demonstração, basta acessar o link: http://cid-9937d7265a1b7578.office.live.com/self.aspx/.Public/CondeDemoPutBlockPutBlockList/t201006131218.zip

    Get Microsoft Silverlight

    abs e T+
    Condé

    versão 1.3

  • Windows Azure e SQL Azure - Blog do Condé

    Condé Demo – Construindo uma solução auto-escalável dentro do Windows Azure

    • 1 Comments

    · Boa noite a todos !

    Esta “Condé Demo” é a mais antiga que já publiquei no Channel9. Ela foi concebida para o evento S+S Day de Dezembro de 2010, apesar dos 6 meses de idade, continua muito atual. Em algumas reuniões com parceiros e start-ups uma das perguntas que surgem é “O Windows Azure suporta auto-escalabilidade ?”, a primeira resposta é não. Então, é neste momento que surge a expressão de interrogação, “Como assim? Não estamos falando de computação elástica?”, bem primeiramente é necessário esclarecer que a capacidade computação elástica refere-se a possibilidade crescer ou encolher o uso de poder de processamento e armazenamento no Azure. Já quando falamos sobre auto-escalabilidade, na realidade é a existência de uma a inteligência em reconher um padrão de comportamento de uma aplicação, e assim baseado em conjunto de thresholds/SLAs/Notificações, esta inteligência deve incrementar ou encolher o consumo de recursos da aplicação. 

    Bem, pode-se notar que determinar qual comportamento padrão e os quais os thredsholds são medidas estritamente ligadas à aplicação e não a uma plataforma de serviços. Mas nem tudo são problemas, através de um conjunto de recursos do Azure é plenamente possível a construção de aplicação que suporte auto-escalabilidade.

    Em novembro de 2009, em um bate-papo com o Arquiteto-Chefe Otavio Pecego, ele lançou o desafio de apresentarmos no S+S Day uma solução que suportaria auto-escalabilidade. O desafio foi aceito e concluído com sucesso.

    Teoria do Controle

    A inspiração para a construção da aplicação de auto-escalabilidade veio da Teoria de Controle da Mecânica . Para entender esta teoria, vamos a um exemplo comum, “Como manter a velocidade constante de um veículo, independente da carga que ele transporta?”; agora imagine como construir um mecanismo para responder à esta pergunta. Para que este motor possa manter a sua velocidade é necessário que uma inteligência esteja continuamente analisando os fatores externos (condição da estrada, resistência do evento, peso atual do veículo), e uma vez tendo estes fatores externos esta inteligência pode enviar comandos aumentar ou reduzir a aceleração do veículo.

    Na imagem abaixo, você pode ver o desenho padrão da Teoria do Controle. Nela estão presentes alguns aspectos importantes, são eles:

    o Processo: Entidade que recebe os comandos do Controlador e executa as ações

    o Controlador: Entidade que compara o valor desejado (SP) com o valor do processo (PV) e determina com base em um algoritmo qual é o valor de correção que o Processo deve executar para aproximar do valor desejado (SP).

    o Feedback: Conjunto de dados que o controlador utilizará para medir o quanto deve incrementar ou reduzir o valor do processo (PV), baseado na relação Valor Desejado (SP)  X Valor do Processo (PV).

    clip_image001

    Patterns

    Aplicando a Teoria do Controle dentro de uma solução para cloud computing, podemos ver dois patterns interessantes que podemos ver. O primeiro pattern chama-se “Scale Unit”, podemos defini-lo como a quantidade de recursos que uma aplicação consome para atender uma demanda definida. Um exemplo deste pattern seria definirmos, por exemplo, que uma aplicação para atender 250 usuários simultaneamente ela precisasse de 1 WebRole e 1 WorkerRole.

    clip_image002

    Já o segundo pattern é o “Heart Beat”, este pattern funciona como uma coleta contínua de dados estatísticos das Roles/Scale Units, e assim baseando em threshold, o mecanismo de Controle envia comandos de incremento ou decremento no número de Scale Units que a aplicação vem consumindo ao longo da sua execução.

    clip_image003

    E uma vez o “Heart Beat Service” detecte alguma anomalia no desempenho da aplicação, ele envia para a aplicação o comando de incrementar o número de “Scale Units” e assim consegue manter o desempenho esperado.

    Arquitetura da Demonstração

    Uma vez conhecendo o modelo e os patterns apresentados, chegou o momento de vermos qual é a arquitetura da aplicação apresentada na demonstração. O propósito da aplicação é realizar cálculos de números fatoriais que são submetidos para uma fila do Windows Azure Storage. Uma vez estes números são submetidos para uma fila, um WorkerRole captura estes números, calcula e escreve dentro uma table.

    Além disso, uma aplicação de monitoramento (isolada do ambiente Azure) comporta como “Heart Beat”, coletando continuamente o número de itens pendentes na fila. E se o número de itens pendentes ficar acima do threshold, a aplicação de acompanhamento envia uma requisição de incremento do número de WorkerRoles. E vice-versa, e o número de itens ficar abaixo do threshold, ela solicita que reduza o número de WorkRoles.

    clip_image004

    Código-fonte e documentos

    Conteúdo

    Link

    Observações

    Pré-requisitos para a produção

    Código-fonte para a aplicação a ser hospedada no Azure

     

    Esta solução foi desenvolvida em cima do Visual Studio 2010 Ultimate

    Verifique o arquivo Readme.txt para saber onde deve fazer as modificações abaixo

    Projeto SetupAzureStorage

    1. Configurar dentro do app.config as chaves “AzureStorage” e “AzureKey” com os valores para acessar o Windows Azure Storage
    2. Executar a aplicação e pedir para criar a fila e a tabela dentro do Windows Azure Storage

    Projeto SPSDayDemoAutoScaling01

    1. Configurar no arquivo serviceconfiguration.csfg os valores para “DataConnectionString” e “DiagnosticsConnectionString” com os valores do Windows Azure Storage

    Código-fonte da aplicação de monitoramento.

     

    Esta solução foi desenvolvida em cima do Visual Studio 2008 VSTS

    Em alguns casos, pode ocorrer falha de rede na execução do aplicativo, sugiro aumentar o tempo de atualização do gráfico.

    Verifique o arquivo Readme.txt para saber onde deve fazer as modificações abaixo

    Projeto SPSDayDemoAutoScaling01Health

    1. Configurar dentro do app.config as chaves “AzureStorage” e “AzureKey” com os valores para acessar o Windows Azure Storage
    2. Configurar a chave “CertificateFilename” dentro do app.config o caminho do arquivo de certificado (extensão .CER).
    3. Ter um certificado válido (Self-signed certificate é suficiente) registrado localmente na máquina e também dentro do Azure Portal
    4. Configurar dentro do app.config a chave  “SubscriptionID” com o SubscriptionID que está dentro da parte Account do Azure Portal

     Condé Demo

    Abaixo tem o vídeo do Channel 9, se quiser ver mais vídeos entre em http://channel9.msdn.com/niners/luconde

    Get Microsoft Silverlight

    abs e T+
    Condé

    versão 1.3

  • Windows Azure e SQL Azure - Blog do Condé

    Condé Demo - Demonstração de como criar, consumir e hospedar serviços WCF no Windows Azure

    • 0 Comments

    Boa noite a todos !

    Mais uma “Condé Demo” publicada, nesta edição procuro demonstrar os principais passos e as preocupações na construção e hospedagem de serviços WCF dentro do Windows Azure.  Os passos reproduzidos nesta demonstração são:

    1. Quais são os requisitos para criar um serviço WCF
    2. Como criar o serviço WCF no Visual Studio 2010
    3. Como consumir o serviço WCF que está rodando no Development Fabric
    4. Quais as dicas importantes para configurar o serviço WCF dentro do Windows Azure
    5. Como publicar o serviço WCF dentro do Windows Azure

    Abaixo tem o vídeo do Channel 9, se quiser ver mais vídeos entre em http://channel9.msdn.com/niners/luconde

    Get Microsoft Silverlight

    abs e T+
    Condé

    versão 1.2

  • Windows Azure e SQL Azure - Blog do Condé

    Condé Demo – Vídeos do Condé demonstrando uso de algumas tecnologias Microsoft – Criar, testar e publicar uma aplicação no Windows Azure

    • 1 Comments

    Boa tarde a todos !

    Durante a minha trajetória de últimos 2 anos na Microsoft, venho trabalhando com ISVs (Independent Software Vendor) e mais recentemente adotei as Start-ups também (A Silvia Valadares é nossa gerente do programa de Start-ups da Microsoft e até fez um post sobre esta nossa parceria). E assim o meu trabalho se resume no aconselhamento de arquitetura e na adoção de tecnologias, e com este tom procuro sempre que possível ser imparcial, destacando a melhor solução que case as necessidades levantadas com as opções tecnológicas disponíveis. Este público variado que vai de empreededores, desenvolvedores, líderes de projeto, arquitetos de software, arquitetos de soluções e até mesmo donos de empresa, geraram várias perguntas em diversas tecnologias com as mais diversas aplicações. Baseado nestas perguntas, decidi abrir um espaço próprio no Channel 9.

    O meu espaço no Channel 9 está apelidado de “Condé Demo”. O “Condé Demo” reúne vídeos com demonstração de como usar alguma tecnologia em algum cenário específico, sempre que possível trazendo um campo prático a adoção de patterns. Hoje, já tenho cerca de 3 vídeos, e acredito que até o final de junho deva existir pelo mais mais uns 4 vídeos.

    Abaixo temos um vídeo campeão de bilhetaria sobre como criar, testar e publicar uma aplicação no Windows Azure. Caso tenha alguma sugestão do vídeo, deixe o seu comentário (incluindo o seu e-mail também) que tão logo seja possível, faço um especificamente.

    Get Microsoft Silverlight

    abs e T+
    Condé

    versão 1.0

  • Windows Azure e SQL Azure - Blog do Condé

    Anúncio – Preços do Windows Azure CDN já disponíveis

    • 0 Comments

    Boa noite a todos !

    Grandes empresas como Microsoft, Yahoo, Google, Amazon, Facebook e outras que tem seus sites massivamente acessados sofrem do problema de latência entre o seu browser e o conteúdo disponível. O CDN (Content Delivery Network) é uma maneira de atacar este problema, Basicamente, o CDN consiste na criação de várias cópias de um conteúdo e que estão espalhadas em diversos servidores ao redor do mundo, com isto reduz o tempo de transferência entre o browser do usuário e o servidor com o conteúdo.

    No PDC 2009, a Microsoft anunciou o Windows Azure CDN em fase CTP. O Windows Azure CDN é voltado especificamente para blobs. Desta maneira, permitiu que cópias de blobs fossem distribuídas em centrais ao redor do mundo (Hoje o Windows Azure CDN tem 19 localizações globais – Estados Unidos, Europa, Asia, Australia e América do Sul).

    Recentemente, o time do Windows Azure anunciou os preços do uso do CDN. O processo de cobrança segue as seguintes regras:

    • $0.15 por GB para transferências entre Europa e América do Norte
    • $0.20 por GB para transferências a partir de outras regiões
    • $0.01 por 10.000 transações

    Importante destacar que os preços do Windows Azure CDN não incluem as cobranças realizadas para as transferências entre o Windows Azure CDN e o Windows Azure Storage. Neste caso, o processo de cobrança segue as mesmas regras do acesso e transferência feitos em cima do Windows Azure Storage.

    Para saber mais, veja no anúncio do CTP do Windows Azure CDN e no post sobre preços do Windows Azure CDN.

    Por final, a cobrança pelo o uso do Windows Azure CDN começará em depois de 30 de julho de 2010.

    abs e T+
    Condé

    versão 1.2

Page 1 of 1 (5 items)