C# e PowerShell – objetos IDisposable

Alguns meses atrás automatizei um processo de deploy utilizando PowerShell, basicamente ele tirava servidor por servidor do NLB, sincronizava os arquivos e realizava alguns GET’s em um lista de urls. Para realizar a requisição web, eu optei por criar um objeto do tipo System.Net.WebRequest, e realizar a requisição. Porém notei que o processo travava, demorava muito e até retornava timeout, quanto tinha mais de uma url para testar.

Abaixo segue um exemplo do código que apresentava timeout:

Sem Dispose

$urls=("http://www.google.com.br","http://www.google.com.br","http://www.google.com.br","http://www.google.com.br","http://www.google.com.br","http://www.google.com.br","http://www.google.com.br","http://www.google.com.br","http://www.google.com.br","http://www.google.com.br")

foreach($item in $urls){
    $request = [System.Net.WebRequest]::Create($item)
    $response=$request.GetResponse()
    $response.StatusCode
}

Continue reading

Script para deploy: WebSite e NBL com PowerShell

Recentemente tive que automatizar um processo de sincronizar arquivos entre alguns servidores, e gerenciar estes mesmos servidores no NBL (network load balance) durante esse processo de sinc, parando o servidor e colocando ele de volta no NBL após o sinc e algumas urls tenham sido acessadas para testar.

Pensando nisso, fiz um script rápido que usa o modulo do windows para NBL, que basicamente automatiza esse processo.

Continue reading

Amazon EC2 + PowerShell

Uma das grandes vantagens da computação em nuvem é a flexibilidade de recursos, com ela é possível pagar por um determinando recurso somente ao utiliza-lo. Como já disse em um post anterior (Amazon S3 + PowerShell) a Amazon possui excelentes soluções em cloud computing, entre elas está a Amazon Elastic Compute Cloud (EC2), que consiste em um serviço de computação, extremamente flexível, na qual é possível criar e gerenciar maquinas virtuais (instâncias), com várias features, e em vários locais do mundo. Continue reading