Migración a Google Cloud Platform (Google Cloud Platform - GCP)

[Parte 1 de 2]



El blog Hike apareció el 12 de diciembre de 2012, y había muy pocos lectores en ese momento. Para 2016, hemos alcanzado los 100 millones de usuarios registrados y 40 mil millones de publicaciones mensuales. Pero ese crecimiento ha puesto de manifiesto el problema de ampliar nuestra infraestructura. Para eliminarlo, necesitábamos una plataforma de alto rendimiento a un precio asequible. En 2016 y 2017, encontramos numerosas interrupciones en el trabajo, tuvimos que hacer algo urgentemente con esto, por lo que comenzamos a considerar varias opciones.


Necesitábamos una plataforma en la nube que pudiera crear, probar e implementar rápidamente aplicaciones en un entorno de nube escalable y confiable. A primera vista, puede parecer que todas las principales plataformas en la nube son similares en muchos aspectos, pero tienen varias diferencias fundamentales.


Dividiremos esta publicación en 2 partes:


  1. Motivo para elegir GCP
  2. Cambie a GCP sin tiempo de inactividad

Prueba de concepto


Comenzamos demostrando la exactitud del concepto, en el que examinamos la compatibilidad de la infraestructura existente con los servicios ofrecidos por la plataforma en la nube Google Cloud, y también planificamos elementos para el desarrollo futuro.


Áreas clave para la validación de conceptos:


⊹ balanceador de carga
⊹ Computadora
⊹ Redes y cortafuegos
⊹ Seguridad
⊹ Disponibilidad en la nube
⊹ Big data
⊹ Facturación


La confirmación del concepto incluyó probar y verificar el ancho de banda de máquinas virtuales / red / balanceador de carga, así como estabilidad, escalabilidad, seguridad, monitoreo, carga, big data y servicios de aprendizaje automático. En junio de 2017, tomamos una decisión importante para migrar toda la infraestructura a la plataforma en la nube de Google Cloud.


Queríamos elegir una plataforma en la nube que pudiera hacer frente a los innumerables desafíos que encontramos:


⊹ equilibrador de carga:


Tuvimos muchos problemas asociados con la administración de clústeres locales de HAProxy para manejar decenas de millones de conexiones de usuarios activos diariamente. El Global Load Balancer (GLB) ha resuelto muchos de nuestros problemas.



Al utilizar el equilibrio de carga global de GCP, una sola dirección IP de difusión ilimitada puede reenviar hasta 1 millón de solicitudes por segundo a varios servidores GCP, como los Grupos de instancias administradas (MIG), sin la necesidad de "precalentamiento". Nuestro tiempo de respuesta general ha mejorado 1.7–2 veces desde que GLB usa una implementación de grupo que le permite distribuir el tráfico a través de múltiples fuentes.



⊹ Computadora:


No hubo grandes problemas en las computadoras, pero necesitábamos una plataforma de alto rendimiento a un precio asequible. El rendimiento total de las máquinas virtuales de Google aumentó en 1.3-1.5 veces, lo que permitió reducir el número total de instancias de máquinas virtuales en ejecución.


Las pruebas de Redis se realizaron con un grupo de 6 copias (8 núcleos, 30 GB cada uno). Con base en los resultados a continuación, concluimos que GCP proporciona hasta un 48% (promedio) de mejoras de rendimiento para la mayoría de las operaciones de REDIS y hasta un 77% para operaciones específicas de REDIS.


redis-benchmark -h -p 6379 -d 2048 -r 15 -q -n 10000000 -c 100


El servicio de computación en la nube Google Compute Engine (GCE) ha brindado beneficios adicionales en la administración de nuestra infraestructura mediante el uso de lo siguiente:


Grupo de instancias administradas (MIG): MIG nos ayuda a mantener los servicios de aplicaciones en un entorno robusto con características de múltiples zonas, en lugar de asignar recursos para cada zona. MIG identifica y corrige automáticamente las instancias inoperativas en un grupo para garantizar el funcionamiento óptimo de todas las instancias.


Migración dinámica: la migración dinámica ayuda a mantener instancias de máquinas virtuales incluso cuando falla un sistema host, como cuando se actualiza software o hardware. Al trabajar con nuestro socio en la nube anterior, recibimos una notificación sobre un evento de mantenimiento programado y nos vimos obligados a detener e iniciar la máquina virtual para cambiar a una máquina virtual en funcionamiento.


Máquinas virtuales personalizadas: en el marco de GCP, podemos crear nuestras propias máquinas virtuales con la potencia de procesamiento del procesador y la cantidad de memoria necesaria para cargas de trabajo específicas.


⊹ Redes y firewalls:


Administrar múltiples redes y reglas de firewall no es fácil y puede ser arriesgado. La red GCP VPC es global de manera predeterminada y proporciona comunicación interregional sin configuración adicional y sin cambiar el ancho de banda de la red. Las reglas de firewall proporcionan flexibilidad VPC para proyectos que usan el nombre de la regla de etiqueta.


Para una red con baja latencia y mayor ancho de banda, nos vimos obligados a seleccionar instancias costosas con un ancho de banda de 10 Gbit / sy redes extendidas activadas en estas instancias.



⊹ Seguridad:


La seguridad es el aspecto más importante para cualquier proveedor de servicios en la nube. En el pasado, la seguridad no estaba disponible para la mayoría de los servicios o era solo una opción adicional.


Los servicios en la nube de Google están encriptados de manera predeterminada. GCP utiliza varios niveles de encriptación para proteger los datos. El uso de varios niveles de encriptación brinda protección para los datos de respaldo y le permite elegir el mejor enfoque basado en los requisitos de la aplicación, por ejemplo, utilizando el servicio Identity-Aware Proxy y encriptando datos inactivos de manera predeterminada.


Además, GCP cierra las recientes vulnerabilidades catastróficas catastróficas basadas en la ejecución en la gran mayoría de los procesadores modernos (Meltdown, Spectre). Google ha desarrollado un nuevo método de modificación binaria llamado Retpoline , que le permite sortear este problema y realizar cambios en toda la infraestructura de trabajo de manera transparente para los usuarios.


⊹ Disponibilidad en la nube:


La disponibilidad de recursos de GCP difiere de la de otros proveedores de soluciones en la nube, ya que la mayoría de los recursos de GCP, incluido el panel de control, son zonales o regionales. Tuvimos que administrar varias VPC para proyectos individuales desde cuentas separadas que necesitaban vincular una conexión VPC o VPN para una conexión privada. También tuvimos que guardar una copia de la imagen en una cuenta separada.


En Google Cloud, la mayoría de los recursos son globales o regionales. Dichos recursos incluyen el panel de control (donde podemos ver todas las máquinas virtuales de nuestro proyecto en una pantalla), imágenes de disco, contenedores para almacenar datos (varias regiones dentro del continente), VPC (pero las subredes separadas son regionales), equilibrio de carga global, publicación y suscripción, etc.



⊹ Big data:


Pasamos de una configuración analítica monolítica y difícil de administrar a un sistema BQ completamente administrado, lo que condujo a mejoras en tres áreas:


● Mayor velocidad de procesamiento de consultas hasta 50 veces.


● Sistemas de procesamiento de datos totalmente gestionados con escalado automático.


● El tiempo de procesamiento de datos se ha reducido de horas a 15 minutos.


⊹ Carga:


Fue difícil comparar diferentes proveedores de servicios en la nube, ya que muchos servicios no eran similares o comparables, diferían para diferentes escenarios de uso y dependían de escenarios de uso únicos.


Beneficios de GCP:


Descuentos por uso a largo plazo: aplicados con el uso creciente de máquinas virtuales cuando se alcanzan ciertos umbrales. Podemos recibir automáticamente un descuento de hasta el 30% en las cargas de trabajo que se realizan durante la mayor parte del mes contable.


Facturación por minuto: al asignar una máquina virtual en GCE, se cobra una tarifa por un período mínimo de 10 minutos, después de lo cual comienza una facturación por minuto para el uso real de la máquina virtual. Esto proporciona una reducción significativa en los costos, ya que no tenemos que pagar una hora completa, incluso si la instancia de la máquina está funcionando menos de una hora.


Equipo superior, menos instancias: descubrimos que para casi todos los niveles y aplicaciones, utilizando GCP, puede realizar la misma carga de trabajo con el mismo rendimiento pero menos instancias.


Compromiso en lugar de redundancia: otro factor es el enfoque de GCP sobre el precio de las instancias de máquinas virtuales. En AWS, la forma principal de reducir el costo de una instancia de una máquina virtual es comprar instancias reservadas por un período de 1-3 años. Si la carga de trabajo requería cambiar la configuración de la máquina virtual o no necesitábamos esta instancia, tuvimos que venderla en el mercado para instancias reservadas a un precio más bajo. GCP tiene un "descuento de compromiso de compromiso" que se aplica al reservar los recursos de procesador y memoria, no importa qué instancias de máquina virtual usemos.


Conclusión


En base a este análisis detallado, decidimos cambiar a GCP y comenzamos a trabajar en el esquema de transición y las listas de verificación. En el próximo artículo, hablaremos sobre lo que aprendimos durante la implementación de este proyecto.

Source: https://habr.com/ru/post/es427347/


All Articles