Cristian Salamea




         @ovnicraft

cristian.salamea@gnuthink.com
Gnuthink Software Labs
    www.gnuthink.com



  Open Source Editor

        OpenERP
  Django - GeoDjango
         Flask
Por qué editor de OSS




Explícito es mejor que implícito
 (explicit is better than implicit)
                                      Zen of Python
Recomendación


    Si no usas PostgreSQL
estas tomando un camino difícil
Postgres for Mac logo
Por qué Postgres ?

●   Object Oriented-like
●   Estabilidad
●   Alta disponibilidad
●   Schemas
●   Seguridad
Objetos y Herencia

●   Todos programamos objetos
●   Necesitamos extender atributos
●   Necesitamos prototipar*
●   Necesitamos hacerlo rápido
●   Necesitamos hacerlo *muy* bien
ORM en OpenERP

●   Wrapper sobre psycopg2
    –   Psycopg2 es un wrapper sobre libpq
●   Implementación de requerimientos
    específicos
●   Es el cursor extendido
Cursor de OpenERP
●   Implementación de propia
    concurrencia
●   SQL define 4 niveles de insolación
    de transacción
    –   Desde *most stricted serializable*
    –   Hasta *strict Read uncommited*
●   No permitir corrupción de datos en
    transacciones
Persistencia de Datos
●   Especificación de Python PEP249
●   Database Adapter: Psycopg2
    –   Wrapper sobre libpq
●   Implementa layer ORM
●   Propia protección a nivel de
    registro
Mapeo de Objetos
●   PostgreSQL permitió facilidad
●   Protección contra concurrencia
●   Gestor de transacciones
    –   Commit
    –   Rollback
Niveles de Arquitectura
●   MVC
    –   Modelo
    –   Vista
    –   Controlador
●   ORM extendible
    –   Nuevos tipos de datos
Free !
Mapas !
Más !
●   PL/V8
    –   Rápido
●   Hstore
    –   Llave-valor
    –   NoSQL style
●   Mejor rendimiento en disco
●   Gracias PG 9.2
JSON
●   PostgreSQL lo hace por mi
●   Reducción de procesamiento
●   Mejora en tiempo de respuesta en
    la Aplicación
Backups




●Remote full hot
●Point in time recovery

●Con multiples servidores

●Catalogo de backups
Ejemplos
●   Nómina de 6000 empleados
    –   6000 roles
    –   10 registros foráneos por rol como
        mín.
    –   3 campos calculados por registro
Financiero
●   Balance General
    –   200k registro contables
●   Permite a OpenERP ser un ERP
    –   Con información en línea
    –   No batch process
SaaS
●   Software como servicio
●   Demanda alta disponibilidad
●   Alta concurrencia
●   Volumen grande de datos
PostgreSQL in da house
Objetivos
Cambiar el modelo de hacer negocios
Distribuir los datos y permitir el
   acceso al mejores aplicaciones

Permitir usar un ERP de clase mundial
            en sudamérica

            Use it now !
gracias !

PostgreSQL el core de OpenERP

  • 2.
    Cristian Salamea @ovnicraft cristian.salamea@gnuthink.com
  • 3.
    Gnuthink Software Labs www.gnuthink.com Open Source Editor OpenERP Django - GeoDjango Flask
  • 4.
    Por qué editorde OSS Explícito es mejor que implícito (explicit is better than implicit) Zen of Python
  • 5.
    Recomendación Si no usas PostgreSQL estas tomando un camino difícil
  • 6.
  • 7.
    Por qué Postgres? ● Object Oriented-like ● Estabilidad ● Alta disponibilidad ● Schemas ● Seguridad
  • 8.
    Objetos y Herencia ● Todos programamos objetos ● Necesitamos extender atributos ● Necesitamos prototipar* ● Necesitamos hacerlo rápido ● Necesitamos hacerlo *muy* bien
  • 9.
    ORM en OpenERP ● Wrapper sobre psycopg2 – Psycopg2 es un wrapper sobre libpq ● Implementación de requerimientos específicos ● Es el cursor extendido
  • 10.
    Cursor de OpenERP ● Implementación de propia concurrencia ● SQL define 4 niveles de insolación de transacción – Desde *most stricted serializable* – Hasta *strict Read uncommited* ● No permitir corrupción de datos en transacciones
  • 11.
    Persistencia de Datos ● Especificación de Python PEP249 ● Database Adapter: Psycopg2 – Wrapper sobre libpq ● Implementa layer ORM ● Propia protección a nivel de registro
  • 12.
    Mapeo de Objetos ● PostgreSQL permitió facilidad ● Protección contra concurrencia ● Gestor de transacciones – Commit – Rollback
  • 13.
    Niveles de Arquitectura ● MVC – Modelo – Vista – Controlador ● ORM extendible – Nuevos tipos de datos
  • 14.
  • 15.
  • 17.
    Más ! ● PL/V8 – Rápido ● Hstore – Llave-valor – NoSQL style ● Mejor rendimiento en disco ● Gracias PG 9.2
  • 18.
    JSON ● PostgreSQL lo hace por mi ● Reducción de procesamiento ● Mejora en tiempo de respuesta en la Aplicación
  • 19.
    Backups ●Remote full hot ●Pointin time recovery ●Con multiples servidores ●Catalogo de backups
  • 20.
    Ejemplos ● Nómina de 6000 empleados – 6000 roles – 10 registros foráneos por rol como mín. – 3 campos calculados por registro
  • 21.
    Financiero ● Balance General – 200k registro contables ● Permite a OpenERP ser un ERP – Con información en línea – No batch process
  • 22.
    SaaS ● Software como servicio ● Demanda alta disponibilidad ● Alta concurrencia ● Volumen grande de datos
  • 23.
  • 24.
  • 25.
    Cambiar el modelode hacer negocios
  • 26.
    Distribuir los datosy permitir el acceso al mejores aplicaciones Permitir usar un ERP de clase mundial en sudamérica Use it now !
  • 27.