Saltar al contenido

Introducción a TIBCO Flogo

Flogo es la próxima novedad en el desarrollo de aplicaciones de manera nativa en la nube. Desde su fundación ha sido diseñado para cubrir todos los nuevos desafíos que necesitamos enfrentar al tratar con el nuevo desarrollo nativo en la nube.

Así que, por favor, si tú o tu empresa están comenzando su movimiento hacia la nube, es el momento de echar un vistazo a lo que Flogo ofrece. Flogo es un Marco de Desarrollo de Aplicaciones de Código Abierto basado en los principios que se discutirán en las próximas sesiones.

Huella de memoria mínima

En el auge de la realidad del IoT, cuando necesitaremos que todos los dispositivos en nuestro entorno tengan capacidades de cómputo e integración, y también cuando la opción de optimizar costos en tu infraestructura en la nube es necesaria, necesitas hacer un uso óptimo de los recursos por los que estás pagando. Una disminución del 10-20% de la huella de memoria de tu servicio puede permitirte proporcionar el mismo rendimiento con tipos de máquinas más pequeñas con los ahorros que esto genera para toda la empresa.

Flogo está basado en el lenguaje de programación Go y eso hace que el ejecutable binario que genera solo tenga los componentes exactos que necesitas para ejecutar tu lógica y nada más. Así que, no necesitas una capa intermedia con una máquina virtual, como un motor Javascript V8 para ejecutar tu aplicación de nodo o una JVM para ejecutar tus servicios Spring Boot, etc. No, solo tendrás en tu ejecutable las bibliotecas exactas que necesitas y eso genera mejoras impresionantes en la huella de memoria que podrías tener en tus desarrollos con Flogo.

Ok, pero esto es demasiado genérico, así que déjame hacerlo más real para que puedas entender exactamente de qué estoy hablando:

Bastante asombroso, ¿verdad? Pero podrías pensar… si puedes mantener todas las capacidades e integraciones que necesitas para poder usarlo en el trabajo real. Ok, esperemos hasta que discutamos todos los temas y puedas tener una opinión general al respecto.

Sabores de cero código y todo código

En TIBCO, el cero código ha sido nuestro buque insignia durante décadas para hacer posible que personas no técnicas construyan servicios óptimos e integren tecnologías sin la necesidad de manejar todos los detalles de esta integración. Si estás al tanto de nuestros productos de integración como TIBCO BusinessWorks o BusinessWorks Container Edition, el diseñador gráfico ha sido la principal forma en que toda la lógica del cliente se implementa de una manera fácil, más resiliente y más mantenible.

Esto todavía existe en nuestra tecnología Flogo con el Web Studio que Flogo proporciona, tendrás una manera fácil de construir tus flujos como puedes ver aquí:

Así que, podrás continuar usando nuestro enfoque de cero código con todos los ajustes, opciones y paletas necesarias para hacer toda tu lógica de una manera más mantenible. Pero hoy esto no es suficiente, así que incluso cuando todavía puedes hacerlo de esta manera que es la mejor opción para la mayoría de los clientes, todavía puedes confiar en tus programadores y desarrolladores para construir tus servicios, porque Flogo también permite construir tus servicios de una manera de todo código con desarrollo en Go-lang. Así que, tendrás la opción de abrir el IDE de tu elección y comenzar a codificar actividades de Flogo usando go-lang, como puedes ver en la imagen a continuación:

Listo para serverless

Puedes ejecutar tus aplicaciones de muchas maneras diferentes, puedes hacerlo en las instalaciones muy cerca del metal desnudo, generando aplicaciones compiladas para todos los sistemas operativos: Windows, MacOS y Linux (también para arquitectura ARM). O puedes ejecutarlo en una versión de contenedor generando una imagen de Docker con tus servicios para que puedas usarlo con cualquier sistema PaaS listo para producción que tengas o planees tener en tu empresa (Kubernetes, Openshift, Swarm, Mesos…) Pero, todavía puedes ejecutarlo en AWS Lambda si deseas adoptar un enfoque completamente serverless. Así que, este es un verdadero diseño de uno, ejecuta en todas partes, pero adaptado a las necesidades de hoy.

Imagina eso, puedes tener el mismo servicio ejecutándose en un Raspberry Pi, un Windows Server 2018 y también una función AWS Lambda sin cambiar una línea de código o actividad en tu lienzo. ¿Qué tan genial es esto?

