Image Image Image Image Image
Scroll to Top

Topo

paas

Enciclopédia do Heroku

Em 23, ago 2012 | Sem Comentários | Em Arquitetura, Cloud Computing, Rails | Por Vinicius AC

Fonte: AkitaOnRails

Atualização 05/06: Depois que escrevi este artigo, encontrei um outro muito bom que recomendo a leitura por ter mais detalhes para complementar. O artigo se chamaHeroku isn’t for Idiots

Se você quer lançar uma aplicação Rails rapidamente, não existe melhor solução do que o Heroku. Para quem não conhece, o Heroku é um Paas (Platform as a Service) que roda sobre o Amazon EC2 (que é um IaaS ou Infrastructure as a Service). O Heroku automatiza a criação de uma nova máquina virtual (volátil! isso é importante) e configura todo o ambiente para rodar Ruby.

O Heroku usa uma unidade de máquina virtual chamada “Dyno”, a grosso modo, considere um Dyno como uma máquina virtual “pequena” com 4 cores e até 512Mb de RAMsem swap file e sem suporte a persistência de arquivos (não faça uploads diretamente no diretório public/uploads ou algo assim, sempre configure para mandar para a Amazon S3, aprenda como neste tutorial). Configurar um novo ambiente é simples, o próprio Heroku tem uma boa documentação ensinando como e recomendo ler antes de continuar.

Subir uma única dyno usando um banco de dados compartilhado PostgreSQL é de graça, o que é excelente para testar sua aplicação. Obviamente apenas um único dyno é pouco para qualquer aplicação séria lançada em produção para o público.

O Heroku fornece “stacks” padrão que é o perfil pré-configurado de um dyno para uma determinada plataforma. Para Ruby e Rails a mais atual (na data de publicação deste post) é a Celadon Cedar, a anterior era a Badious Bamboo portanto se encontrar um tutorial qualquer de Heroku por aí, cheque sobre qual stack estamos falando, só use se for para Cedar.

Concorrência num Dyno

A primeira coisa que me chamou a atenção é que a configuração recomendada é executar uma aplicação Ruby usando o servidor Thin. Pense no Thin como uma evolução do venerado Mongrel mas que suporta executar Eventmachine internamente. Na prática é um Mongrel melhorado, o que significa que cada Dyno, por padrão, não suporta mais do que 1 única execução concorrente (não confundir com “requisições por segundo”!! Muita gente erra isso. Um único processo com uma única execução concorrente pode executar várias requisições por segundo, basta cada requisição demorar menos de 1 segundo).

Executar múltiplos Thins poderia ser possível mas se queremos mais processos rodando simultaneamente para responder mais requisições ao mesmo tempo, a melhor opção é usar Unicorn. Leiam a documentação para aprender as peculiaridades do Unicorn, na prática pense nele como um controlador de processos Ruby. O melhor tutorial para usar Unicorn no Heroku continua sendo o do Michael van Rooijen. Não vou repetir tudo que ele disse, mas as partes importantes são:

Substituir a gem thin pela unicorn na sua Gemfile:

group :production, :staging do
  gem 'unicorn'
  ...
end

Em seguida precisamos declarar quantos processos do Unicorn queremos de cada vez, então crie um arquivo config/unicorn.rb com o seguinte:

worker_processes 4 # amount of unicorn workers to spin up
timeout 50         # restarts workers that hang for 30 seconds

Leiam atentamente o post original do Michael, ele explica alguns benchmarks que ele fez para determinar a quantidade ótima de workers de Unicorn e o ideal é entre 3 e 4 processos. A informação não-oficial que eu tenho é que cada dyno tem até 4 CPUs, o que justifica esse número de processos. Mais do que isso, chequem sempre quanto de memória cada processo consome (ferramentas como NewRelic ajudam nisso) pois a somatória precisa ser menor que 512Mb ou você terá problemas.

Finalmente, a stack Cedar permite configurar perfis de dynos num arquivo chamado Procfile que fica na raíz do seu projeto. Para que a dyno levante com Unicorn coloque o seguinte:

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

Continue aqui: http://www.akitaonrails.com/2012/04/20/heroku-tips-enciclopedia-do-heroku?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+AkitaOnRails+%28Akita+On+Rails%29#.UDYbXdZlT3w

Tags | , , ,

03

maio
2012

Sem Comentários

Em Blog

Por Allison

Red Hat abre o código do OpenShift

Em 03, maio 2012 | Sem Comentários | Em Blog | Por Allison

Fonte: IMasters

Com informações de The H

