Duda cloud google vs mysql cluster en dedicados

Yumigestor

Hola a todos tengo una consulta sobre un tema que nunca he tocado y tengo que tomar una decisión. Quizás @umbranoide sepa del tema tal como me comentaba @eXtreM3 en el post Feda/dev/

Actualmente las bbdd del proyecto que desarrollamos se encuentra alojada en un servidor dedicado, la cuestión es que probablemente si todo va como está previsto a partir de septiembre en la tamaño de la BBDD así como las transacciones se van a incrementar de una manera exponencial.

Es por eso por lo que nos estamos planteando y preparándonos para esa futura escalabilidad que tenemos en el frente, y tenemos varias opciones disponibles. Podríamos ir directamente a Cloud SQL de Google o Amazon, pero estamos viendo precios y la verdad que aunque parecía en Inicio barato realmente no es tan barato más cuando lo comparamos con una solución basada en servidores dedicados en cluster.

Por ello os pido vuestro consejo y experiencia

OPCIÓN 1)

Montar mi propio Cluster con 4 dedicados administrados.
Sería 4 servidores dedicados con esta configuración por servidor
8 cores Xeon(R) CPU E3-1270 V2 @ 3.50GHz
32gb Ram
SSD 480 gb

En total tendría
32 cores a 3,5ghz y 128gb ram en 4 máquinas (1 seria el cluster, y las otras 3 como nodos, la que administra es una maquina que ya tenemos)

Sobre ellas montaría Mysql Cluster en una configuración inicial como se muestra en este línk
http://www.ingdiaz.org/instalacion-mysql-cluster-ndb-7-5-8-ubuntu-server-16-04/
NOTA: El Nodo de administración seria un quinto servidor dedicado que tengo actualmente de los 2 que tenemos ahora.

En está configuración tengo escalabilidad horizontal a futuro sin problemas solo es añadir más máquinas nodo al Cluster y a futuro cuando la bbdd crezca podemos ampliar cada servidor con un HD de 2Tr y ubicar en estos algunas de las particiones de tablas que van por años, y dejar solo en el SSD las particiones de tablas del año en curso y el anterior.

La opción 1 tiene un coste mensual total de 700€/mes con nuestro proveedor de hosting, alojado en España en nuestro actual CPD, con maquinas administradas por ellos, pero con acceso y control total de las maquinas.

OPCIÓN 2)

Optar con un Cloud SQL por ejemplo de Google, he mirado una configuracion aparentemente "similar" y por los precios que veo es bastante más cara.

Por ejemplo, si voy a una configuración de Google Cloud SQL:
db-n1-standard-32 => 32 cores a 2,5 pero virtualizado... y 120 gb ram, en Bruselas
of instances: 1
Location: Belgium
730.0 total hours per month
Storage: 100.0 GB
Backup: 250.0 GB
Sustained Use Discount: 30%

Coste mensual de 1,394.83€

Lo que me parece es muy caro, es el DOBLE, con 32 cores virtualizados, si necesito mas espacio, a lo que podria tener en dedicados, el precio se dispara a los 1700€/mes...

Análisis de pros y contras:

OPCIÓN 1)
PROS:

Mayor potencia bruta... (aparentemente)
Mas espacio, y opciones de ampliar mas economicas.
Creo que mayor control
Mejor latencia de respuesta ya que el Cluster estaría en el mismo CPD que la maquina que haría las peticiones y consultas.
Aparentemente más economico
CONTRAS:
quizás problemas de rendimiento por cuestiones de tuning de la configuración, etc...
la escalabilidad horizontal no es tan rapida, requiere instalar nuevos nodos y configurar.

OPCIÓN 2)
PROS:

Más fácil escalar desde un simple panel
Menos temas de configuración
CONTRAS:
Aparentemente mucho mas caro.
Mayor latencia o tiempo de respuesta por la distancia en la conexión.
Menor control.
Estas en manos de "terceros"... aun más si cabe....

¿Estoy considerando o equivocándome en algo de cara al Cloud de Google?
¿Que experiencias teneis?
¿Por que apostaríais vosotros?
¿Que pros y contras veis?

Yo personalmente apuesto por la OPCIÓN 1... pero antes de tomar una decision que es bastante importante quiero conocer experiencias, etc en este ámbito.

