Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Bienvenido a la serie de casos de usuario tungsteno Tela encontró que los más TF escenarios juntos. "LOL Secreto" héroe serie es usuarios de tungsteno tela Riot Games compañía de juegos, como LOL "Liga", el desarrollador y operador, Riot Games desafíos complejos despliegues en todo el mundo, nos dejó LOL secreto detrás de los "héroes" mira cómo se están ejecutando el servicio en línea que.
Autor: Maxfield Stewart (Fuente: Riot Games) Traductor: grupo compilación TF

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL
Bienvenido a esta serie de artículos, estoy Maxfield Stewart. En este artículo examinaremos cinco requisitos clave para convertirse en aplicaciones de micro-en la plataforma de contenedores antidisturbios en tiempo real. Riot de cada uno debe micro-servicios:

  • altamente portátil
  • Configurado en tiempo de ejecución
  • Se puede encontrar
  • espectáculos
  • investigable

Para cumplir con todos estos requisitos, tenemos que apoyar otros servicios y herramientas. Algunas de estas herramientas es la construcción de un "desarrollador", mientras que otros son para el "personal operativo" acumulación. En antidisturbios, estas posiciones no son sólo los derechos, pero los ingenieros pueden cambiar los papeles en ellos. Un ingeniero puede desarrollar un servicio de hoy, mañana y luego desplegarlo para introducir nuevas características. Voy a profundizar en estas cinco necesidades, así como herramientas que los apoyan, y delinea nuestro enfoque.

Si usted está listo para estudiar nuestro secreto servicio de micro "condimento" métodos de producción, sigue leyendo!

altamente portátil

Riot tiene una enorme gama de despliegue a escala global. Vamos a implementar el servicio a las decenas mundo de los centros de datos, cada centro de datos puede alojar múltiples zonas. Queremos "acumulación vez, la migración en cualquier lugar," que significa servicio de micro debe tener un alto grado de portabilidad.

Con el fin de hacer que nuestros servicios portátil, se debe determinar primero su contenedor. Ya hemos discutido la de sus numerosos casos de uso de contenedores y, así como valiosos detalles técnicos como estibador y similares, pero las cosas en el recipiente y no podemos resolver todos los problemas. Todavía tenemos que empaquetar estos contenedores entregados a los centros de datos globales.

Usamos el poder del Registro acoplable JFrog Artifactory Alojado de nuestra propia replicación mundial para lograr este objetivo. La siguiente figura muestra la construcción de un ciclo recipiente imagen vida de producción:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Discutimos construido previamente blog de tecnología de software antidisturbios. Construimos cada año el número de más de 1,25 millones. Una parte se utiliza como destinado a la producción de imágenes acoplable de construida micro-servicios. Una vez emitida de nuestro proceso de entrega continua, van a ser estacionados dentro de la base de datos de registro del estibador. Una vez listo para la producción, que ponen su marca como "actualizar" y pasar a la tienda de copia, copia del repositorio comience inmediatamente acoplable imagen Extensión a nuestro centro de datos.

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Dado que estos acoplable imagen construida en capas reutilizables, para que puedan ser replicados en el mundo en cuestión de minutos. Que en sí es pequeño, el rango de variación como un poco. Puede leer más desde el siguiente enlace:
https://docs.docker.com/storage/storagedriver/

Configurado en tiempo de ejecución

Actualmente se ejecuta en un contenedor antidisturbios entorno de producción de más de 10.000. Cualquiera de los micro-servicios puede incluir múltiples recipientes. Todos estos ejecutar en contenedores, son muy rápidos como aplicaciones para niños recién nacidos, bañadas en la gloria de su entorno de producción. Ellos necesitan esta información para identificar rápidamente su localización, así como aprender cómo configurar misma.

En un sistema de despliegue tradicional, puede ser incluido en la carga útil configuración de la aplicación y el uso de herramientas como cocinero o de marionetas y similares, para mantener la configuración de la convergencia con el tiempo. Sin embargo, para mantener la portabilidad, podemos implementar la aplicación se debe hacer, y tienen la capacidad en tiempo de ejecución que puede funcionar en cualquier entorno, todo está en orden.

Este es el "servicio de configuración" entra en acción. Queremos usar su propio programa de ámbito de aplicación, y después de analizar una serie de soluciones de código abierto, nos dimos cuenta de que la escritura de su propio servicio de configuración nos da la máxima flexibilidad.