A Red Hat anunciou que abriu o código da Platform-as-a-Service (PaaS) OpenShift. A versão pública do produto, que recebeu o nome OpenShift Origin, pode ser baixada como um live CD baseado no Fedora, que pode ser utilizado para configurar uma instância do OpenShift em uma máquina usando o VirtualBox.

Anunciado há pouco menos de um ano, o OpenShift é baseado na tecnologia da Makara, uma empresa que a Red Hat adquiriu em 2010. A plataforma usa vários aplicativos de código aberto no background e, com o anúncio, a Red Hat abriu o código da interface do usuário e dos componentes que colocam tudo isso junto. A pilha do software do OpenShift é escrita em Ruby e usa YAML para definir os conteiners para aplicativos hospedados na plataforma.

Há várias edições diferentes do OpenShift, que abrangem desde a versão Express, que roda aplicativos escritos em PHP, Ruby e Python, até a versão Flex, que executa aplicativos mais complexos em Java e PHP e os liga ao middleware JBoss da Red Hat. A versão mais completa do OpenShift Power pode rodar qualquer aplicativo que compila no Red Hat Enterprise Linux (RHEL) 4 ou superior. O OpenShift possui opções que unem esses aplicativos em vários bancos de dados, como MySQL, PostgreSQL e MongoDB. Para fazer o deploy na plataforma, os desenvolvedores podem usar Git para colocar seu código na nuvem, e o OpenShift vai lidar com escalonamento e com gerenciamento num segundo plano.

A Red Hat declarou que planeja desenvolver o OpenShift de uma forma parecida com a distribuição Fedora, com o OpenShift Origin sendo o projeto upstream de seu próprio produto comercial. Nessa linha, a empresa está oferecendo facilidades para rastreamento de bugs, hospedagem de projeto e outros suportes para o OpenShift público, como já faz com o Fedora.

O código do projeto OpenShift Origin está disponível no GitHub sob a licença Apache 2.

Tags | , , ,

22

jan
2012

Sem Comentários

Em Blog
Cloud Computing

Por Allison

2012: Cloud já é realidade

Em 22, jan 2012 | Sem Comentários | Em Blog, Cloud Computing | Por Allison

Fonte: Cezar Taurion/IMasters

O tema cloud computing já está se tornando realidade, embora ainda demande muita discussão e opiniões conflitantes. A cada dia vemos o ecossistema criado em torno da computação em nuvem se consolidar e mais e mais casos de sucesso são divulgados. E como todo janeiro, que tal falarmos das perspectivas de cloud para o ano que entra?

Não vou citar estatisticas e previsões porque nem sempre os analistas de indústria que fornecem estas estatísticas e estimativas concordam entre si nos numeros.

As três camadas de cloud – IaaS, PaaS e SaaS – podem ser vistas como uma hierarquia, onde na camada mais de baixo temos IaaS, acima dela temos a PaaS e no topo SaaS. As camadas superiores são construídas em cima das camadas de baixo. Os benefícios obtidos são diretamente relacionados com a camada. Ou seja, quanto mais alta a camada, maiores os benefícios potenciais.

IaaS pode ser considerado como a camada “comoditizada” pois oferece basicamente infraestrutura virtual, abstraindo os equipamentos físicos dos usuários e não oferece conteúdo.

O SaaS, por sua vez, possibilita um nível de abstração mais alto. O usuário só vê as funcionalidades do software, sem precisar saber qual tecnologia é utilizada e nem mesmo se preocupar com upgrades de versões.

O uso de PaaS, pelo menos durante 2012, deve ficar restrito às plataformas dos fornecedores de SaaS que as utilizam como extensão das funcionalidades de seus produtos. O exemplo mais emblemático é o force.com que permite criar aplicativos que expandem as funcionalidades do salesforce.

Posteriormente veremos PaaS se consolidando com tecnologias próprias, separadas dos fornecedores de SaaS. Isto vai acontecer com o amadurecimento no uso de cloud, quando as empresas que utilizarem as PaaS acopladas aos SaaS identificarão que estarão aprisionados nestas plataformas. Um aplicativo escrito para um PaaS acoplado a um SaaS só funciona com aquele SaaS específico.

Mas é indiscutível que ainda estamos aprendendo a explorar a potencialidade da computação em nuvem e vamos aprender muito mais nos próximos anos. Os primeiros projetos têm sido exploratórios, o que é natural.

O que veremos este ano? Nuvens recheadas de workloads típicos para serem terceirizados via SaaS e aplicações on-premise transferidas para nuvens IaaS. Estarão abrindo caminho para a plena adoção do modelo, e embora limitados em seus impactos.

