Netflix Asgard – Como utilizar?

»Postado por em 08/03/13 em Artigos | 0 comentários

O Asgard é uma ferramenta desenvolvida pelo Netflix para manutenção da nuvem e deploy de aplicações na Amazon Web Services (AWS). É um projeto open-source ainda em desenvolvimento, e qualquer pessoa pode colaborar em https://github.com/Netflix/asgard. Ele facilita o gerenciamento de algumas coisas que não são diretamente gerenciáveis pelo console web da Amazon, como, por exemplo, deploy de aplicações e auto-scaling groups.

 

Preparando o Asgard

Ambiente:

Para rodar o Asgard você primeiro precisará ter o Java instalado no servidor onde ficará instalado. Em seu site oficial, a recomendação é a utilização do Java 6, mas nada impede que rode no Java 7, se assim preferir.

 

AWS key pair:

Você precisará também de pelo menos uma chave SSH na sua conta da AWS. Para criar sua chave, siga os seguintes passos:

1. Entre no console da AWS

2. Entre na página de configuração do EC2

3. Clique na opção Key Pairs, no menu à esquerda

4. Clique na opção Create Key Pair, no menu superior

5. Informe o nome da nova chave

6. Confirme

 

Download e Execução do Asgard:

Para realizar o download, entre neste link: https://netflix.box.com/asgard/

O Asgard oferece um .war com tomcat embutido, portanto, basta seguir os seguintes passos:

1. Realizar o download do arquivo asgard-standalone.jar, encontrado no link acima

2. Abrir a linha de comando

3. Navegar, pela linha de comando, até o diretório onde se localiza o download

4. Executar o seguinte comando: java -Xmx1024M -XX:MaxPermSize=128m -jar asgard-standalone.jar

Para verificar se o comando funcionou, basta acessar a url: http://localhost:8080

Também existe a possibilidade de baixar o .war encontrado na página de downloads e colocar dentro de seu Tomcat, se assim preferir.

 

Forneça as credenciais de sua conta AWS:

Para obter as informações de sua conta, o Asgard necessita que informe suas credenciais a primeira vez que é executado. Para isso, siga as instruções:

1. Abra algum browser e acesse: http://localhost:8080

2. Insira suas credenciais nos campos que aparecem na tela

3. Aguarde o servidor carregar e armazenar as informações da AWS na memória da máquina. A página será recarregada automaticamente quando este processo terminar.

 

Crie uma aplicação:

1. Clique em “App”

2. Clique em “Create new Application” (Criar nova aplicação)

3. Insira os dados de sua aplicação:

  • Name: Nome da Aplicação
  • Description: Breve descrição sobre a Aplicação
  • Owner: Seu nome/Nome do responsável pela Aplicação
  • Email: Seu e-mail/E-mail do responsável pela Aplicação

4. Envie os dados, clicando no botão “Create new Application”, na parte inferior da página

 

Crie um cluster:

1. Clique em “Cluster”

2. Clique em “Create New Auto Scaling Group”

3. Selecione a Aplicação criada anteriormente

4. Na seção “Launch Configuration”, mude a AMI Image ID para a AMI que você deseja realizar deploy como seu exemplo de HelloWorld.

5. Selecione o security group para as instâncias do Cluster

6. Envie o formulário clicando em ”Create New Auto Scaling Group”, na parte inferior da página

 

Fazendo isso, o Asgard estará pronto para uso e sua aplicação estará pronta para utilizar as vantagens do Auto-Scaling da AWS. De acordo com suas métricas, definidas ao criar um cluster, o sistema automaticamente criará (e destruirá) máquinas quando necessário.

 

Realizando Deploy

Uma das vantagens da utilização do Asgard é a facilidade para realizar deploy, com seus métodos já embutidos. Para utilizar essa feature, existem duas maneiras:

1. Rolling Push – As máquinas vão sendo derrubadas, uma a uma, sendo substituidas pela nova AMI informada. Apenas quando uma máquina foi criada com sucesso, outra é substituida. Este processo se repete até que todas as máquinas antigas tenham sido substituidas pelas novas.

2. Cluster de Auto Scaling Groups Sequenciais – Um novo cluster é criado com o número de máquinas informado em sua criação, e o tráfego é direcionado para estas novas máquinas apenas quando todas as máquinas estiverem prontas para uso. Após isso, você pode desligar as máquinas antigas. Esta opção pode ser usada para garantir que não exista nenhum tipo de downtime durante o processo de deploy.

 

Personalizando User Data

Caso queria, é possível customizar o User Data gerado para sua aplicação, para que sejam executados os comandos necessários para sua aplicação sempre em que uma nova instância for criada.

 

Para fazer isso, entre na pasta de configuração do Asgard (~/.asgard, por padrão) e cria uma pasta plugins. Todos os arquivos com extensão .groovy adicionados nesta pasta, serão lidos como Spring beans. Portanto, poderá utilizar anotações do Spring, como o @Autowired.

O Asgard possui a interface com.netflix.asgard.plugin.UserDataProvider, com apenas um método:

String buildUserDataForVariables(UserContext userContext, String appName, String autoScalingGroupName, String launchConfigName).

