Trilha Arquitetura

Software as a Service, as a Platform, as a Infrastructure ... as needed!

A arquitetura de uma aplicação é acima de tudo uma peça estratégica para bons produtos e empresas. Bem como principais tendências e inovações tecnológicas devem fazer parte do dia-a-dia de um desenvolvedor profissional, poliglotas e multidisciplinar. E o aprendizado contínuo, esse sim um dever de todo um time!

Horário Palestra
08:00 às 09:00 Credenciamento e recepção dos participantes com café da manhã simples
09:00 às 10:00 Abertura
10:10 às 11:00 Evoluindo Ecossistemas com Consumer Driven Contracts
Evoluindo Ecossistemas com Consumer Driven Contracts
Marcos Matos / Thiago Colucci
Arquitetura orientada a serviços [SOA] é uma excelente forma de estruturar projetos em grandes empresas e vem sendo usado como padrão da indústria para solucionar diversos tipos de problemas. Desenvolvedores que trabalham em projetos que utilizam SOA enfrentam diversos desafios, tais como conseguir testar serviços que dependem de outros vinte serviços ou decidir com segurança quais funcionalidades podem ser removidas sem quebrar outro pedaço do ecossistema. Nesta palestra, iremos mostrar o Consumer Driven Contracts, uma maneira diferente de evoluir ecossistemas baseados em serviços. Os consumidores de um serviço são responsáveis por prover especificações executáveis sobre o que irão consumir dos produtores. Assim, estes contratos atuam como meio de comunicação entre times, provendo stubs para testes funcionais e uma documentação precisa sobre como o serviço vem sendo utilizado.

Marcos Matos / Thiago Colucci
11:10 às 12:00 CQRS - Aplicação Prática (Stadium)
CQRS - Aplicação Prática (Stadium)
Elemar Rodrigues Severo Júnior
O que é CQRS? Por que adotar? Impactos para disponibilidade Adequação para Cloud Computing Arquiteturas complexas para tratamento de comandos

Elemar Rodrigues Severo Júnior
12:00 às 13:00 Intervalo para almoço*
13:10 às 14:00 Multitenancy: da teoria à realidade, do DB ao Middleware (Stadium)
Multitenancy: da teoria à realidade, do DB ao Middleware (Stadium)
Bruno Borges
Multitenancy é um termo em arquitetura de software que aponta uma única instância de software capaz de trabalhar com diferentes organizações (tenants). Ao invés de se criar diferentes instâncias de um mesmo software para atender cada cliente, um provedor de serviço pode aplicar uma arquitetura Multitenant para prover uma oferta SaaS completa. Nesta apresentação, veremos o que é esta arquitetura, e como já podemos utilizá-la com as novas features apresentadas no Oracle DB 12c como os Pluggable Databases, e também na nova versão do WebLogic 12c.

Bruno Borges
14:10 às 15:00
Separando Negócio da Arquitetura com Modelos Executáveis
Separando Negócio da Arquitetura com Modelos Executáveis
Rafael Chaves
A palestra parte da premissa que arquitetura e negócio (ou domínio do problema) são ""criaturas"" muito diferentes e que requerem técnicas, ferramentas, níveis de abstração e talentos bem particulares, mas tipicamente tais diferenças são completamente ignoradas, resultando em sistemas que custam muito mais para construir do que o esperado e são extremamente difíceis de evoluir para atender novos requisitos técnicos e de negócio. A abordagem de modelos executáveis, inicialmente promovida por Shlaer and Mellor, e hoje incorporada pela OMG em UML/MDA, fornece uma solução para esse problema, separando negócio da arquitetura, e realizando a combinação das duas dimensões de maneira automatizada. Com modelos executáveis, a aplicação é desenvolvida independentemente da arquitetura, usando uma linguagem mais rica e de mais alto nível que linguagens de implementação típicas (como Executable UML). A combinação de um modelo executável e um padrão arquitetural (ou modelo de plataforma na terminologia de MDA) pode ser feita automaticamente e quantas vezes for necessário (sempre que a aplicação precisar satisfazer novos requisitos de negócio ou técnicos). Tal abordagem oferece oportunidades interessantes: - fácilidade de evolução arquitetural - atualize o padrão arquitetural e re-gere a aplicação - suporte a padrões arquiteturais variados - iOS vs. Android vs. Javascript, GAE vs. EC2 vs. Azure, relacional vs. NoSQL - possibilidade de arqutetura como commodity - Cloudfier oferece arquitetura como serviço (AaaS) - especialização de trabalho - alguns desenvolvedores têm mais interesse em negócio ou domínio do problema), outros mais em tecnologia. As idéas promovidas serão demonstradas através do Cloudfier, um ambiente de desenvolvimento rápido que é um exemplo da abordagem de modelos executáveis. Em Cloudfier, o desenvolvedor se encarrega de definir a solução conceitual, e a arquitetura é provida automaticamente pela plataforma. Cloudfier é um serviço gratuito (para prototipação), e participantes serão convidados e encorajados a usá-lo.