Na verdade, os ciclos de mudança tecnológica levam alguns anos para amadurecer. Provavelmente em 2020, a computação em nuvem será lugar comum, mas isso só será possível se os primeiros passos forem dados agora em 2012. Cloud computing é realidade agora e já deveria estar no radar dos gestores de TI de todas as empresas.

Até a próxima!

Tags | , , ,

25

nov
2011

Sem Comentários

Em Blog

Por Allison

Heroku lança serviço de provisionamento exclusivo para PostgreSQL

Em 25, nov 2011 | Sem Comentários | Em Blog | Por Allison

A Heroku mudou a estratégia do seu serviço Heroku Postgres. A partir de agora o serviço provê uma infraestrutura para armazenamento de bases de dados PostgreSQL, independente da solução PaaS (Platform as a Service) utilizada. O Heroku Postgres é uma plataforma disponibilizada com o conceito SQL Database-as-a-Service; a proposta é que os desenvolvedores implementem suas aplicações com o PostgreSQL sem se preocupar com questões como disponibilidade e desempenho, uma vez que estas serão resolvidas pela própria infraestrutura do Heroku.

O Heroku Postgres foi disponibilizado em 2007, mas até agora era oferecido somente como um serviço agregado à plataforma de nuvem da Heroku. O serviço estava disponível apenas para os clientes que desenvolviam e implantavam suas soluções web utilizando o PaaS da empresa. Com a nova estratégia, desenvolvedores têm a opção de utilizar o serviço em conjunto com a plataforma de cloud computing da Heroku ou não. Isso possibilita o desenvolvimento utilizando outra solução PaaS, um ambiente de cloud diferente, ou até utilizando um máquina local.

Segundo a equipe da Heroku, as principais vantagens em utilizar o serviço são a disponibilidade e a capacidade de processamento, além da segurança dos dados:

O Heroku Postgres tem suportado com sucesso 19 bilhões de transações clientes diariamente. A segurança e a durabilidade dos dados são a prioridade número um do serviço. Um conjunto de tecnologias chamado Continuous Protection foi desenvolvido para evitar qualquer tipo de perda de dados, mesmo em caso de falhas catastróficas.

Atualmente são oferecidas seis opções de planos para contratação do serviço. Os preços variam de acordo com o tamanho do cache escolhido, começando em 200 dólares por mês e chegando a US$ 6.400 mensais. Todos os planos incluem backup dos dados, monitoramento 24×7, 2 terabytes de espaço em disco, entre outras funcionalidades.

O Heroku Postgres também fornece uma API para que os clientes utilizem o serviço através da linha de comando ou via website. Para os interessados em mais detalhes, foi disponibilizado material com um guia introdutório, documentação detalhada, tutoriais e artigos sobre o serviço.

Fonte: Eder Magalhães/InfoQ

Tags | , , , , ,

09

nov
2011

Sem Comentários

Em Blog

Por Allison

10 previsões sobre o futuro da computação em nuvem

Em 09, nov 2011 | Sem Comentários | Em Blog | Por Allison

Preparando-se para um painel de discussão que ocorrerá em Israel, em um evento sobre o futuro da computação em nuvem, Geva Perry, que frequentemente realiza palestras em empresas e eventos do setor sobre o tema, publicou suas previsões sobre o futuro do cloud computing.

Compilei alguns dos conceitos em que tenho pensado nos últimos anos, e achei que deveria compartilhá-los para receber feedback. Tenha em mente que se tratam de previsões e tendências de longo prazo.

Considerando que fornecedores de computação em nuvem oferecem serviços que, de acordo com a pilha tecnológica de cada solução, são geralmente classificados como Software como Serviço (SaaS), Plataforma como Serviço (PaaS) e Infraestrutura como Serviço (IaaS), Perry prevê:

  • O PaaS irá dominar: IaaS se torna nicho. No longo prazo, IaaS não faz sentido, exceto para um conjunto limitado de cenários. Todos os prestadores de IaaS querem ser PaaS quando crescerem.
  • Nuvens públicas irão dominar: nuvens internas serão nicho. No longo prazo, nuvens internas (nuvens operando nos centro de dados particulares das empresas, ou “nuvens privadas”) não fazem sentido.

Perry acredita que existirão nuvens especializadas em nichos, por uma série de fatores. Diferentes plataformas de computação em nuvem possuem características diferentes, bem como as aplicações que suportam. E tais fatores não são apenas ditados pela natureza do negócio; são também regulados por autoridades específicas, como organizações, bancos e governos.

