expresso 3 - um caso de sucesso do php no governo

56

Upload: flavio-lisboa

Post on 26-May-2015

1.263 views

Category:

Technology


2 download

DESCRIPTION

O Expresso 3 é uma suíte de comunicação baseada em Zend Framework e ExtJS, que opera em um ambiente com mais de dez mil usuários simultâneos. A palestra irá apresentar a arquitetura da aplicação, infraestrutura de produção e o modelo de desenvolvimento colaborativo internacional que inovou a forma de trabalhar com software livre dentro do SERPRO.

TRANSCRIPT

Page 1: Expresso 3 - um caso de sucesso do PHP no governo
Page 2: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 - um caso de sucesso

do PHP no governo

Flávio Gomes da Silva Lisboa

Page 3: Expresso 3 - um caso de sucesso do PHP no governo

Empresa pública vinculada ao Ministério da Fazenda.

O negócio do Serpro é a prestação de serviços em Tecnologia da Informação para o setor público. A empresa desenvolve soluções que, além de contribuírem para a modernização e eficácia da administração pública, buscam estreitar a relação entre cidadãos e Governo.

A EMPRESA

Page 4: Expresso 3 - um caso de sucesso do PHP no governo

A EMPRESA

Presença Nacional

11 RegionaisBrasília, Belém, Fortaleza, Recife, Salvador, Belo Horizonte, Rio de Janeiro, São Paulo, Curitiba, Florianópolis e Porto Alegre

17 Escritórios

Page 5: Expresso 3 - um caso de sucesso do PHP no governo

CENTROS DE DADOS

● Utilização de tecnologias para contingência de recursos alocados aos serviços de missão crítica

● Balanceamento de carga como instrumento de gestão de alta disponibilidade e desempenho

● Redundância e contingência de ambientes de gerenciamento (hardware e software)

● Espelhamento de dados, automação de processos de produção, monitoração e gerenciamento, além de salas cofres

● 3 Data Centers: SPO, BSB e RJO

● 2 Serviços - Mainframe (19.719 MIPS)

● Mais de 1.400 servidores de plataforma baixa (Risc, Cisc e Epic) entre máquinas físicas e virtuais

● 6 Fitotecas automatizadas com capacidade de 2 petabytes de armazenamento

● 1.353 petabytes de armazenamento (discos) sendo 945TB em SPO, 51TB no RJO e 357TB em BSB

● 12 bilhões de transações on-line processadas por ano

● Múltiplos Bancos de Dados (Adabas, DB2, Oracle, SQL Server, My SQL, PostgreSQL, Lotus Notes, BRSearch, MS Accessm Sybase, INFORMIX, ZopePlone)

● 64.407 Microcomputadores

Outros serviços● Housing

● Hosting

● Colocation

Page 6: Expresso 3 - um caso de sucesso do PHP no governo

REDE DE COMUNICAÇÃO

● Infraestrutura de última geração, com abrangência nacional

● Transmissão e disponibilização de informações: dados, voz ou imagem, com segurança e confiabilidade

● Atendimento às necessidades do governo no relacionamento com o cidadão para o uso de seus sistemas de informação

Page 7: Expresso 3 - um caso de sucesso do PHP no governo

Rapidez, economia e transparência para a realização de compras e contratação de serviços via pregão eletrônico. Aumento da competitividade e melhora na gestão dos recursos públicos.

Conjunto de sistemas que apoiam o processo de importação e exportação brasileiro. Reforço à segurança, à agilidade no pagamento e recolhimento de tributos e redução no risco de fraudes cambiais e desvios de mercadorias.

SOLUÇÕES SERPRO

Page 8: Expresso 3 - um caso de sucesso do PHP no governo

Informatização dos portos brasileiros, o que proporcionou maior rapidez, economia e segurança na estada dos navios e ordenou as atividades econômicas dos setores exportador e importador do país. As mercadorias que demoravam mais de 15 dias para serem liberadas, passaram a levar em média 5 dias.

Renach - Registro Nacional da Carteira de HabilitaçãoControla a emissão da CNH e todas as informações sobre o condutor, desde sua inscrição como candidato até a suspensão do direito de dirigir. O Registro Nacional de Veículos Automotores (Renavam), sistema que registra toda a trajetória do veículo, também foi desenvolvido pelo Serpro.

SOLUÇÕES SERPRO

Page 9: Expresso 3 - um caso de sucesso do PHP no governo

ADMINISTRAÇÃO DE CORREIO ELETRÔNICO

Solução de comunicação baseada em software livre que reúne e-mail, agenda, catálogo de endereços e mensagens instantâneas de texto e voz.

