<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Arquitetura em Pauta</title><link>http://blogs.msdn.com/b/otavio/</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.17018 (Build: 5.6.583.17018)</generator><item><title>Dicas sobre o AppFabric</title><link>http://blogs.msdn.com/b/otavio/archive/2011/07/01/dicas-sobre-o-appfabric.aspx</link><pubDate>Fri, 01 Jul 2011 16:08:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10182407</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10182407</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/07/01/dicas-sobre-o-appfabric.aspx#comments</comments><description>&lt;p&gt;Muita gente não deve conhecer o blog do time do &lt;i&gt;AppFabric Customer Advisory Team&lt;/i&gt; - mesmo os que já estudam e/ou trabalham com o Azure. Minha dica é: deem uma visitada, pois é um recurso valioso. O site original ficava em &lt;a href="http://blogs.msdn.com/b/appfabriccat/"&gt;http://blogs.msdn.com/b/appfabriccat/&lt;/a&gt;, mas depois mudou para o site &lt;a href="http://appfabriccat.com"&gt;http://appfabriccat.com&lt;/a&gt; (nem todos os artigos foram transferidos para o novo site, por isto vale a pena conhecer os dois links). &lt;/p&gt;  &lt;p&gt;Com vários textos relativos ao AppFabric (tanto do Windows Server AppFabric quanto do Azure AppFabric), eles trazem verdadeiras joias. Três exemplos:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Lá encontrei o artigo “&lt;a href="http://blogs.msdn.com/b/appfabriccat/archive/2010/09/30/implementing-reliable-inter-role-communication-using-windows-azure-appfabric-service-bus-observer-pattern-amp-parallel-linq.aspx"&gt;Implementing Reliable Inter-Role Communication Using Windows Azure AppFabric Service Bus, Observer Pattern &amp;amp; Parallel LINQ&lt;/a&gt;” que mostra como utilizar o AppFabric Service Bus numa comunicação do tipo MapReduce (ver figura). A principal vantagem é o uso da comunicação multicast com o pattern publish/subscriber, que torna mais simples e escalável a arquitetura. A figura abaixo dá um gostinho... &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/7077.image_5F00_33317683.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/8156.image_5F00_thumb_5F00_6A1B2EEF.png" width="505" height="240" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Outro artigo valioso que complementa o artigo anterior é o “&lt;a href="http://blogs.msdn.com/b/appfabriccat/archive/2010/12/20/best-practices-for-maximizing-scalability-and-cost-effectiveness-of-queue-based-messaging-solutions-on-windows-azure.aspx"&gt;Best Practices for Maximizing Scalability and Cost Effectiveness of Queue-Based Messaging Solutions on Windows Azure&lt;/a&gt;”. Além de melhores práticas, o artigo mostra um conjunto de códigos exemplares. &lt;/li&gt;    &lt;li&gt;Um último exemplo é o artigo “&lt;a href="http://appfabriccat.com/2011/05/azure-appfabric-cache-common-reference-data-scenario/"&gt;Azure AppFabric Cache – Common Reference Data Scenario&lt;/a&gt;” que mostra como podemos colocar objetos do Entity Framework no AppFabric Cache. Curto, direto e útil. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Mais uma dica sobre a tecnologia do AppFabric: a versão CTP do &lt;a href="http://www.microsoft.com/windowsazure/AppFabric/Overview/"&gt;AppFabric Composite Application já está no ar&lt;/a&gt;. Esta tecnologia sobe em um nível a facilidade de criar um aplicativo real - na nuvem ou on-premises. Recomento MUITO assistirem &lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/COS311"&gt;esta apresentação&lt;/a&gt; do TechEd americano para que vocês possam compreender o caminho que a Microsoft vai seguir em breve para a hospedagem e composição de aplicativos. Se tudo der certo, em um ano estaremos falando menos de Work Roles ou Web Roles e mais de aplicativos compostos, automaticamente elásticos, capazes de compartilhar uma mesma infraestrutura com outros serviços devido à estrutura de hospedagem baseada em sandboxes (leia AppFabric Container). Quase um drag-and-drop para SOA!?&lt;/p&gt;  &lt;p&gt;Quem viver verá!&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10182407" width="1" height="1"&gt;</description></item><item><title>Windows Azure Jump Start</title><link>http://blogs.msdn.com/b/otavio/archive/2011/06/16/windows-azure-jump-start.aspx</link><pubDate>Thu, 16 Jun 2011 11:55:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10175254</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10175254</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/06/16/windows-azure-jump-start.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Este material já foi publicado há tempo, mas como tem gente me pedindo mais material de Azure, aqui vai uma série de vídeos (em inglês) interessante:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-01-Windows-Azure-Overview"&gt;Session 01: Windows Azure Overview&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-02-Introduction-to-Compute"&gt;Session 02: Introduction to Compute&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-03-Windows-Azure-Lifecycle-Part-1"&gt;Session 03: Windows Azure Lifecycle, Part 1&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-04-Windows-Azure-Lifecycle-Part-2"&gt;Session 04: Windows Azure Lifecycle, Part 2&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-05-Windows-Azure-Storage-Part-1"&gt;Session 05: Windows Azure Storage, Part 1&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-06-Windows-Azure-Storage-Part-2"&gt;Session 06: Windows Azure Storage, Part 2&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-07-Introduction-to-SQL-Azure"&gt;Session 07: Introduction to SQL Azure&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-08-Windows-Azure-Diagnostics"&gt;Session 08: Windows Azure Diagnostics&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-09-Windows-Azure-Security-Part-1"&gt;Session 09: Windows Azure Security, Part 1&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-10-Windows-Azure-Security-Part-2"&gt;Session 10: Windows Azure Security, Part 2&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-11-Scalability-Caching--Elasticity-Part"&gt;Session 11: Scalability, Caching &amp;amp; Elasticity, Part 1&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-12-Scalability-Caching--Elasticity-Part-2-and-QA"&gt;Session 12: Scalability, Caching &amp;amp; Elasticity, Part 2, and Q&amp;amp;A&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bom treinamento.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10175254" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Oportunidade: Workshop “Cloud Computing” de 13 a 15 de Junho</title><link>http://blogs.msdn.com/b/otavio/archive/2011/06/09/oportunidade-workshop-cloud-computing-de-13-a-15-de-junho.aspx</link><pubDate>Thu, 09 Jun 2011 12:01:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10172885</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10172885</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/06/09/oportunidade-workshop-cloud-computing-de-13-a-15-de-junho.aspx#comments</comments><description>&lt;p&gt;Quem está atento ao tema não deve perder a oportunidade de participar deste evento sobre Cloud Computing. Ele vai falar sobre tendências em Cloud Computing como: Segurança, Interoperabilidade e Padrões, Aspectos Econômicos da Nuvem, Privacidade e Soberania de Dados.&lt;/p&gt;  &lt;p&gt;Ele será feito no formato de Workshop e, embora o site indique que o público-alvo é o setor público, o evento é, de fato, aberto a todos interessados&lt;/p&gt;  &lt;p&gt;Uma ótima oportunidade.&lt;/p&gt;  &lt;p&gt;Saiba mais neste link: &lt;a href="http://consultoriaprofuturo.com/htmls/wks-cloud/index.html"&gt;http://consultoriaprofuturo.com/htmls/wks-cloud/index.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/4572.clip_5F00_image001_5F00_65AD6141.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/4670.clip_5F00_image001_5F00_thumb_5F00_1C3B0C86.jpg" width="493" height="102" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10172885" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/cloud+computing/">cloud computing</category></item><item><title>SQL Azure Learning Series</title><link>http://blogs.msdn.com/b/otavio/archive/2011/05/26/sql-azure-learning-series.aspx</link><pubDate>Thu, 26 May 2011 13:57:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10168658</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10168658</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/05/26/sql-azure-learning-series.aspx#comments</comments><description>&lt;p&gt;Saiu há pouco e creio que vale divulgar. Uma série de videos pequenos que falam do uso do SQL Azure (ainda em inglês).&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/c48654fd-4b7f-4882-85d3-cb63c8e7e2ff"&gt;&lt;b&gt;Getting Started&lt;/b&gt;: SQL Azure at a Glance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/d57da5a6-1501-4422-a819-db314e84e63a"&gt;&lt;b&gt;Getting Started&lt;/b&gt;: Basic Architectural Considerations with SQL Azure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/US/details/1bd6bcb1-87c8-4f77-8425-2624a5f96976"&gt;&lt;b&gt;Getting Started&lt;/b&gt;: Creating an Account and Your SQL Azure Database&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/US/details/ef5114b7-e497-45c5-a59a-b54bf397834b"&gt;&lt;b&gt;Getting Started&lt;/b&gt;: Interacting with SQL Azure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/US/details/09aa4f10-333a-4c98-aed1-4cb300de63ec"&gt;&lt;b&gt;Getting Started&lt;/b&gt;: SQL Azure Pricing Explained&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/ee1b1972-175b-435b-88eb-2ab737d5cea0"&gt;&lt;b&gt;Administration&lt;/b&gt;: Securing SQL Azure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/US/details/a39ddb0d-61ff-49ab-b5e5-c1fad9963a3e"&gt;&lt;b&gt;Migration &amp;amp; Synchronization&lt;/b&gt;: Migrating from Access to SQL Azure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/US/details/ac10774f-c127-4689-8068-7fac9f08ef6e"&gt;&lt;b&gt;Migration &amp;amp; Synchronization&lt;/b&gt;: Migration of an On-Premises DB to SQL Azure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/bdf8abf1-2d4d-4e15-9192-107965b8432d"&gt;&lt;b&gt;Migration and Synchronization&lt;/b&gt;: SQL Azure Data Sync&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/US/details/a5dcd1a9-acc4-43c6-9c50-c60dcdb060c4"&gt;&lt;b&gt;Programming&lt;/b&gt;: Working with SQL Azure using .NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/063dcd81-ecaf-4ca0-be0a-2befb8581ebf"&gt;Programming: Creating LOB Applications with SQL Azure with Visual Studio LightSwitch&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/083d55f4-c0d4-4309-8996-49d63ce14c60"&gt;&lt;b&gt;Programming&lt;/b&gt;: Extending SQL Azure to Microsoft Applications&lt;/a&gt; (Windows Phone) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/90a64b23-10d0-400e-b0f7-a727fc940594"&gt;&lt;b&gt;Programming&lt;/b&gt;: Extending SQL Azure Data to Mobile and Heterogeneous Platforms&lt;/a&gt; (Android) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/4b811bbb-3d9b-4a2f-9187-1cb06e175bc3"&gt;&lt;b&gt;BI&lt;/b&gt;: Business Intelligence with Cloud Data&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/showcase/en/us/details/dfb1ac98-ab80-4f8f-ab8e-89e6bfdb02a7"&gt;&lt;b&gt;BI&lt;/b&gt;: Advanced Business Intelligence with Cloud Data&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Outra dica: &lt;a href="http://blogs.msdn.com/b/conde/archive/2011/05/22/como-instalar-o-php-no-windows-azure.aspx"&gt;o post do Condé&lt;/a&gt; com o passo a passo para subir uma aplicação PHP no Azure.&lt;/p&gt;  &lt;p&gt;Em português, temos já algum videos legendados pelo pessoal do Msdn Brasil em &lt;a href="http://msdn.microsoft.com/pt-br/ff380142.aspx"&gt;http://msdn.microsoft.com/pt-br/ff380142.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10168658" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Hadoop, Lucene e HPC no Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2011/05/21/hadoop-lucene-e-hpc-no-azure.aspx</link><pubDate>Sat, 21 May 2011 15:40:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10166998</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10166998</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/05/21/hadoop-lucene-e-hpc-no-azure.aspx#comments</comments><description>&lt;p&gt;Embora a maioria dos aplicativos que sobem no Azure hoje não precisem de MapReduce, é bom saber que podemos ter em mãos a qualquer momento a possibilidade de distribuir trabalho para várias máquinas que irão processar em paralelo alguma computação do nosso interesse (como cálculos de risco, buscas de texto, etc.).&lt;/p&gt;  &lt;p&gt;O MapReduce no Azure pode ser feito&lt;em&gt; na mão&lt;/em&gt;, via filas e Tables, ou através de frameworks existentes (aqui sugiro a leitura do artigo em &lt;a href="http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/"&gt;http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/&lt;/a&gt; ).&lt;/p&gt;  &lt;p&gt;Para quem gosta de frameworks prontos, tenho uma boa notícia: &lt;a href="http://blogs.msdn.com/b/mariok/"&gt;Mario Kosmikas&lt;/a&gt; está escrevendo posts sobre como usar o Haddop no Azure. &lt;a href="http://blogs.msdn.com/b/mariok/archive/2011/05/11/hadoop-in-azure.aspx"&gt;Veja aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Para quem não conhece, &lt;a href="http://en.wikipedia.org/wiki/Hadoop"&gt;o Hadoop é um framework da Apache&lt;/a&gt; que implementa o MapReduce e é muito usado pela comunidade que faz hoje processamento distribuído. Kosmikas mostra no seu post o passo a passo da sua instalação no Azure.&lt;/p&gt;  &lt;p&gt;Outro software livre interessante e utilizável hoje no Azure é o &lt;a href="http://en.wikipedia.org/wiki/Lucene"&gt;Lucene&lt;/a&gt;. Com ele, você pode coletar uma massa de dados grande e usá-lo para indexação e busca utilizando um array de máquinas no Azure. Para quem precisar, vá ao site &lt;a href="http://code.msdn.microsoft.com/AzureDirectory"&gt;http://code.msdn.microsoft.com/AzureDirectory&lt;/a&gt; , leia a documentação e baixe o código.&lt;/p&gt;  &lt;p&gt;Por fim, vale a pena também dar uma olhada em dois textos (&lt;a href="http://download.microsoft.com/download/4/5/C/45C520F4-424C-41CF-A115-E76A38ADB280/Windows_HPC_Server_and_Windows_Azure.docx"&gt;1&lt;/a&gt; e &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=acde41c6-153a-4181-912e-78024fcc86da"&gt;2&lt;/a&gt;) que mostram como estender a infraestrutura do Windows HPC com nós de computação do Azure. &lt;/p&gt;  &lt;p&gt;O Windows HPC permite criar uma array de computadores para a distribuição de Jobs que trabalham em paralelo. Ele usa um nó mestre (on-premises) que irá distribuir as tarefas para os nós trabalhadores. O que estes artigos mostram é o como podemos estender os nós de computação com o Azure. Isto é interessante porque permite a diminuição do nosso investimento em computadores locais para usar os da nuvem. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/2548.image_5F00_363338F7.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/1376.image_5F00_thumb_5F00_46D2E5F8.png" width="539" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como disse no início, nem todo software que sobe no Azure precisa de paralelismo intenso, mas é bom saber que já existe muita coisa pronta para quando precisarmos.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10166998" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Paralelismo/">Paralelismo</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/cloud+computing/">cloud computing</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/MapReduce/">MapReduce</category></item><item><title>Netflix + Azure Traffic Manager + Migração Access/MySQL para SQL Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2011/05/14/netflix-azure-traffic-manager-migra-231-227-o-access-mysql-para-sql-azure.aspx</link><pubDate>Sat, 14 May 2011 14:07:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10164498</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10164498</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/05/14/netflix-azure-traffic-manager-migra-231-227-o-access-mysql-para-sql-azure.aspx#comments</comments><description>&lt;p&gt;Para quem não soube, o serviço de nuvem da Amazon teve problemas no início do mês que atrapalhou boa parte dos seus usuários.&lt;/p&gt;  &lt;p&gt;Erros acontecem, e a Amazon descreve o que aconteceu neste link: &lt;a href="http://aws.amazon.com/message/65648/"&gt;http://aws.amazon.com/message/65648/&lt;/a&gt;. Até aqui, nada de tão interessante.&lt;/p&gt;  &lt;p&gt;No entanto, como resultado desta falha surgiram aprendizados. Dos que eu li, o texto mais interessante foi o da Netflix, que descreve o porquê o serviço da Netflix não sofreu muitos danos. O texto completo você pode &lt;a href="http://techblog.netflix.com/2011/04/lessons-netflix-learned-from-aws-outage.html"&gt;encontrar aqui&lt;/a&gt;, mas, aqui vai um resumo:&lt;/p&gt;  &lt;p&gt;Pontos relevantes da arquitetura Netflix:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1) Os serviços são stateless, isto é, por não armazenarem estados nos servidores a falha deles não é tão impactante para o usuário final;&lt;/p&gt;    &lt;p&gt;2) Os dados são armazenados em várias geografias, aumentando a disponibilidade através da “redundância”;&lt;/p&gt;    &lt;p&gt;3) O sistema foi projetado para falhar, usando princípios como:&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; a. “falhar rápido” com timeouts curtos que fazem os processos caírem se os tempos não forem obedecidos;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; b. “Recuo” (“fallback”): se uma funcionalidade não pode ser mostrada, outra de menor qualidade/funcionalidade pode entrar em ação e substituí-la;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c. “Remoção de funcionalidades”: se uma funcionalidade não é importante e há problemas de desempenho, ela pode ser desativada temporariamente;&lt;/p&gt;    &lt;p&gt;4) Redundância N+1: alocam-se sempre mais recursos do que necessário para uma reserva de capacidade;&lt;/p&gt;    &lt;p&gt;5) Uso de consistência eventual: nada de sistemas relacionais para armazenamento (veja mais &lt;a href="http://blogs.msdn.com/b/otavio/archive/2008/11/22/acid-x-base.aspx"&gt;neste post&lt;/a&gt;)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;É claro que estes direcionamentos de design são importantes apenas para quem precisa de alta disponibilidade para milhões de usuários. Sistemas com requisitos menores podem ser mais simples, usar bancos de dados relacionais, etc. Nem todo mundo precisa do SLA da Netflix.&lt;/p&gt;  &lt;p&gt;A boa notícia é que está cada vez mais fácil e barato usar critérios de design como os usados pela Netflix. A “Table” do Azure, por exemplo, já é elástica por natureza e deve ser usada levando em conta que oferece &lt;em&gt;consistência eventual&lt;/em&gt;. O provisionamento automático da computação é simples e pode ser feito usando sistemas como o System Center ou via uso de API’s de monitoração/gerenciamento.&lt;/p&gt;  &lt;p&gt;Uma boa novidade, que foi pouco falada até agora, é a chegada do Azure &lt;i&gt;Traffic Manager&lt;/i&gt; que está em CTP. Aqui vai a descrição &lt;a href="http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx"&gt;encontrada aqui&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Windows Azure Traffic Manager é um novo recurso que permite aos clientes balancear a carga do tráfego para múltiplos serviços hospedados. Os desenvolvedores podem escolher entre três métodos de balanceamento de carga: desempenho, “failover”, ou “Round Robin”. O Traffic Manager irá monitorar cada conjunto de serviços hospedados em qualquer porta HTTP ou HTTPS. Se ele detecta que o serviço está off-line, o Traffic Manager irá enviar o tráfego para o próximo melhor serviço disponível.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Isto implica em colocar o sistema e dados em datacenters distintos e contar com o Traffic Manager para distribuir a carga entre eles. Em caso de falha de um datacenter ou da comunicação com ele, a carga será direcionada para um dos datacenters alternativos. Cool!&lt;/p&gt;  &lt;p&gt;Já existe um laboratório disponível que trata só do Azure Traffic Manager no &lt;a href="http://www.microsoft.com/windowsazure/sdk/"&gt;SDK do Azure&lt;/a&gt;. Vale uma leitura e teste.&lt;/p&gt;  &lt;h2&gt;&amp;#160;&lt;/h2&gt;  &lt;h2&gt;Outras notícias: &lt;/h2&gt;  &lt;p&gt;Foram anunciados Toolkits para facilitar a chamada de serviços do Azure a partir de dispositivos com o iOS, o Windows Phone 7 e o Android (este ainda em desenvolvimento). Vale &lt;a href="http://blogs.msdn.com/b/somasegar/archive/2011/05/09/bringing-windows-azure-to-more-devices.aspx"&gt;conferir aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Já saíram duas versões do SSMA (SQL Server Migration Assistant) que tratam agora do SQL Azure: o &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5abe098d-c7e1-46c6-994a-09a2856eef0b"&gt;SSMA for Access&lt;/a&gt; e o &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=69739c8c-ac82-41de-b9e6-8fa5ae2594d9"&gt;SSMA for MySQL&lt;/a&gt;. Vale conferir.&lt;/p&gt;  &lt;p&gt;O Condé colocou no &lt;a href="http://blogs.msdn.com/b/conde/"&gt;seu último post&lt;/a&gt; mais novidades sobre o SQL Azure. Vale a leitura.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10164498" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/cloud+computing/">cloud computing</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Passo a Passo: Sudoku no Azure sem precisar ter o Visual Studio</title><link>http://blogs.msdn.com/b/otavio/archive/2011/05/05/passo-a-passo-sudoku-no-azure-sem-precisar-ter-o-visual-studio.aspx</link><pubDate>Thu, 05 May 2011 12:45:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10161335</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10161335</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/05/05/passo-a-passo-sudoku-no-azure-sem-precisar-ter-o-visual-studio.aspx#comments</comments><description>&lt;p&gt;Ontem tivemos um WebCast com perguntas e resposta sobre o Azure e o &lt;a href="http://blogs.msdn.com/b/rafaelgodinho/"&gt;Rafael Godinho&lt;/a&gt; mostrou como fazer um “Hello World” com o Visual Studio e subi-lo no Azure.&lt;/p&gt;  &lt;p&gt;Hoje eu queria mostrar uma maneira mais simples de testar o Azure que &lt;strong&gt;&lt;u&gt;não vai precisar do Visual Studio&lt;/u&gt;&lt;/strong&gt;. Basta ter uma conta (seja do Azure Introductory, MSDN ou Azure Pass) e você poderá subir um jogo de Sudoku na sua conta Azure.&lt;/p&gt;  &lt;p&gt;O jogo de Azure que você vai subir tem esta tela e ….&amp;#160; funciona! (dica: mas você pode depois pegar o código depois no codeplex e melhorá-lo – o código fonte está em &lt;a href="http://azuresudoku.codeplex.com"&gt;http://azuresudoku.codeplex.com&lt;/a&gt;.)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/4212.clip_5F00_image001_5F00_16127FB7.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/2630.clip_5F00_image001_5F00_thumb_5F00_5D57AFDC.png" width="272" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para ficar mais simples e não precisarmos do Visual Studio, eu já pré-compilei o programa e o deixei num arquivo pré-configurado para usar uma única cpu Extra Small. &lt;/p&gt;  &lt;p&gt;Portanto, você só precisa baixar para a sua máquina o arquivo “azuresudoku.zip” do meu SkyDrive e depois expandi-lo num diretório local. O endereço do SkyDrive que criei é o &lt;a title="http://cid-3679c227ea623bf5.skydrive.live.com/redir.aspx?resid=3679C227EA623BF5!4220" href="http://cid-3679c227ea623bf5.skydrive.live.com/redir.aspx?resid=3679C227EA623BF5!4220"&gt;http://cid-3679c227ea623bf5.skydrive.live.com/redir.aspx?resid=3679C227EA623BF5!4220&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Feito este passo zero, podemos ir para a console do Azure e fazer o passo a passo para coloca-lo no ar:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1º Passo:&lt;/strong&gt; Abra seu browser e vá para o &lt;a href="http://azure.com"&gt;http://azure.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2º Passo:&lt;/strong&gt; Clique no “&lt;em&gt;Sign in to the Management Portal&lt;/em&gt;”, como na figura abaixo. Isto vai te levar para a tela de sign in do Live e você deve entrar com seu LiveID e senha associados à sua conta do Azure (se não tiver uma conta, tente ainda um Azure Pass de acordo com &lt;a href="http://blogs.msdn.com/b/otavio/archive/2011/03/19/passcode-para-o-azure.aspx"&gt;este post&lt;/a&gt; – mas não garanto que você vai conseguir, pois estão chegando ao fim – corra!).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/2146.clip_5F00_image003_5F00_5F6488D8.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/8510.clip_5F00_image003_5F00_thumb_5F00_0FAB5D8F.jpg" width="562" height="92" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3º Passo:&lt;/strong&gt; Se você não tiver criado um “Hosted Server”, os passos para cria-los são simples: clique no botão de “Hosted Services” e depois no do “New Hosted Service”. Um Hosted Service é a unidade de hospedagem de máquinas para um serviço (farm de máquinas para páginas web, para serviços de background e outros, que ficam agrupados sobre uma única url).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/4784.clip_5F00_image005_5F00_600D3F02.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/6740.clip_5F00_image005_5F00_thumb_5F00_7994CC2F.jpg" width="555" height="330" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4º Passo:&lt;/strong&gt; É a hora de você cadastrar o nome do seu serviço, a sua url, dizer em que Datacenter você vai levantar o serviço, escolher o ambiente para hospedagem (sugiro o de produção), o nome do deployment (onde colocamos informações sobre versão, etc. Aqui, coloquei apenas um nome simples), e prepare-se para indicar os arquivos que vão subir (botões de número 4 e 5 na figura abaixo). Creio que a figura é esclarecedora. Lembre-se também que outros devem estar subindo este exemplo e que, eventualmente você vai ter que ser criativo com os nomes para que sejam únicos)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/2234.clip_5F00_image006_5F00_426B3E36.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/6332.clip_5F00_image006_5F00_thumb_5F00_3524B523.png" width="478" height="497" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5º Passo:&lt;/strong&gt; Clique no botão de Browse do Package Location e indique o arquivo “AzureSudoku.cspkg” que veio do arquivo que você unzipou do meu SkyDrive.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/5430.clip_5F00_image007_5F00_71F936F5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/3782.clip_5F00_image007_5F00_thumb_5F00_21D3D8B7.png" width="484" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6º Passo:&lt;/strong&gt; Clique no botão de Browse do Configuration File e indique o arquivo “AzureSudoku.cscfg” que veio do arquivo que você unzipou do meu SkyDrive.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/0143.clip_5F00_image008_5F00_5F148D7E.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/6406.clip_5F00_image008_5F00_thumb_5F00_23E0B1B3.png" width="484" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7º Passo:&lt;/strong&gt; Reveja se tudo está pronto e clique em Ok.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/7571.clip_5F00_image009_5F00_21577FF5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/8551.clip_5F00_image009_5F00_thumb_5F00_4608976C.png" width="461" height="496" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8º Passo:&lt;/strong&gt; Não se assuste com a mensagem que está aparecendo. Ela aparece porque defini para usar só uma máquina no meu arquivo de configuração. A mensagem diz que precisa de no mínimo 2 máquinas para garantir disponibilidade alta. O Azure pode fazer patches na Máquina Virtual remota e precisa de pelo menos 2 máquinas para sempre deixar pelo menos uma funcionando. Clique em Yes neste passo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/0143.clip_5F00_image010_5F00_750AD343.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/7558.clip_5F00_image010_5F00_thumb_5F00_2C70E472.png" width="461" height="231" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;9º Passo:&lt;/strong&gt; Agora você vai assistir ao upload do programa. Ele vai passar pelas fases de “Creating...”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/6153.clip_5F00_image012_5F00_2504FEF8.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/1205.clip_5F00_image012_5F00_thumb_5F00_07AFA72E.jpg" width="452" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;“Initializing...”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/1185.clip_5F00_image013_5F00_2D39248F.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/2350.clip_5F00_image013_5F00_thumb_5F00_04BA427B.png" width="455" height="228" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Até ficar pronto (“Ready”).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/4426.clip_5F00_image014_5F00_628236F4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/5315.clip_5F00_image014_5F00_thumb_5F00_1CFD36C9.png" width="457" height="170" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;10º Passo: Agora clique no link do seu site (veja na figura abaixo onde encontra-lo) e ...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/6560.clip_5F00_image015_5F00_5AAA1E85.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image015" border="0" alt="clip_image015" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/1108.clip_5F00_image015_5F00_thumb_5F00_7D1EAD40.png" width="444" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Boa diversão!!!&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;PS.: Para liberar o serviço basta “Parar” e “Deletar” este Deployment (veja abaixo). Isto é importante para parar a contabilização de uso de cpu no Azure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/4810.clip_5F00_image016_5F00_76F760A5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-90-16-metablogapi/6866.clip_5F00_image016_5F00_thumb_5F00_754694D1.png" width="435" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10161335" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Azure AppFabric Caching + NoSQL + LINQ + SQL</title><link>http://blogs.msdn.com/b/otavio/archive/2011/04/30/azure-appfabric-caching-nosql-linq-sql.aspx</link><pubDate>Sat, 30 Apr 2011 16:15:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10159749</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10159749</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/04/30/azure-appfabric-caching-nosql-linq-sql.aspx#comments</comments><description>&lt;p&gt;Boas novas: o Azure AppFabric Caching Service foi liberado para produção.&lt;/p&gt;  &lt;p&gt;Com isto, podemos agora alocar espaço em cache para ser compartilhado entre máquinas de um farm – tudo sem muito esforço.&lt;/p&gt;  &lt;p&gt;Para quem precisa de variáveis de sessão ou output caching do ASP.Net, por exemplo, o AppFabric Caching não vai exigir mudanças no programa - basta fazer uma pequena alteração no arquivo de configuração.&lt;/p&gt;  &lt;p&gt;Alguns links que podem interessar:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Post do grupo do Azure AppFabric: &lt;a href="http://blogs.msdn.com/b/windowsazureappfabric/archive/2011/04/28/windows-azure-appfabric-caching-service-released.aspx"&gt;Windows Azure AppFabric Caching Service Released!&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Video: &lt;a href="http://www.microsoft.com/showcase/en/us/details/51ca053c-1fa0-4be5-bc29-ad4b9ef370a9"&gt;Introduction to the Windows Azure AppFabric Cache&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Video: &lt;a href="http://www.microsoft.com/showcase/en/us/details/4102e06b-9b7a-4955-aff4-91f92856cd4c"&gt;Windows Azure AppFabric Caching – How to Set-up and Deploy a Simple Cache&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg602420.aspx#CACHING_FAQ"&gt;FAQ sobre o Windows Azure AppFabric no Msdn&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg278356.aspx"&gt;Documentação no MSDN&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Mudando de Caching para o debate NoSQL/SQL.&lt;/p&gt;  &lt;p&gt;Erik Meijer e Gavin Bierman escreveram &lt;a href="http://queue.acm.org/detail.cfm?id=1961297"&gt;um artigo em Março&lt;/a&gt; falando da característica de cada linha: SQL e NoSQL. O interessante do artigo é que:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Ele é simples e legível (para quem navega no inglês)&lt;/p&gt;    &lt;p&gt;2. Ele apresenta bem a impedância entre o modelo relacional e o orientado a objetos (explicando a necessidade de um ORM como o Hibernate ou o Entity Framework)&lt;/p&gt;    &lt;p&gt;3. Ele trata do problema ACID X BASE (que tratei a tempos &lt;a href="http://blogs.msdn.com/b/otavio/archive/2008/11/22/acid-x-base.aspx"&gt;neste post&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;4. Ele mostra como o Linq é expressivo o suficiente para lidar com ambos os modelos&lt;/p&gt;    &lt;p&gt;5. Ele fundamenta essa possibilidade na teoria de categorias (aos que acharem isto complicado, basta pular este tópico) e na conclusão de que o SQL e o NoSQL são de fato duais.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Qual é a implicação disto: existe uma luz no fim do túnel da diversidade de implementações do NoSql: uma linguagem como o LINQ pode se tornar o SQL dos novos tempos e unificar os dois mundos. Algo que está sendo tentado pela Microsoft Research com o DryadLINQ.&lt;/p&gt;  &lt;p&gt;Já no mês de Abril, na mesma revista, Mychael Rys, também da Microsoft, mostra &lt;a href="http://queue.acm.org/detail.cfm?id=1971597"&gt;em outro artigo&lt;/a&gt; como escalar com o SQL – usando, no caso, o SQL Server. Vale a leitura também.&lt;/p&gt;  &lt;p&gt;Cache, SQL e NoSQL fazem parte hoje do instrumental de Cloud Computing. Como arquitetos, temos que acompanhar o que está acontecendo, não é?&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10159749" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Linq/">Linq</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/cloud+computing/">cloud computing</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/MapReduce/">MapReduce</category></item><item><title>Acceptance Test e Vídeos Introdutórios do Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2011/04/16/acceptance-test-e-v-237-deos-introdut-243-rios-do-azure.aspx</link><pubDate>Sat, 16 Apr 2011 11:54:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10154752</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10154752</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/04/16/acceptance-test-e-v-237-deos-introdut-243-rios-do-azure.aspx#comments</comments><description>&lt;h1&gt;Sobre Azure&lt;/h1&gt;  &lt;p&gt;Muitos se inscreveram no Azure Pass depois do &lt;a href="http://blogs.msdn.com/b/otavio/archive/2011/03/19/passcode-para-o-azure.aspx"&gt;meu post&lt;/a&gt;. Vários testaram de fato o Azure, mas temos ainda gente que pediu e não testou. &lt;/p&gt;  &lt;p&gt;Para ajudar aqueles que ainda não testaram, gravei 3 vídeos curtos no Msdn. Creio que ajuda quem está na preguiça. Lá vai:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/pt-br/windowsazure/gg985399"&gt;Gerenciando sua aplicação ASP.NET no Windows Azure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/pt-br/windowsazure/gg985400"&gt;Fazendo o upload de aplicações para o Windows Azure usando o Visual Studio&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/pt-br/windowsazure/gg985401"&gt;Trabalhando com SQL Azure: criando servidor e migrando banco de dados&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Como este passcode tem duração de apenas um mês, a solução vai ser &lt;a href="http://msdn.microsoft.com/pt-br/windowsazure/gg520838"&gt;usar o Azure Introductory&lt;/a&gt; que dá 750 hrs de CPU de uma máquina extra small – mais de 1 mês de uso de máquina.&lt;/p&gt;  &lt;p&gt;A boa notícia é que houve mudanças nas ofertas, diminuindo a chance de gasto em testes. O Condé colocou &lt;a href="http://blogs.msdn.com/b/conde/archive/2011/04/14/an-250-ncio-novos-tamanhos-dos-servi-231-os-do-windows-azure-para-as-ofertas-gratuitas.aspx"&gt;neste post&lt;/a&gt; todas as novidades – vale uma olhada. A mais interessante fala de ofertas´para assinantes MSDN com até 1500 hrs de máquina ao mês sem custo!!&lt;/p&gt;  &lt;h1&gt;Acceptance Test&lt;/h1&gt;  &lt;p&gt;A outra dica é o RC1 do guia do Patterns &amp;amp; Practices para Testes de Aceite. Você encontra ele em: &lt;a title="Acceptance Test Engineering Guide Vol I RC1 Foreword by Kent Beck +Preface.pdf" href="http://testingguidance.codeplex.com/releases/view/35058#DownloadId=89572"&gt;Acceptance Test Engineering Guide Vol I RC1 Foreword by Kent Beck +Preface.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Um tema importante e pouco estudado.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/6354.image_5F00_6443E390.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/7762.image_5F00_thumb_5F00_495771EA.png" width="193" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10154752" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>“How to” para o Windows Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2011/04/10/how-to-para-o-windows-azure.aspx</link><pubDate>Sun, 10 Apr 2011 21:01:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10151859</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10151859</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/04/10/how-to-para-o-windows-azure.aspx#comments</comments><description>&lt;p&gt;Para quem não viu: saiu a lista de How to para o Azure. A gente sempre pode precisar!&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/gg432998.aspx" href="http://msdn.microsoft.com/en-us/library/gg432998.aspx"&gt;http://msdn.microsoft.com/en-us/library/gg432998.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Azure Platform &lt;/strong&gt;&lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;p&gt;&lt;strong&gt;How to: Build a Windows Azure Application&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee814754.aspx"&gt;How to Configure Virtual Machine Sizes&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee758697.aspx"&gt;How to Configure Connection Strings&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee907419.aspx"&gt;How to Configure Operating System Versions&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee758708.aspx"&gt;How to Configure Local Storage Resources&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432987.aspx"&gt;How to Create a Certificate for a Role&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433063.aspx"&gt;How to Create a Remote Desktop Protocol File&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432991.aspx"&gt;How to Define Environment Variables Before a Role Starts&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433020.aspx"&gt;How to Define Input Endpoints for a Role&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432980.aspx"&gt;How to Define Internal Endpoints for a Role&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg456327.aspx"&gt;How to Define Startup Tasks for a Role&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432965.aspx"&gt;How to Encrypt a Password&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433115.aspx"&gt;How to Restrict Communication Between Roles&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433051.aspx"&gt;How to Retrieve Role Instance Data&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432963.aspx"&gt;How to Use the RoleEnvironment.Changing Event&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433023.aspx"&gt;How to Use the RoleEnvironment.Changed Event&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Use the Windows Azure SDK Tools to Package and Deploy an Application&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433136.aspx"&gt;How to Prepare the Windows Azure Compute Emulator&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433131.aspx"&gt;How to Configure the Compute Emulator to Emulate Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433133.aspx"&gt;How to Package an Application by Using the CSPack Command-Line Tool&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433130.aspx"&gt;How to Run an Application in the Compute Emulator by Using the CSRun Command-Line Tool&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433132.aspx"&gt;How to Initialize the Storage Emulator by Using the DSInit Command-Line Tool&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432970.aspx"&gt;How to Change the Configuration of a Running Service&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432961.aspx"&gt;How to Attach a Debugger to New Role Instances&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432969.aspx"&gt;How to View Trace Information in the Compute Emulator&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433134.aspx"&gt;How to Configure SQL Server for the Storage Emulator&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Configure a Web Application&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433110.aspx"&gt;How to Configure a Web Role for Multiple Web Sites&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432956.aspx"&gt;How to Configure the Virtual Directory Location&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433064.aspx"&gt;How to Configure a Windows Azure Port&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433080.aspx"&gt;How to Configure the Site Entry in the Service Definition File&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433059.aspx"&gt;How to Configure IIS Components in Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433113.aspx"&gt;How to Configure a Service to Use a Legacy Web Role&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Manage Windows Azure VM Roles&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465391.aspx"&gt;How to Create the Base VHD for a VM Role in Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465409.aspx"&gt;How to Install the Windows Azure Integration Components&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg697584.aspx"&gt;How to Enable Windows Azure Connect for a VM Role&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg466226.aspx"&gt;How to Develop an Adapter for a VM Role in Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465407.aspx"&gt;How to Prepare the Server Image for Uploading to Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465385.aspx"&gt;How to Upload a VHD to Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465379.aspx"&gt;How to Create and Deploy the VM Role Service Model&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg697586.aspx"&gt;How to Use Certificates With a VM Role in Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465406.aspx"&gt;How to Change a Server Image for a VM Role by Using a Differencing VHD&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465392.aspx"&gt;How to Change the Configuration of a VM role&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg466230.aspx"&gt;How to Manage the Lifecycle of VM Role Instances in Windows Azure&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Administering Windows Azure Hosted Services&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433024.aspx"&gt;How to Setup a Windows Azure Subscription&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg456328.aspx"&gt;How to Setup Multiple Administrator Accounts&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Deploy a Windows Azure Application&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg456329.aspx"&gt;How to Package your Service&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd179441.aspx"&gt;How to Deploy a Service&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433118.aspx"&gt;How to Create a Hosted Service&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433066.aspx"&gt;How to Create a Storage Account&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee871996.aspx"&gt;How to Configure the Service Topology&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Upgrade a Service&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee517255.aspx"&gt;How to Perform In-Place Upgrades&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee517253.aspx"&gt;How to Swap a Service's VIPs&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Manage Upgrades to the Windows Azure Guest OS&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg456325.aspx"&gt;How to Determine the Current Guest OS of your Service&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433101.aspx"&gt;How to Upgrade the Guest OS in the Management Portal&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg456324.aspx"&gt;How to Upgrade the Guest OS in the Service Configuration File&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Manage Management Certificates&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg551722.aspx"&gt;How to Create a Management Certificate&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg551726.aspx"&gt;How to Add a Management Certificate to a Windows Azure Subscription&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Manage Service Certificates&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465712.aspx"&gt;How to Add a New Certificate to the Certificate Store&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465718.aspx"&gt;How to Associate a Certificate with a Service&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg465711.aspx"&gt;How to Update a Certificate in the Certificate Store&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff795779.aspx"&gt;How to Configure an HTTPS Endpoint in Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg551724.aspx"&gt;How to Control Access to Certificates on a Virtual Machine&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Use Storage Services&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433066.aspx"&gt;How to Create a Storage Account&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg494982.aspx"&gt;How to Read Configuration Settings for the Storage Client Library and Handle Changed Settings&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Configure Windows Azure Connect&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433071.aspx"&gt;How to Activate Windows Azure Roles for Windows Azure Connect&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432964.aspx"&gt;How to Install Local Endpoints with Windows Azure Connect&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg433031.aspx"&gt;How to Create and Configure a Group of Endpoints in Windows Azure Connect&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to: Manage CDN on Windows Azure&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg680301.aspx"&gt;How to Enable CDN for Windows Azure&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg680307.aspx"&gt;How to Map CDN Content to a Custom Domain&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg680303.aspx"&gt;How to Remove Content from the CDN&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg680306.aspx"&gt;How to Manage Expiration of Blob Content&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg680299.aspx"&gt;How to Manage Expiration of Hosted Service Content&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10151859" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Exportando UML no formato XMI 2.1 no Visual Studio</title><link>http://blogs.msdn.com/b/otavio/archive/2011/04/09/exportando-uml-no-formato-xmi-2-1-no-visual-studio.aspx</link><pubDate>Sat, 09 Apr 2011 15:41:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10151677</guid><dc:creator>Otavio</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10151677</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/04/09/exportando-uml-no-formato-xmi-2-1-no-visual-studio.aspx#comments</comments><description>&lt;p&gt;Boas novas para os arquitetos: checando os posts do Steve Cook descobri que já é possível exportar diagramas do UML do Visual Studio.&lt;/p&gt;  &lt;p&gt;É uma VS Extension (com código fonte) que exporta segundo o formato padrão XMI 2.1.&lt;/p&gt;  &lt;p&gt;Ele pode ser baixado de &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=vsvmsdk&amp;amp;DownloadId=14454"&gt;http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=vsvmsdk&amp;amp;DownloadId=14454&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Está é uma funcionalidade que faltava e que muitos estavam aguardando.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10151677" width="1" height="1"&gt;</description></item><item><title>Estratégia para vencer na Web</title><link>http://blogs.msdn.com/b/otavio/archive/2011/04/02/estrat-233-gia-para-vencer-na-web.aspx</link><pubDate>Sat, 02 Apr 2011 12:50:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10149138</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10149138</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/04/02/estrat-233-gia-para-vencer-na-web.aspx#comments</comments><description>&lt;p&gt;A estratégia para ganhar mais usuários de um serviço na rede costuma ter um caminho aparentemente simples:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Disponibilizamos nosso serviço através de um site que será a sua “face” para o público. Com isto, muitos clientes já poderão ser iniciados ao serviço pelo simples acesso à sua url ou via search; &lt;/li&gt;    &lt;li&gt;Tornamos este serviço alcançável por outros aplicativos através de interfaces Web como, por exemplo, APIs REST. Com isto, vários outros sites e aplicativos podem fazer mash-up com nossos serviços, aumentando o número de usuários indiretos; &lt;/li&gt;    &lt;li&gt;Criamos SDK´s que facilitam a inclusão de interfaces (HTML+JScript) para os nossos serviços. Com isto, diminuímos a dificuldade de integração de sites simples com nossos serviços, criando um potencial considerável de aumento de usuários; &lt;/li&gt;    &lt;li&gt;Disponibilizamos aplicativos para workstations, smatphones e tablets que fazem acesso aos nossos serviços. Devido à mobilidade, estes dispositivos aumentam em muito a oportunidade do usuário para interagirem a qualquer hora, o que aumenta mais uma vez a possibilidade de aumento da demanda pelos nossos serviços; &lt;/li&gt;    &lt;li&gt;Integramos os aplicativos com outros aplicativos - com a rede social, ERP´s, CRM´s e outros. Este é o lugar onde o cliente habita. Isto torna visível a ação do usuário para seus amigos, clientes e parceiros, induzindo-os, por sua vez, a também conhecer e usarem os nossos serviços. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Existem muitos exemplos desta estratégia. Pense nos clássicos Messenger, Flicker, Twitter ou Youtube, ou em novos serviços como os de compra em grupo, etc.&lt;/p&gt;  &lt;p&gt;No final, esta linha de estratégia tem como princípios:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;É necessário um backend escalável, geograficamente distribuído e com capacidade monumental para computar e armazenar informações. Falamos aqui da necessidade da computação em nuvem e do uso de Plataformas como a do Windows Azure; &lt;/li&gt;    &lt;li&gt;O dispositivo cliente é visto como um meio de acesso ao serviço, onde o mais importante é criar contextos de uso onde o cliente habita – seja na empresa ou fora dela; &lt;/li&gt;    &lt;li&gt;É necessário, em algum momento, incluir na estratégia um modelo de negócio que se beneficie do aumento de usuários. Propaganda, cobrança por transação para clientes Premium, ganhos devido ao conhecimento maior do comportamento do usuário (gerando menos, riscos, criando serviços agregados, etc.), etc. De fato, o volume de clientes do serviço é o maior ativo nesta estratégia. Isto explica porque muitos iniciam seus serviços na forma gratuita para só depois buscarem um modelo de negócio. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Conselho: pense se sua empresa pode se beneficiar desta estratégia. Com plataformas como o Azure já não existe mais o custo inicial de pesquisa e desenvolvimento para criar datacenters e infraestruturas altamente disponíveis e escaláveis. O custo de falhar diminuiu em muito. Em compensação, o premio do sucesso está aumentando cada vez mais.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10149138" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>PassCode Para o Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2011/03/19/passcode-para-o-azure.aspx</link><pubDate>Sat, 19 Mar 2011 13:46:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10143397</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10143397</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/03/19/passcode-para-o-azure.aspx#comments</comments><description>&lt;p&gt;Pessoal&lt;/p&gt;  &lt;p&gt;Ainda existem alguns passcodes para uma oferta temporária chamada Azure Pass.&lt;/p&gt;  &lt;p&gt;Nele a inscrição é simples e você não precisa de Cartão de Crédito. Basta entrar no site &lt;a href="http://windowsazurepass.com"&gt;http://windowsazurepass.com&lt;/a&gt;, indicar o Brazil com país e entrar com o passcode &lt;font style="background-color: #ffff00"&gt;BRARQ01&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;Os primeiros a se subscreverem irão receber um email em no máximo 3 dias comunicando a ativação da conta. A partir desta data serão 30 dias de uso gratuíto do Azure com até 3 máquinas 2 bancos de dados e outros. &lt;/p&gt;  &lt;p&gt;Peço que se inscrevam apenas aqueles que querem testar de fato o Azure!&lt;/p&gt;  &lt;p&gt;Haverá também uma fila de espera para quem não conseguir chegar à tempo. Usaremos esta fila caso cheguem mais passcodes – portanto, quem quiser testar seriamente o Azure, aproveite a oportunidade.&lt;/p&gt;  &lt;p&gt;Para facilitar seu primeiro aplicativo no Azure, coloquei no youtube um vídeo mostrando como subir uma aplicação ASP.Net de “Hello World”. É muito simples e é também um bom começo.&lt;/p&gt;  &lt;p&gt;Outra dica é se inscrever na comunidade &lt;a href="http://azureservicesbr.ning.com"&gt;http://azureservicesbr.ning.com&lt;/a&gt; . Lá você pode encontrar mais apoio. &lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:951ab088-4e51-4cf5-9f3c-5739cb174a88" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=ldR29_j_DlI&amp;amp;feature=youtube_gdata_player" target="_new"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/3107.video0caa875d400b_5F00_2175C43A.jpg" style="border-style: none" galleryimg="no" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10143397" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Mais 2 patterns para Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2011/03/12/mais-2-patterns-para-azure.aspx</link><pubDate>Sat, 12 Mar 2011 15:26:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10140220</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10140220</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/03/12/mais-2-patterns-para-azure.aspx#comments</comments><description>&lt;p&gt;Aqui vão mais 2 patterns interessantes para uso também no Azure:&lt;/p&gt;  &lt;h1&gt;&lt;font color="#4f81bd" size="4" face="Arial"&gt;1) Deployment dinâmico de sites&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;Com o Web Role do Azure suportando o IIS-full desde o ano passado já é possível fazer o deployment de múltiplos sites em uma única máquina/WebRole. O post &lt;a href="http://www.wadewegner.com/2011/02/running-multiple-websites-in-a-windows-azure-web-role/"&gt;http://www.wadewegner.com/2011/02/running-multiple-websites-in-a-windows-azure-web-role/&lt;/a&gt; mostra que basta algumas configurações e pronto – num único pacote colocamos e configuramos mais de um site para rodar no Azure num único IIS.&lt;/p&gt;  &lt;p&gt;Porém, esta solução não é boa para alguém que quer usar o Azure para revender a hospedagem de sites. Por quê? Simples: é inviável ter que criar e fazer upload de um novo pacote do Azure à cada novo site.&lt;/p&gt;  &lt;p&gt;Uma melhor opção é a de ter uma máquina capaz de criar sites dinamicamente sem ter que parar o servidor IIS ou o WebRole. Natten Totten mostra como fazer isto &lt;a href="http://ntotten.com/2011/03/multitenant-windows-azure-web-roles-with-live-deployments/"&gt;neste post&lt;/a&gt;. Ele cria um serviço de deployment (&lt;i&gt;WebDeployEngine&lt;/i&gt;) que fica a espera de arquivos zip contendo o novo site. Assim que o arquivo chega, ele carrega os arquivos para o WebRole e configura o IIS para mostrar este novo site. Simples e poderoso!&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Com isto deixo o seguinte problema matemático&lt;/strong&gt;: vendendo a hospedagem de sites por R$9/mês e sabendo que existem ofertas de ~US$60 para ter um nó de computação do Azure, quantos sites necessito vender para começar a lucrar usando o Azure?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#4f81bd" size="4" face="Arial"&gt;&lt;strong&gt;2) Um WorkRole múltiplas tarefas&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;O &lt;a href="http://msdn.microsoft.com/en-us/practices"&gt;grupo do Patterns&amp;amp;Practices&lt;/a&gt; da Microsoft já tratou em seus dois livros sobre o Azure (ver &lt;a href="http://msdn.microsoft.com/en-us/library/ff966499.aspx"&gt;aqui&lt;/a&gt; e &lt;a href="http://msdn.microsoft.com/en-us/library/ff728592.aspx"&gt;aqui&lt;/a&gt;) de um pattern interessante para executar mais de uma tarefa em um WorkRole. O pattern associa uma interface para uma Fila (&lt;em&gt;IAzureQueue&lt;/em&gt;) com uma tarefa para ser feita em Batch (&lt;em&gt;BatchProcessingHandler&lt;/em&gt;). O Batch é responsável pelo o polling na fila e por chamar o Comando (herança de &lt;em&gt;ICommand&lt;/em&gt;) que irá tratar a mensagem.Veja a figura abaixo.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://msdn.microsoft.com/en-us/library/Ff966483.3776e0f9-4907-4e80-a58c-cab954145b56(l=en-us).png" width="470" height="676" /&gt;&lt;/p&gt;  &lt;p&gt;Mais uma vez, simples e poderoso.&lt;/p&gt;  &lt;p&gt;O código pode ser encontrado em &lt;a href="http://wag.codeplex.com/"&gt;http://wag.codeplex.com/&lt;/a&gt;. Um texto mais detalhado você encontra em &lt;a title="http://msdn.microsoft.com/en-us/library/ff966483.aspx" href="http://msdn.microsoft.com/en-us/library/ff966483.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff966483.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;  &lt;p&gt;PS.: Saiu a nova versão &lt;a href="http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx"&gt;1.4 do SDK do Azure&lt;/a&gt;. Lembre-se de atualizar o seu.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10140220" width="1" height="1"&gt;</description></item><item><title>AVISO: A Oferta Azure Introductory permite agora 750 hrs gratuitas !</title><link>http://blogs.msdn.com/b/otavio/archive/2011/02/24/aviso-a-oferta-azure-introductory-permite-agora-750-hrs-gratuitas.aspx</link><pubDate>Thu, 24 Feb 2011 14:35:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10133547</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10133547</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/02/24/aviso-a-oferta-azure-introductory-permite-agora-750-hrs-gratuitas.aspx#comments</comments><description>&lt;p&gt;O pessoal que quer testar o Azure e tinha medo de gastar mais horas do que as 25 oferecidas na Oferta Azure Introductory tem agora &lt;strong&gt;duas&lt;/strong&gt; boas notícias:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;A oferta foi &lt;strong&gt;estendida&lt;/strong&gt; para até 30 de Junho !!! (ela iria terminar no fim de março agora) &lt;/li&gt;    &lt;li&gt;Ela agora permite o uso de &lt;strong&gt;750 hrs de computação Extra Small&lt;/strong&gt; !!!! &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;750 hrs é igual a 31 dias e 6 hrs. Isto significa que, ao escolher 1 máquina Extra Small no seu projeto, você diminui em muito a possibilidade de pagar por algum esquecimento deixando a máquina ligada ! Você já pode fazer seu site, e anunciar sua festa ou outro, deixando-o no ar até o fim de Junho!&lt;/p&gt;  &lt;p&gt;Sugiro uma olhada no &lt;a href="http://blogs.msdn.com/b/conde/archive/2011/02/24/faq-como-usar-o-windows-azure-sem-pagar-gratuito.aspx"&gt;Blog do Condé&lt;/a&gt; para entender todas as ofertas.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10133547" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Posso rodar o ASP clássico no Azure?</title><link>http://blogs.msdn.com/b/otavio/archive/2011/02/22/posso-rodar-o-asp-cl-225-ssico-no-azure.aspx</link><pubDate>Tue, 22 Feb 2011 17:48:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10132764</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10132764</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/02/22/posso-rodar-o-asp-cl-225-ssico-no-azure.aspx#comments</comments><description>&lt;p&gt;SIM, ponto.&lt;/p&gt;  &lt;p&gt;Esta é uma das virtudes da nova versão do Azure que trouxe Privilégios Elevados e o IIS-Full (isto é, temos agora o mesmo IIS 7.5 que o Windows Server R2 2008).&lt;/p&gt;  &lt;p&gt;Privilégios Elevados permitem que você defina comandos que irão rodar antes da Máquina Virtual levantar seu processo – um bom momento para instalar componentes como o ISAPI do ASP clássico ou registrar objetos COM+, como o OLE DB Provider para ODBC.&lt;/p&gt;  &lt;p&gt;Por exemplo, para mandar rodar um arquivo &lt;i&gt;.cmd&lt;/i&gt; no momento de &lt;i&gt;StartUp&lt;/i&gt; basta simplesmente definir no arquivo ServiceDefinition.csdef algo como:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;font color="#9bbb59"&gt;&amp;lt;!-- ServiceDefinition.csdef --&amp;gt;&lt;/font&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;lt;Startup&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;  &amp;lt;Task commandLine=&lt;span class="str"&gt;&amp;quot;startup.cmd&amp;quot;&lt;/span&gt; executionContext=&lt;span class="str"&gt;&amp;quot;elevated&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;lt;/Startup&amp;gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Para iniciar o ISAPI do ASP clássico, basta colocar no arquivo de comando algo como:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;font color="#9bbb59"&gt;REM startup.cmd&lt;/font&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;start /w pkgmgr /iu:IIS-ASP&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Feito.&lt;/p&gt;

