pgday campinas 2013 - case: postgresql no tribunal de justiça do paraná

47
PostgreSQL no Tribunal de Justiça do Paraná PGDay Campinas 2013

Upload: pgday-campinas

Post on 21-Jul-2015

71 views

Category:

Software


0 download

TRANSCRIPT

Page 1: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQLno

Tribunal de Justiça do Paraná

PGDay Campinas 2013

Page 2: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

O que é o TJPR

Números da TI no TJPR

Bancos de Dados

PostgreSQL

Projudi

Ferramentas

Page 3: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

O que é o Tribunal de Justiça do Estado do Paraná?

Page 4: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

O que é o Tribunal de Justiça do Estado do Paraná?

Page 5: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

O que é o Tribunal de Justiça do Estado do Paraná?

Page 6: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

O que é o Tribunal de Justiça do Estado do Paraná?

Uma organização com distribuição física em 160 escritórios

Os clientes são potencialmente toda a população do Estado do Paraná: 10 milhões de pessoas

12 mil funcionários

3,1 milhões de processos ativos

Page 7: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Infraestrutura de TI do TJPR

22 mil contas de usuários de rede

14 mil computadores

20 mil caixas de correio

200 funcionários de TI

2 Data Centers(1 sala cofre principal e 1 site backup reduzido)

Page 8: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Infraestrutura de TI do TJPR

28 servidores físicos x86

404 core

3 TB RAM

373 servidores virtuais(Linux/FreeBSD/Windows)

Page 9: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Infraestrutura de TI do TJPR

28 servidores físicos x86

404 core

3 TB RAM

373 servidores virtuais(Linux/FreeBSD/Windows)

2 servidores físicos Itanium2 servidores físicos RISC18 core

72 GB RAM

6 servidores virtuais HP-UX(VPAR)

Page 10: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Infraestrutura de TI do TJPR

28 servidores físicos x86

404 core

3 TB RAM

373 servidores virtuais(Linux/FreeBSD/Windows)

5 novos servidores físicos x86 de 80 core

400 core

5 TB RAM

2 servidores físicos Itanium2 servidores físicos RISC18 core

72 GB RAM

6 servidores virtuais HP-UX(VPAR)

Page 11: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Infraestrutura de TI do TJPR

28 servidores físicos x86

404 core

3 TB RAM

373 servidores virtuais(Linux/FreeBSD/Windows)

5 novos servidores físicos x86 de 80 core

400 core

5 TB RAM

2 storages EMC com 270 TB

1 storage HP com 40 TB

1 storage Hitachi com 20 TB

2 servidores físicos Itanium2 servidores físicos RISC18 core

72 GB RAM

6 servidores virtuais HP-UX(VPAR)

08min

Page 12: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Page 13: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Banco oficial utilizado para desenvolvimento de sistemas.

Dezenas de aplicações.

Page 14: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Page 15: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Utilizado em 2 sistemas importantes desenvolvidos e

mantidos por terceiros.

Page 16: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Page 17: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Sistemas legados, principalmente em MUMPS

Page 18: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Page 19: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Apenas com serviços como antivírus, vmware, ...

Page 20: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Page 21: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Bancos de Dados no TJPR

Apenas 1 sistema mantidopelo CNJ

12min

Page 22: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR

2009

Portal

eDJ – Diário da Justiça Eletrônico

Athos – Edição de Atos

Domus – Estrutura Organizacional

1 servidor PostgreSQL 8.31 servidor réplica standby por log shipping

Page 23: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR

2010

SICC – Sistema de Informações Criminais

Migração do Caché para PostgreSQL

Aplicação Desktop - 2 camadas

1,5 mil conexões

1 servidor de produção no PostgreSQL 8.3

Page 24: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR

2011/1ºSem

Projudi – Processo Eletrônico

Migração do MySQL para PostgreSQL

Aplicação Web Java

1 Servidor de Aplicação

2,5 mil usuários na aplicação

400 conexões com o banco

1 servidor de produção no PostgreSQL 8.3

Page 25: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR

2011/2ºSem

Projudi – Processo Eletrônico

Problemas de desempenho

2 Servidores de Aplicação

2,8 mil usuários na aplicação

600 conexões com o banco

Migração para PostgreSQL 9 e Hot Standby de leitura

Page 26: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Tipo Versão cpu memória base TPS

PortalVM 9.1 4 08 GB 20 GB 270VM 9.1 4 08 GB 20 GB 480

Diário da JustiçaAthos

VM 8.3 12 32 GB 400 GB 80VM 8.3 2 08 GB 400 GB -

SICC VM 8.3 6 32 GB 200 GB 1000

CartorioWin VM 8.3 4 32 GB 80 GB -

Diversos SistemasJudiciais

VM 9.1 8 24 GB 300 GB 560VM 9.1 2 08 GB 300 GB 0

Diversos Sistemas Administrativos

VM 9.1 4 16 GB 180 GB 240VM 9.1 2 08 GB 180 GB 0

Inscrições Concursos VM 9.1 4 08 GB 10 GB -

Projudi

HW 9.2 24 256 GB 160 GB 8100

HW 9.2 24 256 GB 160 GB 1000

VM 9.2 8 32 GB 160 GB -

VM 9.1 2 08 GB 220 GB -