Alta escalabilidade, protocolos abertos, integração com outros sistemas web, mobilidade, baixo custo, independência de fornecedores, plataformas e servidores. A aplicação garante uma comunicação segura, contando com criptografia e ambientes para tráfego e armazenamento próprios do Serpro.

Page 10: Expresso 3 - um caso de sucesso do PHP no governo

●2000 → Criação do phpGroupware

●2003 → Criação do EGroupware

●2004 → Criação do Expresso pela CELEPAR

●2007 → Criação do Tine20

●2009 → Expresso V2

●2011 → Inicio do projeto Expresso V3

●2012 → Piloto Expresso V3

●2013 → Expresso V3 em produção SERPRO

Histórico

Page 11: Expresso 3 - um caso de sucesso do PHP no governo

Histórico

phpGroupware

EGroupware

Expresso

Tine 2.0

Expresso 3

Expresso 2

2000

2001

2002

2003

2004

2005

2006

2007

2008

2009

2010

2011

2012

2013

Zend Framework

Page 12: Expresso 3 - um caso de sucesso do PHP no governo

Comunidade ExpressoV2

Atualmente o Expresso V2 é utilizado por 525.387 usuários em 167 empresas/instituições.

Page 13: Expresso 3 - um caso de sucesso do PHP no governo

Comunidade ExpressoV3

http://comunidadeexpresso.serpro.gov.br

Page 14: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – FuncionalidadesCatálogo de endereços

Page 15: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – FuncionalidadesEmail

Page 16: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – Funcionalidades

Calendário

Page 17: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – FuncionalidadesMensageria Instantânea

Page 18: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – FuncionalidadesWebconferência

Page 19: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – Funcionalidades

Tarefas

Page 20: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – Funcionalidades

Calendário

Contatos

Serviço CalDAV/CardDAV

Cliente Thunderbird

Acesso e manutenção de:✗ Contatos no catálogo✗ Eventos na agenda✗ Tarefas

Page 21: Expresso 3 - um caso de sucesso do PHP no governo

Expresso 3 – FuncionalidadesServiço de Mobilidade

ActiveSync

CalendárioContatos

e-mailsTarefas

SmartphonesTablets

Outros dispositivos compatíveis

Celulares

Page 22: Expresso 3 - um caso de sucesso do PHP no governo

Arquitetura do Software

Page 23: Expresso 3 - um caso de sucesso do PHP no governo

Arquitetura do Software

Page 24: Expresso 3 - um caso de sucesso do PHP no governo

Arquitetura do Software

Page 25: Expresso 3 - um caso de sucesso do PHP no governo

● 3 ambientes de produção

● 58 servidores reais

● 150 servidores virtuais

● 35 mil contas de usuários

Infraestrutura Expresso V2

Ministério dos Transportes

Ministério do Planejamento

Ministério do Meio

Ambiente

Ministério da Fazenda

ICMBio

DNIT

Valec PGFN CARF

Page 26: Expresso 3 - um caso de sucesso do PHP no governo

Infraestrutura V2

Page 27: Expresso 3 - um caso de sucesso do PHP no governo

Infraestrutura V3

~2GB

Page 28: Expresso 3 - um caso de sucesso do PHP no governo

Infraestrutura V3

Atende mais de 11 mil funcionários

Page 29: Expresso 3 - um caso de sucesso do PHP no governo

Projeção de adoção

http://www.planalto.gov.br/ccivil_03/_Ato2011-2014/2013/Decreto/D8135.htm

Art. 1º As comunicações de dados da administração pública federal direta, autárquica e fundacional deverão ser realizadas por redes de telecomunicações e serviços de tecnologia da informação fornecidos por órgãos ou entidades da administração pública federal, incluindo empresas públicas e sociedades de economia mista da União e suas subsidiárias.

§ 3º Os programas e equipamentos destinados às atividades de que trata o caput deverão ter características que permitam auditoria para fins de garantia da disponibilidade, integridade, confidencialidade e autenticidade das informações, na forma da regulamentação de que trata o § 5º.

Page 30: Expresso 3 - um caso de sucesso do PHP no governo

Projeção de adoção

Page 31: Expresso 3 - um caso de sucesso do PHP no governo

Projeção de adoção

Page 32: Expresso 3 - um caso de sucesso do PHP no governo

Conhecendo o Projeto Tine20

● Tine: Tine Is Not E-GroupWare!● Motivação sobre o eGroupWare 1.4:

A interface do usuário era criada no servidor (pior desempenho);

Classes muito “amarradas”, desenvolvimento não modular; Sem testes unitários, bugs eram frequentemente

reintroduzidos.● Baseado em duas API:

Zend Framework (PHP); ExtJS (Javascript).