Para personalizar o User Data, basta criar uma classe implementando essa interface e colocá-la na pasta plugins, criada logo acima.

Além disso, deverá alterar o arquivo Config.groovy, adicionando a seguinte entrada:

plugin {

    userDataProvider = ‘meuProvedorDeUserData’

}

O nome meuProvedorDeUserData deve ser substituído pelo nome de sua classe, com lower camel case.

 

Autenticação

Infelizmente o Asgard ainda não tem nenhum tipo de sistema de autenticação de usuários construído nele, permitindo que qualquer usuário, que saiba o caminho para o servidor aonde seu Asgard se encontra hospedado, entre no sistema sem nenhum tipo de validação. Para resolver isso, você pode utilizar o Apache para realizar autenticações, ou criar sua própria implementação de segurança.

 

Bom, acho que por enquanto é só. Espero que tenham gostado. Aproveitem assinar o RSS/Feed do blog.

leia mais

Visão Computacional: Parte 2

»Postado por em 10/04/12 em Artigos | 1 comentário

Hoje continuarei a série de posts sobre visão computacional, iniciada aqui.

Agora que já convertemos nossa imagem para uma matriz que a representa, podemos criar métodos que realmente tenham alguma utilidade para nós.

Começarei com métodos simples, apenas para entenderem a lógica que utilizaremos em basicamente todos os métodos criados daqui para frente.

Até o final deste post, teremos feito métodos para modificar o brilho e o contraste da imagem.

leia mais

Visão Computacional: Parte 1

»Postado por em 02/04/12 em Artigos | 3 comentários

Nossa, a quanto tempo não escrevo para o blog. Espero não ter perdido a prática.

Escreverei uma série de posts curtos sobre visão computacional, ensinando desde operações básicas até operações mais avançadas. Resolvi começar esta série pois não existe muito material didático gratuito sobre o assunto. Bom, espero que gostem.

Vintage Pentax Film Camera - By genericface

Começaremos com o mais básico, transformar uma imagem em algo que possamos trabalhar e modificar livremente. Existem diversas maneiras de fazer isso, sendo as mais usuais transformar a imagem em uma matriz, RGB ou em tons de cinza.

leia mais

O mundo precisa que você faça o que ama

»Postado por em 15/09/11 em Artigos | 8 comentários

Recentemente encontrei um artigo, escrito por Jonathan Mead, chamado “The World Needs You To Do What You Love“. Achei tão interessante que vou fazer uma breve descrição das idéias principais do artigo.

Happy Clown, por Mark Gstohl

 

Pense comigo… As maiores mudanças, as maiores revoluções, foram feitas sempre por pessoas que estavam profundamente apaixonada, sentiam grande amor pelo que faziam.

Se você estiver trabalhando com algo que considere chato, desanimador, provavelmente não irá se esforçar ao máximo. Irá chegar ao trabalho, fazer o suficiente para não ser demitido, e voltar para casa. Não irá tentar promover a mudança e, com certeza, não irá inspirar outros.

Mas se o trabalho te deixa animado, deixa você acordado a noite toda, e te preenche… você fará mais. Você vai dedicar mais tempo, mais energia, mais paixão. Porque vale a pena. Te satisfaz.

leia mais

A pirâmide do sucesso

»Postado por em 03/09/11 em Artigos | 4 comentários

Hoje vou falar sobre a pirâmide do sucesso, um resumo da filosofia de sucesso de John Wooden, o maior técnico de basquete de todos os tempos. Todas as informações que constam nesse post foram retiradas de seu livro “Jogando Para Vencer”. Recomendo a leitura.

A pirâmide é formada por 15 blocos individuais que representam características pessoais que um líder deve ter para alcançar o sucesso. Sua disposição foi estudada e existe lógica por trás do posicionamento dos blocos.

leia mais

Integração contínua

»Postado por em 25/08/11 em Artigos | 1 comentário

O que é?

Segundo Martin Fowler, Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente”.

Devido ao crescimento de popularidade das metodologias ágeis, a integração contínua tornou-se importante para a comunidade de desenvolvimento de software. Ela facilita a integração, não importando o tamanho da equipe e quantas pessoas estão alterando o código ao mesmo tempo.

leia mais

Programação em par

»Postado por em 22/08/11 em Artigos | 2 comentários

Quando ouvi falar em programação em par pela primeira vez, não conseguia entender como aquilo seria produtivo e os benefícios que trazia. Minha forma de pensar sobre o assunto mudou com o tempo, e gostaria de compartilhar o conhecimento adquirido.

 

O que é programação em par?

O nome já deixa explícito sobre o que consiste a programação em par. Duas pessoas criando o código para um projeto de software, em conjunto (no mesmo computador). A pessoa que está digitando é chamada de condutor e a outra de navegador.

 

Por que programar em par?

Programação em Par

boo-turn por Fernando Mafra

 

 

- Aprendizado compartilhado

Existem diversas opiniões sobre o mesmo assunto, cada um pensa de uma maneira diferente, tiveram experiências de vida diferentes. Programar em par faz essa diversidade no modo de pensar ser uma maneira de aprender mais, enxergar o problema de diversos pontos de vista.

leia mais