SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Expresso 3 - um
caso de sucesso
do PHP no
governo
Flávio Gomes da Silva Lisboa
A EMPRESA

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

Presença Nacional
11 Regionais
Brasí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)

●

●

●

●

●

Outros serviços
●

Housing

●

Hosting

●

Colocation

●

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
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
SOLUÇÕES SERPRO

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ção
Controla 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.
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.
Histórico
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
2013
2012

Expresso 3

2011
2010

Expresso 2

2009
2008

Tine 2.0

2007
2006

Zend Framework

2005

Expresso

2004
2003

EGroupware

2002
2001
2000

phpGroupware
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 – Funcionalidades

Catálogo de endereços
Expresso 3 – Funcionalidades

Email
Expresso 3 – Funcionalidades

Calendário
Expresso 3 – Funcionalidades

Mensageria Instantânea
Expresso 3 – Funcionalidades

Webconferência
Expresso 3 – Funcionalidades

Tarefas
Expresso 3 – Funcionalidades

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

Calendário

Contatos

Cliente
Thunderbird
Expresso 3 – Funcionalidades

Serviço de Mobilidade

Tablets

Tarefas

Smartphones

e-mails
ActiveSync

Contatos Calendário

Celulares

Outros dispositivos
compatíveis
Arquitetura do Software
Arquitetura do Software
Arquitetura do Software
Infraestrutura Expresso V2
●

3 ambientes de produção

●

58 servidores reais

●

150 servidores virtuais

●

35 mil contas de usuários

DNIT

Ministério dos
Transportes

Valec

PGFN

Ministério do
Planejamento

Ministério da
Fazenda

ICMBio

Ministério do
Meio
Ambiente

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/]
Conhecendo o Projeto Tine20
Forum
Conhecendo o Projeto Tine20
Mantis Bug Tracker

