Decidimos agregar un análisis de un nuevo proyecto a los artículos del autor y materiales traducidos sobre trucos de vida / hallazgos interesantes publicados en nuestro blog. Waypoint es un proyecto de código abierto que proporciona a los desarrolladores un flujo de trabajo consistente para crear, implementar y lanzar aplicaciones en cualquier plataforma. Waypoint permite a los desarrolladores alojar sus aplicaciones de desarrollo para entornos de producción en un solo archivo, e implementar aplicaciones con un solo comando:
waypoint up
. Waypoint es compatible con Kubernetes, HashiCorp Nomad, Amazon ECS, Google Cloud Run, Azure Container Instances, Docker, Buildpacks y más. Siga leyendo para ver un pequeño ejemplo, para obtener más información sobre las funciones de Waypoint y los problemas que resuelve la herramienta.
Waypoint es completamente extensible y se basa en un sistema de complementos para trabajar con cualquier herramienta o plataforma. Una vez implementado, Waypoint proporciona registro y más para probar y depurar cualquier implementación. Es un software que usted mismo descarga y aloja para administrar la implementación de aplicaciones que se ejecutan en su infraestructura o plataformas. Además, el propio fundador de HashiCorp le contará más sobre Waypoint.
Simplifique la implementación
Waypoint fue creado por nosotros por una simple razón: los desarrolladores solo quieren implementar aplicaciones. HashiCorp tiene la capacidad de trabajar con todo tipo de organizaciones e individuos en nuestra comunidad, lo que nos presenta los desafíos que enfrentan los desarrolladores al implementar aplicaciones y en términos de accesibilidad de los usuarios. Nos comunicamos con docenas de usuarios individuales todos los días a través de problemas de GitHub, foros de discusión, correo electrónico y más. Cada semana nos reunimos con más de 500 empresas para discutir sus desarrollos actuales y problemas operativos.
A través de la interacción, vimos que los desarrolladores, especialmente en organizaciones medianas y grandes, están abrumados por la complejidad: contenedores, programadores, archivos YAML, sin servidor y más. La complejidad ha mejorado las aplicaciones de muchas maneras, pero el costo observado en la curva de aprendizaje es necesario para implementar simplemente la primera aplicación.
Otro problema que vimos depende de la aplicación, porque las herramientas suelen ser muy diferentes: Docker y kubectl para Kubernetes, HashiCorp Packer y Terraform para máquinas virtuales, diferentes herramientas para cada plataforma sin servidor, etc. Esta fragmentación vuelve a crear un problema de aprendizaje para el individuo. Para los equipos, estos son problemas de coherencia y complejidad.
Con Waypoint, nuestro objetivo es abordar estos dos problemas. Waypoint proporciona un comando simple para implementar cualquier aplicación: "waypoint up". El flujo de trabajo es el mismo para cualquier plataforma: Kubernetes, Nomad, EC2, Google Cloud Run y más de una docena más serán compatibles con el lanzamiento. Waypoint es extensible con complementos para cualquier compilación, implementación y lógica de lanzamiento. Los desarrolladores solo quieren implementar aplicaciones. Waypoint simplemente lo hace.
Funcionalidad
Waypoint ofrece una serie de funciones que proporcionan un flujo de trabajo para implementar aplicaciones y validar y depurar implementaciones. Estas características hacen de Waypoint una herramienta poderosa para implementar cualquier aplicación en cualquier plataforma.
- waypoint up: , . Waypoint , , , . Waypoint Waypoint.
- URL- : Waypoint URL waypoint.run TLS, Let's Encrypt. , .
- : waypoint exec. exec , , . waypoint exec.
- : Waypoint . , . , Datadog Splunk. CLI -. .
- -: CLI, Waypoint -, , . - . . , ,
- : , . Waypoint , Waypoint, .
Vamos a mostrar con un ejemplo las distintas funciones de Waypoint. Se omiten algunos pasos de configuración, por lo que si desea probar el ejemplo completo usted mismo, consulte nuestras guías de introducción . En este ejemplo, implementaremos la aplicación en Kubernetes. Archivo Hcl junto a la aplicación. Este archivo describe todas las etapas del ciclo de vida de la aplicación.
project = "HashiCorp Waypoint"
app "waypoint-up" {
build {
use "docker" {}
registry {
use "docker" {
image = "hashicorp/wpmini"
tag = gitrefpretty()
}
}
}
deploy {
use "kubernetes" {
probe_path="/"
service_port=80
}
}
release {
use "kubernetes" {
load_balancer=true
port=80
}
}
}
Construir, implementar, lanzar
El archivo de configuración de Waypoint describe las tres fases principales del ciclo de vida de la aplicación: construcción, implementación y lanzamiento.
- El ensamblado toma el código fuente de la aplicación y lo convierte en un artefacto. El proceso de creación puede incluir una configuración de registro opcional para enviar el artefacto construido al registro para que esté disponible para las plataformas de implementación. Por ejemplo, este paso convierte el código fuente en una imagen de Docker, EC2 AMI, etc.
- La implementación toma el artefacto recopilado en el paso anterior y lo coloca en la plataforma de implementación de destino, haciendo que la implementación esté disponible a través de una URL u otros métodos internos
La versión activa la implementación y la abre al tráfico principal. En el futuro, agregaremos soporte a Waypoint para mover aplicaciones entre entornos, deshacer implementaciones y lanzamientos, y mover gradualmente el tráfico entre servidores después del lanzamiento.
Elevación de waypoint
El equipo de waypoint up crea, implementa y lanza la aplicación. Al final, se muestran una o más direcciones donde la aplicación está disponible. No importa qué aplicación sea y para qué plataforma, siempre puede escribir waypoint en la terminal para implementar.
Puede realizar las etapas del ciclo de vida por separado. Esto es útil cuando se interactúa con acciones de Github y herramientas de CI / CD como CricleCI y Jenkins. Obtenga más información sobre cómo automatizar el flujo de trabajo de su aplicación con Waypoint aquí .
Direcciones de aplicación e implementación
Las aplicaciones implementadas con Waypoint obtienen una URL pública como waypoint.run con un certificado TLS válido generado automáticamente por Let's Encrypt . Utilice esta dirección para ver y compartir rápidamente las aplicaciones implementadas. Proporcionamos esta URL a través de un servicio público gratuito de HashiCorp. Esta función es opcional y se puede desactivar. En el ejemplo anterior, nuestra URL recientemente-pleasant-duck--v1.waypoint.run . Tenga en cuenta que esta URL ya no funciona, la aplicación solo se ejecutó para esta publicación de blog. Puede ver una versión específica de la implementación en un enlace como recientemente-pleasant-duck-vN.waypoint.rundonde N es el número de versión de la implementación. Esta función es muy útil para compartir una versión preliminar de su aplicación con su equipo.
Registro de waypoints
Waypoint le brinda acceso a una instantánea en tiempo real de los registros de la aplicación. Estos registros son útiles cuando necesita depurar el comportamiento de una aplicación en desarrollo. Sin embargo, no reemplazan las complejas soluciones de registro. Los registros se agregan y están disponibles para su visualización a través de la interfaz de línea de comandos y la interfaz web. Esta función de registro funciona independientemente de la plataforma. Ya sea que esté utilizando Kubernetes, EC2, Google Cloud Run u otra plataforma, puede ver los registros de forma coherente. Con la interfaz de usuario, puede ver los registros de múltiples aplicaciones implementadas en diferentes plataformas.
Ejecutivo de waypoint
Puede ejecutar comandos en el contexto de la aplicación implementada utilizando el comando waypoint exec. Esta función le permite abrir un shell, ejecutar scripts y hacer cualquier otra cosa que desee hacer con sus implementaciones. Al igual que el registro, Waypoint Exec funciona en todas las plataformas compatibles con Waypoint.
Otras posibilidades
Esta lista es solo una descripción general rápida de algunas de las funciones de Waypoint. Waypoint se puede utilizar para administrar la configuración de la aplicación a través de variables de entorno, se integra con su CI o Github. Los espacios de trabajo se utilizan para crear entornos separados para sucursales separadas. Alternativamente, puede escribir un complemento y eso no es todo, Waypoint es la marca del nuevo proyecto. Esperamos seguir agregando nuevas funciones en los próximos meses.
Waypoint y aplicaciones existentes
Si ya tiene una aplicación y un flujo de trabajo de implementación, puede tener dudas sobre si puede usar…. No esperamos que los equipos de desarrollo reconstruyan y reconstruyan inmediatamente su flujo de trabajo para Waypoint desde cero. Pero tenemos un complemento de extracción de Docker y una capacidad de ejecución local para adaptar Waypoint para una aplicación con un flujo de trabajo ya configurado. Además, tenemos documentación que describe la integración de Waypoint en otros CI: CircleCI o Jenkins... Esta función le permite ver el historial de implementación en la interfaz de Waypoint, ejecutar el comando exec, el registro, la configuración de la aplicación y más. Con un poco de esfuerzo, obtiene los beneficios de Waypoint mientras considera si desea actualizar a un complemento más manejable. Cuando tiene muchas aplicaciones, este enfoque le permite combinar flujos de trabajo y compararlos.
Completamente extensible por complementos
La lógica del ciclo de vida es completamente extensible. Waypoint se ejecuta en el mismo sistema de complementos que Terraform. Creemos que escribir un complemento para Waypoint es tan fácil (si no más simple) que para Terraform. Waypoint tiene más de una docena de complementos integrados desde el principio. Esperamos y esperamos que con el tiempo, con la ayuda de la comunidad de código abierto, este número aumente drásticamente. Terraform tenía alrededor de 6 proveedores en el lanzamiento. Hoy Terraform tiene 300 proveedores. Creemos que esto también es posible para la implementación de aplicaciones. Si está interesado en escribir un complemento, lea nuestra guía para autores de complementos y consulte el código fuente de los complementos integrados de Waypoint 0.1 en Github.
Enlaces de proyectos
- Waypoint, , , NodeJS, Python, Ruby, Java , .
- . Waypoint , HashiCorp. , .
- . Waypoint. Waypoint, GitHub Waypoint HashiCorp.
- . Waypoint, , , URL- Waypoint, Twitter #WaypointUp HashiCorp. , , URL Waypoint. .
Especialmente para Habrovites, hemos creado un código de promoción HABR , que otorga un descuento adicional del 10% al descuento indicado en el banner.
- Enseñar la profesión de ciencia de datos desde cero
- Bootcamp en línea para ciencia de datos
- Formación de la profesión de analista de datos desde cero
- Bootcamp en línea de análisis de datos
- Curso de Python para desarrollo web
Más cursos