Saludos y GRACIAS!!!

1
B

Lo máximo que he tocado en BD es balancearlas con nodos maestro-esclavo, clusters nunca he tocado así que no te puedo orientar. Lo que si te voy a decir, es que el 90% de los problemas de infrastructura se deben a una mala optimización de las consultas sql y aunque pongas 3000 nodos en cluster no te van a solucionar el problema.

Yumigestor

De eso sabemos bastante, uno de los compañeros es experto en eso en optimizar querys, bendito explain plan de workbench.... No sabes las cosas que permite esa función, pero cuando tienes tablas enormes con decenas de cruces, sub querys y su cálculos en vivo con datos que no puedes meterializar en tablas... Pues toca pensar en cosas así.

Nadie por aquí tiene experiencia en estos campos?

B

SI vas a la opcion de cluster... mirate "galera" de mariadb.

Respecto a las especificaciones del servidor, con tener 2 nodos (maestro-maestro), con discos ssd para que la escritura sea rapida, suficiente.
Si con ssd os quedais cortos de tiempos de escritura... montad el sistema de ficheros en alguna almacenamiento en red que sea mas rapido (netapp por ejemplo).

Montar las bases de datos en ram y tira millas, necesitaras bastante ram... pero con 96-192gb no deberia suponer problema si haceis bien indices, caches, etc.

1 respuesta
Yumigestor

#4 lo de maria db no me da mucha confianza, es una Alpha.
Lo de master master en qué recomiendas montarlo. Mysql Cluster requiere al menos más máquinas.

Gracias por la información, la verdad es un mundo muy interesante, y con bastantes lagunas.

1 respuesta
Lecherito

Opcion 1:

  1. No puedes poner mayor potencia bruta ya que de normal las bases de datos "cloud" son "infinitabmente" escalables.
  2. Vale, es mas economico
  3. Para que quieres control?
  4. Si vas a irte a cloud, porque no te vas a cloud del todo?
  5. Creo que no has tenido muchos dolores de cabeza sobre lo que significa escalar horizontalmente una base de datos (o cualquier software)

Opcion 2:

  1. Me vale
  2. Me vale
  3. Es mas caro, pero no tienes que pensar en el disaster recovery por si se te rompe tu server
  4. Te lo compro
  5. Que mas control quieres?
  6. Esta en tus manos, eh. Incluso puedes tener una VPC que solo tu servidor se puede conectar. No te creas que la gente esta interesada en tus cosas xD
B

#5 Como que MariaDB es una Alpha?

Que version estas mirando?

Muchas plataformas de sql cluster estan bajo mariadb.... y como el primer dia hoyga.

1 respuesta
Yumigestor

#7 hola lo, primero que te sale en Google buscando por Galera Mariadb sale esto
https://mariadb.com/kb/es/what-is-mariadb-galera-cluster/

¿Qué es MariaDB Galera Cluster?
El proyecto MariaDB está ahora encaminado en MariaDB Galera Cluster en colaboración con Codership. El código está disponible aquí: https://code.launchpad.net/maria-captains/maria/maria-5.5-galera

Está considerado como de calidad Alpha por ahora y todavía nos queda un largo camino antes de que podamos poner a disposición de todo el mundo (GA) este producto.

1 respuesta
B

#8 El articulo que me pasas no se de que año sera...

https://mariadb.com/kb/en/library/what-is-mariadb-galera-cluster/

edito:

Created
6 años, 2 meses ago
Modified
6 años, 2 meses ago

mirate la documentacion en ingles.
de nada

1 respuesta
Yumigestor

#9 cierto, busque en la tablet, primer resultado de Google sin indicar ninguna fecha línk a la página oficial en español, y en la frente directamente que es una beta y lo mejor que no salen fechas de publicación ni nada...

Gracias le daré un vistazo.

2 meses después
Yumigestor

Hola de nuevo, estoy valorando usar Percona SQL que entre otras cosas te permite el uso de las herramientas que en Mysql solo puedes acceder con licencia Enterprise.

Las herramientas de backup en caliente y de monitoreo que son muy útiles y interesantes.

¿Alguno de vosotros ha trabajado alguna vez con Percona SQL?
https://www.percona.com/software/mysql-database/percona-server

Usuarios habituales