Cuestionario sobre Ambiente: Aplicacion Java

Arquitectura

    • ¿Qué tipo de arquitectura estandariza las aplicaciones actualmente a nivel IT? (SOA, Cliente-Servidor, Web, etc.).

    • ¿Esta arquitectura se utilizará en los próximos 5 años o se desea migrar a una nueva?).

    • ¿Existe un mapa de modernización tecnológica?

    • ¿En que tecnología están construidas las aplicaciones?

    • ¿Que versiones?

    • ¿Cuentan con soporte empresarial?

    • ¿Cual es la política de soporte a aplicaciones legadas?

    • ¿La arquitectura actual cuenta con políticas y estándares para creación de aplicaciones distribuidas?

    • ¿Se cuenta con DRP's?

    • ¿Actualmente se cuenta con estándares para el almacenamiento de datos?

    • ¿Los datos de la empresa están homologados y centralizados o cada aplicación cuenta con su propio repositorio y estructura?

    • ¿Cuál es el volumen de información usado por el repositorio de datos utilizado para generar análisis (Data warehouse)? 

Usuarios

    • ¿Cuantos usuarios soporta actualmente el área de TI?

    • ¿Cuantos de estos usuarios son concurrentes?

    • ¿Cuál es el crecimiento de soporte a usuarios en el próximo año?

    • ¿Los usuarios reportan problemas de desempeño de manera continua?

    • ¿Cuál es el nivel de satisfacción de los usuarios sobre TI actualmente?

    • ¿Existe(n) áreas de oportunidad reportadas por los usuarios hacia TI actualmente? (desempeño, disponibilidad,  flexibilidad, cumplimiento normativo, seguridad, etc.)

Procesos de negocio

    • ¿Existe un área de proceso y reglas de negocio? ¿Como participa en la dinámica de TI?

    • ¿Que tan sencillo es cambiar una regla de negocio?

    • ¿Cuanto dura el proceso desde que se toma de decisión hasta que puede verse el cambio en producción?

    • ¿Las reglas de negocio se repiten en varios sistemas?

    • ¿Como se lleva el control de la implementación de las reglas?

Monitoreo

    • ¿Cuantas aplicaciones se tienen en el inventario productivo?

    • ¿Cuantas de estas aplicaciones son de misión critica?

    • ¿Como se están monitoreando estas aplicaciones?

    • ¿El proceso esta automatizado? ¿Cómo?

    • ¿Existe una herramienta?

    • ¿La herramienta abarca todas las plataformas y aplicaciones?

    • ¿Que tipo de monitoreo se tiene?

    • ¿La herramienta permite monitorear sin presencia de personal?

    • ¿El monitoreo es en tiempo real?

    • ¿Se tiene un histórico de las métricas?

    • ¿Las métricas se pueden activar/desactivar?

    • ¿Se pueden configurar alertas?

    • ¿Que tipo de notificaciones existen al detectarse una alerta?

Procesos de desarrollo y QA

    • ¿El desarrollo se lleva a cabo in-house?

    • ¿Cuantas personas participan en el desarrollo?

    • ¿Que tipo de organización mantienen los miembros del equipo?

    • ¿Siguen una metodología? ¿Cual?

    • ¿Esta metodología se utilizará en los próximos 5 años o se desea utilizar una nueva?)

    • ¿Como se mantiene el código fuente?

    • ¿Como se ejecutan las pruebas de integración?

    • ¿Como se ejecutan las pruebas de carga o rendimiento?

    • ¿Existe un ambiente de QA, UAT, Preproducción?

    • ¿Cuales son los estándares y procedimientos que actualmente se utilizan para aprovisionar estos ambientes? (Aprovisionamiento físico, virtual, PAAS, etc)

    • ¿Cuánto tiempo se demorara un procedimiento de aprovisionamiento de ambientes (desarrollo, QA, producción, etc.) desde que se solicita hasta que se encuentran disponibles?

    • ¿Cuál el proceso para promover una versión del sistema a producción?

    • ¿Cual(es) son los lenguajes de programación estandarizado(s) para IT?

    • ¿Que IDE de desarrollo se ocupa?

    • ¿Existen lineamientos de desarrollo? 