&lt;p&gt;Quer saber mais? O &lt;a href="http://blog.smarx.com/posts/introduction-to-windows-azure-startup-tasks"&gt;post do Steve Marx aqui&lt;/a&gt; mostra um passo a passo.&lt;/p&gt;

&lt;p&gt;Recomendo também &lt;a href="http://blog.smarx.com/posts/windows-azure-startup-tasks-tips-tricks-and-gotchas"&gt;a leitura deste post&lt;/a&gt; com alguns truques e &lt;a href="https://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-Episode-31-Startup-Tasks-Elevated-Privileges-and-Classic-ASP"&gt;este episódio do Channel9&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Muita gente tem código bom e utilizável no ASP clássico. Bom saber que eles também podem usar o Azure!&lt;/p&gt;

&lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10132764" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Martin Fowler e seu livro sobre DSLs</title><link>http://blogs.msdn.com/b/otavio/archive/2011/02/05/martin-fowler-e-seu-livro-sobre-dsls.aspx</link><pubDate>Sat, 05 Feb 2011 13:05:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10125233</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10125233</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/02/05/martin-fowler-e-seu-livro-sobre-dsls.aspx#comments</comments><description>&lt;p&gt;As férias de final/inicio de ano são sempre boas para leituras pendentes, não é?&lt;/p&gt;  &lt;p&gt;Este ano, dos livros que li, um dos mais interessantes para comentar e recomendar é o &lt;a href="http://www.amazon.com/Domain-Specific-Languages-Addison-Wesley-Signature-Fowler/dp/0321712943/ref=sr_1_1?ie=UTF8&amp;amp;qid=1296908711&amp;amp;sr=8-1"&gt;“Domain-Specific Languages”&lt;/a&gt; do Martin Fowler. Neste livro o bem conhecido autor distila um conjunto de padrões e técnicas para implementar linguagens específicas de domínios (DSL), ao estilo do seu também bem conhecido livro &lt;a href="http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/ref=sr_1_3?ie=UTF8&amp;amp;qid=1296908711&amp;amp;sr=8-3"&gt;“Patterns for Enterprise Application Architecture”&lt;/a&gt;. É um livro de referência.&lt;/p&gt;  &lt;p&gt;Se você, como eu, já estudou ou trabalhou com compiladores e/ou está interessado no uso destas técnicas para criar DSL´s, bem... este não é o livro – existem melhores.&lt;/p&gt;  &lt;p&gt;Se você quer criar o que o autor chama de DSL´s internas, então este livro é uma excelente referência.&lt;/p&gt;  &lt;p&gt;O que é uma DSL interna? Simples. É uma DSL escrita com a linguagem genérica e nativa que o programador já costuma usar (C#, VB, etc.).&lt;/p&gt;  &lt;p&gt;Vamos a um exemplo do próprio livro – uma linguagem para descrever configurações de máquinas.&lt;/p&gt;  &lt;p&gt;Uma API para descrever configurações seria:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;font face="Courier New"&gt;Processor p = new Processor(2, 2500, Processor.Type.i386 );&lt;/font&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;font face="Courier New"&gt;Disk d1 = new Disk(150, Disk.UNKNOWN_SPEED, null );&lt;/font&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;font face="Courier New"&gt;Disk d2 = new Disk(75, 7200, Disk.Interface.SATA );&lt;/font&gt;&lt;/p&gt;    &lt;p align="left"&gt;&lt;font face="Courier New"&gt;return new Computer( p, d1, d1 );&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Uma DSL Interna para descrever esta configuração poderia ser escrita, por exemplo, segundo o padrão &lt;em&gt;Method Chaining&lt;/em&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;computer()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160; .processor()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; .cores(2)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; .speed(2500)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; .i386()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160; .disk()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; .size(150)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160; .disk()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; .size(75)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; .speed(7200)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; .sata()&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;.end()&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;ou, por exemplo, segundo o padrão &lt;i&gt;Function Sequence&lt;/i&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;computer();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160; processor();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; cores(2);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; speed(2500);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; i386();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160; disk();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; size(150);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160; disk();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; size(75);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; speed(7200);&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; sata();&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Os dois tipos de descrição usam DSLs declarativas simples e legíveis, que podem ser escritas por um analista de negócio. Dois valores que fazem DSLs atrativas.&lt;/p&gt;  &lt;p&gt;Se você quiser entender como implementar estes e outros tipos de DSLs internas, este é um bom livro.&lt;/p&gt;  &lt;p&gt;Ele vai falar também dos benefícios e limitações das DSLs, da importância do Modelo Semântico para projetar e implementar uma DSL, e muitos outros assuntos correlatos e interessantes. Se você escreve bibliotecas e frameworks, o conhecimento de DSLs pode aumentar muito seu repertório.&lt;/p&gt;  &lt;p&gt;Fica a dica.&lt;/p&gt;  &lt;p&gt;(Outra dica: leia no &lt;a href="http://blogs.msdn.com/b/rafaelgodinho/archive/2011/01/28/semana-especial-de-windows-azure-nos-webcasts-do-msdn.aspx"&gt;blog do Rafael Godinho&lt;/a&gt; sobre a semana especial de Windows Azure nos Webcasts do MSDN que vai acontecer na semana de 14 a 18 de fevereiro. Será uma boa oportunidade para saber o que há de novo no Azure e como usá-lo bem)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10125233" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/DSL/">DSL</category></item><item><title>Por que tantas tecnologias para programação Web?</title><link>http://blogs.msdn.com/b/otavio/archive/2011/01/29/por-que-tantas-tecnologias-para-programa-231-227-o-web.aspx</link><pubDate>Sat, 29 Jan 2011 14:42:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10121880</guid><dc:creator>Otavio</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10121880</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2011/01/29/por-que-tantas-tecnologias-para-programa-231-227-o-web.aspx#comments</comments><description>&lt;p&gt;Com o lançamento do &lt;a href="http://www.asp.net/WebMatrix"&gt;WebMatrix&lt;/a&gt;, a proximidade do &lt;a href="http://www.microsoft.com/visualstudio/en-us/lightswitch"&gt;LightSwitch&lt;/a&gt; e a forte mensagem da Microsoft rumo ao HTML5, é comum surgir a velha dúvida: que tecnologia usar?&lt;/p&gt;  &lt;p&gt;Já comentei &lt;a href="http://blogs.msdn.com/b/otavio/archive/2010/02/20/tecnologia-diversidade-x-ang-stia.aspx"&gt;aqui neste blog&lt;/a&gt; que escolha gera angústia. Isto é normal. Mas se compreendermos o porquê de cada tecnologia fica mais simples escolher e nos tranqüilizar.&lt;/p&gt;  &lt;p&gt;Abaixo, vou listar as tecnologias mais visadas para a programação web e comentar sua motivação:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;HTML5&lt;/strong&gt;: interface visual para os futuros browsers em multiplataforma. A tendência é que todas as tecnologias da Microsoft que geram HTML venham incorporar a geração de tags HTML 5 e suportar suas novidades.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Silverlight&lt;/strong&gt;: sempre na frente do que as entidades de padronização podem fazer, o Silverlight possibilita uma experiência mais agradável e uma programação bem produtiva com o apoio de ferramentas como o Expression Blend. Será suportado no Windows Phone, no XBOX e Windows, sendo um elemento importante para a estratégia de 3 Telas + a Nuvem. É a tecnologia preferencial para o programador web que quiser tirar o máximo da usabilidade nos sistemas operacionais da Microsoft. Já tem bom ecossistema de componentes. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;WPF&lt;/strong&gt;: usado nas aplicações que necessitam retirar o máximo do Windows. Por não funcionar num Sandbox, como o HTML5 e o Silverlight, ele pode chamar recursos locais, como um banco de dados instalado na workstation. Fornece produtividade e usabilidade elevada, mas requer direitos elevados – por isto não é tão usado no contexto web mas sim no contexto Smart Client. Já tem bom ecossistema de componentes.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;ASP.NET&lt;/strong&gt;: gera HTML e possivelmente irá gerar HTML 5. Foi feito visando um largo espectro de tipos de aplicações – de aplicações muito simples a muito complexas. Simula a programação RAD do VB antigo e tem um grande ecossistema.Longa vida ao ASP.NET.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;MVC&lt;/strong&gt;: gera HTML e possivelmente irá gerar HTML 5. Foi feito visando um segmento de programadores e arquitetos que trabalham com projetos complexos e que podem largar mão de parte da produtividade do .Net para obter um código de melhor manutenção no estilo RESTfull. No &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx"&gt;MVC 3, recém lançado&lt;/a&gt;, incorpora uma linguagem para a confecção de Views (o Razor) que é bem mais simples e ekegante.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.asp.net/WebMatrix"&gt;WebMatrix&lt;/a&gt;&lt;/strong&gt;: para o desenvolvedor que gosta do estilo de programação chamado de scripting, tão comum no velho ASP e PHP. Existe uma massa muito grande de desenvolvimento Web que é feita neste estilo, onde o ASP.NET não era bem aceito (por ser mais complexo). Faltava uma ferramenta da Microsoft para este segmento. Com o uso do mesmo Razor que o MVC, pode ser uma boa escola para muitos programadores que gostam do estilo scripting.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/lightswitch"&gt;LightSwitch&lt;/a&gt;&lt;/strong&gt;: uma IDE ainda em Beta, que visa uma geração rápida de aplicativos. Gera Silverlight + WCF RIA Services + Entity Framework e já incorpora o cenário de uso no Azure. Visa simplificar o desenvolvimento trazendo de volta a facilidade de desenvolvimento análoga à de uma programação em Access. Creio que tem como segmento alvo o programador departamental que visa aplicações LOB simples, com o mínimo de codificação.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Faltam outras tecnologias com WindowsForm, XNA, SharePoint, etc. Faça seu exercício: que tipo de programador deve gostar de usar estas tecnologias? Para que contexto de uso foi feito? Que limitações de plataforma elas estão sujeitas? Para quem estiver interessado no processo de definição de um produto (como o LightSwitch ou o WebMatrix) sugiro uma lida no artigo &lt;a title="http://msdn.microsoft.com/pt-br/library/cc518039.aspx" href="http://msdn.microsoft.com/pt-br/library/cc518039.aspx"&gt;http://msdn.microsoft.com/pt-br/library/cc518039.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Dar opções é uma obrigação da Microsoft neste contexto complexo de tantos cenários de uso. Entenda o contexto da sua produção de software e escolha. Está cada vez mais difícil não ter uma opção mais adequada.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10121880" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/MVC/">MVC</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/WebMatrix/">WebMatrix</category></item><item><title>Provocando os Arquitetos</title><link>http://blogs.msdn.com/b/otavio/archive/2010/12/21/provocando-os-arquitetos.aspx</link><pubDate>Tue, 21 Dec 2010 18:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10107760</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10107760</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2010/12/21/provocando-os-arquitetos.aspx#comments</comments><description>&lt;p&gt;Fim de ano chegando e tenho dois especiais sobre arquitetura emprestados do TechEd da Europa de 2010.&lt;/p&gt;
&lt;p&gt;O primeiro &amp;eacute; uma provoca&amp;ccedil;&amp;atilde;o saud&amp;aacute;vel de um top arquiteto da Microsoft chamado Miha. &amp;Eacute; uma apresenta&amp;ccedil;&amp;atilde;o que louva a arquitetura de software e clama por arquitetos s&amp;aacute;bios, que conhecem arquiteturas de refer&amp;ecirc;ncias, mas que jogam ela fora, se necess&amp;aacute;rio, em prol de uma arquitetura que resolva com maior beleza e efici&amp;ecirc;ncia o problema. Pena que &amp;eacute; em ingl&amp;ecirc;s.&lt;/p&gt;
&lt;p&gt;
&lt;object height="363" type="application/x-silverlight-2" width="600" data="data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAJAAADPgAAhCUAABQAAAAjADAAMAAwADAAMAAwADAAMAAAAAAAAAAAAAAAAAAAAIgAAABoAHQAdABwADoALwAvAHcAdwB3AC4AbQBzAHQAZQBjAGgAZQBkAC4AYwBvAG0ALwBDAGwAaQBlAG4AdABCAGkAbgAvAHAAbABhAHkAZQByAHMALwBWAGkAZABlAG8AUABsAGEAeQBlAHIAMgAwADAAOQBfADAAMwBfADIANwAuAHgAYQBwAAAAPAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAABtAD0AaAB0AHQAcAA6AC8ALwBlAGMAbgAuAGMAaABhAG4AbgBlAGwAOQAuAG0AcwBkAG4ALgBjAG8AbQAvAG8AOQAvAHQAZQAvAEUAdQByAG8AcABlAC8AMgAwADEAMAAvAHcAbQB2AC8AYQByAGMAMgAwADEALQBsAG4AYwAuAHcAbQB2ACwAdABoAHUAbQBiAG4AYQBpAGwAPQBoAHQAdABwADoALwAvAHcAdwB3AC4AbQBzAHQAZQBjAGgAZQBkAC4AYwBvAG0ALwBTAGsAaQBuAHMALwBUAGUAYwBoAEUAZABPAG4AbABpAG4AZQAvAFMAdAB5AGwAZQBzAC8AaQBtAGEAZwBlAHMALwBEAGUAZgBhAHUAbAB0AFAAbABhAHkAZQByAEIAYQBjAGsAZwByAG8AdQBuAGQALgBwAG4AZwAsAGEAdQB0AG8AaABpAGQAZQA9AHQAcgB1AGUALABzAGgAbwB3AGUAbQBiAGUAZAA9AHQAcgB1AGUAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAGAAAADMALgAwAC4ANQAwADEAMAA2AC4AMAAAAAoAAAB0AHIAdQBlAAAA//8AAAAAAAAAAAAA" class="player"&gt;
&lt;param value="http://www.msteched.com/ClientBin/players/VideoPlayer2009_03_27.xap" name="source" /&gt;
&lt;param value="m=http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/arc201-lnc.wmv,thumbnail=http://www.msteched.com/Skins/TechEdOnline/Styles/images/DefaultPlayerBackground.png,autohide=true,showembed=true" name="initParams" /&gt;
&lt;param value="#00000000" name="background" /&gt;
&lt;param value="3.0.50106.0" name="minRuntimeVersion" /&gt;
&lt;param value="true" name="windowless" /&gt;
&lt;param value="true" name="enableGPUAcceleration" /&gt;
&lt;param value="true" name="autoUpgrade" /&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;O segundo v&amp;iacute;deo fala de problemas reais de quem faz e/ou usa frameworks. Este fica para os mais pr&amp;aacute;ticos - em ingl&amp;ecirc;s tamb&amp;eacute;m.&lt;/p&gt;
&lt;p&gt;
&lt;object height="363" type="application/x-silverlight-2" width="600" data="data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAJAAADPgAAhCUAABQAAAAjADAAMAAwADAAMAAwADAAMAAAAAAAAAAAAAAAAAAAAIgAAABoAHQAdABwADoALwAvAHcAdwB3AC4AbQBzAHQAZQBjAGgAZQBkAC4AYwBvAG0ALwBDAGwAaQBlAG4AdABCAGkAbgAvAHAAbABhAHkAZQByAHMALwBWAGkAZABlAG8AUABsAGEAeQBlAHIAMgAwADAAOQBfADAAMwBfADIANwAuAHgAYQBwAAAAPAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAABtAD0AaAB0AHQAcAA6AC8ALwBlAGMAbgAuAGMAaABhAG4AbgBlAGwAOQAuAG0AcwBkAG4ALgBjAG8AbQAvAG8AOQAvAHQAZQAvAEUAdQByAG8AcABlAC8AMgAwADEAMAAvAHcAbQB2AC8AYQByAGMAMgAwADIALQBsAG4AYwAuAHcAbQB2ACwAdABoAHUAbQBiAG4AYQBpAGwAPQBoAHQAdABwADoALwAvAHcAdwB3AC4AbQBzAHQAZQBjAGgAZQBkAC4AYwBvAG0ALwBTAGsAaQBuAHMALwBUAGUAYwBoAEUAZABPAG4AbABpAG4AZQAvAFMAdAB5AGwAZQBzAC8AaQBtAGEAZwBlAHMALwBEAGUAZgBhAHUAbAB0AFAAbABhAHkAZQByAEIAYQBjAGsAZwByAG8AdQBuAGQALgBwAG4AZwAsAGEAdQB0AG8AaABpAGQAZQA9AHQAcgB1AGUALABzAGgAbwB3AGUAbQBiAGUAZAA9AHQAcgB1AGUAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAGAAAADMALgAwAC4ANQAwADEAMAA2AC4AMAAAAAoAAAB0AHIAdQBlAAAA//8AAAAAAAAAAAAA" class="player"&gt;
&lt;param value="http://www.msteched.com/ClientBin/players/VideoPlayer2009_03_27.xap" name="source" /&gt;
&lt;param value="m=http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/arc202-lnc.wmv,thumbnail=http://www.msteched.com/Skins/TechEdOnline/Styles/images/DefaultPlayerBackground.png,autohide=true,showembed=true" name="initParams" /&gt;
&lt;param value="#00000000" name="background" /&gt;
&lt;param value="3.0.50106.0" name="minRuntimeVersion" /&gt;
&lt;param value="true" name="windowless" /&gt;
&lt;param value="true" name="enableGPUAcceleration" /&gt;
&lt;param value="true" name="autoUpgrade" /&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;O site do TechEd fica em &lt;a href="http://www.msteched.com/" title="http://www.msteched.com/"&gt;http://www.msteched.com/&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Bom Natal&lt;/p&gt;
&lt;p&gt;Otavio&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10107760" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Arquitetura/">Arquitetura</category></item><item><title>Mais Patterns para o Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2010/12/17/mais-patterns-para-o-azure.aspx</link><pubDate>Fri, 17 Dec 2010 13:44:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10106491</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10106491</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2010/12/17/mais-patterns-para-o-azure.aspx#comments</comments><description>&lt;p&gt;Se o Azure não nos dá um coordenador de transações e a Tabela do Azure só suporta isolamento do tipo &lt;i&gt;snapshot&lt;/i&gt; &lt;u&gt;dentro de uma mesma partição&lt;/u&gt;, não existe como garantir consistência entre tabelas, certo? Não. &lt;/p&gt;  &lt;p&gt;É possível assegurar consistência usando algoritmos similares ao que o banco de dados faz de graça para nós. O Banco realiza isto usando o famoso arquivo de Log, que é usado para o caso de desfazimento (ou &lt;i&gt;retry&lt;/i&gt;) de uma operação. No caso do Azure, teremos que simular este processamento.&lt;/p&gt;  &lt;p&gt;O artigo &lt;i&gt;&lt;a href="http://download.microsoft.com/download/2/9/3/293F671C-203F-4208-9CD1-195463F7BCBE/TabelasDoWindowsAzure.xps"&gt;Tabelas do Windows Azure&lt;/a&gt;&lt;/i&gt; mostra um exemplo de tratamento na sessão &lt;i&gt;Consistência entre Tabelas&lt;/i&gt;. Não é o melhor dos exemplos, mas é um exemplo factível: para deletar uma associação pai filho, colocamos a ordem de deleção numa fila. O processo que lê a fila deve então marcar a entidade pai para não ser mais lida e, em seguida, trata de matar as entidades filhas. Por fim, deleta de vez a entidade pai e remove o pedido da fila. Se houver uma falha na máquina em que este processo está rodando, a mensagem volta a ficar visível, e quando o processo de deleção voltar ao ar ele continuará a deleção de onde parou. Como vocês podem ver, aqui a fila faz o papel do arquivo de log no Banco de Dados. &lt;/p&gt;  &lt;p&gt;(quem quiser saber como funciona internamente um banco de dados, compre e leia o livro &lt;i&gt;&lt;a href="http://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1292592664&amp;amp;sr=8-1-spell"&gt;Transaction Processing: Concepts and Techniques&lt;/a&gt;&lt;/i&gt; – o livro é caro e longo mas, em minha opinião, é um dos melhores livros no assunto. IMPORTANTE: é um livro para quem quer saber como FAZER um Banco de Dados)&lt;/p&gt;  &lt;p&gt;Vale a pena uma leitura com calma deste artigo e do &lt;a href="http://download.microsoft.com/download/2/9/3/293F671C-203F-4208-9CD1-195463F7BCBE/BlobsDoWindowsAzure.xps"&gt;artigo sobre blobs&lt;/a&gt; também. Para quem preferir as versões doc em inglês, você pode encontrá-los &lt;a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=e0cdebe4-4ff9-4a25-ab91-1970770a0506&amp;amp;lcid=1033"&gt;aqui&lt;/a&gt; e &lt;a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=3aaf52c9-29ab-4236-910c-d78452ead9d5&amp;amp;lcid=1033"&gt;aqui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Outra dica: a Microsoft Research está com &lt;a href="http://azurescope.cloudapp.net/Default.aspx"&gt;um excelente site sobre melhores práticas com o Azure&lt;/a&gt;, mostrando inclusive gráficos com tempos de acesso em estruturas de dados e outras medições. No exemplo abaixo você vê alguns dos diagramas sobre leitura de Tabelas Azure contidos neste site.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/4571.image_5F00_699F9AD1.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/6644.image_5F00_thumb_5F00_0E58645C.png" width="513" height="154" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Um &lt;i&gt;must&lt;/i&gt; para quem quer desenvolver aplicações para Azure.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10106491" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Perguntas frequentes sobre a oferta Azure Introdutória</title><link>http://blogs.msdn.com/b/otavio/archive/2010/12/14/perguntas-frequentes-sobre-a-oferta-azure-introdut-243-ria.aspx</link><pubDate>Tue, 14 Dec 2010 17:55:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10104820</guid><dc:creator>Otavio</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10104820</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2010/12/14/perguntas-frequentes-sobre-a-oferta-azure-introdut-243-ria.aspx#comments</comments><description>&lt;p&gt;Tenho colecionado algumas perguntas que podem ser úteis para todos. Aqui vão:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pergunta&lt;/strong&gt;: Suponhamos que eu tenha somente uma foto hospedada no Azure Introductory. Mesmo possuindo os 500MB disponíveis, se essa foto for acessada “n” vezes, isso não gera tráfego, podendo chegar ao limite e começar a cobrar? Como funciona?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resposta&lt;/strong&gt;: Pode ser que tenha que pagar sim, pois a oferta introdutória cobre 500MBytes de transferência de dados de saída. Com uma foto de 1MByte você&amp;#160; vai poder ter no máximo 500 acessos antes de começar a pagar. A partir daí será cobrado 10 centavos de dólar (mais impostos) a cada 10Gb de leitura (cerca de 10mil acessos). Por isto é muito importante o acompanhamento do consumo dos serviços através do MOCP.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pergunta&lt;/strong&gt;: Até quando é válida a oferta Azure Introdutória? O que vai acontecer quando ela acabar?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resposta&lt;/strong&gt;: A oferta hoje é válida até o dia 31 de Março de 2011, mas fique atento que ela pode vir a ser estendida em breve – o que será bom. Quando acabar, a oferta expira e você estará sobre as regras das ofertas padrão, pagando pelo que usa. Lembre-se que no caso do SQL Azure o prazo acaba 3 meses depois da contratação da oferta. &lt;/p&gt;  &lt;p&gt;Para deixar de pagar algo você tem duas possibilidades: 1) deletar todos os serviços a partir do portal (computação, storage, banco de dados e appfabric); 2) cancelar através dos procedimentos explicados em &lt;a href="http://www.microsoft.com/online/help/pt-br/helphowto/96a71870-dc3c-4015-8baa-88bf55d17129.htm"&gt;http://www.microsoft.com/online/help/pt-br/helphowto/96a71870-dc3c-4015-8baa-88bf55d17129.htm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pergunta&lt;/strong&gt;: Quando baixar um aplicativo, ele contará as horas automaticamente, não? Isso fica sendo contado mesmo que o aplicativo fique parado? Se sim, para não contar as horas, devo apagar o aplicativo de lá?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resposta&lt;/strong&gt;: A computação é cobrada por hora de cpu usada em intervalos de hora em que uma VM é alocada para você. Por exemplo, se levantei o aplicativo às 14:50 e deletei às 15:10, consumirei 2 hrs de computação- uma hr pelo uso entre 14 e 15hrs, outra pelo uso entre as 15 e 16hrs. A VM é alocada já no início da carga, seja na produção ou homologação. Ela só é liberada quando o aplicativo é totalmente removido. Sugiro a leitura do paragrafo com o título “Instancias de Computação” em &lt;a href="http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=pt&amp;amp;locale=pt-BR&amp;amp;offer=MS-AZR-0003P"&gt;http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=pt&amp;amp;locale=pt-BR&amp;amp;offer=MS-AZR-0003P&lt;/a&gt; . Aqui recomendo sempre o uso do aplicativo que está em &lt;a href="http://greybox.codeplex.com"&gt;http://greybox.codeplex.com&lt;/a&gt; que, depois de configurado, gera alertas sobre o uso de computação e permite remover a aplicação em 2 cliques.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pergunta&lt;/strong&gt;: Como é que posso contabilizar as horas e o storage que estou usando, para não exceder meu limite? Não vi nenhum lugar que mostra o total contabilizado até agora.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resposta&lt;/strong&gt;: Atualmente as informações de consumo podem ser encontradas n o portal &lt;a href="https://mocp.microsoftonline.com/site/default.aspx"&gt;https://mocp.microsoftonline.com/site/default.aspx&lt;/a&gt; . O MOCP é atualizado uma vez ao dia.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Se tiverem mais, por favor, basta perguntar aqui.&lt;/p&gt;  &lt;p&gt;Abraços.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10104820" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Patterns Essenciais para o Azure</title><link>http://blogs.msdn.com/b/otavio/archive/2010/12/11/patterns-essenciais-para-o-azure.aspx</link><pubDate>Sat, 11 Dec 2010 12:36:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10103571</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10103571</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2010/12/11/patterns-essenciais-para-o-azure.aspx#comments</comments><description>&lt;p&gt;Existem alguns patterns importantes para usar em sistemas altamente distribuídos como os que o Azure proporciona. A boa nova é que alguns deles já começam a ser divulgados.&lt;/p&gt;  &lt;p&gt;O primeiro que vale destacar trata da questão do como atualizar um dado quando milhões de usuários competem para atualizá-lo ao mesmo tempo. Um cenário exemplo é o que acontece nos sistemas de vendas de tickets pela internet. &lt;/p&gt;  &lt;p&gt;Por exemplo, semana passada &lt;a href="http://musica.terra.com.br/noticias/0,,OI4826839-EI1267,00-Prevenda+online+para+show+do+U+apresenta+problemas.html"&gt;saiu uma notícia&lt;/a&gt; do problema nas vendas online de ingressos para o U2 e, ao final, a notícia conta que &lt;u&gt;o uso do Azure fará com que isto não aconteça no Rock in Rio&lt;/u&gt;! &lt;/p&gt;  &lt;p&gt;Bem, o Azure resolve o problema da escalabilidade, mas não resolve o problema do lock necessário na informação de números de ingressos, por exemplo. Cabe ao arquiteto/desenvolvedor garantir uma estratégia para minimizar o lock e garantir que o sistema não de time out por espera na fila de escrita de um banco de dados.&lt;/p&gt;  &lt;p&gt;Um pattern que pode ser encontrado com &lt;a href="http://msdn.microsoft.com/en-us/magazine/gg309174.aspx"&gt;detalhes neste artigo da MSDN magazine&lt;/a&gt; ajuda neste problema. A estratégia do pattern se resume a:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;particionar a informação, colocando lotes de tickets (intervalos de números) em registros diferentes (no caso do artigo, blobs). Com isto, diminuímos a concorrência pelo mesmo registro; &lt;/li&gt;    &lt;li&gt;uso de concorrência otimista. Isto é, adicionamos um número de versão associado à cada lote e o agente quer for ler e escrever saberá se durante o intervalo entre leitura e escrita houve alguma mudança devido à concorrência. Se não houve, sucesso. Se houve, tenta de novo; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Vale a leitura do artigo.&lt;/p&gt;  &lt;p&gt;Outro problema que merece o conhecimento de patterns específicos se refere à falta de um coordenador de transação no Azure. Sem ele, não conseguimos garantir consistência na escrita em mais de um tipo de armazenamento (tabelas, filas, bases de dados, blobs). Pior, não conseguimos ser ACID mesmo quando escrevemos usando um único tipo, como acontece quando executamos escritas em duas tabelas ou dois blobs.&lt;/p&gt;  &lt;p&gt;Para tratar disto precisamos de estratégias específicas que podem variar de acordo com a situação.&lt;/p&gt;  &lt;p&gt;Um primeiro caso, que permite uma solução simples, é o caso de escrita em uma tabela do Azure de informações do tipo cabeçalho + itens. O livro &lt;a href="http://msdn.microsoft.com/en-us/library/ff803365.aspx"&gt;Moving Applications to Cloud&lt;/a&gt; mostra como fazer isto (ver sessão &lt;i&gt;Transactions in aExpense&lt;/i&gt;) usando os seguintes truques:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Inserir primeiro todos os itens na tabela de itens usando o batch update (isto é, insere todos de uma vez e de forma transacional, já que todos estão na mesma partição da tabela); &lt;/li&gt;    &lt;li&gt;Em seguida inserir o cabeçalho; &lt;/li&gt;    &lt;li&gt;Caso haja algum erro na inserção do cabeçalho, os itens serão deletados (desfazimento); &lt;/li&gt;    &lt;li&gt;Mesmo assim, existe sempre a possibilidade de haver um crash entre as operações 1 e 2 acima, fazendo o tratamento de erro não rodar. Por isto, de tempos em tempos um processo busca por itens órfãos. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Recomendo a leitura &lt;a href="http://msdn.microsoft.com/en-us/library/ff803365.aspx"&gt;Moving Applications to Cloud&lt;/a&gt;, para quem está estudando ou já migrando seu aplicativo para o Azure.&lt;/p&gt;  &lt;p&gt;Num post futuro prometo falar de patterns de desfazimento mais genéricos. &lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10103571" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Patterns/">Patterns</category></item><item><title>Portal do Azure – Simples e Funcional</title><link>http://blogs.msdn.com/b/otavio/archive/2010/12/03/portal-do-azure-simples-e-funcional.aspx</link><pubDate>Fri, 03 Dec 2010 21:11:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10100165</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10100165</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2010/12/03/portal-do-azure-simples-e-funcional.aspx#comments</comments><description>&lt;p&gt;Pessoal,&lt;/p&gt;  &lt;p&gt;O Waldemir avisou &lt;a href="http://blogs.msdn.com/b/wcamb/archive/2010/11/30/novidades-no-ar-novo-portal-de-administra-231-227-o-do-windows-azure-em-silverlight.aspx"&gt;aqui&lt;/a&gt; que o novo Portal do Azure saiu. Mas, como ele mostrou pouco, vou colocar aqui abaixo algumas fotos para vocês verem como ficou.&lt;/p&gt;  &lt;p&gt;Primeiro, uma mostra de como fica a tela principal para controle do Windows Azure (computação + armazenamento). Note à esquerda que existem muitas facilidades antes inalcançáveis, como “Deployment Health” e a versão beta para subir imagens de uma VM.&lt;/p&gt;  &lt;p&gt;, &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/5123.Foto1_5F00_784DD21D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Foto1" border="0" alt="Foto1" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/3872.Foto1_5F00_thumb_5F00_13567B5F.jpg" width="555" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nesta outra , você vê as facilidades para administrar o storage. Note o Ribbon facilitando a criação/deleção de storages.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/2816.Foto2_5F00_30E8565E.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Foto2" border="0" alt="Foto2" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/2816.Foto2_5F00_thumb_5F00_74DC14A8.jpg" width="567" height="335" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por fim, aqui vai a tela para a administração do SQL Azure. Notem também o Reporting Services logo abaixo da opção de Database.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/0247.Foto3_5F00_002528E6.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Foto3" border="0" alt="Foto3" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/2620.Foto3_5F00_thumb_5F00_1CDE9DFB.jpg" width="615" height="467" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como vocês podem ver, a administração está bem simples e funcional, tornando tudo mais rápido e intuitivo. Recomendo a todos que tiverem uma assinatura do Azure a testar. &lt;/p&gt;  &lt;p&gt;Para quem não tem uma assinatura, assine uma conta Introdutória &lt;a href="http://view.atdmt.com/action/mrtyou_FY10AzureofferspageIntrobuysecondaryFin_1"&gt;aqui&lt;/a&gt; . Você vai precisar de um cartão de crédito e terá direito a 25horas de Azure, 500Mb de disco, 1 SQLAzure de 1Gb, etc. (veja o que você tem direito &lt;a href="http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=pt&amp;amp;locale=pt-BR&amp;amp;offer=MS-AZR-0001P"&gt;aqui&lt;/a&gt; ). Para testar, esta opção é ótima! &lt;/p&gt;  &lt;p&gt;(&lt;/p&gt;  &lt;p&gt;Lembretes para quem usar o Introdutório: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1) Para executar programas e aprender, no final vc vai precisar do Visual Studio e SDK do Azure que você pode encontrar &lt;a href="http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx"&gt;aqui&lt;/a&gt;;&lt;/p&gt;    &lt;p&gt;2) Lembre-se de usar apenas o que está dentro da oferta. Muitos exercícios do SDK do Azure usam apenas o SQLAzure ou o Storage. Estes exercícios &lt;u&gt;não oferecem o risco de se pagar nada&lt;/u&gt;, pois não precisam subir nenhuma aplicação para o Azure. Fica a dica para os mais medrosos;&lt;/p&gt;    &lt;p&gt;3) Se você resolver subir, saiba que vc te 25 horas de uso de uma cpu. Portanto, você pode usar 1 cpu por 25 horas ou 25 cpus por uma hora. Você vai receber e-mails avisando que está chegando ao fim, ou que já chegou ao fim. Mas, ainda assim, eu prefiro usar o &lt;a href="http://greybox.codeplex.com"&gt;http://greybox.codeplex.com&lt;/a&gt; que fica me avisando se tenho algum aplicativo no ar. Além dele não me deixar esquecer que o tempo está contando, uso ele para matar o aplicativo assim que eu termino meus testes;&lt;/p&gt;    &lt;p&gt;4) Por último, uma curiosidade sobre a contagem de uso de cpu do Azure. Ele é hoje cobrado pelo uso em intervalos de hora. Por exemplo, se levantei o aplicativo às 14:50 e deletei às 15:10, pago por 2 hrs de uso - uma hr pelo uso entre 14 e 15hrs. Outra pelo uso entre as 15 e 16hrs;&lt;/p&gt;    &lt;p&gt;Conto tudo isto não para desistimular vocês, mas para vocês saberem usar de graça!&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;)&lt;/p&gt;  &lt;p&gt;No próximo post volto a falar de padrões para a Nuvem.&lt;/p&gt;  &lt;p&gt;Abraços&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10100165" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category></item><item><title>Senha no Banco (mesmo criptografada) é PERIGO!</title><link>http://blogs.msdn.com/b/otavio/archive/2010/11/20/senha-no-banco-mesmo-criptografada-233-perigo.aspx</link><pubDate>Sat, 20 Nov 2010 12:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10094198</guid><dc:creator>Otavio</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10094198</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2010/11/20/senha-no-banco-mesmo-criptografada-233-perigo.aspx#comments</comments><description>&lt;p&gt;Quando visito clientes e parceiros sempre fa&amp;ccedil;o a seguinte pergunta: voc&amp;ecirc; guarda a senha do seu usu&amp;aacute;rio no banco de dados?&lt;/p&gt;
&lt;p&gt;Infelizmente o n&amp;uacute;mero de respostas SIM ainda &amp;eacute; alto. Todos que fazem isto tamb&amp;eacute;m afirmam que criptografam a senha e que isto os torna seguros.&lt;/p&gt;
&lt;p&gt;O problema com este tipo de solu&amp;ccedil;&amp;atilde;o &amp;eacute; que, uma vez com a senha criptografada na m&amp;atilde;o, ainda &amp;eacute; poss&amp;iacute;vel quebr&amp;aacute;-la. Pior: uma vez quebrada uma senha, todas as outras costumam ficar bastante amea&amp;ccedil;adas.&lt;/p&gt;
&lt;p&gt;Uma solu&amp;ccedil;&amp;atilde;o melhor &amp;eacute; a de &lt;span style="text-decoration: underline;"&gt;n&amp;atilde;o armazenar a senha&lt;/span&gt;, mas sim um &lt;strong&gt;hash&lt;/strong&gt; da senha. Com isto, mesmo que algu&amp;eacute;m consiga o acesso &amp;agrave; base com senha, ele n&amp;atilde;o conseguir&amp;aacute; chegar &amp;agrave; senha final.&lt;/p&gt;
&lt;p&gt;Andei procurando artigos com dicas sobre o assunto e encontrei poucos. Aqui est&amp;aacute; o que eu achei:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Existe um artigo que fala bem deste t&amp;oacute;pico em: &lt;a href="http://www.macronimous.com/resources/Secure_Password_Programming.asp"&gt;http://www.macronimous.com/resources/Secure_Password_Programming.asp&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Lembrem-se que podemos usar SHA256 com Salt, pois &amp;eacute; mais forte que SHA1, como este artigo mostra: &amp;ldquo;How To: Hash Data with Salt (C#/VB.NET)&amp;rdquo; &lt;a href="http://www.obviex.com/Samples/Hash.aspx"&gt;http://www.obviex.com/Samples/Hash.aspx&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Outro artigo interessante &amp;eacute; o &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2007/06/06/login-form-parameterized-queries-part-2.aspx"&gt;http://blogs.msdn.com/b/bethmassi/archive/2007/06/06/login-form-parameterized-queries-part-2.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E lembrem-se: n&amp;atilde;o guardem senhas no banco (nem no c&amp;oacute;digo ou em arquivos de config).&lt;/p&gt;
&lt;p&gt;Abra&amp;ccedil;os&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10094198" width="1" height="1"&gt;</description></item><item><title>Processamento 1000 vezes mais rápido</title><link>http://blogs.msdn.com/b/otavio/archive/2010/11/14/processamento-1000-vezes-mais-r-225-pido.aspx</link><pubDate>Sun, 14 Nov 2010 13:19:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10090781</guid><dc:creator>Otavio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/otavio/rsscomments.aspx?WeblogPostID=10090781</wfw:commentRss><comments>http://blogs.msdn.com/b/otavio/archive/2010/11/14/processamento-1000-vezes-mais-r-225-pido.aspx#comments</comments><description>&lt;p&gt;No &lt;a href="http://blogs.msdn.com/b/otavio/archive/2010/11/10/desafio-o-que-voc-234-faria-com-1000-servidores-durante-1hr.aspx"&gt;post passado&lt;/a&gt; tentei mostrar para vocês que a computação na nuvem é barata e que nos permite mudar uma computação de &lt;i&gt;1000hrs com 1 computador&lt;/i&gt; para &lt;i&gt;1000 computadores por uma hora&lt;/i&gt;. O custo é o mesmo. Já o tempo de processamento pode ser 1000 vezes menor!&lt;/p&gt;  &lt;p&gt;Mas isto não é um tipo de computação no qual estamos acostumados a criar. &lt;/p&gt;  &lt;p&gt;Estamos acostumados a colocar um &lt;i&gt;farm&lt;/i&gt; para &lt;i&gt;frontends web&lt;/i&gt; – cada um recebendo os pedidos de browsers distantes - sem grandes interações entre servidores. A programação é ASP.Net comum (ou Ruby ou Java, etc.) e não faz sentido aqui a frase “&lt;i&gt;1000 computadores por apenas 1hr&lt;/i&gt;”.&lt;/p&gt;  &lt;p&gt;Os aplicativos que fazem sentido neste contexto são aquelas que precisam de muita computação &lt;u&gt;e&lt;/u&gt; onde esta computação pode ser feita com &lt;b&gt;alto grau de&lt;/b&gt; &lt;b&gt;paralelismo&lt;/b&gt;!&lt;/p&gt;  &lt;p&gt;O padrão de computação aqui costuma ser a de:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Dividir uma tarefa em um conjunto grande de sub tarefas; &lt;/li&gt;    &lt;li&gt;Processar cada sub tarefa em um processador diferente (1000 ou mais, se necessário e possível); &lt;/li&gt;    &lt;li&gt;Reunir o trabalho feito destas sub tarefas; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/2046.image_5F00_6A93F530.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-90-16-metablogapi/6355.image_5F00_thumb_5F00_7504A383.png" width="394" height="220" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Existe um exemplo interessante deste padrão, no Azure, que é a implementação de um algoritmo de simulação de Monte Carlo que pode ser encontrado em &lt;a href="http://code.msdn.microsoft.com/fullmonte"&gt;http://code.msdn.microsoft.com/fullmonte&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Outro bom exemplo é o algoritmo de search de um Bing ou Google. Nele, teríamos 3 fases distintas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Fase da carga&lt;/strong&gt;: onde um processo de &lt;i&gt;crowling&lt;/i&gt; (busca/leitura de páginas públicas da web) e indexação são realizados. Como resultado, teremos índices, que mapeiam as ocorrências de palavras nas páginas web. Estes índices são armazenados em milhares máquinas de forma particionada. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fase de procura em paralela&lt;/strong&gt;: quando você manda um conjunto de palavras a serem consultadas pelo seu navegador e outro milhar de máquinas entram em ação procurando em paralelo a ocorrência das palavras nos arquivos de índices. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fase de consolidação dos resultados&lt;/strong&gt;: onde o resultado de cada procura feita em paralelo é consolidado para ser enviada ao navegador do usuário. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Notem que as três fases podem ser feitas com várias máquinas.&lt;/p&gt;  &lt;p&gt;Existem vários outros exemplos. O &lt;i&gt;encoding&lt;/i&gt; de vídeos e &lt;i&gt;renderização&lt;/i&gt; de imagens é um exemplo na moda. A produção do filme Avatar usou o Azure para armazenar e trabalhar cena a cena (&lt;a href="http://www.microsoft.com/microsoftservices/en/us/article_Microsoft_Role_In_Avatar.aspx"&gt;veja artigo&lt;/a&gt;). No PDC, falaram da Pixar usando o Azure para a &lt;i&gt;renderização&lt;/i&gt; de desenhos (&lt;a href="http://thenextweb.com/microsoft/2010/10/28/microsoft-and-pixar-team-up-to-bring-renderman-on-azure/"&gt;ver aqui&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Existem tamém vários outros padrões como pipeline, computação em grid e grafos de computação genéricos. O MapReduce, mostrado acima, não é o único padrão de computação em paralelo.&lt;/p&gt;  &lt;p&gt;Existem muitas outras oportunidades. &lt;/p&gt;  &lt;p&gt;A vantagem da nuvem não é só diminuir o custo da TI. A vantagem da nuvem é também permitir aplicações/processos antes impensáveis (devido ao antigo custo de computação e/ou armazenamento).&lt;/p&gt;  &lt;p&gt;Por isto continuo com minha campanha – experimente a nuvem. Baixe os SDKs do &lt;a href="http://azure.com"&gt;http://azure.com&lt;/a&gt;. Teste seu programa na sua workstation. Faça uma subscrição gratuita para subir o programa e ver como é simples o processo (&lt;a href="http://blogs.msdn.com/b/otavio/archive/2010/09/26/cen-225-rios-do-azure-e-como-obter-servidores-sem-custos.aspx"&gt;tenho dicas aqui&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt;Se prepare para a nuvem!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10090781" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/otavio/archive/tags/Azure/">Azure</category><category domain="http://blogs.msdn.com/b/otavio/archive/tags/MapReduce/">MapReduce</category></item></channel></rss>