Plataforma

Preguntas y respuestas sobre la plataforma Devprime y los componentes de Devprime Stack.

1. ¿Qué es la pila Devprime?

Devprime Stack ofrece un diseño completo de aplicaciones basado en una arquitectura hexagonal. Una de las principales ventajas es contar con aplicaciones estructuradas y desacopladas, permitiendo a cualquier desarrollador, independientemente de su nivel de conocimiento (Junior, Full o Senior), construir la primera aplicación de microservicios y API Cloud Native Event-Driven en 30 minutos, eliminando obstáculos tecnológicos y promoviendo una mayor madurez en el desarrollo de software.
Las clases Devprime Foundation presentes en el Devprime Stack fueron construidas para aplicar una estrategia de Domain Driven Design (DDD), modelando el software en dominios de negocio, además de facilitar el desarrollo basado en pruebas y las prácticas de Desarrollo Dirigido por Pruebas (TDD), asegurando la calidad de las implementaciones realizadas por los desarrolladores.

2. ¿Devprime genera los marcos de prueba automáticamente?

Al usar la CLI de Devprime, tenemos características que crean marcos estandarizados, comprobables y predecibles. Estos marcos sirven como plantilla y se integran con Devprime Stack, lo que garantiza la capacidad de prueba y dirige al equipo a las mejores prácticas para crear código en un escenario de desarrollo basado en pruebas (TDD).

3. Cuando se menciona el desacoplamiento, ¿la única capa que está realmente desacoplada es la capa de dominio?

Devprime ya proporciona una infraestructura que aborda todos los criterios de código limpio, S.O.L.I.D., patrones de diseño y una arquitectura hexagonal. Todo esto proporciona un código bien estructurado, así como el desacoplamiento de las clases y capas de la aplicación. Las conexiones entre clases se logran mediante la inyección de dependencias.
Todas las aplicaciones generadas por Devprime siguen la estrategia basada en eventos. Por lo tanto, toda la comunicación interna y externa de las aplicaciones se realiza a través de eventos. Esto hace posible que las aplicaciones no se conozcan entre sí, sino que puedan comunicarse perfectamente, asegurando el desacoplamiento entre ellas.

4. Si Devprime crea toda la estructura automáticamente, ¿solo me preocupo por codificar la capa de negocio?

Devprime Stack proporciona a los desarrolladores una estrategia de software y acelera el desarrollo de proyectos al eliminar los obstáculos tecnológicos para que puedan dedicar el 80% de su tiempo a implementar código impulsado por el negocio y cobertura de pruebas. Esto lleva a la construcción de software bien hecho con bajos costos de mantenimiento y evolución.

5. ¿Cuál es el objetivo principal de Devprime?

Devprime acelera la entrega de aplicaciones y el desarrollo de microservicios y API nativos de la nube y basados en eventos mediante una pila con aceleradores, funciones listas para usar y estrategias de arquitectura de software que siguen los principales estándares de la industria.

6. ¿Cómo me aseguro de que mi desarrollador no cambie algo que no debería, perjudicando a Stack?

El mantenimiento de la pila lo realiza el equipo de Devprime, que proporciona componentes actualizables para su consumo en las aplicaciones. Las implementaciones realizadas por los equipos de proyecto no cambian la pila. Si se produce un comportamiento inusual, Devprime informa de las críticas a los objetos codificados por los desarrolladores y genera registros estructurados que exponen los detalles de los problemas identificados.
El proyecto de arquitectura de Devprime se estructuró con el objetivo de facilitar la revisión del código. En nuestra documentación, indicamos recomendaciones para realizar inspecciones de códigos para detectar no conformidades.
Los clientes de licencias empresariales también pueden contratar una consultoría de seguimiento que realice auditorías en las aplicaciones para encontrar no conformidades en la arquitectura.

7. ¿Dónde conserva el adaptador de flujo los eventos emitidos en caso de que el servicio no esté disponible?

Todos los adaptadores existentes en Devprime tienen un comportamiento autónomo y controlan posibles errores. En la configuración de la aplicación, es posible especificar un estado de adaptador para la persistencia de la resistencia.

8. ¿Puedo ejecutar una aplicación desarrollada con Devprime en Cloud Foundry?

Al utilizar el producto Devprime, todas las aplicaciones desarrolladas adoptan la estrategia Cloud Native, lo que permite la publicación en cualquier entorno Cloud u On-premise.

9. ¿La escalabilidad es proporcionada por la infraestructura Stack o Cloud?