Resulta que para resolver el esquema de nombres es relativamente simple. Cuando nuestros inicia la aplicación, saben quiénes son y dónde están, porque el programador les notificará mediante una simple inyección de variables de entorno.

Echemos un vistazo en el ámbito de nuestro programa, que se divide en dos secciones de macro:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Alcance Ambiental dividido en tres partes, el ámbito de aplicación se divide en dos partes como sigue:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Voy a usar un apodo como demostración "MyApp" aparatos simples. MiApl se ha desplegado como un servicio a disposición de todos Vegas alboroto dentro de un segundo centro de datos. Es sólo por los componentes del servidor, que podría tener este aspecto:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Llamado componente ambiental "myappprod1" es muy importante. I puede ser versión QA de la aplicación (myappqa1) o versión de desarrollo (myappdev1) desplegado en el mismo clúster. Incluso posible ejecutar dos versiones de producción. programa de alcance nos permite crear el ambiente dentro de la agrupación.

Con el fin de que pueda ser utilizado como esquema de configuración de búsqueda, tenemos que utilizar el alcance de los datos de empuje para configurar el servicio. Por ejemplo, si quiero solicitar datos han sido desplegados para impulsar "globalriot.las2.myappprod1" todas las aplicaciones, los datos de configuración pueden ser empujados a:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Cuando "Myapp" subiendo y se identifican con ella parte de los tres primeros partidos del alcance y la obtención de los comodines de datos de configuración. Si quiero configurar un determinado aplicado a un ejemplo concreto, los datos pueden ser empujados a:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Cualquier cosa con este alcance completo para identificar a sí mismos, obtendrá los datos. Los datos en sí es en realidad un conjunto de propiedades, sólo un simple "pares clave / valor" en él. Este es un ejemplo de algunos de los datos para el alcance objetivo de:

= HTTP http.ProxyType
http.ListenPort = 80
http.DomainNames = myapp.somedomain.io

datos de configuración pueden ser actualizados en tiempo real. Imagine una tasa de propiedad es como limitante:

ratelimit.txsec = 1000

Puedo empujar nuevo valor ratelimit.txsec, la aplicación se puede ajustar dinámicamente en tiempo real para comprobar la configuración. Esto proporciona una poderosa influencia servicio en vivo para nosotros. Hubo un tiempo, arreglar "Héroes de la Unión" datos de título, tiene que volver a desplegar el juego. Ahora, podemos empujar estos datos en el "servicio que es de configuración" Nuestros servidores de juego serán extraídos al comienzo del juego, y aplicar automáticamente los ajustes para resolver el problema de equilibrio, activar / desactivar los problemas Champion, etc., todo ello sin Esto hará que el jugador golpeado.

Se puede encontrar

Si tenemos un servicio de configuración, que en sí es sólo un servicio de micro, la aplicación puede saber cómo iniciar y dónde encontrarlo? Si el servicio requiere un servicio de micro-micro para comunicarse con otros, cómo encontrarlos? Este es el descubrimiento de "primero, la gallina o el problema del huevo."

Nuestro servicio no requiere dominio micro. De hecho, pueden en cualquier momento, para obtener cualquier posición aleatoria IP de la agrupación para empezar. Elegimos a resolver este problema mediante la búsqueda de un servicio o una "regla única para todos los servicios." Descubrimiento de servicio se encuentra en un nombre de dominio conocido, el nuevo servicio sabe dónde buscarlo.

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

La primera vez que se embarcó en este viaje, inspirado en Eureka soluciones de Netflix. De hecho, nuestro primer despliegue es la nueva instancia de Eureka. Eureka es muy bueno, pero a medida que pasaba el tiempo, se empezó a sentir la necesidad de algunas herramientas, nos permite comprender el entorno de funcionamiento con una mayor nativo.

