Software Open Source – Open Day Oracle 2013
-
Upload
erik-gur -
Category
Technology
-
view
499 -
download
2
description
Transcript of Software Open Source – Open Day Oracle 2013
Software Open Source @
Oracle Pedro Andrade
Strategic Accounts
Manuel Contreras
MySQL, Linux,VDI
Senior Consultant
Software Open Source @ Oracle ¿Utiliza Open Source Software (OSS ) en ambientes productivos?
¿Qué tecnologías OSS con soporte de Oracle conoces?
Por qué usar Software Open Source
Modelo basado en Comunidades
Versión Community
Versión Enterprise
No Vendor Locking
Subscripción anual con soporte técnico
Mejor TCO
Comunidades desarrollan y prueban y dan sugerencias de mejoras al software
foros, bug report lists, y participación de desarrolladores para mejoras del producto
Open Source Software Enterprise
Adopción de Software Libre
82% tienen Software Libre en producción
o planeada en los sig. 12 meses
Mercado de
Software Libre $5.8
mil mill. USD 2011
Grupo Independiente de Usuarios Oracle
Encuesta en 2010, tendencias del Código Abierto
* 70% del grupo tiene instancias de MySQL
Enfoque MySQL –
MySQL en Latinoamérica
Oracle: nueva vida a Duke & Sakila
- En 1995 Sun microsystems crea a Java un lenguaje de programación multiplataforma, 100% orientado a objetos.
- En 1995, MySQL AB, crea un manejador de BD relacional, open source, el cual es ampliamente adoptado por las comunidades de LAMP stack software.
- En 2008, Sun microsystems Inc, adquiere MySQL AB – El voto del Billón de dolares por el OSS.
- En 2010, Oracle Inc adquiere a Sun microsystems, la propuesta: ofrecer soluciones desde el disco hasta las aplicaciones, fortaleciendo su oferta
open source con Java y MySQL.
- Diciembre 2010, Oracle libera MySQL 5.5, el cual es considerado por las comunidades como el mejor release de MySQL en su historia.
- Julio 2011, Java 7.0 es liberado, nueva versión con mejoras al JVM
hotspot y el mejor desempeño para servidores Java.
Open source software con soporte Enterprise
Java La plataforma de desarrollo
Introducción | Java
Java
- Simple, facil de usar
- 100% orientado a objetos, API clases
- Administración automática de memoria
- Independiente a la plataforma
- Orientado a un contenedor JRE ( JVM )
–Maquina virtual Java que administra multi-threading, seguridad, memoria, class loader, manejo de excepciones ( errores en tiempo de ejecución )
- Oracle Glassfish Application Server es la implementación de referencia para Java EE
- 6 millones de desarrolladores en el mundo
- Java es gestionado por el Java Community Process
El lenguaje de programación independiente a la plataforma
http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html
Java 7.0 | lo nuevo
Java 7.0, incorpora mejoras orientadas para aumentar el desempeño de aplicaciones corriendo en servidores con gran capacidad en RAM, y CPU multi-cores.
– Manejo de memoria mas eficiente
- Memoria es divida en varios Heap - First Gargabe collector: divide la memoria en varios
heap memory, aumentando el desempeño en su acceso
– Nueva funcionalidad en API de JDBC, para conectividad a bases de datos RowSet, Statement y Connection implementan la
interfaz Closeable, AutoCloseable
Java 7.0 – potencializa el desempeño de Java en Servidores
JDBC | Java Database Connectivity
Mecanismos para establecer conexiones a MySQL Server, con Java:
-Pool Connection / Data Source
-Jdbc:mysql:loadbalance://server1,server2,serverN/schema:port
- Persistence Framework
– Hibernate, Spring, ClusterJ, Java Persistence API
– Memcached ( Not-Only SQL MySQL 5.6 & MySQL Cluster 7.2 )
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity
Pool Connection / DataSource
- Un conjunto de conexiones, siempre esta listo en el pool
- Método: getConnection() en Java, obtiene una conexión lista del pool, sin delay en abrir físicamente una conexión al motor de BD.
- Método closeConnection() en Java, NO cierra la conexión, únicamente la retorna al pool, para que otro Thread pueda re-utilizarla
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers
JDBC | DataSource Glassfish
http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql
JDBC | DataSource Glassfish
http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql
El Servidor Java EE de aplicaciones, Glassfish Application Server administra las conexiones en el Pool: Automáticamente cierra conexiones en estado idle. Obtiene conexiones sobre demanda, según las requiera el aplicativo. Configuración centralizada desde JDBC Resource Manager, en el Java Application Server.
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity
Data Source
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity
Data Source (2)
Prácticas Recomendadas para Java Developers
Recap: JDBC | Java Database Connectivity
Driver Manager ( Java Class Loader )
- Pro: método fácil para conexión a RDBMS
- Contra: concurrencia en manejo de conexiones, inflexible en configuración de parámetros
JNDI Data Source
- Pro: flexibilidad en parámetros de configuración, gestión de conexiones por el contenedor Java EE
- Contra: requiere de un application server ( container )
Persistence Framework
- Pro: mapping entre OO & ER
- Contra: requiere mayor configuracion ( XML config params )
Prácticas Recomendadas para Java Developers
MySQL Introducción
Recap: MySQL – Replicación Master – Slave
MySQL, Replicación
- Mejor tiempo de respuesta mediante la separación carga, en el procesamiento de
consultas entre el master y el slave - SELECT Queries, pueden ser enviados al slave para reducir la carga de procesamiento
de consultas, en el master - Disponible para cualquier tipo de storage engine, incluso replicación entre distintos
tipos de storage engine - Lograr una mayor disponibilidad con un master / slave - En caso de fallas en el master, es posible cambiar al slave como backup - Respaldo de información a través de los slaves
Clien
ts
Slaves Master
MySQL Replication
MySQL Replicación semi-sync
• Los datos escritos en el master, también son escritos en el binary log File
• El thread I/O, en los slaves, toma los cambios del binlog del master y lo escribe en un relay log en los slaves
• El thread SQL, en los slaves, lee el relay log y aplica los cambios / escrituras en los slaves
• Si el plugin semi-sync esta instalado y configurado, el master espera hasta que el thread I/O de algún slave semi-sync, haya escrito la transacción a disco, o hasta que ocurra un timeout, entonces se retorna el ACK a la aplicación
Master
Slave
IO Thread
binlog relay
SQL Thread
Mejora la confiabilidad en FailOver COMMIT en el nodo master es reconocido, sólo cuando al menos uno de los nodos slaves ha registrado el evento En caso de FailOver, no hay perdida de información
http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
Semi-synchronous Replication
On Master and Slave:
have_dynamic_loading=YES
On the Master:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
SET GLOBAL rpl_semi_sync_master_timeout = N;
On the Slave:
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;
http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
JDBC | Java Database Connectivity
JDBC – MySQL Master, Slave1, Slave2, SlaveN – Round Robin
Prácticas Recomendadas para Java Developers
- Balanceo de Lectura en servidores Slave
- Servidor Master para Read & Writes
- Slaves para Read Only
- JDBC Connector automáticamente, selecciona un
Slave de la lista de Slaves
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
JDBC | Java Database Connectivity
Prácticas Recomendadas para Java Developers
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
- Import de Librerías
- Configura Driver para uso en RoundRobin Load Balancing
JDBC | Java Database Connectivity
Prácticas Recomendadas para Java Developers
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
- Insert Datos en Master ( Read Only False )
JDBC | Java Database Connectivity
Prácticas Recomendadas para Java Developers
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
- Select Datos en uno de los Slaves ( Read Only True )
MySQL Enterprise Monitor • Replication Monitor
• Vista única consolidada del ambiente MySQL
• Auto descubrimiento de servidores MySQL, replicación y topologías
• Alertas y monitoreo adaptable y basado en reglas
• Identificación de problemas antes de que ocurran
• Reducción de riesgo y tiempo de inactividad
• Facilidad para escalamiento horizontal sin requerir más DBAs
MySQL Enterprise Monitor
Un asistente DBA Virtual para MySQL
http://mysql.com/products/enterprise/monitor.html
• Java Connector plugin
– MySQL Enterprise Monitor, a través de conector JDBC Java
•Obtiene información de queries para su análisis, desde la aplicación
– Utilizado por Query Analyzer de MySQL Monitor
MySQL Enterprise Monitor
http://dev.mysql.com/doc/mysql-monitor/2.3/en/mem-qanal-using-cj.html
MySQL Enterprise Monitor • Java Connector plugin
Recap: MySQL 5.6 + Java 7.0
• MySQL 5.6 – mejor release en la historia de MySQL • Java 7.0 – mejoras significativas en desempeño y manejo de
recursos RAM y CPU para servidores • Ambas plataformas cada vez mas integradas entre sí • Oracle – único proveedor de soluciones desde Disco, hasta
aplicaciones • LAMJ / WAMJ, cada vez con mayor fuerza • Prueba el Trial MySQL Enterprise Hoy!
mysql.com/trial • Java
oracle.com/technetwork/java/index.html
MySQL Enterprise Backup
• Respaldo en linea para MySQL databases • Alto performance en Respaldo y Restauración de Info • Respaldos Full, Incremental, Partial
- Compressed Tables - Partition Files - In-memory database
• Compresión de datos • Point in Time Recovery • Cross Platform • Unlimited Database size
• Mejora de 3.5x, sobre tiempos de backup con mysqldump • Mejora de 16x, sobre tiempos de restore con mysqldump
MySQL Workbench
http://www.mysql.com/products/workbench/