Outros fatores para a especialização em nichos são a necessidade de privacidade e as características de desempenho requeridas. Dessa forma, Perry afirma que não existe uma solução única para todos casos. Além disso, com suas previsões, Perry traz à tona questões sobre padronização, portabilidade e o ecossistema de fornecedores de serviços de nuvem.

  • O debate Controle versus Liberdade: Liberdade é um termo genérico utilizado pelos pioneiros na adoção de soluções em nuvem (sem custos iniciais, sob demanda, com auto-serviço e maior poder ao pessoal de produção – por exemplo, os desenvolvedores), mas o controle (ou falta dele) é o termo genérico para os obstáculos em sua adoção por grandes empresas.
  • Federações na Nuvem: […] em qualquer negócio que dependa fortemente de confiança, como TI, nada supera uma marca local. Dessa forma, as pessoas tenderão a migrar para a nuvem de uma operadora de telefonia ou provedor de TI local de sua confiança. Por outro lado, como terão de alcançar uma audiência global, vão precisar de servidores em todo o mundo. Como resultado, veremos a formação de federações de nuvens […]
  • Padrões de Nuvem: [A definição de padrões em cloud] também é inevitável. No entanto, teremos vários padrões concorrentes. Pelo menos uma posição formal de especificação por um organismo de normalização e vários padrões “de fato” de grandes players comerciais, tais como Amazon e VMWare.
  • Consolidação horizontal e vertical: Como em qualquer indústria, conforme a computação em nuvem amadurece, irá ocorrer uma consolidação. Isso acontecerá tanto horizontalmente, por exemplo, grandes players IaaS irão incorporar provedores regionais […]

Destacamos algumas das previsões do post original de Perry.

Fonte: Postado por Dilip Krishnan , traduzido por Fernando Ultremare/InfoQ

Tags | , ,

09

out
2011

Sem Comentários

Em Blog

Por Allison

JavaOne 2011 e os próximos grandes passos para Java EE, SE e ME

Em 09, out 2011 | Sem Comentários | Em Blog | Por Allison

A próxima versão Java EE vai suportar computação em nuvem, com multi-tenancy e maior capacidade de caching e elasticidade. Adam Messinger, Hasan Rizvi e Cameron Purdy, da Oracle, apresentaram os planos para as edições Micro (ME), Standard (SE) e Enterprise (EE) da plataforma Java na conferência JavaOne 2011, realizada nesta semana.

Cameron Purdy falou sobre as novas funcionalidades planejadas para a plataforma Java EE, que incluem o suporte a cloud computing. Segundo Purdy, hoje todas as aplicações de cloud são proprietárias e não existe padrão, e precisamos de um padrão de plataforma como serviço (PaaS) baseado em soluções para nuvem. O multi-tenancy (o suporte a múltiplos clientes com isolamento de tráfego, aplicações e configurações) será implementado na própria máquina virtual Java, de modo a permitir monitoramento, medição e controle dos diferentes clientes, utilizando a JVM para otimização no uso de recursos.

Assim como o Contexts and Dependency Injection (CDI) gerencia as dependências entre os componentes em aplicações em uma VM, o Java EE 7 fará o mesmo para aplicações corporativas. As anotações do JPA terão capacidade de mapear objetos Java nas tabelas de banco de dados utilizando controle dos usuários. Também está sendo desenvolvido um trabalho para que o caching em Java se torne um padrão e também seja implementado na versão Java EE 7.

Com relação ao Java SE, a Oracle anunciou o lançamento de um preview do JDK 7 para Mac OS X, com versão final a ser lançada em 2012. Além disso, o Java SE 8 vai suportar modularidade e o gerenciamento do ambiente de execução utilizando funcionalidades dinâmicas de compilação.

Haverá ainda melhorias para JavaScript na JVM, o que inclui o Nashorn, a próxima geração de engine JavaScript otimizada para a JVM; e a interoperabilidade nativa Java/JavaScript para comunicação entre objetos Java e JavaScript.

A Oracle também anunciou sua intenção de submeter a plataforma JavaFX como um projeto open source dentro do OpenJDK. A Oracle pretende inicialmente contribuir com os controles JavaFX UI e suas bibliotecas; outros componentes JavaFX serão liberados em fases subsequentes. E a próxima geração do cliente Java, o Java FX 3.0, está planejado para lançamento em 2013 e incluído no JDK 8.

Os planos para o Java ME incluem a sincronização entre os releases do CDLC e do JDK, além da convergência do CDC com a API Java SE Embedded. O suporte para recursos mais recentes em dispositivos, como multitouch, também será disponibilizado. Outras mudanças incluem a liberação do OJWC 1.1, com importantes atualizações para a base de código do CDC, e a integração com serviços mobile.

Fonte: Srini Penchikala/Mário Henrique Trentim/InfoQ

Tags | , , , , , , ,