Después de que los nuevos se inicia la aplicación, se ve servicio de descubrimiento para encontrar la ubicación en la que está configurado el servicio, la siguiente detallará el proceso. Antes de que el siguiente paso, la aplicación debe ser auto-configuración, es importante: a registrarse en el Discovery. Esto permite que otros servicios pueden localizar y consultar el nuevo servicio, y para entender sus contratos de servicio. Aquí hay un ejemplo que muestra cómo el servicio es un informe de indicadores para el entorno de control de calidad:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL
Una vez que el servicio de detección de aplicaciones para buscar y localizar el servicio de configuración, e informar de su propia, sino que también puede seguir utilizando el servicio de descubrimiento para encontrar necesidad de comunicarse con otros servicios.

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Suena simple, pero hay que tener en cuenta algunas situaciones complejas. Por ejemplo, si un servicio está abajo, entonces tenemos que cerrar sesión en el servicio, o que corran el riesgo de solicitud de servicios (es decir, que el servicio está escuchando lo que IP y puerto). Si el servicio IP cambia, tenemos que actualizarlo, de lo contrario existe el riesgo de tráfico de la ruta a la ubicación incorrecta.

Tenemos que hacer frente a estas situaciones por el patrón simplemente latido del corazón. Dentro de un período determinado de tiempo no puede ser llamado de nuevo en servicio es considerado como MIA, se retira del servicio de descubrimiento.

Sin embargo, en un entorno de producción, las cosas pueden no ser tan simple. Si los datos del Centro de un error grave, el sistema tiene que tener un conocimiento básico con el fin de dar una respuesta adecuada. Si usted encuentra que un gran número de servicios señaló que su cliente registrado para detener los latidos del corazón, se puede afirmar la existencia de un fallo en la red o la comunicación a gran escala, y atrapado en un modo de "reserva". En el modo retenido y encontró el servicio conservará sus datos y personal de operaciones para llamar inmediatamente para ayudar a protegernos de una gran tormenta de registro de variedades o el "fallo en la red" cada vez más popular.

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

espectáculos

Derroche de toda Informe sobre la salud micro-servicio será emitido en un punto final conocido, similar a la "salud", "rebaja", "fracaso" y así sucesivamente. Incluso un simple informe, sino que también nos permite utilizar las llamadas REST investigación básica que se encuentra el servicio, y comprobar la salud de todos los servicios.

Pero eso no es suficiente. Si el servicio no se pudo registrar cómo hacerlo? O cancelación de un quiebre de servicio y cómo hacerlo? Si usted no encuentra los servicios, ¿cómo sabemos lo que debe indicar (arriba o abajo)?

Se trata de nuestros indicadores de alerta y métricas sistema de origen.
Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

sistema de medición Índice puede consultar la aplicación de carga útil de índice, y luego absorbido en el canal de datos para buscar índice, y luego empujado a los datos de índice se encuentra en el centro de cada colector de datos. A continuación, los datos se envía al motor de almacenamiento Elasticsearch, registrada en el motor vigilante de ayudar a activar una alarma.

Eurodiputados se producen alarmas relacionadas con la aplicación. servicio de alerta para registrarlo, y luego controlar su índice mediante la supervisión del estado de los cambios en el servicio. Si el estado de la aplicación de la "sana" a "degradar", y la solicitud ha sido registrada para este estado de alerta, el servicio de alerta informará al Registro del punto de contacto (a través de llamadas, correo electrónico, etc.).

Cómo medir los indicadores en el sistema sabe dónde recoger? Al encontrar el servicio! desarrollador de la creatividad, incluso puede configurar el servicio, configurar para medir la calidad de los problemas de servicio, de su separación, o en un servicio de configuración de alerta para que los cambios en las cifras en tiempo real y alertas. sonido de la alarma demasiado fuerte todavía? ¿Ha notado una descripción concreta siempre causa una falsa alarma? Empujar los cambios de configuración en su ámbito de aplicación, y decirle que la alarma Deregister.

Entonces, indicadores sintéticos pueden ser incorporados en el almacén de datos. En antidisturbios, nos estamos moviendo los datos a una "tubería de datos en tiempo real", lo cual, la tubería se apoya en Elasticsearch, por los productos y soluciones de equipo de alojamiento de datos antidisturbios. Una vez que los datos en la tubería, se puede construir fácilmente un tablero de instrumentos. Recuerde que todas las aplicaciones están reportar sus datos de alcance y de índice de nombre, por lo que puede fácilmente de una región particular o un nombre en particular en el centro de datos, métricas de consulta para una aplicación particular.

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Esta es la situación hemos configurado para el servicio de captura de métricas. Cada indicador no tiene, pero es un buen ejemplo. Se puede ver en la carga de la CPU (muy ligero), y recibió aproximadamente 20.000 solicitudes por minuto. Este ejemplo en particular proviene de nuestro centro de datos de Amsterdam, es "grupo" es "lolriot.ams1.configurous1" (ámbito de despliegue), y la aplicación es (ámbito de aplicación) "infrastructurous.configurous".