Rafael Chaves
Uma DSL que transformou o produto
Uma DSL que transformou o produto
Marcos Vinicius
1. O que é uma DSL (ver alguns livros sobre o assunto) 2. Apresentação do caso prático - Trata-se de uma DSL que iniciou timidamente e depois revolucionou o desenvolvimento, a arquitetura e o produto. 2.1. DSL como ferramenta para melhorar o desenvolvimento. - Uma linguagem é mais fácil de implementar que uma GUI, e suporta mudanças muito mais rápidamente; pode ser amigável ao usuário, e permitir que todo o back-end seja construído sem UI e o usuário ainda assim validar a lógica de negócio) 2.2. DSL como ferramenta para melhorar os testes. - Uma vez que ambientes podem ser configurados usando DSL, vários testes (funcionais, regressão, etc) podem ser configurados a partir da DSL. 2.3. Arquitetura e DSL (princípios de arquitetura de serviços) - É cada vez mais comum a idéia de você desenhar um sistema de forma que tenha uma aplicação que realize toda a lógica de negócio e oferece vários serviços para input e output de dados. Você pode orientar seu sistema de maneira que a DSL seja a linguagem que ele fala. 2.4. DSL e GUI (separação front-end e back-end) Mesma idéia dos SGBD (sistemas gerenciadores de bancos de dados): eles ""falam"" SQL e você pode trabalhar várias GUIs para interagir com eles (desde linhas de comando até ferramentas complexas como o SQLDeveloper). 2.5. DSL e o produto A DSL fornece ao produto novas features, como possibilidade de scripting (você pode ter um script de criação de um ambiente completo para sua aplicação, salvar este script e utilizar depois), templating (muitas vezes vários objetos podem ser configurados através de um só input de dados), code complete (caso seu cliente goste), APIs para delegar desenvolvimento (você cria o SQL e deixa outros implementares os editores gráficos, por exemplo). 2.6. Desenvolvendo uma DSL com Antlr4: lexer, parser, abstract syntax tree, interpreter e a conexão com um sistema.

Marcos Vinicius
15:00 às 15:30 Coffee-break & networking
15:40 às 16:30 Mensageria: o pombo-correio de seus sistemas
Mensageria: o pombo-correio de seus sistemas
Hanneli Carolina Andreazzi Tavante / Luan Cestari
Já teve que integrar dois ou mais sistemas e ficou na dúvida de como fazê-los trocar informações de forma eficiente? Cansado de ouvir siglas como JMS, AMQP e termos como 'Mensageria', 'mensageria assíncrona', ?fila? e ?tôpico? e tantos outros e ter dúvida sobre o significado de tudo isso? Mesmo sabendo o significado, já se questionou se deveria colocar isso em produção ou adotar alguma solução alternativa? Essa palestra vai apresentar um pouco sobre esses conceitos e exemplificar quando e como usá-los no mundo real.

Hanneli Carolina Andreazzi Tavante / Luan Cestari
Lean Architecture
Lean Architecture
Christophe Thierry Marchal
Num primeiro momento explicarei que uma arquitetura deve orientar os desenvolvedores na direção certa como sustentar os requisitos do projeto. Falarei de requisitos e como eles sao levantados no modelo cascata. Num segundo momento falarei de como o modelo agile gerencia a arquitetura de software e finalmente falarei de Lean e da importancia da criação de uma API que guia o desenvolvedor. A criação da API é feita muito cedo para ter o desenvolvimento das funcionalidade business em paralelo com o desenvolvimento da arquitetura