Las aplicaciones basadas en Devprime están basadas en eventos, son asíncronas y no bloqueantes, están diseñadas como sin estado, no mantienen estados locales, garantizan una ejecución fluida y no son un infractor de recursos, funcionan a la perfección en escenarios de alta escalabilidad. La infraestructura en la nube debe permitir la escalabilidad de la aplicación, por ejemplo, del clúster de Kubernetes, para poder satisfacer la demanda según el volumen.

10. ¿Cómo funcionan los adaptadores Devprime?

Devprime adopta una estrategia de arquitectura hexagonal, que aporta varios adaptadores con comportamientos inteligentes y funcionalidades listas para el desarrollador. Es posible incluir código adicional para habilitar personalizaciones.
Los adaptadores abordan las particularidades específicas de la tecnología, eliminando sus obstáculos y facilitando la vida de los desarrolladores. Todos son controlados y monitoreados por Devprime Middleware, lo que garantiza un comportamiento predecible, además de activar las funciones de resiliencia, Retry, Circuit Break y garantizar los tres pilares de la observabilidad: Registros, Seguimiento y Métricas.

11. Desde la perspectiva del Domain Driven Design (DDD), ¿cómo aislar los contextos delimitados?

A través de una etapa llamada DDD Analítica, definimos los límites entre los contextos de negocio, así como las interacciones entre ellos, con la ayuda de los journeys de Event Storming.
Con la conclusión de este primer ciclo, comenzamos la segunda fase, que es el DDD Táctico. Durante este proceso, se generan salidas de negocio predecibles, para lo cual contamos con clases preestablecidas en la Fundación Devprime.

12. Estoy usando Devprime para construir mi comercio electrónico y los productos aparecen en muchos contextos limitados diferentes. ¿No crearía eso una inconsistencia en los datos?

En un escenario simple de comercio electrónico, si estamos tratando con el producto dentro del contexto de una tienda, tendríamos una lista de fotos y una descripción comercial de ese producto. En el caso del contexto de la factura, solo tendríamos una descripción y el SKU de ese producto.

Si lo miramos desde este ángulo, la visión de un producto en el contexto de una factura es mucho más sencilla que en el contexto de un escaparate. Aunque los datos se refieren al mismo tema, son diferentes y no hay duplicación de estos datos. Lo que existe es un vínculo entre ellos a través del SKU.

13. ¿Cómo garantizar la coherencia de los datos en el enfoque de diseño basado en dominios (DDD) y cómo garantizar que todos los contextos tengan acceso a la misma información?

Devprime tiene una arquitectura basada en eventos, lo que le permite propagar hechos comerciales. Otros servicios que se suscriben a los eventos pueden reaccionar y tomar medidas.

14. Tengo una aplicación creada con Devprime y quiero cambiar el servicio Stream. ¿Puedes?

Devprime proporciona en su estructura los archivos de configuración para cada controlador disponible. Si necesita cambiar, por ejemplo, RabbitMQ por un Kafka, puede modificar la configuración, y el adaptador se adaptará a este cambio sin que el desarrollador tenga que cambiar ni una sola línea de código. Además, es posible utilizar el adaptador Extesions para utilizar componentes adicionales manteniendo la compatibilidad con la arquitectura.

15. ¿Todas las configuraciones de adaptador están preconfiguradas en Devprime?

La CLI de Devprime permite al desarrollador elegir la configuración de cada tecnología al principio del proyecto. Si es necesario realizar cambios más adelante, basta con utilizar el archivo de configuración de la aplicación, sin que el desarrollador tenga que cambiar ninguna línea de código.

En el entorno de producción, se recomienda el uso de una bóveda de seguridad para las credenciales.

16. Durante el escalado de microservicios, ¿cuál es el comportamiento de Devprime?

La plataforma Devprime adopta API sin estado, basadas en eventos y reactivas de forma predeterminada. La infraestructura de Devprime se compone de un conjunto de adaptadores autónomos que reaccionan activamente en un entorno de sistemas distribuidos, incluidos servicios como la resistencia, el reintento automático y la interrupción de circuitos.

En función de la información presentada anteriormente, puede agregar nuevas réplicas manualmente o mediante un proceso de “escalado automático” que no supondrá ninguna diferencia para las aplicaciones.

17. ¿Dónde implemento las reglas de negocio en un proyecto creado con la plataforma Devprime?

La arquitectura de Devprime proporciona un marcador de posición para las reglas de negocio, llamado capa de dominio. Es en esta capa donde se ubica y mapea la inteligencia obtenida en las conversaciones con las áreas de negocio en un viaje de Domain-Driven Design (DDD).
El desarrollador crea código basado en DDD, heredando las clases de la Fundación Devprime. Estas clases contienen las reglas de negocio expresadas en un formato predecible y comprobable.

