Como o PostgreSQL deu e dá sustentabilidade ao projeto e-cidade

Documentos relacionados
Clientes gerentes Usuarios finais do sistema Clientes engenheiros Gerentes contratantes Arquitetos do sistema. Definicao de requisitos

Solisc 2010 Gerenciamento de Projetos com dotproject

Designing Data Intensive Applications

pgmodeler: muito mais que um modelador de bancos de dados PostgreSQL

Introdução. O que é um Banco de Dados (BD)?

Encontro Técnico de Infraestrutura de TI. Emmanuel Sanches

AD05: Studio 5000 e Logix Laboratório Introdutório

Prof. Claudio SIBC, TI e SGBD PRINCÍPIOS DE SISTEMAS DE INFORMAÇÃO

IMPLANTAÇÃO DA METODOLOGIA ITIL NO DATASUS UM ESTUDO DE CASO

LimeSurvey Questionários Refrescantes, Fáceis e Livres

Modernizando a Informação: Atualização do Banco de Dados Oracle da versão 7 para a 10g

Arquitetura Orientada a Serviços SOA

Versão: 1.0 Doc Manager

Agenda. O Portal Alelo O público do portal Principais funções/conteúdo Estratégia de formação das bases de dados Aspectos técnicos Perspectivas Equipe

01. Sobre Camaleo O QUE É CARACTERÍSTICAS

Banco de dados. Prof. Me. Hélio Esperidião

Curso online de Fundamentos em Android. Plano de Estudo

Manutenção Leitura: Sommerville; Pressman

Banco de Dados. Aula 01. Prof. Diemesleno Souza Carvalho

Access Prof. Ari Oliveira

BD e Cloud Gerenciamento de. Dados na Nuvem

SisBIC Sistema de Gerenciamento de Bolsas de Iniciação

Lidando com Armazenamento de Dados

Conceitos Básicos Sistemas de banco de dados; Sistemas de gerência de banco de dados.

Curso PostgreSQL - Treinamento PostgreSQL - Fundamental

A empresa brasileira de PostgreSQL

Desenvolvimento Web II

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Data Warehouse ETL. Rodrigo Leite Durães.

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Bancos de Dados Distribuídos

ALUNO: RONI FABIO BANASZEWSKI

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software

Experiência de Implantação de um Processo de Desenvolvimento de Software no Banco Central do Brasil

SOFTWARE DE GERENCIAMENTO DE

Introdução aos Bancos de dados. Prof. Vicente Paulo de Camargo. Ref. Prof. Renato de Oliveira Violin UFSCar e Lineu Mialaret

GUIA DE PADRONIZAÇÃO DE MACRO E SUBSERVIÇOS DO SGA-DPU

O e-sus AB como estratégia para potencializar uma Atenção Básica mais acessível, cuidadora e resolutiva

Computação Distribuída

APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM

Guilherme Fernando Gielow

Banco de Dados. SGBDs. Professor: Charles Leite

1. INTRODUÇÃO A MODELAGEM DE DADOS

software as a service (saas) e service-oriented architecture (soa)

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

Banco de Dados. Introdução. Prof. Luís Alexandre

Introdução aos Bancos de dados. Francisco Antonio de Sousa

Arquivo. Banco de Dados. Organização dos Arquivos. Banco de Dados. Banco de Dados. Introdução a Computação

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Curso online de Aplicações. Híbridas. Plano de Estudo

BANCO DE DADOS. Araújo Lima. Jan / Araújo

REQUISITOS DE INFRAESTRUTURA TECNOLÓGICA

RAD Rapid Application Development

BPMN e BPMS. Ad, Décio, Marcos, Yuri

Felipe de Andrade Batista. Microservice Architecture: A Lightweight Solution for Large Systems in the Future

Sistemas Distribuídos

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Solução para habilitar para a web aplicações Windows. White Paper

Como o ifood usa o FTS do PostgreSQL

Leitura: Cap : Sommerville; cap20: Pressman

Engenharia de Software

26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real

INTRODUÇÃO AO MYSQL. Eng. Computação

Uso do PIN-Pad USB com o SCOPE Versão 1.0

Executa em qualquer plataforma que possua o Java (JDK) da Oracle

Desenvolvedor Android: Avançado. Plano de Estudo

Manipulação de Dados em PHP (Integração PHP e MySql) Parte 1

Transcrição:

