Azure Service Fabric hace que la implementación, la administración y el empaquetado de aplicaciones de microservicio escalables y confiables sean muy fáciles y eficientes. Simplifica el desarrollo y la gestión de aplicaciones en la nube, además de escalar y organizar servicios de forma fiable. El propósito de Azure Service Fabric es proporcionar a los desarrolladores una plataforma muy rica que aborde muchos de los problemas comúnmente asociados con el desarrollo de aplicaciones distribuidas basadas en la nube.
NCache proporciona su implementación dentro del clúster de Azure Service Fabric para mejorar el rendimiento y la confiabilidad. NCache es una solución de almacenamiento en caché distribuido en memoria que mejora el rendimiento y la escalabilidad de sus aplicaciones al almacenar en caché sus datos y residir más cerca de las aplicaciones.
NCache Detalles NCache Implementación de OpenShift NCache Documentos de AKS
NCache Arquitectura de implementación en Azure Service Fabric
Echemos un vistazo a la arquitectura de implementación general de NCache en Azure Service Fabric. La infraestructura consta del recurso de clúster de Service Fabric junto con todos sus recursos de Azure compatibles, incluido un equilibrador de carga de Azure y un conjunto de escalado de máquinas virtuales. Un clúster de Service Fabric puede tener varias aplicaciones en ejecución que podrían estar compuestas por servicios individuales, como es común en la arquitectura basada en microservicios, y estos servicios individuales se pueden escribir en un idioma diferente. Service Fabric gestiona la escalabilidad y la alta disponibilidad de las aplicaciones y sus servicios individuales.
En tales aplicaciones empresariales, una solución de almacenamiento en caché distribuida como NCache es una parte integral para facilitar un alto rendimiento. NCache también se puede implementar dentro de la aplicación Service Fabric como un servicio de contenedor. En este escenario, NCache los servidores se ejecutan dentro de los contenedores en múltiples nodos del conjunto de habilidades de la máquina virtual y se comunican entre sí para formar un caché en clúster.
El servicio de descubrimiento de caché obtiene información en tiempo real sobre las direcciones IP de NCache servidores y proporciona esa información a los clientes. Con esta información, los clientes pueden realizar operaciones en el NCache clúster de caché. Poniendo todo esto junto, el siguiente diagrama muestra el despliegue de NCache en el clúster de Service Fabric:
Repasemos los detalles paso a paso del despliegue de NCache para entenderlo mejor.
NCache Detalles Despliegue de NCache en clúster de Service Fabric
Paso 1: crear un clúster de Service Fabric
El primer paso es crear un clúster de Service Fabric para implementar NCache. Cree un grupo de recursos con el recurso del almacén de claves. El almacén de claves contiene el certificado que se usará con el clúster de Service Fabric. Para comenzar, puede comenzar con la plantilla ARM para un clúster de Service Fabric de 5 nodos dado esta página y luego hacer los siguientes cambios:
- En json archivo, cambie el valor predeterminado del vmImageSku parámetro en el parámetros sección de 2016-Centro de datos a 2016-Centro de datos con contenedores. Esto configurará los nodos VMSS con capacidades de Docker preinstaladas.
- Actualice la plantilla ARM para permitir Abrir el modo de red.
- Entre los puertos del equilibrador de carga que le gustaría exponer, agregue uno con un valor de 8251, que es el valor del puerto en el que NCache Se ejecutará el Administrador web. Cambie el modo de distribución de este puerto a IP de origen. Esto permitiría la NCache Se debe acceder a Web Manager con una sesión persistente para proporcionar un estado coherente entre el servidor y el cliente durante el proceso de creación de cachés y adición de nodos a ellos.
Una vez hecho esto, puede implementar la plantilla ARM y Azure Resource Manager aprovisionará los recursos y las configuraciones de la misma. Una vez que la infraestructura esté en su lugar y se hayan verificado todas las configuraciones especificadas en la plantilla ARM, vaya al siguiente paso.
Paso 2: Crear NCache Servicio de Cluster
NCache El servicio de clúster es el principal servicio en ejecución que representa el NCache servidor que se ejecuta dentro de los contenedores en el servicio Fabric VMSS. los NCache Las imágenes del contenedor de Windows del servidor están disponibles en Docker Hub. El modo de configuración que utiliza este servicio es el Abierto El modo de configuración y sus detalles de uso se explican más adelante en el blog. El propósito de este servicio es exponer los siguientes puertos requeridos para la comunicación:
- El puerto de gestión: número de puerto 8250 en el que los servidores de caché escuchan las operaciones de administración, como la creación de caché, etc.
- Puerto del cliente: Número de puerto 9800 para realizar todas las operaciones CRUD.
En Service Fabric, el Abrir el modo de red permite que varios contenedores compartan el mismo puerto asignándoles direcciones IP individuales desde el grupo de direcciones IP secundarias de la máquina virtual en la que se ejecutan. en caso de NCache servicio, esto tendría el beneficio adicional de permitir que el NCache contenedores para comunicarse a través de los límites del host cuando forman parte de una memoria caché en clúster. Esto no es 'posible con el valor predeterminado NAT modo.
A continuación se muestra la muestra. NCache archivo de manifiesto del servicio de clúster:
1 2 3 4 5 6 7 |
<ContainerHost> <ImageName>alachisoft/ncache</ImageName> </ContainerHost> <Endpoints> <Endpoint Name="cache-management" Protocol="tcp" UriScheme="tcp" Port="8250" CodePackageRef="Code" /> <Endpoint Name="cache-client" Protocol="tcp" UriScheme="tcp" Port="9800" CodePackageRef="Code" /> </Endpoints> |
Paso 3: Crear NCache Servicio de Administracion
NCache Management Service también es un servicio de contenedor y utiliza la misma imagen de Docker que el NCache servicio de clúster. El propósito de este servicio es exponer el puerto 8251 para propósitos de administración y monitoreo accediendo al NCache Web Manager. La razón para separar la NCache servicio de gestión de la NCache servicio de clúster es que en el modo de configuración abierta, no se permite la asignación de host a puerto. NCache Es necesario acceder a Web Manager proporcionando el puerto de host y, para ello, otro servicio conocido como NCache servicio de gestión se crea con NAT modo. A continuación se muestra el archivo de manifiesto de servicio de muestra para NCache Servicio de Administracion.
1 2 3 4 5 6 |
<ContainerHost> <ImageName>alachisoft/ncache</ImageName> </ContainerHost> <Endpoints> <Endpoint Name="web-management" Protocol="http" UriScheme="http" Port="8251" Type="Input" CodePackageRef="Code" /> </Endpoints> |
Paso 4: Crear NCache Servicio de descubrimiento
El NCache el servicio de descubrimiento es un ASP confiable sin estado.NET Core API web que consulta con el servicio de nombres de Service Fabric y adquiere los puntos finales que fueron registrados por el NCache Servicio de clúster. La información recuperada al acceder a los puntos finales se proporciona a los clientes como una respuesta HTTP.
Las aplicaciones cliente pueden entonces realizar operaciones en el NCache caché en clúster mediante la creación de una conexión de caché utilizando la información de la dirección IP adquirida. El manifiesto de servicio de NCache El servicio de descubrimiento se muestra a continuación:
1 2 3 4 5 6 7 |
<EnvironmentVariables> <EnvironmentVariable Name="ASPNETCORE_ENVIRONMENT" Value="" /> </EnvironmentVariables> <Endpoints> <!-- This endpoint is used by the communication listener to obtain the port on which to listen. --> <Endpoint Protocol="http" Name="ServiceEndpoint" UriScheme="http" Port="55100" Type="Input" /> </Endpoints> |
Paso 5: crear un clúster de caché
Esta parte es donde se lleva a cabo la creación real de caché. Para empezar, asegúrese de que el NCache El servicio de descubrimiento está en funcionamiento. Desde el servicio de detección, acceda al URI que está compuesto por DNS en clúster y el puerto en el que escucha el servicio de detección de caché. Al abrir la URI seguida del DNS, se muestran las direcciones IP de cada endpoint que están registradas por el NCache .
Una vez que se haya asegurado de que el servicio está funcionando, ahora puede acceder a la NCache Administrador web para crear NCache caché en clúster. Para acceder a la NCache Web Manager, acceda a él usando el DNS seguido del número de puerto 8251. Esto lo lleva a la ventana principal de NCache Administrador web. Cree el clúster de caché siguiendo los pasos de la sección Crear clúster de caché en el documentación.
Paso 6: crear un servicio de aplicación de cliente
Lo diferente NCache los servicios de cliente envían solicitudes HTTP al NCache Discovery Service que proporciona a los clientes las direcciones IP de los contenedores en los que NCache se está ejecutando en respuesta. Luego, los clientes pueden usar las direcciones IP para crear conexiones de caché con las que se comunican con el NCache caché en clúster.
Si requiere monitoreo para el lado del cliente NCache contadores de rendimiento y/o requieren out-proc cachés de clientes con sus servicios de cliente, las aplicaciones de cliente deben implementarse como servicios de contenedor cuyas imágenes de origen incluyen el NCache instalación en modo caché-cliente. En este caso, el servicio de atención al cliente también utiliza el modo de red abierta.
A continuación se muestra el archivo de manifiesto de servicio de muestra para un servicio de aplicación de cliente con NCache instalación del cliente:
1 2 3 4 5 6 |
<EntryPoint><ContainerHost><ImageName>ncache/apps:sfclient</ImageName></ContainerHost></EntryPoint> <EnvironmentVariables> <EnvironmentVariable Name="ASPNETCORE_ENVIRONMENT" Value="Development"/> <EnvironmentVariable Name="Cache_Name" Value="democache"/> <EnvironmentVariable Name="Cache_DiscoveryService_URL" Value="<Cache Discovery Service URL>"/> <!-- Other environmental variables --> |
NCache Detalles NCache Implementación de OpenShift NCache Contenedores Docker
Paso 7: ejecutar aplicaciones cliente
Una vez que el caché está en funcionamiento, puede comenzar a realizar operaciones CRUD desde el lado del cliente. Las aplicaciones cliente comenzarán inicialmente con la adquisición de las direcciones IP de los NCache contenedores de servidor de la NCache Discovery Service y establecer una conexión con el caché. Una vez que se realiza la conexión, la administración de caché y las operaciones CRUD pueden continuar.
Puede validar la conexión del cliente usando el NCache administrador web y NCache Web Monitor explicado en el siguiente paso.
Paso 8: Monitoreo NCache Médico
NCache Web Manager tiene un incrustado NCache Monitor web herramienta que lo ayuda a monitorear su clúster de caché. Supervisar su clúster de caché le brinda información en tiempo real sobre el estado del clúster de caché, la actividad de caché, la cantidad de operaciones realizadas y mucho más. Supervisar su clúster de caché lo ayuda a tomar las medidas adecuadas para problemas como la sobrecarga de memoria, etc.
Siga los pasos de la documentación para monitorear su clúster de caché. Le muestra varios paneles, como el Panel de informes o el Panel gráfico, junto con los contadores de su cliente y servidor.
Paso 9: Escalado NCache Médico
NCache al ser de naturaleza muy escalable, le permite agregue servidores a su clúster de caché en tiempo de ejecución. NCache Web Manager le permite agregar servidores en el clúster de caché. Simplemente escala el NCache servicio de clúster a la cantidad de instancias que necesite. Una vez que el nuevo NCache los contenedores del servidor se están ejecutando, puede agregarlos a su clúster de caché sin tener que detener el clúster de caché.
Luego puede monitorear su clúster de caché para ver la actividad en el nodo del servidor agregado.
Conclusión
Para armar todo el artículo, hemos cubierto la implementación de Azure Service Fabric en NCache. NCache es una solución de almacenamiento en caché muy escalable y garantiza un alto rendimiento y transacciones extremadamente rápidas. Estos beneficios se pueden lograr siguiendo unos sencillos pasos e implementando NCache en su entorno en contenedores con Azure Service Fabric.