Volver al blog

Síguenos y suscríbete

Sólo disponible en inglés

Por el momento, esta página solo está disponible en inglés. Lamentamos las molestias. Vuelva a visitar esta página más tarde.

Desarrollo en tiempo real con Pushpin

Ashley Vassell

Product Manager, Fastly

Nos alegramos de anunciar que Pushpin ahora forma parte de Fast Forward, un programa de Fastly con el que todo el mundo puede poner su granito de arena para hacer de internet un lugar mejor y más abierto. Pushpin es un servidor proxy que deja las conexiones del cliente abiertas, lo que facilita la creación de puntos de conexión de API en tiempo real. Se trata de la implementación de código abierto de Fanout, el sistema de mensajería en el edge de Fastly. Pushpin es compatible con el streaming por HTTP, el sondeo largo por HTTP y WebSockets y, al ser un servidor proxy, permite escribir el backend en cualquier lenguaje de programación. Por si fuera poco, la integración es sencilla gracias a las bibliotecas disponibles.

En resumidas cuentas, Pushpin es versátil a más no poder y único en su especie, por lo que es perfecto para tus API y microservicios.

  • Toda tu lógica en un mismo sitio: se acabó eso de programar un backend independiente en otro lenguaje para las operaciones en tiempo real.

  • Perfecto para microservicios: olvídate de los agentes de mensajería centralizados y adjudica a cada microservicio su propia instancia de Pushpin.

  • Desarrollo sin asignación de estado: Pushpin lleva un control del estado por ti, algo especialmente útil para los backends sin servidores.

  • Escalabilidad más allá de tus necesidades: como Pushpin puede ampliarse en horizontal, solo tienes que añadir más instancias para que crezca al ritmo de tu organización.

¿Cómo funciona Pushpin?

Pushpin se comunica con las aplicaciones web del backend mediante peticiones HTTP convencionales y de poca duración. Esto significa que las aplicaciones pueden programarse en cualquier lenguaje y utilizar cualquier servidor web. Hay dos puntos de integración principales:

  • El backend se encarga de las peticiones que pasan por el proxy. En el caso de HTTP, cada petición entrante se redirige mediante proxy. En el caso de WebSockets, la actividad de cada conexión se convierte en una serie de peticiones HTTP que se envían al backend. El comportamiento de Pushpin depende de la forma en que el backend responde a estas peticiones.

  • El backend le indica a Pushpin que envíe los datos. Independientemente del tipo de conexión que exista entre los clientes, los datos se pueden dirigir hacia ellos haciendo una petición POST de HTTP a la API de control privado de Pushpin. A continuación, Pushpin inyecta estos datos en todas las conexiones del cliente con presencia en ese canal.

Pushpin se puede integrar en tu infraestructura actual de varias maneras.

Backend sencillo:

Pushpin se suele utilizar en conjunción con un backend de servicio web que envía los datos directamente al servidor proxy. La publicación de datos puede correr a cargo de un servicio que reaccione a las peticiones entrantes, o bien un proceso o tarea en segundo plano.

Gestión de API:

Pushpin se puede combinar con un sistema de gestión de API. Como la mayoría de estos sistemas también funcionan como servidores proxy, lo único que tienes que hacer es encadenarlos. 

Cola de mensajes:

Si tienes que enviar muchos datos, puedes crear una cola de mensajes para que actúe como intermediaria. Los procesos de backend pueden publicar datos en la cola de mensajes para que esta los transmita mediante un adaptador a una o varias instancias de Pushpin que tengan suscriptores en un canal determinado.

Microservicios:

En un entorno de microservicios, Pushpin lo pone fácil para obtener actualizaciones instantáneas de otros microservicios sin necesidad de recurrir a un agente de mensajería centralizado. Cada microservicio tiene su propia instancia de Pushpin, y estos se comunican entre sí mediante las API de tu organización en lugar del mecanismo de un proveedor en concreto.

Comunidad y recursos:

¿Quieres ponerte manos a la obra con Pushpin? Ponte en marcha con la ayuda de los fantásticos recursos que aparecen abajo y consulta los ejemplos en tiempo real disponibles en Pushpin.org

  • Editor de texto en tiempo real: la colaboración es un aspecto clave del mundo en el que vivimos, y podemos usar la transformación de operaciones para crear un editor de texto colaborativo.

  • Tabla de clasificación: utiliza Pushpin para mostrar una lista ordenada de puntuaciones a través de streaming HTTP.

  • Sala de chat multiusuario: crea una sala de chat para varios usuarios mediante streaming HTTP.

  • Lista de tareas: crea una lista de tareas interactiva que se ponga al día gracias a Pushpin.

  • Bandeja de entrada de webhooks: crea fácilmente URL temporales que reciban y almacenen webhooks. La interfaz de usuario muestra las peticiones de webhooks en tiempo real a medida que se reciben.

Si tienes alguna pregunta o quieres obtener más información sobre Pushpin, echa un vistazo al proyecto en GitHub, al nuevo foro para desarrolladores y al rastreador de problemas. También puedes escribir a @pushpinorg en Twitter. Fanout de Fastly proporciona apoyo comercial a Pushpin.

Software de código abierto:

Pushpin es un servidor proxy que deja las conexiones del cliente abiertas, lo que facilita la creación de puntos de conexión de API en tiempo real. Se trata de la implementación de código abierto de Fanout, el sistema de mensajería basado en publicación y suscripción de Fastly. El código abierto forma parte de la esencia de Fastly: desde las contribuciones que realizamos y los productos en los que lo utilizamos, hasta los proyectos propios cuyo código abrimos en la medida de lo posible. Es más, nos hemos comprometido a donar 50 millones de dólares en servicios gratuitos a Fast Forward para contribuir a los proyectos que hacen funcionar internet y nuestros propios productos. Esto es lo que utilizamos para hacer realidad Pushpin y Fanout: 

  • el lenguaje de programación de sistemas Rust;

  • la biblioteca de mensajería universal ZeroMQ;

  • la biblioteca básica de C++ Qt;

  • la comunicación segura y criptográfica de uso general OpenSSL;

  • la biblioteca push para el análisis de peticiones y respuestas HTTP/1.x Httparse.

Hemos hecho todo lo posible para devolver algo a la comunidad informando de errores y enviando las correcciones que implementamos en nuestro día a día. Estamos muy agradecidos a la gente que creó estos proyectos. Si te encargas de mantener o contribuir a algún proyecto de código abierto y estás pensando en apuntarte a Fast Forward, escríbenos aquí.