Gestión y control de la operación

    • ¿Quien tiene acceso a los sistemas productivos?

    • ¿Con que controles de acceso se cuenta?

    • ¿Existe una evidencia de los cambios realizados?

    • ¿Con que frecuencia de ejecutan parches sobre la infraestructura productiva?

    • ¿La infraestructura y plataforma cuentan con soporte empresarial?

    • ¿Se tiene un SLA?

Flexibilidad de la integración 

    • ¿Cuantas tecnologías comprenden su ecosistema de aplicaciones?

    • ¿Existe comunicación entre aplicativos?

    • ¿Como se realiza la comunicación entre aplicativos?

    • ¿Se cuenta con ESB?

    • ¿Se maneja mensajería?

    • ¿Cual es el volumen de comunicación entre los sistemas principales?

    • ¿Que tan confiable debe ser la comunicación?

    • ¿Que mecanismos se tienen para garantizar la confiabilidad de la comunicación?

--------------------

1. Nombre de aplicación (nombre completo y nombre corto)

2. Descripción (que hace la aplicación)

3. Complejidad técnica (escala de 1 a 5)

4. Criticidad de negocio (escala de 1 a 5)

5. Horario comprometido del servicio

6. ¿Cuenta con alta disponibilidad? (sí/no)

7. ¿Cuenta con fail over? (sí/no)

8. Se tiene el código fuente (sí/no)

9. Número de líneas de código fuente

10. Tamaño en MB del empaquetado

11. Tipo de empaquetado (EAR, WAR, JAR)

12. Bibliotecas utilizadas y su versión (incluir información de para que se usan)

13. Número de interfaces gráficas de usuario (cuantas pantallas tiene la aplicación)

14. Tiempo de respuesta máximo requerido por el usuario en segundos

15. Número de usuarios potenciales

16. Estacionalidad de los picos de carga (ejemplo: de lunes a viernes de 12:00 a 13:00 hrs, los dos últimos días a fin de mes, todos los viernes, etc).

17. Número de usuarios en los picos de carga

18. Estatus (ejemplo: desarrollo, calidad, pre-producción, producción, en producción con un piloto del 10% de la carga esperada, etc).

