software livre no Brasil, especialmente no Distrito Federal, onde desenvolvedores Java vem trabalhando com softwares dessa categoria ha muito tempo, sejam eles disponibilizados pelos grupos Apache, JBoss, GlassFish, etc. Sendo assim, eu considero de extrema relevancia uma apresentacao na forma de oficina/tutorial que demonstre como uma aplicacao, com requisitos corporativos, pode ser construida e implantada em producao, partindo da montagem do ambiente de desenvolvimento para uma equipe, ate sua instalacao num ambiente que garanta alta disponibilidade, tolerancia a falhas e capacidade para atender alta demanda transacional. Tudo isto, e claro, utilizando softwares livres e a especificacao Java EE 6.A proposta e um tutorial de quatro (4) horas que atenda tanto ao publico que trabalha com desenvolvimento, quanto ao publico que atua na area de infraestrutura. Ambos sairao ganhando e mais integrados pois, para os programadores, sera uma otima oportunidade de entenderem, de forma pratica, como conceitos nao funcionais (como tolerancia a falhas, balancemento de cargas) sao trabalhados pela equipe de infraestrutura. De forma similar, essa ultima equipe podera ter uma ideia mais clara sobre como os servidores de aplicacoes, instalados e configurados por eles, oferecem os servicos que atendem aos requisitos de negocio dos sistemas que sao implantados.A estrutura que proponho para esse tutorial e a seguinte:Duas (2) horas para explicacoes relativas a montagem e o desenvolvimento de uma aplicacao Java EE 6;Uma (1) hora para explicacoes relativas a montagem e implantacao da aplicacao num ambiente de producao privado;Uma (1) hora para explicacoes relativas a montagem e implantacao da aplicacao num ambiente de cloud computing;Desenvolvendo uma aplicacao Java EE 6 (2 horas)Montando um ambiente de desenvolvimento (~ 30min)Nesta parte do tutorial eu cobrirei a montagem de um ambiente de desenvolvimento partindo da criacao de uma maquina virtual utilizando o VirtualBox, seguindo pela instalacao de um sistema operacional GNU/Linux, de uma versao livre do JDK (OpenJDK), de servidores de aplicacoes (JBoss AS e GlassFish), de ambientes integrados de desenvolvimento (IDEs), de uma ferramenta para a gerencia de versoes (Git), de um banco de dados (MySQL) e de ferramentas para o auxilio na construcao de aplicacoes Java (Maven, Nexus e Forge).Links para alguns artigos, tutoriais e documentos (varios de autoria propria) que serao referenciados e/ou utilizados nas demonstracoes desta parte:http://blog.ladoservidor.com/2013/02/utilizando-um-arquivo-kickstart-para.htmlhttp://blog.ladoservidor.com/2013/02/criando-uma-vm-centos-via-linha-de.htmlhttp://blog.ladoservidor.com/2013/02/criando-e-utilizando-um-mirror-local-do.html http://a.ladoservidor.com/tutoriais/maven-nexus/index.htmlhttp://forge.jboss.org/http://toolscloud.comDesenvolvendo a aplicacao (~ 1h e 30 min)Apos a montagem do ambiente eu explicarei a construcao de uma aplicacao (app) Java EE, do zero e passo a passo, numa abordagem guiada por testes (TDD). Esta app podera ser executada nas ultimas versoes de servidores de aplicacoes Java como o GlassFish e o JBoss. APIs Java EE como CDI, JSF, JPA e EJB serao a base para a construcao desta app. Tudo sera explicado, detalhadamente, na dose de tempo permitida.Links referenciados nesta parte:https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=5064http://a.ladoservidor.com/tutoriais/arquillian-shrinkwrap/index.htmlImplantando a aplicacao num ambiente de producao proprio (1 hora)A implantacao de uma aplicacao em producao envolve pegar uma ultima versao tagueada, testada e gerada automaticamente por um ambiente de integracao continua e, atraves de scripts, publicar esta versao em uma ou varias instancias de servidores de aplicacoes em execucao. Neste ponto, os desafios tambem sao grandes pois sao necessarios procedimentos automaticos (que