Pero eso no es todo, ¿qué pasa si no quieres gestionar toda la infraestructura para tu nube y tampoco quieres manejar todo el asunto de lambda con Amazon? Ok, todavía tienes otra opción y es usar TIBCO Cloud Integration que se encargará de todo por ti y solo necesitas subir tu código de una manera fácil.

También tienes diferentes sabores de Flogo, puedes mantenerlo en la opción de código abierto o puedes actualizar a la opción Enterprise, que te proporcionará acceso al soporte de TIBCO para plantear casos que te ayuden con tus desarrollos y también acceso anticipado a algunas nuevas características que se agregan a la plataforma de manera regular.

Integración de Código Abierto

Incluso cuando todas las opciones que tenemos en el enfoque de bloqueo de proveedor con soluciones como Logic Apps para Azure o incluso los AWS Workflows, algo que define las nuevas tecnologías que están liderando el camino en el movimiento nativo en la nube son las tecnologías de código abierto. Todo Flogo admite la mayoría de ellas de manera fluida en diferentes niveles:

Integración para tus flujos

Si estás familiarizado con TIBCO BusinessWorks, conoces nuestro concepto de «paleta», pero para aquellos que no están familiarizados con nuestro enfoque de desarrollador de cero código, permíteme explicarlo un poco mejor. Usualmente tenemos una actividad para cada una de las acciones que podrías hacer en tu flujo. Eso podría ser desde invocar un servicio REST o escribir un registro de seguimiento. Cada una de las actividades tiene su propio ícono para que puedas identificar fácilmente cuando lo ves en el flujo o cuando deseas seleccionar la actividad que quieres agregar al lienzo.

Y el grupo de actividades que están relacionadas con el mismo ámbito, como por ejemplo integrar con Lambda, genera lo que se llama una Paleta que es solo un conjunto de actividades.

Así que, proporcionamos muchas paletas que están listas para usar, el número de las que están disponibles para ti depende del sabor de Flogo que estés usando, que podría ser Flogo Open Source, Flogo Enterprise y Flogo ejecutándose en TCI, pero puedes encontrar al menos conexión a los siguientes servicios (esta no es una lista completa, solo para nombrar algunos).

También muchos servicios para gestionar todos tus recursos de AWS, como los que se muestran en la tabla a continuación:

Como puedes ver, hay una gran cantidad de opciones de integración que tienes para ser productivo desde el principio, pero, ¿qué pasa si necesitas conectarte a otro sistema? Ok, primero necesitamos buscar si alguien ha hecho esto, y podemos usar GitHub para buscar muchas nuevas paletas y puedes ver muchos repositorios diferentes con más actividades que puedes instalar en tu propio entorno. Solo para nombrar algunos:

APIs de Gestión

Además, Flogo expone algunas APIs para poder integrarse con herramientas de terceros como por ejemplo las siguientes:

  • Integración con Sistemas de Gestión de Configuración como Consul, Zookeeper o Spring Cloud Config usando la información proporcionada aquí: https://github.com/TIBCOSoftware/flogo/wiki/Application-Properties
  • Monitoreo de Aplicaciones Flogo Enterprise ahora proporciona soporte para Prometheus, un proyecto de código abierto bajo la Cloud Native Computing Foundation (CNCF). Esto te da la capacidad de configurar Prometheus para extraer y almacenar métricas de aplicaciones Flogo, usar características de Prometheus para monitoreo así como alertas, y también usar herramientas como Grafana para visualización. Además, estas APIs de métricas pueden usarse para integrarse con otras herramientas de terceros.

TIBCO Flogo Introduction

Flogo is the next new thing in the developing applications in a cloud-native way. Since its foundation has been designed to cover all the new challenges that we need to face when dealing with new cloud-native development.

So, please, if you or your enterprise is starting its movement to the cloud it’s the moment to take a look at what Flogo offer. Flogo is an Open Source Application Development Framework based on the principles that are discussed in the upcoming sessions

Minimal memory footprint

In the rise of the IoT reality when we’ll need that all devices in our environment have some compute as well as integration capabilities, and also when the option to optimize costs in your cloud infrastructure you need to do an optimal use of the resources you’re paying for. A decrease of 10–20% of your service memory footprint can do that you can provide the same performance with smaller machine types with the savings that it generates for the whole company.

Flogo is based on Go programming language and that makes that the binary executable that it generates only have the exact components you need to run your logic and nothing else. So, you don’t need an intermediate layer with a virtual machine, like a Javascript V8 engine to run your node application or a JVM to run your Spring Boot services and so on. No, you only will have in your executable the exact libraries that you need and that makes awesome improvements of the memory footprint that you could have in your flogo developments.