19. Tipos de pruebas realizadas (ejemplo: sólo funcionales; funcionales y de estrés; funcionales, de estrés y de penetración.

20. Se publica en Internet (sí/no)

21. Número y tipo de interfaces con otros sistemas (ejemplo: consumo de un webservice del aplicación A, consumo de datos del ldap, consumo de un filesystem compartido con la aplicación C)

22. ¿Cuenta con autenticación?

23. Tipo de autenticación (delegada al contenedor o implementación propia)

24. ¿Cuenta con autorización?

25. Tipo de autorización (delegada al contenedor o implementación propia)

26. Publica a través de https; es decir, se ha instalado un certificado de seguridad


-------------- 

1. ¿Cuántas aplicaciones existen actualmente en la institución?

2. ¿Cuántas de ellas son cliente servidor y cuantas son aplicaciones web?

3. ¿En qué tecnologías están desarrolladas las aplicaciones? (Java, .net, etc)

4. Por cada tecnología, ¿Qué frameworks están utilizando y que versión? (Hibernate, JSF, Struts, Spring, etc)

5. En caso de utilizar spring, ¿Qué módulos de spring se utilizan y que versiones?

6. ¿Qué servidores de aplicaciones utiliza la institución actualmente?

7. ¿Cuál es la transaccionalidad (peticiones concurrentes por minuto) actual por cada aplicación en sus picos máximos?

8. ¿Existen procesos BATCH?¿Cuántos y cuál es la periodicidad de ejecución?

9. ¿Existe comunicación entre las diferentes aplicaciones de la institución?, ¿De que manera se comunican? (Sockets, web services rest, soap, jms, etc)

10. ¿Las aplicaciones se comunican con sistemas externos a la institución?¿Con cuáles y de que manera se comunican?

11. ¿Las aplicaciones se comunican con sistemas de código cerrado?¿Con cuáles y de que manera se comunican? (ERP, CRM, BI, etc)

12. En caso de utilizar servicios web, ¿Qué frameworks se utiliza para exponerlos? (jax-ws, jax-rs, cxf, etc)

13. ¿Las aplicaciones utilizan clases o funcionalidades específicas del servidor de aplicaciones actual? ¿Cuáles?(Seguridad, JMS, etc).

14. ¿Cuántas aplicaciones están expuestas a internet?

15. ¿En qué versiones de JVM se ejecutan las aplicaciones?

16. ¿Qué IDE’s de desarrollo se utiliza actualmente?

17. ¿Qué utiliza la institución para el manejo de control de versiones?

18. ¿Cuántos motores de bases de datos utiliza la institución actualmente y cuáles son?

19. ¿Cuántos esquemas de bases de datos se tienen actualmente en cada motor de base de datos?

20. ¿Existe comunicación entre las bases de datos? (DBLink’s)

21. ¿Cuántos procedimientos almacenados se utilizan actualmente por motor de base de datos?

22. ¿Qué volumen de información manejan las aplicaciones actualmente en término de bases de datos? (Cantidad de registros y gigabytes almacenados)


------------


    1. Con cuantos sistemas (propios o ajenos) debe integrarse su aplicacion más grande?

    2. Con que otros sistemas debe integrarse su arquitectura?

    3. Su organización cuenta con sistemas que utilizen microservicios?* 

Un sistema que consiste en servicios pequeños y ligeros que realicen una sencilla función de negocio. Estos servicios son desplegados de manera independiente y se comunican entre si.

    4. Su organización desarrolla o utiliza servicios REST?

    5. Su organizacion utiliza HATEOAS en sus API's? *Hypermedia As The Engine Of Application State (hipermedia como motor del estado de la aplicación)

    6. Cual es su criterio de decisión, para realizar un desarrollo de integración ad hoc o usar una plataforma ESB/EAI?

    7. Con cual de la siguientes opciones se siente más cómodo? Oauth, Ws-Security, Otro.

    8. Con cual de la siguientes opciones se siente más cómodo? XML, JSON, Otro.

    9. Qué herramientas adicionales necesita en una Solución Empresarial de Integración? Orquestacion, BPM

    10. Cual(es) opciones de mensajería conoce?

    11. Su organización cuenta con alguna plataforma de gestion de API's (API management plattform)?

    12. Su organización utiliza alguna herramienta de registro/descubrimiento de servicios (service registry / discovery)?

    13. Su organización cuenta con un “Arquitecto de Integración”?

    14. Usted tiene dificultades para integrar servicios (API's) manualmente?

    15. Que tipos de nube (SaaS, IaaS, etc) cuenta su organización y que quisiera integrar con otros sistemas?

    16. Usted  ha realizado, mayoritariamente (más del 50%), desarrollos de integración , o el proveedor de estos desarrollos ofrece conectores de integración pre-construidos para ahorrar la integración entre sistemas??

    17. Qué lenguaje(s) de programación existen en todo el ecosistema de su organización?

    18. Cual es su principal lenguaje de programación en su organización?

    19. ¿Cuántos flujos de integración se desean implementar para integrar entidades externas?

    20. ¿De qué manera se comunican los flujos que se desean implementar? (Archivos, Servicios Web, Sockets, etc.)

    21. ¿Cuántas transacciones por segundo se esperan en los flujos de integración?


Mensajes


Nombre de flujo:

    1. ¿Qué tan rápido es el flujo de mensajes? (Piense por segundo o en un pico)

    2. ¿De qué tamaño son los mensajes que viajan en el flujo? (Max y promedio)

    3. ¿Se requieren mensajes procesados de entrada o salida en orden?

    4. ¿Pueden las aplicaciones que participan en el flujo del mensaje detectar duplicados?

    5. ¿Las aplicaciones esperan una respuesta para cada mensaje enviado?

    6. ¿Interactúa el flujo de mensajes con fuentes de datos?

    7. ¿La información en movimiento a través del flujo de mensajes es sensible o de naturaleza crítica? (Médicos, detalles financieros personales, etc.)

    8. ¿Este mensaje fluye a través de centros de datos en diferente ubicación?

    9. ¿Se requiere cifrado / verificación de la firma digital en el cuerpo del mensaje?



################ EN

2 Migration Assesment Check List
2.1 Business Requirements
    1. What is motivating the business to make this change?

    2. Is the application(s) business critical?

    3. Is there a date by which the business must implement this change?


    4. What is the risk to the business if the change cannot be implemented by that date?

    5. What is the risk to the business when the application is not running?

2.2 People
    6. What level of skills do your people have in the new JBoss products?

    7. Have you installed these products already?

2.3 Applications description
    8. Number of applications covered by the migration?

    9. What is the name(s) of the application to be ported to JBoss?

    10. What is the primary function of the application(s)?


    11. What services does this application(s) provide? 

    12. Who are the users of the system?

    13. Is there any documentation that describes the application and its architecture that can be provided?

    14. What is the current version/release of the application?

    15. Does the application make use of any OS-specific features?

    16. Is this port part of a new application release/version?

    17. If so, what is the schedule for the new release and is the release dependent on the port to JBoss?

    18. Will the migration involve any other upgrades (i.e. platform infrastructure such as OS or related stack components; newer standard specifications such as JEE)?

    19. What is the current planned schedule for porting the application to JBoss (include dates for development, QA etc.)?

2.4 Infrastructure
    20. What is the typical configuration of involved physical servers (CPU, RAM, OS)?

    21. What kind of “service” servers (HTTP, application servers, portals, LDAP, load balancers, database, transaction monitor, repositories...)?

    22. What are the availability requirements (24 x 7)?

    23. On which operating systems does the application run?

    24. How many application servers need migrating (by platform)?

2.5 Java Software technologies
    25. What kind of components are used and what are their current versions (standalone client applications, EAR, WAR, EJB, JMS, WS, BPM, Rules, AOP, ORM, Spring, other frameworks)?

    26. What other J2EE APIs are in use?

    27. What Third-party libraries does your application use?

    28. How does your application use XML?

    29. What JVM/JDK is used by the application (include version number and vendor)?

    30. Are any other Java services required (i.e. JMS, JDBC etc.)? Please include specific details of versions and platforms supported.

    31. Which databases and respective versions are currently supported?

    32. What JDBC drivers are used?

    33. Are any third party components used by the application (include vendor/product name and version)?

    34. Do you have documented coding standards? And how are these standards enforced? Has all code been written to these standards?

    35. Do you make use of code patterns, and if so which?


2.6 External system 
    36. Does the application require any integration with legacy systems (CICS, SAP etc.)?

    37. If so, can you provide a short description on how this is currently implemented?

2.7 Security
    38. Does the application use security?

    39. If so, is user data stored in an LDAP directory, or in some other form of data storage?

2.8 Clustering
    40. Are there any clustering considerations and if so can you describe them (dedicated hardware, commercial clustering solutions, database cluster, SSO, load balancing & failover for HTTP, EJB, JMS, ...):

    41. If so, does it use stateless clustering only, or stateful clustering (i.e. such that affinity to a certain clone must be guaranteed)?

2.9 Development Environment
    42. What is the size of the development team and how is it organized (project manager, architects, ...)?

    43. How is your development process organized?


    44. What software development tools are used in the construction of this application?

    45. What is the primary development platform / environment?

    46. What is the development team skill and size? 



    47. Are there specific education requirements for the development team?

2.10 Tests & deployment
    48. What kind of tests are performed (unit testing, integration, performance, ...)?

    49. Which tools are used?

    50. Are there any tests that are already planned for use with the target architecture?

    51. Is the test infrastructure very different from the production one?

    52. How do you deploy a patch or a new version of an application?


    53. Can you describe how you manage the movement of the code from development into production, and what tools are used for each step?

    54. How do you synchronise changes in different environments and what requires synchronization?

    55. How often or reguarly do new code changes get applied to the production system?

2.11 Monitoring & Management
    56. Which monitoring and management tools are used?

2.12 Brief Target Architecture description
    57. For each relevant section above, try to describe what is already planned as the target for the migration.

Comentarios

Entradas populares