Expresso 3 - um caso de sucesso do PHP no governo

Preview:

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.

Citation preview

Expresso 3 - um caso de sucesso

do PHP no governo

Flávio Gomes da Silva Lisboa

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

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

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

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

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

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

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.

●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

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

Comunidade ExpressoV2

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

Comunidade ExpressoV3

http://comunidadeexpresso.serpro.gov.br

Expresso 3 – FuncionalidadesCatálogo de endereços

Expresso 3 – FuncionalidadesEmail

Expresso 3 – Funcionalidades

Calendário

Expresso 3 – FuncionalidadesMensageria Instantânea

Expresso 3 – FuncionalidadesWebconferência

Expresso 3 – Funcionalidades

Tarefas

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

Expresso 3 – FuncionalidadesServiço de Mobilidade

ActiveSync

CalendárioContatos

e-mailsTarefas

SmartphonesTablets

Outros dispositivos compatíveis

Celulares

Arquitetura do Software

Arquitetura do Software

Arquitetura do Software

● 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

Infraestrutura V2

Infraestrutura V3

~2GB

Infraestrutura V3

Atende mais de 11 mil funcionários

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º.

Projeção de adoção

Projeção de adoção

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]

Comunidade Tine20

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

Conhecendo o Projeto Tine20

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

Forum

Conhecendo o Projeto Tine20

Mantis Bug Tracker

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

Conhecendo o Projeto Tine20

Ciclo de Desenvolvimento - Comunidade

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

Gerrit/Jenkins

Gerrit/Jenkins

Gerrit/Jenkins

Gerrit/Jenkins

Gerrit/Jenkins

Gerrit/Jenkins

Gerrit/Jenkins

Processo de Desenvolvimento doExpressoV3

Redmine: Estados de uma Tarefa

Principais estados de uma tarefa no redmine:

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.

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:

De: ExecuçãoPara: Revisão

● O desenvolvedor terminou a tarefa!

● 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

De: RevisãoPara: Integrar

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

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

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.

● 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

Comunidade ExpressoV3

Perguntas?

Flávio Gomes da Silva Lisboaflavio.lisboa@serpro.gov.br