Añadir HTTPS
Consulte cert-manager.io. En cualquier caso, DigitalOcean ofrece un certificado gratuito, habilitarlo y usarlo no es difícil.
Solo lo haremos en el entorno de producción, no es necesario para el entorno de desarrollo.
Mi prueba gratuita con Google Cloud ha finalizado, pero podemos continuar con la prueba gratuita de DigitalOcean.
Vamos a seguir trabajando en el proyecto del que os hemos hablado en esta publicación (Next.js + Kubernetes). Ahora, imaginemos que vamos a tener varios equipos trabajando en nuestro proyecto.
Cada vez que realizan algún cambio en los servicios, debemos esperar que esos cambios se vean reflejados en el despliegue que se realice en algún clúster de producción de Kubernetes.
Este es un pequeño diagrama o un flujo de trabajo que muchos ingenieros han utilizado en muchos proyectos y es el flujo de trabajo que vamos a seguir para lograr lo que queremos.
En este enlace puedes encontrar documentación sobre cómo activar un certificado SSL en DigitalOcean. Por otro lado, DigitalOcean ofrece un certificado tipo Let’s Encrypt gratuito, es fácil de activar y usar. Lo hemos activado en el entorno de producción, para este entorno hemos creado un clúster y la rama asociada a él es la rama main.
En el archivo que implementa el balanceador de carga, puede ver la configuración del certificado.
GitHub Actions facilita la automatización de todos sus flujos de trabajo de software.
Hemos agregado código a nuestro propio repositorio de GitHub para asegurarnos de que nuestras pruebas se ejecuten cada vez que creamos una nueva «Pull Request» para fusionar el código en nuestra rama main, echemos un vistazo al siguiente diagrama.
Cada vez que se crea una PR, los tests deben ser pasados correctamente para permitir la fusión del código en la rama main.
Se han creado 2 clústeres, uno para el entorno de producción y otro para el entorno de desarrollo. El código que pertenece al entorno de producción está en la rama main y el código que pertenece a la rama de desarrollo está en la rama development .
En otra publicación, ya hablamos sobre cómo conectarse al contexto de un clúster de Google Cloud Kubernetes. En este caso será con un clúster DigitalOcean K8 que es muy similar.
Después de crear el clúster, las páginas de DigitalOcean te darán todas las instrucciones para instalar las herramientas necesarias.
Agregar un Dockerfile adicional para compilar cada servicio antes del despliegue (este es el código antes de aplicar estos cambios, está en otro repositorio e implementado en Google Cloud).
Hemos creado un Dockerfile adicional para cada servicio. La rama main será la rama asociada con el entorno de producción, y este Dockerfile es el que construirá las imágenes para este entorno. «Dockerfile.dev» es el que construirá las imágenes para el entorno de desarrollo.
Nuestros clústeres de DigitalOcean están en funcionamiento, podemos conectarnos a ellos y ahora es el momento de comenzar a desplegar nuestra aplicación en ellos. Os mostraré un diagrama que describirá cómo usaremos un flujo de trabajo de GitHub Actions para desplegar automáticamente todos los diferentes servicios en este clúster que está en marcha.
Todo lo que hemos comentado en esta publicación es una visión genérica de lo que hemos hecho. Si eres programador, terminarás entendiendo todo mejor leyendo el código existente. Incluso puede crear una cuenta en DigitalOcean e intentar desplegar este código en su entorno de Kubernetes. Espero que el video que creé y publiqué en la parte superior de la publicación os ayude a comprender mejor todo lo que hemos hecho. Si lo deseas, siempre puedes preguntarnos, e intentaremos darte una respuesta.
Deploy a Next.js App to App Platform
Muchas gracias por su atencion.
Quizás la rama que he creado y que referencio como entorno de desarrollo la debí referenciar como entorno Stage.
Difference Between Development, Stage, And Production
https://dev.to/flippedcoding/difference-between-development-stage-and-production-d0p