Como o PostgreSQL deu e dá sustentabilidade ao projeto e-cidade

Apresentação Fabrízio de Royes Mello Membro PGBR Experiência Profissional 5 anos Gerente de CPD Prefeitura DBSeller desde 2005 Desenvolvimento de Software desde 1993 Experiência em PostgreSQL desde 1999 Experiência em PHP desde 2002 Desenvolvedor do Software Público e-cidade

Parte 1 HISTÓRIA

História Porque PostgreSQL? Experiência anterior em PostgreSQL (desde 2000) Confiável Plataforma de Desenvolvimento Software Livre Na época existia MySQL e PostgreSQL que integravam facilmente com PHP... logo... obviamente...

História 2002 Fundação DBSeller 2002 PG7.2 e PG7.3 (Usávamos 7.2) 2003 PG7.3 2005 PG8.0 e PG8.1 2006 Migramos do PG7.2 para PG8.1 2006 PG8.2 2008 - PG8.3

História 2009 PG 8.4, Migramos para PG8.2 e Lançamos o e-cidade como GPL 2010 PG 9.0 2011 PG 9.1 2011/2012 Processo Migração PG8.2 > 9.1 2012 - Extensões

História Hoje o e-cidade está presente em diversas Ufs do país (RS, MG, RS, AL, RO, AC, BA...) Informatização completa de Municípios Prefeitura Câmara de Vereadores Autarquias / Fundações / RPPS Postos de Saúde Escolas

História Alguns números do banco do e-cidade 59 esquemas ~2900 tabelas ~2020 sequencias ~5021 índices ~490 funções ~140 gatilhos (esse número irá aumentar)

Parte 2 ARQUITETURA

Problemas e Soluções de Arquitetura

Variáveis de Sessão Reutilização de Conexões (pool) Regras de Negócio no Banco de Dados Auditoria de Tabelas Problemas e Soluções de Arquitetura

Variáveis de Sessão Problema Informações da sessão do PHP ($_SESSION) não visíveis nas PLs Algumas informações podem ser ajustadas durante a sessão do usuário: Instituição Departamento Módulo / Item de Menu Data/Hora de Processamento

Variáveis de Sessão Solução adotada Tabelas temporárias para armazenar um par chave/valor PLs para recuperar e atualizar essas variáveis Na aplicação é transferido conteúdo de $_SESSION para o banco Em 2009 algumas discussões: http://bit.ly/vpavv8 DEMO!

Reutilização de conexões (pool) Problema Alto overhead no app server devido conexões/desconexões com PG PG 8.2 não tem DISCARD ALL para retornar sessão ao seu estado inicial

Reutilização de conexões (pool) Solução adotada Escolhido pgbouncer pela simplicidade, velocidade e facilidade de configuração/instalação Para o PG 8.2 implementamos uma função para emular o comportamento do DISCARD ALL pool_mode = session server_reset_query = SELECT fc_discard_all();

Regras de negócio no banco Problema Muitas funções monolíticas Redundância de funcionalidades Falta de modularização Caso Cálculo IPTU : Função ùnica Não mantinha histórico de cálculos de anos anteriores Manutenção dificultada

Regras de negócio no banco Solução adotada Modularização Criação de Estrutura (micro-framework) para cálculo de impostos e taxas Reutilização de Código Velocidade Desenvolvimento Padronização

Auditoria de tabelas Problema 2 (duas) tabelas com informações redundantes Somente atualizações oriundas das classes da aplicação sofriam auditoria Muitos INSERTs devido estrutura redundante Crescimento muito alto das tabelas

Auditoria de tabelas Solução adotada (NOVO) Uma tabela com alterações (INS/UPD/DEL) Triggers nas tabelas a serem auditadas Particionamento da tabela de auditoria Interface de acesso as mudanças (função)

Parte 3 SUSTENTABILIDADE

Sustentabilidade é uma característica ou condição de um processo ou um sistema que permite sua permanência, em certo nível, por um determinado prazo (Fonte: wikipedia)

Como obtemos sustentabilidade Estabilidade, Escalabilidade, etc...etc... Plataforma de Desenvolvimento Comunidade Ativa Documentação abrangente Novos recursos importantes a cada versão Produto de Altíssima Qualidade

FUTURO

Futuro Novas versões do PostgreSQL Extensões (pgxn.org) Replicação / Distribuição de Carga

Obrigado fabriziomello@gmail.com @fabriziomello