[https://forge.tine20.org/mantisbt/view_all_bug_page.php]
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 commit

Mantis#0008280 Expresso#5353
Change 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 do
ExpressoV3
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: Nova
Para: 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ção
Para: Revisão

●

O desenvolvedor terminou a tarefa!
Tarefa em Revisão

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.
●
De: Revisão
Para: Integrar

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

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

Selenium – Testes
funcionais automatizados

Testes funcionais manuais
De: Teste
Para: 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.
●
Tarefa Rejeitada

●

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.
Comunidade ExpressoV3

Perguntas?

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

Mais conteúdo relacionado

Semelhante a Expresso 3 - um caso de sucesso do PHP no governo

Andre Luiz C L Cruz LKDIN- SIEMENS
Andre Luiz C L Cruz  LKDIN- SIEMENSAndre Luiz C L Cruz  LKDIN- SIEMENS
Andre Luiz C L Cruz LKDIN- SIEMENSAndr Consone Cruz
 
Portfolio procnet consulting
Portfolio procnet consultingPortfolio procnet consulting
Portfolio procnet consultingProcnet
 
Implantação glpi empresa de advcacia
Implantação glpi empresa de advcaciaImplantação glpi empresa de advcacia
Implantação glpi empresa de advcaciaTiago Figueiredo
 
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital Jorge Biesczad Jr.
 
ServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG BrasilServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG BrasilWillians Medeiros
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Gestão de Projetos e Empreendedorismo - Atividade: Status Report
Gestão de Projetos e Empreendedorismo - Atividade: Status ReportGestão de Projetos e Empreendedorismo - Atividade: Status Report
Gestão de Projetos e Empreendedorismo - Atividade: Status ReportAlessandro Almeida
 
Prodix software solution erp psga full v2
Prodix   software solution erp psga full v2Prodix   software solution erp psga full v2
Prodix software solution erp psga full v2Claudecir Santos
 
Apresentacao Vertical De Alocacao Consultor Jair Faleiros V2
Apresentacao Vertical De Alocacao   Consultor Jair Faleiros V2Apresentacao Vertical De Alocacao   Consultor Jair Faleiros V2
Apresentacao Vertical De Alocacao Consultor Jair Faleiros V2AlineCarolina
 
Institucional 2016 premier it
Institucional 2016 premier it Institucional 2016 premier it
Institucional 2016 premier it Jorge Biesczad Jr.
 
Outsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágilOutsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágil.add
 
ARPO - Business Modeler: Apresentação da Solução
ARPO - Business Modeler: Apresentação da SoluçãoARPO - Business Modeler: Apresentação da Solução
ARPO - Business Modeler: Apresentação da SoluçãoDC-DinsmoreCompass
 
Infobase - Soluções para e-commerce
Infobase - Soluções para e-commerceInfobase - Soluções para e-commerce
Infobase - Soluções para e-commerceInfobase
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarialtdc-globalcode
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
 

Semelhante a Expresso 3 - um caso de sucesso do PHP no governo (20)

Andre Luiz C L Cruz LKDIN- SIEMENS
Andre Luiz C L Cruz  LKDIN- SIEMENSAndre Luiz C L Cruz  LKDIN- SIEMENS
Andre Luiz C L Cruz LKDIN- SIEMENS
 
Portfolio procnet consulting
Portfolio procnet consultingPortfolio procnet consulting
Portfolio procnet consulting
 
Implantação glpi empresa de advcacia
Implantação glpi empresa de advcaciaImplantação glpi empresa de advcacia
Implantação glpi empresa de advcacia
 
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
 
ServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG BrasilServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG Brasil
 
RHQ 4 Gerenciamento efetivo de servidores JBoss
RHQ 4 Gerenciamento efetivo de servidores JBossRHQ 4 Gerenciamento efetivo de servidores JBoss
RHQ 4 Gerenciamento efetivo de servidores JBoss
 
Institucional quality 2020
Institucional quality 2020Institucional quality 2020
Institucional quality 2020
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Gestão de Projetos e Empreendedorismo - Atividade: Status Report
Gestão de Projetos e Empreendedorismo - Atividade: Status ReportGestão de Projetos e Empreendedorismo - Atividade: Status Report
Gestão de Projetos e Empreendedorismo - Atividade: Status Report
 
Prodix software solution erp psga full v2
Prodix   software solution erp psga full v2Prodix   software solution erp psga full v2
Prodix software solution erp psga full v2
 
Apresentacao Vertical De Alocacao Consultor Jair Faleiros V2
Apresentacao Vertical De Alocacao   Consultor Jair Faleiros V2Apresentacao Vertical De Alocacao   Consultor Jair Faleiros V2
Apresentacao Vertical De Alocacao Consultor Jair Faleiros V2
 
Institucional 2016 premier it
Institucional 2016 premier it Institucional 2016 premier it
Institucional 2016 premier it
 
Outsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágilOutsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágil
 
CV Eder Rolim
CV Eder RolimCV Eder Rolim
CV Eder Rolim
 
ARPO - Business Modeler: Apresentação da Solução
ARPO - Business Modeler: Apresentação da SoluçãoARPO - Business Modeler: Apresentação da Solução
ARPO - Business Modeler: Apresentação da Solução
 
Sobre Erp (Basico)
Sobre Erp (Basico)Sobre Erp (Basico)
Sobre Erp (Basico)
 
Infobase - Soluções para e-commerce
Infobase - Soluções para e-commerceInfobase - Soluções para e-commerce
Infobase - Soluções para e-commerce
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarial
 
Institucional Quality 2020
Institucional Quality 2020Institucional Quality 2020
Institucional Quality 2020
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 

Mais de Flávio Lisboa

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPFlávio Lisboa
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasFlávio Lisboa
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadoresFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 

Mais de Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 

Expresso 3 - um caso de sucesso do PHP no governo

  • 1.
  • 2. Expresso 3 - um caso de sucesso do PHP no governo Flávio Gomes da Silva Lisboa
  • 3. A EMPRESA 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.
  • 4. A EMPRESA Presença Nacional 11 Regionais Brasília, Belém, Fortaleza, Recife, Salvador, Belo Horizonte, Rio de Janeiro, São Paulo, Curitiba, Florianópolis e Porto Alegre 17 Escritórios
  • 5. 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) ● ● ● ● ● Outros serviços ● Housing ● Hosting ● Colocation ● 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
  • 6. 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
  • 7. SOLUÇÕES SERPRO 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.
  • 8. 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ção Controla 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.
  • 9. 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.
  • 10. Histórico 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 ●
  • 11. Histórico 2013 2012 Expresso 3 2011 2010 Expresso 2 2009 2008 Tine 2.0 2007 2006 Zend Framework 2005 Expresso 2004 2003 EGroupware 2002 2001 2000 phpGroupware
  • 12. Comunidade ExpressoV2 Atualmente o Expresso V2 é utilizado por 525.387 usuários em 167 empresas/instituições.
  • 14. Expresso 3 – Funcionalidades Catálogo de endereços
  • 15. Expresso 3 – Funcionalidades Email
  • 16. Expresso 3 – Funcionalidades Calendário
  • 17. Expresso 3 – Funcionalidades Mensageria Instantânea
  • 18. Expresso 3 – Funcionalidades Webconferência
  • 19. Expresso 3 – Funcionalidades Tarefas
  • 20. Expresso 3 – Funcionalidades Serviço CalDAV/CardDAV Acesso e manutenção de: ✗ Contatos no catálogo ✗ Eventos na agenda ✗ Tarefas Calendário Contatos Cliente Thunderbird
  • 21. Expresso 3 – Funcionalidades Serviço de Mobilidade Tablets Tarefas Smartphones e-mails ActiveSync Contatos Calendário Celulares Outros dispositivos compatíveis
  • 25. Infraestrutura Expresso V2 ● 3 ambientes de produção ● 58 servidores reais ● 150 servidores virtuais ● 35 mil contas de usuários DNIT Ministério dos Transportes Valec PGFN Ministério do Planejamento Ministério da Fazenda ICMBio Ministério do Meio Ambiente CARF
  • 28. Infraestrutura V3 Atende mais de 11 mil funcionários
  • 29. 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º.
  • 32. 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]
  • 34. Conhecendo o Projeto Tine20 Live demo: [https://demo.tine20.net/]
  • 35. Conhecendo o Projeto Tine20 Forum
  • 36. Conhecendo o Projeto Tine20 Mantis Bug Tracker [https://forge.tine20.org/mantisbt/view_all_bug_page.php]
  • 37. Ciclo de Desenvolvimento - Comunidade
  • 38. 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 commit Mantis#0008280 Expresso#5353 Change to use session instead of zend cache git push review HEAD:refs/for/master
  • 47. Redmine: Estados de uma Tarefa Principais estados de uma tarefa no redmine:
  • 48. 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. ●
  • 49. De: Nova Para: 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: ●
  • 50. De: Execução Para: Revisão ● O desenvolvedor terminou a tarefa!
  • 51. Tarefa em Revisão 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. ●
  • 52. De: Revisão Para: Integrar Após as devidas aprovações, a tarefa (código) pode ser integrada com o branch expressov3. ●
  • 53. De: Integrar Para: Teste Depois de integrada, a tarefa passa por mais uma validação com uma equipe especializada em teste. ● Selenium – Testes funcionais automatizados Testes funcionais manuais
  • 54. De: Teste Para: 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. ●
  • 55. Tarefa Rejeitada ● 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.
  • 56. Comunidade ExpressoV3 Perguntas? Flávio Gomes da Silva Lisboa flavio.lisboa@serpro.gov.br