Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Sugerencia
Este contenido es un extracto del libro electrónico, Arquitectura de aplicaciones .NET nativas de nube para Azure, disponible en .NET Docs o como un PDF descargable gratuito que se puede leer sin conexión.
La aplicación eShopOnContainers se puede implementar en varias plataformas de Azure. El enfoque recomendado es implementar la aplicación en Azure Kubernetes Services (AKS). Helm, una herramienta de implementación de Kubernetes, está disponible para reducir la complejidad de la implementación. Opcionalmente, los desarrolladores pueden implementar Azure Dev Spaces para Kubernetes para simplificar su proceso de desarrollo.
Azure Kubernetes Service
Para hospedar eShop en AKS, el primer paso es crear un clúster de AKS. Para ello, puede usar Azure Portal, que le guiará por los pasos necesarios. También puede crear un clúster desde la CLI de Azure, asegurándose de habilitar Role-Based Control de acceso (RBAC) y el enrutamiento de aplicaciones. La documentación de eShopOnContainers detalla los pasos para crear su propio clúster de AKS. Una vez creado, puede acceder al clúster y administrarlo desde el panel de Kubernetes.
Ahora puede implementar la aplicación eShop en el clúster mediante Helm.
Implementación en Azure Kubernetes Service mediante Helm
Helm es una herramienta de administrador de paquetes de aplicaciones que funciona directamente con Kubernetes. Le ayuda a definir, instalar y actualizar aplicaciones de Kubernetes. Aunque las aplicaciones sencillas se pueden implementar en AKS con scripts de la CLI personalizados o archivos de implementación simples, las aplicaciones complejas pueden contener muchos objetos de Kubernetes y beneficiarse de Helm.
Con Helm, las aplicaciones incluyen archivos de configuración basados en texto, denominados gráficos de Helm, que describen mediante declaración la aplicación y la configuración en paquetes de Helm. Los gráficos usan archivos con formato YAML estándar para describir un conjunto relacionado de recursos de Kubernetes. Se versionan junto con el código de la aplicación que describen. Los gráficos de Helm varían de simple a complejo en función de los requisitos de la instalación que describen.
Helm se compone de una herramienta cliente de línea de comandos, que consume gráficos de Helm e inicia comandos en un componente de servidor denominado Tiller. Tiller se comunica con la API de Kubernetes para garantizar el aprovisionamiento correcto de las cargas de trabajo en contenedor. Helm se mantiene mediante Cloud-native Computing Foundation.
El siguiente archivo yaml presenta una plantilla de Helm:
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.app.svc.marketing }}
labels:
app: {{ template "marketing-api.name" . }}
chart: {{ template "marketing-api.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
app: {{ template "marketing-api.name" . }}
release: {{ .Release.Name }}
Observe cómo la plantilla describe un conjunto dinámico de pares clave-valor. Cuando se invoca la plantilla, los valores que se incluyen entre llaves se extraen de otros archivos de configuración basados en YAML.
Encontrará los gráficos de helm de eShopOnContainers en la carpeta /k8s/helm. En la figura 2-6 se muestra cómo se organizan los distintos componentes de la aplicación en una estructura de carpetas usada por Helm para definir e implementar implementaciones administradas.
figura 2-6. Carpeta de helm de eShopOnContainers.
Cada componente individual se instala mediante un helm install
comando . eShop incluye un script de "implementación de todo" que recorre en bucle e instala los componentes mediante sus respectivos gráficos de Helm. El resultado es un proceso repetible, versionado junto con la aplicación en el control de código fuente, que cualquier persona del equipo puede desplegar en un clúster de AKS con un comando en una sola línea de script.
Nota:
La versión 3 de Helm elimina oficialmente la necesidad del componente de servidor Tiller. Para obtener más información sobre esta mejora, consulte ¿Por qué falta Tiller en Helm 3?.
Azure Functions y Logic Apps (sin servidor)
El ejemplo eShopOnContainers incluye compatibilidad con el seguimiento de campañas de marketing en línea. Una función de Azure se usa para realizar un seguimiento de los detalles de la campaña de marketing de un identificador de campaña determinado. En lugar de crear un microservicio completo, una única función de Azure es más sencilla y suficiente. Azure Functions tiene un modelo de compilación e implementación sencillo, especialmente cuando está configurado para ejecutarse en Kubernetes. La implementación de la función se crea mediante scripts mediante plantillas de Azure Resource Manager (ARM) y la CLI de Azure. Este servicio de campaña no es orientado al cliente e invoca una sola operación, lo que lo convierte en un excelente candidato para Azure Functions. La función requiere una configuración mínima, incluidos los datos de la cadena de conexión de la base de datos y la configuración del URI base de la imagen. Configure Azure Functions en Azure Portal.