Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mi Middleware Agile Integration Ebook f11423wg 201805 A4 Es PDF
Mi Middleware Agile Integration Ebook f11423wg 201805 A4 Es PDF
E-BOOK
LA INFRAESTRUCTURA DE LA AGILIDAD......................................................................... 6
Integración distribuida.................................................................................................................................. 7
Contenedores................................................................................................................................................... 9
API .................................................................................................................................................................... 10
Para seguir siendo competitivas, las empresas deben tener la capacidad para planificar cambios e
implementarlos en los sistemas de software con rapidez.
Para poder distribuir sistemas de software a las velocidades actuales, las empresas necesitan
una base de infraestructura ágil. En este caso, el término "ágil" no hace referencia al desarrollo
ágil de software, sino al sentido más tradicional de la palabra: flexible, capaz de moverse con
rapidez.
ÁGIL
elástico ligero
servicios de manera La agilidad de la infraestructura da un paso más y crea un entorno que abarca todos los
sistemas de TI, incluido el software heredado. Una infraestructura ágil es un enfoque que toma
continua, requiere
la complejidad de los sistemas actuales, los distintos tipos de datos, los flujos de datos y las
que las interfaces expectativas de los clientes, y busca la manera de unificarlos. En el fondo, esto representa un
entre los sistemas problema de integración.
de contratación y Una empresa que puede cambiar sus precios o lanzar productos nuevos al mercado de la noche a
los de registros sean la mañana tiene una ventaja enorme sobre aquella que requiere una implementación por etapas
de tres meses con una secuencia de pasos de verificación manual.
más ágiles. Esto
Este enfoque se denomina "integración ágil". La integración no se trata de un subconjunto de la
implica no solo que infraestructura, es un enfoque conceptual de ella que incluye datos y aplicaciones con hardware
sean escalables, y plataformas. Al alinear las tecnologías de integración con las ágiles y de DevOps, es posible
sino también que crear una plataforma que brinde a sus equipos la capacidad de cambiar con la rapidez que exige
el mercado.
puedan adaptarse
rápidamente, por LA PLANIFICACIÓN ESTÁ EXTINTA: LAS EMPRESAS Y LA AGILIDAD
ejemplo, para agregar "La planificación tal como la conocemos está extinta", afirmó Jim Whitehurst, director ejecutivo
de Red Hat, en su discurso en la Red Hat Summit de 2017. "La planificación en un entorno menos
un atributo nuevo a
conocido resulta ineficaz". 3 A medida los entornos empresariales se agilizan y los cambios se
las API actuales y para tornan más estresantes, los planes se desmoronan con rapidez, y el hecho de quedar atascados
brindar más contexto en un procedimiento puede ser muy costoso.
en el futuro". Esto significa que mientras menos información tenga, o menos estable sea su entorno, menos
valiosos serán sus planes.
HENRY PEYRET
THE FORRESTER GROUP No sabe lo que no sabe
Normalmente, la planificación de la infraestructura adopta un enfoque a largo plazo que suele
Peyret, Henry. "TechRadarTM:
llevar años. Intentar crear un plan de varios años puede aniquilar la capacidad de innovar o
Integration Technologies,
segundo trimestre de 2015". adaptarse a medida que el mercado cambia. La "extinción" de la planificación a la que se refiere
Forrester Research, Inc. 23 de Jim Whitehurst se reduce a la capacidad de hacer planes con mayor rapidez y luego ejecutarlos.
junio de 2015. Se trata de una expectativa de vida más corta para los planes y de un entorno que genera planes
nuevos.
Este cambio rápido puede implicar un desafío para los equipos acostumbrados a ciclos de
implementación de 6 o incluso 24 meses. El problema se agrava cuando las empresas con
una estructura más tradicional deben competir con las empresas emergentes que ingresan al
mercado de formas totalmente nuevas. Hay ejemplos claros como Netflix y Blockbuster, o Uber
y los servicios de taxi tradicionales, pero el efecto revolucionario de las empresas emergentes
se remonta al principio de la era de la información, que comienza con Amazon en 1993, o con las
computadoras personales en la década de 1980.
La ventaja que tienen las empresas emergentes y los factores revolucionarios es la libertad
para estructurar su infraestructura, sus equipos, sus aplicaciones, su arquitectura e incluso sus
procesos de implementación. No solo tienen ideas innovadoras, sino que pueden ejecutarlas
porque no se ven limitados por una infraestructura heredada o, como dijo Rachel Laycock en
broma, por "personas heredadas"4. Pueden ser ágiles.
Además de la capacidad de innovación, estas empresas también diseñan sistemas que están
preparados para el cambio. La infraestructura de software es parte del poder que los diferencia,
y casi cualquier parte del sistema se puede intercambiar, actualizar o eliminar para responder
a las necesidades cambiantes del mercado. A medida que pasa el tiempo para las empresas
emergentes, algunas de ellas enfrentan una reducción de su capacidad de adaptación, pero las
mejores empresas se aseguran de proteger esta capacidad a toda costa.
• La infraestructura técnica que permite actualizar, agregar y eliminar capacidades con rapidez.
El cambio técnico y cultural no genera agilidad, sino que crea la base para ella.
Marty Cagan, gerente de productos de eBay, aplica lo que él denomina un impuesto a cada
proyecto: se apartan ciertos recursos y tiempo de cada proyecto de rutina para trabajar en
proyectos de infraestructura nuevos5. Esto permite priorizar las innovaciones y los proyectos
nuevos.
4 Rachel Laycock, ("Continuous Delivery") Afternoon general session, Red Hat Summit – DevNation 2016. 1.º de julio
de 2016, San Francisco, California. https://youtube.com/watch?v=y87SUSOfgTY
5 Cagan, Marty, "Inspired: How to Create Products Customers Love". Wiley Press, 2017
Por separado, cada una de estas tecnologías aportará una agilidad significativa a los desafíos
de integración específicos. Cuando se utilizan en conjunto, producen un efecto multiplicador.
El énfasis en la tecnología está puesto en la cultura: los beneficios de la tecnología se
incrementan cuando se combinan con las prácticas de DevOps, especialmente en los procesos de
automatización y de implementación.
Integración distribuida
Uno de los mayores desafíos de los sistemas de TI actuales es que necesitan conectar
aplicaciones de todas las empresas. Las dificultades de los servicios de integración han dado
lugar a hubs de integración centralizados cada vez más complejos. Estos hubs, que generalmente
se implementan como buses de servicios empresariales (ESB), se han convertido en bloqueos
muy complejos que son demasiado rígidos como para permitir cambios rápidos.
La integración distribuida logra muchos de los objetivos técnicos que compartía con las
generaciones anteriores de ESB, pero de una forma que se adapta mejor a los equipos dentro de
una empresa. Al igual que sucede con los ESB, la tecnología de integración distribuida ofrece las
capacidades de transformación, enrutamiento, análisis, control de errores y alertas. La diferencia
está en la arquitectura de la integración.
La alineación con los procesos y las herramientas del desarrollador es fundamental. Un aspecto
básico de la integración distribuida es que no se trata de una infraestructura de software
centralizada que un grupo de usuarios desarrolla y gestiona en un departamento, y que se
implementa independientemente del proceso de desarrollo de software. Por el contrario, la
distribución de la arquitectura de integración, con una plataforma y herramientas comunes,
permite que todos los desarrolladores a nivel de proyecto puedan acceder a ella y admite las
implementaciones ligeras en cualquier momento y lugar en el que sea necesaria la integración.
7 Infografía de 451 Research basada en el informe Cloud-Enabling Technologies Monitor, enero de 2017.
https://451research.com/images/Marketing/press_releases/Application-container-market-will-reach-2-
7bn-in-2020_final_graphic.pdf
8 Encuesta de Bain: For Traditional Enterprises, the Path to Digital and the Role of Containers, noviembre de 2016.
https://www.redhat.com/es/resources/path-digital-containers
9 https://enterprisersproject.com/article/2017/8/4-container-adoption-patterns-what-you-need-know
La clave de una arquitectura distribuida, ya sea con integraciones o con API, es que debe haber
una manera de diseñar e implementar servicios nuevos sin un proceso de aprobación complejo.
Los contenedores permiten que tanto las integraciones distribuidas como las API se traten
como microservicios. Estos ofrecen una herramienta común para los equipos de desarrollo y
operaciones, así como la posibilidad de utilizar procesos de desarrollo rápidos con procesos de
lanzamiento gestionados.
API
La mayoría de las infraestructuras de información contienen cientos o incluso miles de sistemas,
aplicaciones y recursos. Sin embargo, la interacción entre estos sistemas puede resultar
muy difícil, y es posible que los administradores de TI ni siquiera sepan cuáles de ellos están
disponibles.
Las API son las interfaces para todos los recursos que pueden conectarse utilizando la tecnología
de integración. Se trata de un conjunto de definiciones o reglas que establecen la forma de
comunicación entre las aplicaciones.
A medida que las empresas cambian su enfoque centralizado basado en centros de tecnología
de integración por un enfoque distribuido, el autoservicio se convierte en una prioridad clave.
Los equipos ágiles necesitan autoridad y autonomía para buscar, probar y utilizar servicios
desarrollados tanto dentro como fuera de sus empresas. Una capacidad de API sólida otorga esta
autoridad y autonomía a los equipos. Gracias a las API, los equipos obtienen la integración que
necesitan y, al mismo tiempo, las empresas pueden asegurarse de que se gestionen y apliquen las
políticas de uso, seguridad y autorización. Las API ofrecen a los equipos referencias sobre cómo
se deben diseñar las integraciones.
Diferentes API o diferentes subconjuntos de una API pueden estar disponibles para distintos
destinatarios. Las necesidades de un proveedor pueden no ser las mismas que las de los equipos
de desarrollo interno o las de los desarrolladores de la comunidad. La gestión de API incluye el
diseño de la API para la aplicación y el grupo de usuarios, así como la gestión del ciclo de vida
de ella. Las API se gestionan cada vez más como productos, en donde diferentes equipos se
encargan de cada API, pero es necesario garantizar la uniformidad y la facilidad de uso en todos
estos recursos.
Al igual que con la integración distribuida, los contenedores se pueden utilizar como una
plataforma para desarrollar, implementar y gestionar las API de manera que se alinee el
desarrollo de las API con herramientas y procesos de desarrollo y operaciones más grandes.
3scale
Portal de
Portal de
adminis-
desarrolladores
tradores
Cuando hablamos de capacidad, nos referimos a que los grupos autorizados pueden utilizar
las tecnologías de manera automática, seguir las pautas empresariales con facilidad y acceder
a la información sobre las prácticas recomendadas. Los arquitectos de la información o los
administradores de TI deben definir procesos claros para los diferentes equipos, como los
siguientes:
• Aplica normas de uso y prácticas recomendadas cuando corresponda, pero dando la libertad
de experimentación más allá de dichas normas.
• Contar con procesos bien definidos para pasar del prototipo a las pruebas, la puesta en
marcha, las actualizaciones y el retiro.
Por ejemplo, debería ser posible que un equipo de software desarrolle, pruebe y prepare una
API nueva para lanzarla de una forma totalmente automática, con procesos implementados
para actualizar otros grupos y documentación. Es posible que haya procesos y verificaciones
adicionales con otros equipos antes de la publicación o de la etapa de producción, pero la
infraestructura debe automatizar el proceso tanto como sea posible.
Arquitectura de la infraestructura
Integración
API
Contenedores
Figura 4. La forma en que las tecnologías de integración ágil atraviesan las pilas de aplicaciones
Los diferentes tipos de sistemas exponen una variedad de extremos reutilizables, en donde
cada uno se ve como una API que se puede volver a utilizar y donde muchos se ejecutan dentro
de contenedores para lograr escalabilidad y facilidad de implementación. Las integraciones
proporcionan la transformación, la composición o la lógica empresarial integrada, siempre que
sea necesario, en todo el sistema mediante la integración de un grupo de servicios individuales o
la recopilación de resultados de diferentes partes de la organización.
Las aplicaciones integradas se pueden agrupar aún más antes de suministrar las
aplicaciones de usuario final.
API
Microservicios
compuestos
Basada en
contenedores
Microservicios
ligeros
expandibles
Uso de recursos
Soporte externos
para
sistemas
heredados SaaS
Capacidades de
autoservicio Heredado
No se presume que todos los sistemas se dividirán en piezas cada vez más pequeñas o que
atravesarán varias capas de abstracción de API. Esas operaciones pueden reducir la eficiencia,
aumentar la latencia o agregar una complejidad innecesaria propia. En algunas áreas, lo
adecuado puede ser mantener las funcionalidades actuales de ESB heredadas para conservar
las conexiones entre aplicaciones específicas. También es necesario rastrear y gestionar las
dependencias entre sistemas distribuidos utilizando las herramientas adecuadas.
Sin embargo, la infraestructura tiene un enfoque muy diferente. Varios grupos altamente
especializados suelen trabajar en la infraestructura, a diferencia de los equipos interdisciplinarios
que se ocupan de los proyectos específicos de diseño de software, y suelen hacerlo durante
periodos más prolongados. En general, los proyectos de infraestructura son mucho más grandes
que los de software, lo cual significa que posiblemente los ciclos cortos de lanzamiento no sean
capaces de lograr mucho, o que podrían quedar operaciones incompletas. Como escribió Andrew
Froehlich, un profesional de TI empresarial, en InformationWeek: "la infraestructura tiene un
límite de punto de no retorno, en especial con el hardware y los centros de datos; sin embargo,
incluso con la nube pública, se llega a un punto en el que ya no es posible desechar un proyecto y
comenzar de nuevo10. La infraestructura es permanente". Sin embargo, sí es posible conciliar las
metodologías con el rendimiento de la infraestructura.
Los beneficios de los procesos iterativos y con capacidad de respuesta, como los ágiles o los
de DevOps, son evidentes para los equipos de operaciones o desarrollo, pero no tanto para los
de infraestructura. No obstante, el análisis de Froehlich sobre las ventajas y desventajas de la
agilidad para la infraestructura no tiene en cuenta un aspecto fundamental: el alineamiento de
los equipos de infraestructura con los de desarrollo y operaciones. Rohan Pearce escribió en la
revista CIO Magazine sobre convertir a los equipos de infraestructura en celdas de trabajo con un
estilo ágil, en lugar de equipos funcionales11. En los equipos de servicios empresariales de Telstra,
los grupos de desarrolladores simplemente ignoraban sus sistemas internos porque el proceso
de verificación de sistemas o diseño de actualizaciones era muy difícil y complejo. Al ajustar sus
grupos de trabajo, el ciclo se redujo de 212 días a 42 días12.
Este ejemplo demuestra la importancia del cambio de los procesos para que los equipos de
infraestructura aborden mejor las necesidades de sus grupos internos.
Las tecnologías de integración ágil sustentan una infraestructura más ágil. Las API, las imágenes
de contenedores y las integraciones distribuidas son los nuevos métodos de debate en las
conversaciones sobre infraestructuras de software.
10 Froehlich, Andrew, "Should IT go agile? The pros and cons". 6 de octubre de 2015.
http://www.informationweek.com/infrastructure/pc-and-servers/
should-it-go-agile-the-pros-and-cons/d/d-id/1322448
11 Pearce, Ronan, "Can infrastructure be agile?" 20 de junio de 2013.
https://www.cio.com.au/article/465436/can_infrastructure_agile_/
12 http://agilemanifesto.org/
1
Individuos e interacciones sobre procesos y herramientas.
En cuanto a la infraestructura, el debate se centra en las interacciones entre los equipos. Estas incluyen
comunicaciones directas, con API, mensajería y patrones de tráfico; interdependencias a nivel de sistemas;
y procesos de prueba y de liberación, como los canales de CI/CD.
2 Por naturaleza, la infraestructura debe ser funcional las 24 horas del día, todos los días del año, y realizar
adaptaciones paulatinas en lugar de grandes cambios. Por eso, una infraestructura en funcionamiento es siempre
un requisito implícito. Como estrategia de infraestructura, "en funcionamiento" significa que la infraestructura
ofrece el comportamiento del usuario final esperado en el límite de rendimiento previsto.
3
infraestructura gestionan las dependencias de los sistemas, como las políticas de seguridad, los acuerdos de nivel
de servicio e incluso las API publicadas. Los clientes incluyen usuarios internos y externos de esos sistemas. La
agilidad brinda a esos usuarios la capacidad de participar en los cambios potenciales en las políticas y las interfaces
relacionadas con los sistemas, y les permite ver la ejecución de esos cambios en menos tiempo. El uso de
integraciones distribuidas extiende esa colaboración otorgando el control directamente a los equipos para que
desarrollen e implementen integraciones.
4 permanecer estables, pero las tecnologías más nuevas, como los contenedores, ofrecen una plataforma que es
flexible. Es posible agregar y quitar instancias de forma dinámica en función de la demanda, automatizar las
implementaciones y las actualizaciones, y coordinar los cambios en varias instancias. Las definiciones de API
publicadas brindan herramientas reutilizables para que el desarrollo sea más uniforme. Este enfoque resulta en
una plataforma estable diseñada para adaptarse al cambio.
La integración ágil utiliza la tecnología para respaldar el cambio cultural dentro de los equipos
de infraestructura. Funciona como la base para la estrategia de infraestructura. Se encarga
de alinear estrechamente las tecnologías de infraestructura y sus equipos con las estrategias
empresariales y de desarrollo.
La metodología ágil identifica algunas piezas clave de un proyecto de software, como las
personas, los diseños y las dependencias, y luego define la relación entre estos elementos.
Si abordamos la infraestructura de integración como un proyecto ágil, es posible identificar
elementos y relaciones similares, que establecen un paralelismo con aquellos que se definen en
la metodología ágil, como los equipos, las imágenes de contenedores, las API y los puntos de
integración. En la tabla 3, se describen algunas de las similitudes.
Pruebas de Automatización Se trata de una gestión completa del ciclo de vida, desde la
implementación de la capacidad para probar los diseños de software, el rendimiento
infraestructura y los requisitos del usuario hasta operar y supervisar varios
sistemas.
• ¿De qué manera contribuye cada equipo, API y sistema a la mejora de esta experiencia
con el paso del tiempo?
• ¿Cómo se definirán las alertas y la supervisión para mantener los niveles de servicio?
¿y para qué parámetros?
• ¿Cuál es el canal de lanzamiento para que los equipos prueben e implementen versiones
nuevas de sus propios subsistemas sin alterar la experiencia del usuario?
• ¿De qué manera afecta una falla en el servicio de elementos a los niveles de servicio del
sistema completo?
Debido a que tanto las API como las integraciones distribuidas se pueden desarrollar y
comprender dentro de los equipos individuales de operaciones o de desarrollo, el conocimiento
de las responsabilidades de los equipos respecto de las integraciones está mucho más claro.
Es posible comprender mejor las integraciones en sí porque los equipos que se encargan del
desarrollo y de la implementación reconocen las interdependencias entre los sistemas y las
aplicaciones.
Nunca ha sido tan importante para las empresas poder reaccionar ante los cambios en el
mercado y, en gran parte, son los sistemas de TI los que deben ofrecer la capacidad de lanzar
servicios nuevos o de actualizar los actuales con rapidez. En la actualidad, es fundamentalmente
importante reconsiderar la infraestructura de TI, ya que es la base de los servicios digitales.
Los equipos de infraestructura siempre han estado ligados a procesos modulados y muy
extensos, debido a la necesidad de mitigar los riesgos y mantener la estabilidad. Sin embargo, es
posible cambiar la mentalidad en materia de infraestructura, de una basada en la plataforma o
el hardware a una basada en la integración. La integración no se trata de un subconjunto de la
infraestructura, es más bien un enfoque conceptual de ella que incluye datos y aplicaciones con
hardware y plataformas.
Definimos este enfoque como integración ágil, una manera de utilizar tecnologías de integración
para crear una infraestructura más ágil y adaptable. Los pilares tecnológicos de la integración
ágil son tres:
• La gestión de API interna, que crea un conjunto reutilizable de interfaces para permitir que los
equipos de desarrollo se dediquen a las aplicaciones y los sistemas. Las API brindan las pautas
y la estructura para la interacción entre las aplicaciones.
• Los contenedores, que no solo permiten que los proyectos de integración se alineen
estrechamente con los de desarrollo y operaciones, sino también que las integraciones se
desarrollen, prueben y lancen de forma similar a los proyectos de software, utilizando los
métodos de DevOps.
La tecnología debe utilizarse para respaldar el cambio cultural, y esto implica trabajar para
que los equipos de infraestructura, y no solo su software, sean más ágiles. A medida que
los equipos de infraestructura trabajan para alinearse con los principios ágiles, se puede
introducir la tecnología de forma progresiva para respaldar esos cambios. No hay un
proyecto único capaz de rediseñar una empresa completa para que sea ágil. Puede ser más
efectivo implementar una tecnología de integración ágil o cambiar un área de la empresa y,
luego extender, esos cambios de manera progresiva.
La integración ágil brinda un marco, tanto técnico como empresarial, para volver a diseñar la
infraestructura de TI.
es.redhat.com Copyright © 2019 Red Hat, Inc. Red Hat, Red Hat Enterprise Linux, el logotipo de Shadowman y JBoss son marcas comerciales
f11423_0518 o marcas comerciales registradas de Red Hat, Inc. o sus subsidiarias en Estados Unidos y en otros países. Linux® es la marca
comercial registrada de Linus Torvalds en EE.UU. y en otros países.