Christophe Thierry Marchal
16:40 às 17:30 Alta Disponibilidade com Cloud Computing e Cassandra
Alta Disponibilidade com Cloud Computing e Cassandra
Ivan Linhares Martins
Esta palestra vai contar como a Chaordic lida com os desafios de escala e a alta disponibilidade dos sistemas, suportando hoje mais de 3 bilhões de requisições mensais na sua plataforma. Será mostrado o uso intensivo de soluções de Cloud Computing e Amazon Web Services que suportaram o crescimento da empresa. Para ilustrar este processo, será descrita a nossa transição de uma arquitetura tradicional baseada em MySQL para o Apache Cassandra. O que aprendemos? Lições sobre automação, monitoramento, otimização de custos, cultura, gestão de infra na nuvem e outras que serão compartilhadas nesta apresentação. A Chaordic é uma empresa especializada em sistemas de recomendação e oferece soluções inteligentes para o mercado de e-commerce no Brasil. De uma startup até a sua consolidação no mercado, a plataforma de dados passou de milhões para alguns bilhões de requisições mensais.

Ivan Linhares Martins
17:40 às 18:30 Big Data na prática: Resolvendo problemas de performance com Hadoop
Big Data na prática: Resolvendo problemas de performance com Hadoop
Marco A. S. Reis
Nesta palestra serão mostrados os passos desenvolver uma solução utilizando algumas ferramentas que fazer parte do ecossistema do Hadoop: MapReduce, HDFS e HBase. Um típico programa Hadoop é composto de algumas fases como carregamento de dados no HDFS, operações MapReduce e recuperação do resultado do HDFS. Com base nessas características, vamos analisar em que contexto o Hadoop pode fazer a diferença.

Marco A. S. Reis
Nem tudo são flores no mundo encantado da Plataforma como Serviço
Nem tudo são flores no mundo encantado da Plataforma como Serviço
Lucas Zingano
Plataformas como Serviço (PaaS) apresentam diversas vantagens para os desenvolvedores que querem utilizar cloud computing sem ter que se preocupar a configuração da infraestrutura do ambiente de implantação da aplicação. Entretanto, PaaS não é uma "bala de prata" e alguns fatores implícitos podem impactar na operação em nuvem e influenciar na tomada de decisão de quando vale mesmo a pena utilizar um PaaS. Nesta palestra cada um destes fatores será apresentado e discutido.

Lucas Zingano
18:40 às 19:00 Encerramento e sorteios

* Todos os participantes receberão um sanduíche na hora do almoço

Obs.: Grade sujeita a alteração

Guilherme Elias

Guilherme Elias


Desenvolvedor de Software, entusiasta tecnológico, membro de comunidades de usuários (.Net, Python, Java, Metodologias Ágeis, Testes, Arquitetura). Aficionado por Continuous Delivery, Agile MMA, Lean, XP, Java, C#, Javascript, Ruby, Python, Shell script e afins. Atualmente na empresa uMov.Me S.A




Bruno Borges

Bruno Borges


Gerente de Produtos da Oracle na linha Java EE como GlassFish e WebLogic. Profissional da área há 10 anos, atuou em empresas como EDS/HP, CETIP, Summa Technologies, CETIP, Neociclo e agora arquiteto de sistemas na wdev; desenvolve softwares e soluções em padrões de integração (EIPs), aplicativos Web e aplicativos Android. Participante de comunidades de software livre (RioJUG, SouJava, Apache Software Foundation, #horaextra), fundou o grupo Wicket em Português e contribui para projetos Open Source da ASF.


Christophe Thierry Marchal

Christophe Thierry Marchal


Com mais de 10 anos de experienca, trabalha como arquiteto de software na ilegra. Usa Play!, scala, akka, java e python. Curta novas tecnologias, programação funcional, 4clojure e hackear. Jogador de SC2 no tempo livre.


Elemar Rodrigues Severo Júnior

Elemar Rodrigues Severo Júnior


Elemar Júnior é consultor-líder na EximiaCo. Tem décadas (literalmente) de experiência acelerando e potencializando o lado digital dos negócios. É Microsoft MVP desde 2012 e Microsoft Regional Director desde 2019.



Hanneli Carolina Andreazzi Tavante

Hanneli Carolina Andreazzi Tavante


Hanneli (a.k.a @hannelita) é uma desenvolvedora fissurada por programar, aprender novas linguagens, frameworks, explodir capacitores, programar em C pra relaxar e comittar código útil (ou não) em projetos Open Source aleatórios que encontra vasculhando Githubs alheios. Ela também gosta de café, especialmente os do Starbucks.


Ivan Linhares Martins

Ivan Linhares Martins


Ivan é um engenheiro na Chaordic Systems, trabalhando no desenvolvimento e liderança da plataforma de dados da empresa. Antes de se juntar a Chaordic, trabalhou na Fundação CERTI fundando o Grupo de Software e com projetos de pesquisa e desenvolvimento para Siemens, Philips e Ministério da Educação. Twitter: @ivanlinhares


Luan Cestari

Luan Cestari


Sou: Nerd/geek, Entusiasta Software livre, amigo, empreendedor e adoro tecnologias, desde programação (C++, Python, Java), como arquiteturas (SOA, EDA, Big Data), Inteligência Artificial e outros algoritmos =) Luan Cestari é consultor altamente reconhecido, desenvolvedor de software, líder técnico e arquiteto. Ele está trabalhando no GSS, uma divisão da Red Hat, como Engenheiro de Suporte Técnico Sênior responsável por produtos JBoss, ajudando clientes e parceiros para resolver uma ampla gama de problemas para grandes aplicações Java EE. Tenho bacharelado em Ciência da Computação, experiência de startup, sete anos de desenvolvimento, certificações OCPJBCD 6 e OCJP 6.


