Por Christophe Dame, consultor de servicios profesionales de Bonitasoft
El Centro de Atención al Cliente de Bonitasoft (CSC) es un nuevo portal central para que los clientes accedan a los servicios proporcionados como parte de la suscripción empresarial de la plataforma: soporte técnico, Rincón del Experto, auditoría, actualización de versiones, formación y solicitudes de Servicios Profesionales. Ofrece una experiencia de usuario actualizada y mejorada.
Este artículo, explica en primera persona, los retos técnicos y la experiencia como «cliente» al desarrollar este proyecto desde cero en una plataforma de automatización de procesos digitales basada en la nube.
De asesor experto a cliente-usuario
Como consultor de servicios profesionales, he acompañado a usuarios de la empresa en el traslado de sus procesos a la plataforma basada en la nube. Pero al desarrollar el Centro de Atención al Cliente, mi papel cambió de «consultor» a «cliente-usuario» reforzando algunas de mis convicciones y abrió nuevas perspectivas que sin duda serán beneficiosas para nosotros y nuestros usuarios.
Como consultor de servicios profesionales, trabajo con los equipos de atención al cliente y de éxito del cliente. Cuando los clientes se encuentran con dudas o dificultades proporciono la experiencia necesaria. Entre bastidores, trabajo con los equipos de operaciones en la nube y de I+D, la parte invisible del iceberg, para ofrecer la mejor solución.
Una de las cosas de las que más se habla es de las extensiones disponibles para los usuarios de la plataforma. Sin embargo, el empaquetado de PaaS conlleva algunas limitaciones de extensibilidad.
Cuando un cliente se enfrenta a una limitación, trabajamos para encontrar un enfoque alternativo que funcione con el servicio en la nube, o para encontrar una solución externa estándar que se conecte con la plataforma si es lo que se necesita. En este último caso, mi papel como consultor de Servicios Profesionales es proporcionar explicaciones y directrices, pero no aplicarlas.
Sin embargo, en el caso del Centro de Atención al Cliente, como estábamos haciendo la implementación nosotros, necesitábamos «ensuciarnos» las manos con la plataforma en la nube, ampliando sus límites. Y como experto en IaaS/PaaS para un gran proveedor de la nube, me gustaría destacar que, según mi experiencia, en la mayoría de los proyectos rara vez se puede construir una solución completa en un único servicio PaaS. Así, este proyecto nos ofreció la oportunidad de ver cómo combinar la plataforma en la nube con otros servicios en la nube y en la empresa.
Retos del Centro de Atención al Cliente
El Centro de Atención al Cliente es el principal centro de comunicación entre la empresa y sus clientes. Los desarrolladores y los usuarios empresariales lo utilizan para abrir solicitudes de asistencia, experiencia y formación. Necesitan poder descargar versiones de productos o generar licencias. Cuando hay información que compartir, la empresa puede utilizarlo para enviar avisos.
El reto de la escalabilidad, la fiabilidad y la seguridad
El Centro de Atención al Cliente está desplegado en la plataforma de la nube. El entorno de producción en la nube está agrupado en contenedores que se ejecutan detrás de un equilibrador de carga, y se realizan copias de seguridad de las bases de datos todos los días. El HTTPS se aplica por defecto, así como por las políticas de seguridad.
El reto que plantea Salesforce
El Centro de Atención al Cliente se centra en los clientes. La empresa utiliza Salesforce como CRM, que cuenta con un rico conjunto de APIs. Queríamos mostrar la información contenida en diferentes objetos de Salesforce en tablas de resumen o vistas detalladas. Sin embargo, solicitar objetos de Salesforce cada vez que se necesitan es lento y puede degradar significativamente la experiencia del usuario. Para mitigar este problema, decidimos almacenar la información en caché. Como la plataforma basada en la nube se ejecuta en un entorno de clústeres, optamos por utilizar Hazelcas, una caché distribuida.
El reto del almacenamiento de archivos
Algunas de las funciones del Centro de Atención al Cliente requieren el envío y la recepción de archivos: adjuntar archivos de registro a un caso, descargar versiones de productos, generar archivos de licencia, etc. El uso del sistema de archivos local no es una opción en un PaaS, y no queríamos confiar en (S)FTP(S) por razones de seguridad. En un entorno de nube, el enfoque más natural es confiar en el almacenamiento de objetos. Todos los proveedores de la nube ofrecen SDKs de Java que facilitan la integración dentro de los conectores de integración y las extensiones de la API Rest, y los utilizamos ampliamente en este proyecto.
El reto de los ejecutables externos
Para generar licencias, necesitamos ejecutar algunos jars ejecutables. Una de las principales limitaciones de un PaaS es que no se puede tener acceso a los sistemas subyacentes, en particular a la infraestructura. En las instalaciones, está bien ejecutar piezas externas de código (scripts de shell, jars, etc.) desde el entorno de la plataforma. En un entorno de nube, esto no es posible.
Decidimos probar el uso de funciones, ya que son fáciles de integrar a través de los SDK de Java de la mayoría de los proveedores de la nube. Y esta opción aporta todo un abanico de posibilidades, ya que podemos escribir funciones en una amplia gama de lenguajes para muchos propósitos.
El reto del asincronismo
En una aplicación basada en procesos de negocio, los procesos se mueven paso a paso a través de tareas o acciones. Queríamos que el Centro de Atención al Cliente mostrara notificaciones visuales del progreso de un proceso. Una solución fácil fue exponer una extensión de la API Rest para comprobar el estado del proceso desde la caché distribuida de Hazelcast.
El proyecto del Centro de Atención al Cliente ha sido un excelente laboratorio para experimentar con las posibilidades de nuestra propia plataforma de software en la nube.
La edición en la nube de la plataforma, al igual que la edición local, es una plataforma de bajo código, rica y extensible para construir aplicaciones. Algunas de las prácticas que utilizo en el desarrollo on-premise están restringidas en la edición en la nube, pero vi esto como una oportunidad para construir una aplicación mejor en lugar de como restricciones de bloqueo.
Con el apoyo de todo el ecosistema, nuestro equipo ha construido una solución innovadora que esperamos que aporte una gran experiencia al cliente.