Ok, but this is too generic, so let me make it more real so you can get the exact meaning what I’m talking about:

Pretty amazing, right? But you could think… if you can keep all the capabilities and integration that you need to be able to use it in the real job. Ok, let’s wait until we discuss all topics and you could have an overall opinion about it.

Zero-code and All-code flavors

In TIBCO, zero-code has been our flagship for decades to make possible that non-technical people to build optimal services and integrates technologies without the need to handle all the details of this integration. If you have aware of our integration products like TIBCO BusinessWorks or BusinessWorks Container Edition graphical designer has been the main way all customer logic is implemented in an easy, more resilient and more maintainable way.

This still exists in our Flogo technology with the Web Studio Flogo provides, you will have an easy way to build your flows as you can see here:

So, you will be able to continue to use our zero-code approach with all the tweaks, options and palettes needed to have to do all your logic in a more maintainable way. But today this is not enough, so even when you can still do it this way that is the best option for most of the customers, you can still relying on your coders and developers to build your services, because Flogo also allows building your services in an All code way with Go-lang development. So, you will have the option to open the IDE of your choice and start coding Flogo activities using go-lang, as you can see in the picture below:

Ready for serverless

You can run your applications in a lot of different ways, you can do it on premises real close to the bare metal, generating compiled applications for all OS: Windows, MacOS, and Linux (also for ARM architecture). Or you can run it in a container version generating a Docker image with your services so you can use it with any production-ready PaaS system you have or you’re planning to have in your enterprise (Kubernetes, Openshift, Swarm, Mesos…) But, you can still run it AWS Lambda if you want to go to a full serverless approach. So, this is a true design one, run everywhere approach but adapted to today needs.

Imagine that, you can have the same service running on a Raspberry Pi, a Windows Server 2018 and also an AWS Lambda function without changing a line of code or activity in your canvas. How cool this is?

But that’s not all, what happens if you don’t want to manage all the infrastructure for your cloud and neither want to handle all the lambda stuff with Amazon? Ok, you still have another option and is to use TIBCO Cloud Integration that is going to handle everything from you and you only need to upload your code in an easy way

You also have different flavors of Flogo, you can keep it in the Open source option or you can upgrade to the Enterprise option, that is going to provide you access to TIBCO Support to raises cases to help you with your developments and also first access to some new features that are added to the platform on a regular basis.

Open Source Integration

Even when all the options that we have at the vendor-locking approach with solutions like Logic Apps for Azure or even the AWS Workflows and so on, something that defines the new technologies that are leading the way in the cloud-native movement are open source technologies. All Flogo supports most of them in a smooth way at different levels:

Integration for your flows

If you’re familiar with TIBCO BusinessWorks, you know our concept of “palette”, but for the ones that you’re not familiar to our zero-code developer approach let me explain it a little bit better. We usually have one activity for each of the actions that you could do in your flow. That cloud is from invoking a REST service or writing a log trace. Each of the activity has its own icon so you can easily identify when you see it in the flow or when you want to select the activity that wants to add to the canvas

And the group of activities that are related to the same scope like for example integrate with Lambda, generates what is a called a Palette that is only a set of activities.

So, we provide a lot of palettes that are ready to use, the number of the ones that are available to you that depends on the flavor of Flogo that you’re using, that cloud be the Flogo Open Source, Flogo Enterprise and Flogo running in TCI, but you can find at least connection to the following services (this is not a complete list only to name a few)

All also a lot of services to manage all your AWS resources, like the ones shown in the table below:

As you can see that’s a big amount of integration options that you have to be productive since the beginning but, what happens if you need to connect to another system? Ok, first we need to search if somebody has done this, and we can use GitHub to search for a lot of new palettes and you can see a lot of different repositories with more activities that you can install in your own environment. Only to name a few:

Management APIs

Also, Flogo exposes some APIs to be able to integrate with third-party tools like for example the following ones:

  • Integration with Configuration Management Systems like Consul, Zookeeper or Spring Cloud Config using the info provided here: https://github.com/TIBCOSoftware/flogo/wiki/Application-Properties
  • Application Monitoring Flogo Enterprise now provides support for Prometheus, an open source project under the Cloud Native Computing Foundation (CNCF). This gives you the ability to configure Prometheus for pulling and storing Flogo application metrics, use features of Prometheus for monitoring as well as alerting, and also use tools like Grafana for visualization. Also, these metrics API can be used to integrate with other third-party tools.
Etiquetas: