ZENLIX 3.5 - 2 años después



Después de haber comenzado a desarrollar el sistema de aplicación, desde 2013, cuya historia se describe en publicaciones anteriores:


Detuvimos el lanzamiento de nuevas versiones en 2017. Esto no significa que hayamos dejado de acompañar el producto y desarrollarlo. El hecho es que en un corto período de tiempo, tenemos grandes empresas clientes que regularmente ordenaban la personalización del producto principal, razón por la cual prácticamente todos los recursos del proyecto se convirtieron en la forma de apoyar a grandes clientes.

En compensación, lanzamos ZENLIX 2.95 ( enlace ) disponible públicamente . Vale la pena señalar que la versión en GitHub es un producto que no tiene nada que ver con la versión ZENLIX 3.x.

En algún momento, comenzamos a darnos cuenta de que estábamos perdiendo al resto de nuestros clientes. Fue necesario hacer cambios radicales en las políticas de apoyo de la empresa. Por un lado, estábamos limitados por el acuerdo de escolta con la posibilidad de aumentar el presupuesto, por otro lado, no podíamos permitirnos aumentar el personal de los desarrolladores. Como resultado, el destino nos dio esa oportunidad.

En enero de 2019, expiró un acuerdo de atención al cliente y formateamos nuevamente al personal para comenzar un nuevo aliento del producto.

Inicio del desarrollo


Durante 2 años, la mayoría de los módulos frontend (js) utilizados, así como el backend (php), están desactualizados. Por lo tanto, para la introducción de nuevas características y desarrollo, fue necesario preparar la plataforma para que en el futuro fuera posible utilizar las últimas oportunidades y recursos, implementar una interfaz de usuario moderna que satisfaga las necesidades de los consumidores.

Comenzamos con el backend, es decir, la actualización del framework de Laravel 5.1 a Laravel 5.5 (LTS). Había opciones para actualizar el proyecto actual, pero como lo demostró la práctica de nuestros colegas, este es un proceso complejo e injustificado, como resultado de lo cual existe el riesgo de atascarse en la refactorización del código, lo que a su vez retrasaría la actualización durante muchos meses.

Hemos elegido la segunda opción. Para hacer esto, inicializamos un proyecto limpio en Laravel 5.5 (LTS), luego instalamos todos los módulos compositores (las últimas versiones estables), incluidos en los archivos de servicio de Laravel, generamos recursos y los configuramos, en función de la versión anterior de ZENLIX. Después de eso, tomamos la transferencia de Controladores, Modelos, Migraciones, Plantillas, otras partes y objetos comerciales. La mayoría de los métodos fundamentales tuvieron que ser reescritos. Por ejemplo, módulos de autorización / registro (con la posibilidad de autorización a través de servicios de terceros), un sistema de notificación completo (cola disponible) y otros. También dio sus ventajas: encontramos algunos problemas de notificación en la versión anterior y los excluimos en la nueva. Como resultado de la transferencia de código, así como del uso de Laravel 5.5, los requisitos mínimos de software para PHP han aumentado: PHP> = 7.0.0. Debido a esto, también reescribimos algunas funciones e implementaciones obsoletas.

Podemos decir oficialmente que ahora ZENLIX 3.5 es compatible con PHP 7.3 . La transición a la nueva versión de Laravel 5.5 + PHP 7.3 dio un aumento significativo en la velocidad de la aplicación en un 64% en comparación con la versión 3.x.

También reescribimos y optimizamos el código de microservicio de nodejs. Ahora usa un módulo menos: express está excluido.

Actualizamos la interfaz: Jquery 3.4, FontAwesome 5, Trumbowyg 2.15 y otros módulos.
Lo mejor de esto es que ahora usamos webpack.mix.js, y luego del lanzamiento generamos un archivo js minimizado de 20 -> 1 y un archivo css de 13 -> 1. También dio un aumento significativo en la velocidad de representación de la parte del cliente de la pantalla de contenido.

No hemos cambiado nuestra política de control de apertura del producto. Sin ioncubo, etc. Todo el código aún está abierto para nuestros clientes. No existe otro control que no sea un acuerdo de licencia, que regula estrictamente el uso del producto dentro del marco de una entidad organizacional.



Y en la nueva versión, implementamos varias características convenientes :

  • Posibilidad de deshabilitar elementos del menú, así como su funcionalidad.
    Ahora el administrador puede deshabilitar módulos para todos: usuarios, grupos, mensajes, centro de conocimiento, calendario, informes.
  • El sistema de actualización y el repositorio de instalación seguían siendo un cuello de botella. Queríamos que el administrador pudiera elegir qué actualizarlo, a pesar de sus cambios en el código local. Como resultado, utilizando la experiencia de apoyar a nuestras grandes empresas, implementamos esto en un servidor GitLab. Al comprar un producto, el cliente tiene acceso de solo lectura al repositorio git. El shell de los comandos de la consola ZENLIX hace que el proceso sea más suave y más conveniente que usar un simple git pull. Pero esto no prohíbe el uso de este último para la fusión. El sistema de actualización del producto ahora solo funciona a través de la consola (php artisan zenlix: update). A través de la web, el administrador aún puede buscar una nueva versión, así como leer la información / instrucciones en el lanzamiento / actualización. Al iniciar el comando de consola, el administrador pone el sistema en estado de servicio y comienza el proceso de actualización.
  • Sistema de instalación de consola, ahora como el tipo principal de instalación del producto. (php artisan zenlix: install) permite usar el nombre de usuario / contraseña para obtener la versión de ZENLIX, así como para realizar la configuración básica. En la mayoría de los casos, este equipo es necesario para nuestros especialistas técnicos que realizan una instalación remota y gratuita del producto.

El sistema para crear nuevos usuarios, así como crear una aplicación (elección del usuario) y muchos otros cambios menores, que en general afectan mucho la usabilidad del producto terminado, ha sido renovado.

Por separado, vale la pena señalar que preparamos una imagen VM preparada (vmdk, ovf) con el siguiente software, ya con ZENLIX instalado y configurado:

  • Ubuntu 18.04.2 LTS
  • Nginx v1.14.0
  • PHP v7.2.17-0
  • MySQL v5.7.26-0
  • Nodo v8.10.0
  • Supervisor v3.3.1
  • Redis v5.0.4
  • ZENLIX v3.5

Conclusión


En general, nos gustaría concluir que después de haber actualizado la plataforma del producto a la última versión estable (Laravel 5.5), soporte completo para PHP 7.3, que tiene un sistema estable de actualización del producto (git), planeamos lanzar actualizaciones estables más frecuentes. Tenemos muchas implementaciones de cosas interesantes y convenientes de otros proyectos personalizados. Poco a poco los transferiremos a ZENLIX. Como mínimo, crearemos una aplicación de Android, una API completa para crear y trabajar con solicitudes, enlaces web para eventos y otras cosas.

Estaremos encantados de responder todas sus preguntas por correo: info@zenlix.com , así como por telegrama .

Source: https://habr.com/ru/post/450464/


All Articles