Lucas Zingano

Lucas Zingano


Líder Técnico na equipe desenvolvimento da ionatec. Bacharel em Sistemas de Informação pela PUCRS, atua como desenvolvedor desde 2004 e com Cloud desde 2010.


Marco A. S. Reis

Marco A. S. Reis


Trabalha como Arquiteto de Software no TJDFT, com experiência em Java EE, servidores de aplicaçãoo e sistemas de busca textual. Instrutor e palestrante, pesquisa a área de big data.


Marcos Matos

Marcos Matos


Marcos Matos atua como desenvolvedor a vários anos, atualmente pela ThoughtWorks. Durante sua carreira participou de vários projetos baseados em uma arquitetura de serviços onde os problemas citados acima foram encontrados.


Marcos Vinicius

Marcos Vinicius


A sua primeira experiência de código foi na 7a série construindo um Sistema Solar em escala usando Logo. Desde então, ele tem trabalhado com várias linguagens e múltiplos paradigmas. Ser um desenvolvedor de software foi se tornando muito mais que só escrever código, e passou a abranger design, arquitetura, testes, análise, liderança, ux, inovação, etc. Atualmente na ThoughtWorks trabalha para fazer do mundo um lugar melhor, tanto através da TI quanto dos valores que procura cultivar.


Rafael Chaves

Rafael Chaves


Fundador da Abstratt Technologies, onde cria ferramentas de desenvolvimento especializadas em sistemas de gestão, e presta consultoria em modernização de aplicações em produção. Rafael tem bacharelado e mestrado em Computação pela UFSC, e desenvolve software há mais de 15 anos, no Brasil e no Canadá, onde foi desenvolvedor pela IBM nos projetos Eclipse e Jazz, e desenvolvedor/arquiteto na Sierra Systems e Genologics.


Thiago Colucci

Thiago Colucci


Bacharel em ciências da computação pela Universidade de São Paulo, aprendeu a programar através de Dojos e discussões com o pessoal de ágil da universidade. Utiliza TDD e programação pareada desde os primeiros contatos com código-fonte. Atualmente é desenvolvedor consultor na ThoughtWorks Brasil.




Público Alvo

Desenvolvedores, Analistas, Testadores, Arquitetos, Time de operações... TI em geral!


Atenção

Não haverá devolução do valor pago após realização da inscrição.



Fotos do Dia

Confira abaixo, as fotos que foram registradas no dia desta trilha.

Picasa | Link Direto

Página com todos os Álbuns


Data e Local

Sábado, 26 de Outubro de 2013

Das 8h00 às 19h00

UniRitter - Campus Porto Alegre

Rua Orfanotrófio, 555
Alto Teresópolis, Porto Alegre - RS

Mais informações


Patrocinadores TDC 2013 Porto Alegre Oracle Technology Network Grupo de Software da Intel Microsoft DevMedia InfoQ Brasil Amazon Web Services Google SUCESU-RS Webgoal JetBrains Unity Firefox OS Wildtech Triangulum Soluções Globalcode UniRitter -->