Si es necesario, podemos construir una alarma basada en estos indicadores. Por ejemplo, el uso de la "cuenta de instancias activado", cuando vemos el número de casos es menos de lo esperado "3", se puede crear una alarma para avisar al personal correspondiente.

En el descubrimiento de servicios y el servicio de configuración en sus aplicaciones debidamente registrada, el costo inicial es muy pequeña, los desarrolladores pueden obtener Riot este informe de forma gratuita.

investigable

Hasta el momento, evitamos un tema crítico no hablar: la seguridad. Comunicaciones seguras, cualquier, una condición necesaria altamente portátil para el sistema de micro-servicio dinámicamente configurable. El tráfico HTTPS debe estar bloqueado para la autenticación de certificado de API ficha o SSL. Esperamos que estos datos guardados en los servicios de configuración para que pueda acceder fácilmente, pero los datos almacenados en formato de texto plano, sin duda no va a traer ningún bien a sí mismo. Entonces, ¿cómo podemos hacer?

Si codificamos los datos almacenados en la configuración y el servicio, lo que va a pasar? A continuación, una vez que, necesitaremos un método para encontrar el descifrado, y también necesitaba una manera de asegurar que recupere su aplicación es la única aplicación que tiene la clave de descifrado. Entró en nuestras dificultades operativas de la última parte: gestión secreta.

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL
https://xkcd.com/538/

Por esta razón, hemos elegido para crear un paquete de servicios en torno HashiCorps excelente servicio Vault. Bóveda está realmente terminado el trabajo mucho más allá de nuestras necesidades, porque en realidad queremos almacenar la clave de descifrado, por lo que nuestros servicios pueden recuperarlo para descifrar sus datos. Por lo tanto, nuestro paquete de servicio para este propósito, básicamente, sólo permitió RESTO punto final.

En teoría, es muy simple de usar, los desarrolladores utilizan el ámbito de aplicación de nombres, los servicios específicos clave de descifrado en el servicio secreto. Nuestro contenedor planificador Almirante en clave de inicio de la inyección en el contenedor de aplicaciones (por nombrar ámbitos para encontrarlos). Una vez que el contenedor de la aplicación que tiene su clave de descifrado, se puede descifrar recuperado de configuración para las propiedades del servicio de configuración. Titular de la configuración de servicio requiere el uso de una clave de cifrado para cifrar datos y, a continuación empujado a la configuración de almacenamiento.

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Para obtener más información sobre el proceso y cómo funciona, está más allá del alcance de este artículo, pero el flujo de trabajo es esencial. Con este sistema, el servicio ahora puede lograr muy portátil, la configuración dinámica, la autopercepción, se puede ver, se puede encontrar, y puede manejar bit de datos de seguridad si es necesario.

Siguiente: ecosistema de desarrolladores

Hasta ahora, hemos hablado de todos los servicios, como apoyo a la producción en marcha bot carriles en el clúster, pero nuestro ecosistema y muchos otros servicios. Después de todo, si nuestros desarrolladores no pueden utilizarla de manera eficaz, a continuación, esto es todo lo que sirve? Para ayudar a tomar ventaja de este sistema, hemos creado una gran cantidad de herramientas web y CLI. Si sólo hablar sobre el ecosistema del entorno de producción, todavía tenemos que discutir ecosistema de desarrolladores. Pero este es el siguiente artículo de historia! Por ahora dejar un poco de aviso. Esta es una captura de pantalla de uno de nuestros componentes de aplicaciones Web, lo usamos para el acceso al ecosistema de herramientas, y ver los datos disponibles de inmediato para los que:

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Si usted quiere saber lo que algunas de las herramientas que es el próximo artículo, así que estad atentos!


Más "Secret LOL" serie
secreto Shu LOL infraestructura de TI detrás del despliegue de la diversidad poner un pie en el viaje
secreto detrás de la infraestructura de TI LOL papel clave Shu de "programación"
secreto detrás LOL nueva infraestructura de TI de infraestructura Shu SDN desbloqueo
Secreto la infraestructura de TI de infraestructura Shu que es el código detrás de LOL


Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Infraestructura del servicio secreto de TI Shu micro ecosistema detrás de LOL

Supongo que te gusta

Origin blog.51cto.com/14638699/2481620
Recomendado
Clasificación