PostgreSQL no TJPR

Page 27: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR – Uma abordagem de distribuição física

Hardware ou VM

Data Center 1

Storage 1

Servidor Principal

Discos de dados e log

Page 28: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR – Uma abordagem de distribuição física

Hardware ou VM

Data Center 1

Storage 1

Data Center 2

Storage 2

Servidor Principal Servidor Réplica

Discos de dados e log Discos de dados e log

Page 29: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR – Uma abordagem de distribuição física

Hardware ou VM

Data Center 1

Storage 1

Data Center 2

Storage 2

Servidor Principal Servidor RéplicaStreaming Replication

Discos de dados e log Discos de dados e log

Page 30: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR – Uma abordagem de distribuição física

Hardware ou VM

Data Center 1

Storage 1

Data Center 2

Storage 2

Servidor Principal Servidor RéplicaStreaming Replication

Discos de dados e log Discos de dados e log

Discos de backups

Page 31: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR – Uma abordagem de distribuição física

Hardware ou VM

Data Center 1

Storage 1

Data Center 2

Storage 2

Servidor Principal Servidor RéplicaStreaming Replication

Discos de dados e log Discos de dados e log

Discos de backups Discos de backups

20min

Page 32: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Projudi – Processo Eletrônico

PROJUDI

O processo judicial digital ou processo eletrônico, reproduz todo o procedimento judicial em meio eletrônico

Utilizado através da Internet, permite a completa substituição do papel

Inicialmente disponibilizado pelo CNJ, o Projudi foiadotado pelo TJPR como um projeto interno, hojeserve de modelo para outros estados

Page 33: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Projudi – Números

Mais de 70% de novos processos são eletrônicos

Mais de 2 milhões de processoscadastrados

900 mil processos ativos

Em breve, abrangerá 2º Grau e Criminal, chegando a 100% de novos processos em meio eletrônico na Justiça Estadual

Page 34: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Projudi – Números

+21.700 Magistrados, servidores, procuradores, promotores, entidades de apoio

+43.600 Advogados

+45.300 Partes com senha de acesso

TOTAL+110.600 Usuários

Page 35: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Projudi – Números+12 mil usuários simultâneos

25min

Page 36: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Projudi – Infraestrutura

Advogados /Assessores e Partes

Demais Servidores

ACE (Cisco)

(Tomcats)

PostgreSQL

Principal

1

4

2

3

5

Consulta PúblicaPopulação

Projudi

(Glassfish)

6

Réplica

Réplica

Réplica

NAS

Internet

Page 37: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Projudi – InfraestruturaData Center 1

Principal 1

NAS

Réplica 2

Data Center 2

Réplica 3 (VM)

Auditoria (VM)

Aplicação Projudi

11 TB de Documentos

Virtual IP 3 Virtual IP 2DNS

Page 38: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Projudi – Números do Banco

Principal

+200 milhões de transações dia

+8000 TPS (transações por segundo)no horário de pico de 14h as 17h

+1000 conexões no banco principale 1000 nas duas réplicas

+25 milhões de registros escritospor dia

30min

Page 39: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Ferramentas

Cacti

pgBadger

Nagios

Page 40: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

Ferramentas pg_Activity

Page 41: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR - Lições

Pool de conexões com pgBouncer

Pequeno, simples e extremamente eficiente

Conexões no SICC eram quase 2000, consumindomuita memória e causando swap

Com o pgBouncer conexões cairam para cerca de 300

Foi possível inclusive baixar a memória do servidor

Page 42: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR - Lições

Hot StandBy - Uso da réplica para leitura

Uso do Projudi crescendo rapidamente exaurindo oservidor principal

Criação de uma réplica permitindo a aplicação balancearleitura estabilizou o sistema

Experiência com configurações de valores de streamingdelay

Page 43: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR - Lições

Virtualização

Maneira fácil de conseguir disponibilidade e escalabilidade vertical

Entender demandas de desempenho e viabilidade da virtualização

Uso de discos RAW (não VMFS no caso da VMWare)

35min

Page 44: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR – Melhorias Desejadas

Diagnóstico

Ferramentas para diagnosticar em tempo real a saúde do banco e do servidor.

Escalabilidade

Um balanceador de carga de leitura, leve, feito para trabalhar especificamente com a replicação nativa do PostgreSQL

Alta Disponibilidade

Ferramentas simples para failover transparente

Page 45: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR - Futuro

Data Center 1

Principal 1 (HW) Réplica 2

(HW)

Data Center 2

Aplicação Projudi

Implantar Replicação Síncrona no Projudi (curto prazo)

Réplica 3 (HW)

ReplicaçãoSíncrona

Replicaçãoem Cascata

Balanceamento pela Aplicação

Page 46: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR - Futuro

Escalabilidade e Alta Disponibilidade (médio prazo)

Balancear carga entre réplicas, através de ferramentaterceira ou adaptação de framework interno, permitindo crescer em número de máquinas menores e virtualizadas

Implantar failover automático e transparente

Cluster Master – Master (diversos nós de escrita)

Page 47: PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná

PostgreSQL no TJPR

Dúvidas?

Obrigado!

Divisão de Infraestrutura de Software – TJPRSeção de Banco de Dados

Fabio Caiut [email protected]