La CLI de Devprime analiza estas clases de negocio y, a través de los aceleradores DP INIT, construye automáticamente implementaciones comunes como exposición de API, servicios, repositorios.

18. ¿Para qué sirve el adaptador de comprobación de estado proporcionado por Devprime?

Como parte del proyecto que ofrece la plataforma Devprime, es posible encontrar el adaptador de comprobación de salud para que herramientas como Kubernetes puedan comprobar el estado de salud y la disponibilidad de la aplicación.

19. ¿Es posible personalizar el adaptador de comprobación de estado de Devprime Stack?

Ofrecemos la posibilidad de personalizar tanto el adaptador de comprobación de estado como otros adaptadores.

20. ¿Qué pasa si es necesario construir nuevos adaptadores en Devprime?

La plataforma Devprime ya ofrece un adaptador genérico llamado Extensions que permite la inclusión de componentes nuggets adicionales, añadiendo comportamientos adicionales y manteniendo la compatibilidad con la arquitectura de la plataforma.

Ofrecemos a los clientes empresariales, a través de un contrato adicional, apoyo en las discusiones de arquitectura con el fin de guiarlos en la mejora de su dirección. Si tiene la necesidad de desarrollar una nueva función, nuestro equipo lo ayudará con la mejor dirección en la adopción de componentes personalizables.

21. ¿Cómo se realiza la validación y la seguridad en un escenario de comunicación entre microservicios? ¿Depende todo de API Gateway?

La adopción de prácticas de seguridad sigue los criterios arquitectónicos de cada proyecto. Algunos escenarios se adoptan directamente en API Gateway y otros híbridos mediante el adaptador de adaptador de seguridad que admite las principales tecnologías de autorización y autenticación del mercado, como Keycloak, Auth0, Azure Entra ID, AWS Cognito y Google Cloud Identity.

22. ¿Cómo empezar a utilizar la plataforma Devprime?

Para empezar a trabajar con Devprime, debe instalar la CLI de Devprime en el equipo del desarrollador con la versión más reciente del SDK de .NET (Linux, macOS y Windows). A partir de ese momento, el desarrollador puede empezar a desarrollar aplicaciones con Devprime mediante Visual Studio Code, Visual Studio Community y Visual Studio Professional/Enterprise.

23. ¿Cómo funciona la actualización de las versiones de Devprime Stack?

En la plataforma Devprime proporcionamos de forma gratuita a nuestros clientes todas las actualizaciones que se realicen, no solo en el Stack de Devprime, sino en todos los componentes de Devprime, durante el periodo en el que esté activo el acuerdo de licencia con nuestra suscripción SaaS.

24. ¿Cómo se mantiene la compatibilidad entre las versiones de Devprime Stack?

Los componentes de Devprime Stack se versionan a través de bibliotecas nuget y se ponen a disposición de los clientes para que puedan realizar actualizaciones en sus proyectos a petición.

25. ¿Todas las aplicaciones que crea son independientes de la nube?

La plataforma Devprime utiliza una estrategia multiplataforma y está diseñada con una arquitectura nativa de la nube, lo que permite la mejor experiencia en la nube con portabilidad entre proveedores de nube.
Las aplicaciones pueden ejecutarse en Kubernetes (en la nube o en las instalaciones) o incluso en máquinas virtuales, de forma transparente. Esto permite cambiar de host en cualquier momento sin necesidad de cambiar una línea de código de aplicación.

Nuestra recomendación es siempre utilizar Kubernetes administrados como Azure AKS, AWS EKS, Google GKE y muchas otras ofertas.

26. ¿El mecanismo de comprobación de estado proporcionado por Devprime identifica si la persistencia de los datos o la secuencia están inactivas?

El motor de comprobación de estado de Devprime ofrece una serie de puntos finales extensibles para exponer información relacionada con el correcto funcionamiento de la aplicación. Sin embargo, para comprobar la disponibilidad de la conexión a los mecanismos de persistencia de datos o a los servicios de transmisión, existen funcionalidades controladas por eventos, reactivas y no ofensivas en los adaptadores State y Stream, respectivamente, que ponen la información a disposición del equipo de SRE cuando se producen.

La plataforma Devprime no es una herramienta de monitoreo de infraestructura. Seguirá utilizando sus herramientas actuales junto con Devprime.

27. Si necesito usar un SFTP o algo que no tiene un adaptador listo, ¿sería posible crear un nuevo adaptador?

Utilice el adaptador denominado Extensiones para agregar componentes externos de terceros y permitir que se utilicen sin afectar al proyecto.

Última modificación January 10, 2024 (967dcac3)