[https://www.tine20.org/wiki/index.php/What_was_wrong_with_eGroupWare_1.x%3F][https://www.tine20.org/wiki/index.php/Technical_background_of_eGroupWare_2.0]

Page 33: Expresso 3 - um caso de sucesso do PHP no governo

Comunidade Tine20

[http://www.tine20.org/home.html]

Page 34: Expresso 3 - um caso de sucesso do PHP no governo

Conhecendo o Projeto Tine20

Live demo: [https://demo.tine20.net/]

Page 35: Expresso 3 - um caso de sucesso do PHP no governo

Forum

Conhecendo o Projeto Tine20

Page 36: Expresso 3 - um caso de sucesso do PHP no governo

Mantis Bug Tracker

[https://forge.tine20.org/mantisbt/view_all_bug_page.php]

Conhecendo o Projeto Tine20

Page 37: Expresso 3 - um caso de sucesso do PHP no governo

Ciclo de Desenvolvimento - Comunidade

Page 38: Expresso 3 - um caso de sucesso do PHP no governo

GIT

git clone -o review https://gerrit.tine20.org/tine20/p/tine20.git

git checkout master

git pull

git checkout -b task5353

Implementação a funcionalidade ou correção

git add newfile

git add changedfile

git commitMantis#0008280 Expresso#5353Change to use session instead of zend cache

git push review HEAD:refs/for/master

Page 39: Expresso 3 - um caso de sucesso do PHP no governo

Gerrit/Jenkins

Page 40: Expresso 3 - um caso de sucesso do PHP no governo

Gerrit/Jenkins

Page 41: Expresso 3 - um caso de sucesso do PHP no governo

Gerrit/Jenkins

Page 42: Expresso 3 - um caso de sucesso do PHP no governo

Gerrit/Jenkins

Page 43: Expresso 3 - um caso de sucesso do PHP no governo

Gerrit/Jenkins

Page 44: Expresso 3 - um caso de sucesso do PHP no governo

Gerrit/Jenkins

Page 45: Expresso 3 - um caso de sucesso do PHP no governo

Gerrit/Jenkins

Page 46: Expresso 3 - um caso de sucesso do PHP no governo

Processo de Desenvolvimento doExpressoV3

Page 47: Expresso 3 - um caso de sucesso do PHP no governo

Redmine: Estados de uma Tarefa

Principais estados de uma tarefa no redmine:

Page 48: Expresso 3 - um caso de sucesso do PHP no governo

Nova Tarefa

● O título deve ser significativo.

● No caso de bug, inserir um passo a passo na descrição para que o desenvolvedor possa reproduzir.

● No caso de funcionalidade, linkar na descrição o tópico de dicussão no fórum, a apresentação da proposta da funcionalidade, ou qualquer outro artefato que auxilie no desenvolvimento.

Page 49: Expresso 3 - um caso de sucesso do PHP no governo

De: NovaPara: Execução

● O desenvolvedor entendeu a tarefa!

● Caso não a tenha entendido, deve esclarecer a dúvida através de telefone, e-mail ou mensageria instantânea.

● Para fins de exemplificação, vamos chamar a tarefa de TASK#999:

Page 50: Expresso 3 - um caso de sucesso do PHP no governo

De: ExecuçãoPara: Revisão

● O desenvolvedor terminou a tarefa!

Page 51: Expresso 3 - um caso de sucesso do PHP no governo

● Um segundo desenvolvedor faz uma revisão do código e um pré-teste do que foi requisitado na tarefa.

● A cópia (pull) deve ser feita sobre o branch atualizado do expressov3.

Tarefa em Revisão

Page 52: Expresso 3 - um caso de sucesso do PHP no governo

De: RevisãoPara: Integrar

● Após as devidas aprovações, a tarefa (código) pode ser integrada com o branch expressov3.

Page 53: Expresso 3 - um caso de sucesso do PHP no governo

De: IntegrarPara: Teste

● Depois de integrada, a tarefa passa por mais uma validação com uma equipe especializada em teste.

Testes funcionais manuaisSelenium – Testes

funcionais automatizados

Page 54: Expresso 3 - um caso de sucesso do PHP no governo

De: TestePara: Fechada

● Depois de integrada e testada, a tarefa pode ser fechada.

● Para fins de histório e consulta, o branch da tarefa não precisa ser removido do repositório intermediário.

Page 55: Expresso 3 - um caso de sucesso do PHP no governo

● O bug não pode ser reproduzido.

● Inviabilidade técnica.

● Sugestão de funcionalidade rejeitada.

● O branch apresentou conflitos.

● O teste falhou.

Uma tarefa rejeitada pode ser reaberta para execução ou fechada.

Tarefa Rejeitada

Page 56: Expresso 3 - um caso de sucesso do PHP no governo

Comunidade ExpressoV3

Perguntas?

Flávio Gomes da Silva [email protected]