Recientemente, el equipo de microservicios de Qingzhou de Netease Shufan ha abierto un componente de malla de servicio Slime , que se puede utilizar como administrador CRD de Istio , con el objetivo de realizar las funciones de gama alta de Istio / Envoy a través de una configuración más simple.
Según la presentación oficial del proyecto, el proyecto Slime se lanzó para compensar las deficiencias de la red de servicio Istio frente a funciones de alto nivel como la limitación de corriente local, listas blancas y negras y degradación.
Como el proyecto actual de grid de servicios nativos de la nube, Istio tiene un conjunto de abstracciones efectivas de nivel superior. Al configurar VirtualService, DestinationRule y otros CR, se pueden realizar funciones como distribución de versiones, lanzamiento en escala de grises y equilibrio de carga, pero en el frente al límite actual local Este conjunto de abstracciones parece incapaz de funciones de alto nivel de gobernanza de microservicios, como listas blancas y negras y degradaciones.
En un principio la solución que dio Istio fue Mixer, estas funciones que originalmente pertenecían al plano de datos se actualizaron a Mixer Adapter, aunque se solucionó el problema de expansión de funciones, muchos seguidores cuestionaron su arquitectura centralizada. Al final, Istio se rompió los brazos en la nueva versión y abandonó Mixer, lo que dejó en blanco la expansión de las funciones de gama alta en la versión actual.
Por otro lado, la configuración de Istio se inserta por completo, lo que significa que es necesario insertar una gran cantidad de configuración en un escenario de red a gran escala. Para reducir la cantidad de configuración insertada, los usuarios tienen que averiguar las dependencias entre servicios de antemano y configurar SidecarScope para la configuración. Aislamiento, y esto sin duda aumenta la carga mental del personal de operación y mantenimiento, y la facilidad de uso y rendimiento se han convertido en inexorables patas de pez y oso.
En respuesta a algunas de las deficiencias actuales de Istio, el equipo de NetEase inició el proyecto Slime. El proyecto se basa en k8s-operator. Como administrador CRD de Istio, se puede conectar sin problemas a Istio sin ninguna personalización. Slime adopta una arquitectura modular y actualmente contiene tres submódulos muy útiles:
- Carga de configuración diferida: no es necesario configurar manualmente SidecarScope, y la información de configuración y la información de descubrimiento de servicios se cargan a pedido, lo que resuelve el problema de la inserción completa.
- Gestión de complementos HTTP: utilice el nuevo pluginmanager / envoyplugin de CRD para ajustar la legibilidad y el mantenimiento deficiente del envoyfilter, lo que hace que las extensiones de complementos sean más convenientes.
- Limitación de corriente adaptativa: la estrategia de limitación de corriente se puede ajustar automáticamente en combinación con la información de monitorización, subsanando las deficiencias de la función de limitación de corriente de Istio.
El código fuente de Slime ahora está abierto, y el equipo declaró que el proyecto aún se encuentra en sus primeras etapas y espera que más meshers se unan a la comunidad o hagan sugerencias para que el proyecto ayude a mejorarlo. El equipo abrirá más funciones útiles en Slime en el futuro.