el camino a la Paas emPResaRial
Transcripción
el camino a la Paas emPResaRial
Informe técnico El camino a la PaaS Empresarial Gordon Haff Resumen ejecutivo La Plataforma como servicio (PaaS) proporciona una abstracción que hace a los desarrolladores más productivos al ayudarles a enfocarse en crear aplicaciones en lugar de lidiar con infraestructuras. Esto es importante como información y sus procesos asociados se han vuelto centrales para más negocios, incluso aquellos en industrias en las que históricamente no pensamos como dependientes de la tecnología de la información. Y eso hace que escribir aplicaciones personalizadas en respaldo a los objetivos comerciales de una organización sea más importante que nunca. La oferta de PaaS generalmente ha evolucionado desde soluciones de punto que se enfocaron en un simple modelo de programación a aquellos que son más generales. Por ejemplo, ofertas de PaaS en multiidiomas (“políglota”) que soportan tanto las herramientas empresariales tradicionales como Java, así como también los idiomas de scriptings de estilo más nuevo están aumentando la norma. Sin embargo, queda en evidencia que muchas organizaciones quieran escoger también sus modelos operativos PaaS. Es por esto que Red Hat® se ha expandido más allá de su solución OpenShift Online de Red Hat, para también ofrecer OpenShift Enterprise de Red Hat, una versión de suscripción comercial que tiendas de IT pueden instalar en sus propios centros de datos o en otro hardware dedicado. Al igual que con todas las otras ofertas de suscripción de Red Hat, OpenShift Enterprise toma el código fuente abierto que Red Hat ha puesto a disposición de la comunidad a través del proyecto OpenShift Origin y lo convierte en un producto confiable y compatible para su uso empresarial. Como OpenShift Online, OpenShift Enterprise aprovecha una variedad de tecnologías en Red Hat Enterprise Linux para permitir que las aplicaciones se ejecuten en ambientes de capacidades múltiples de una forma segura y predecible. OpenShift Enterprise también está basado en una arquitectura extensible que permite la integración de un ecosistema más amplio de middleware y herramientas. En resumen, OpenShift Enterprise entrega todo lo necesario para desarrollar las aplicaciones que son cada vez más importantes para los negocios basados en la información de hoy en día. Y lo hace de una forma que mantiene la portabilidad de la aplicación a través de infraestructuras TI heterogéneas e híbridas. facebook.com/redhatinc @redhatnews linkedin.com/company/red-hat redhat.com Introducción 1 Como una primera aproximación, puede pensar en IaaS, PaaS y SaaS como una forma exitosa para abstraer el hardware y el software de un centro de datos, creando simplicidad a cambio de la capacidad reducida de afinar las capas que se extrajeron. El nombre PaaS cubre un área amplia. En general, es casi un término genérico para API de web. En detalle, es un conjunto de interfaces programáticas hacia una aplicación alojada específica, esencialmente, una forma de extender el Software como servicio (SaaS). Quizás una mejor definición de PaaS es la abstracción que le permite a los desarrolladores enfocarse en escribir, ejecutar y administrar aplicaciones sin tener que preocuparse indebidamente con las tareas de bajo nivel, tales como el aprovisionamiento y optimización de imágenes del sistema operativo.1 Es un medio para hacer que los desarrolladores sean más productivos al permitirles enfocarse en desarrollar en lugar de enfocarse en la infraestructura necesaria. Dado ese contexto, no sorprende que la mayoría de las ofertas iniciales de PaaS fueran servicios alojados. Después de todo, un servicio alojado casi siempre va a servir como un acceso sencillo y preferido para los desarrolladores que no se quieren preocupar sobre los detalles operacionales. Esa ciertamente ha sido la experiencia de Red Hat con su oferta de OpenShift Online, la que permite que implementar una aplicación sea tan fácil como empujarla a un repositorio de código. Una PaaS como OpenShift Online maneja detalles como autoescalamiento, autoservicio y monitoreo de aplicaciones, dejando que los desarrolladores se enfoquen en crear aplicaciones con herramientas, idiomas y marcos familiares. Sin embargo, un servicio alojado es, bien, alojado por alguien más. Y para muchas organizaciones esa pérdida de control no es aceptable, al menos no para todas sus aplicaciones. Usar una PaaS que haga uso de idiomas estándar y marcos de desarrollo ayuda hasta cierto punto; una vez desarrollada de esa forma, una aplicación se puede implementar en cualquier ambiente dispuesto con sistema operativo apropiado o tiempos de ejecución de middleware. Pero, debido a que tal aplicación trasplantada pierde acceso a la automatización operacional de la plataforma PaaS, un servicio alojado puede no ser tan ideal. La mejor alternativa para muchas empresas es un enfoque PaaS híbrido, que permite a las organizaciones ganar las ventajas de una PaaS mientras la operan de la forma que elijan, ya sea alojada, en el sitio o una combinación de ambas. Este documento le da un vistazo a las decisiones operacionales asociadas con una PaaS en la empresa. De igual forma, detalla OpenShift de Red Hat, las ofertas en el sitio y alojadas de la empresa, para permitirle ver cómo una PaaS puede proporcionar servicios automatizados, calidad de servicio de capacidad múltiple y seguridad, soporte de marco “políglota” multiidiomas y una elección de modelos operacionales. Pero primero, echemos un vistazo más profundo a por qué los desarrolladores (y, crecientemente, los departamentos de TI) aman la PaaS. Reestructuración del desarrollo de aplicaciones con la PaaS 2 A pesar de la escala, incluso las aplicaciones de apariencia de ser de rutina a menudo vienen con su propia y única integración y consideraciones de gobernación de TI. Mucha de la atención alrededor de aplicaciones de nube tiende a enfocarse en Software como servicio (SaaS), lo que equivale a aplicaciones completas entregadas directamente a los usuarios de aquellas aplicaciones. Y SaaS es, en efecto, una historia de nube importante. Ya sea que esté hablando de consumidores y negocios más pequeños ganando acceso a aplicaciones a las cuales ni siquiera tenían los recursos o habilidades para ejecutar internamente en el pasado o esté hablando sobre aplicaciones no diferenciadas como correo electrónico, 2 SaaS elimina la necesidad de mucha rutina de TI que no agrega valor. Sin embargo, la infiltración de la tecnología en más y más tipos de negocios (incluso aquellos que históricamente no consideramos como especialmente dependiente de la información o la computación, como por ejemplo, la agricultura) han alimentado un fuerte apetito por aplicaciones personalizadas. Posiblemente, la única cosa que puede saciar ese apetito es el dinero y el tiempo que toma desarrollar aplicaciones. Y eso es lo que hace que la PaaS sea tan interesante dado cómo está enfocada en aumentar la productividad del desarrollador. Tal productividad tiene directa relación sobre cómo los negocios rápidos pueden traer nuevos servicios y productos en línea y cómo pueden rápidamente comenzar a generar dinero para la organización. redhat.com Informe técnico El camino a la PaaS Empresarial 2 3 El seminario web de la serie de 4 pasos para una nube privada o híbrida de Red Hat detalla la planificación y el proceso de implementación en detalle. http://www. redhat.com/soluciones/nube/ recursos/desdevirtanube/ 4 El Vicepresidente de administración de Gartner, Eric Knipp, escribe en una entrada de un blog que “en pocas palabras, una buena PaaS hace que el desarrollo sea más barato. Es por eso que ves tantas empresas nuevas que utilizan PaaS a medida que el mercado madura. La PaaS se trata acerca de la externalización del trabajo de plomería para que los desarrolladores puedan centrarse en la construcción de la lógica de negocio y en las características importantes que diferencian a una aplicación de otra". http://blogs.gartner. com/eric-knipp/2012/10/09/ paas-o-nomics-101/ Cierto aumento en la productividad proviene de acceso más rápido a los recursos; no esperar a que TI ordene servidores, los suministre y proporcione acceso. Pero, en general, eso es un beneficio de la computación en nube, ya sea una nube pública o una privada planificada apropiadamente. 3 El gran beneficio de la PaaS, específicamente, es que le permite a los desarrolladores enfocarse en las tareas que importan en el desarrollo de la aplicación e ignorar aquellas que no. 4 Esto quiere decir que hay que diseñar interfaces de usuario convincentes y arquitecturas de base de datos apropiadas, no configurar ajustes de firewall o afinar los límites de recursos del sistema operativo. Los beneficios de la PaaS no se limitan solo a los desarrolladores. La industria está experimentando un cambio fuera de las operaciones estrictamente segregadas y los roles de los desarrolladores. El término “devops” se acuñó para capturar la idea de que el desarrollo de la aplicación incorpora crecientemente los conceptos operacionales, tales como disponibilidad y escalabilidad. En parte, este es el resultado de arquitecturas que lidian con estos conceptos en la capa de la aplicación, más que en la infraestructura subyacente. La PaaS es una gran coincidencia para un modelo devops porque la PaaS en sí puede ayudar a proporcionar autoescalabilidad, autoservicio, servicios estándar preconfigurados y otras funciones que, históricamente, se hubieran considerado parte de las operaciones de TI. Bajo un modelo alojado, estas capacidades son todas proporcionadas directamente al desarrollador y la extracción adyacente (por ejemplo, agregar recursos de servidor según sea necesario, remediar las fallas de la infraestructura, monitorear en busca de problemas de seguridad) es manejada por el proveedor de servicios. Con un PaaS en el lugar, por otra parte, Los equipos de operación de TI controlan y son responsables de la infraestructura y pueden escoger pasar un grado de ese control a los desarrolladores. La PaaS, por lo tanto, puede ser un triunfo para los administradores, así como también para los desarrolladores, al proporcionales un marco y herramientas para delegar responsabilidades mientras retienen control general de la política. Muchas organizaciones ven la PaaS como una oportunidad para estandarizar los flujos de trabajo de desarrollo como una sola ruta importante a la consistencia y productividad aumentadas. La estandarización (dentro de una organización dada) solo se puede convertir en algo más importante a medida que el número y escala de aplicaciones aumente y a medida que más organizaciones se muevan a modelos de desarrollo más ágiles y actualizaciones crecientes más rápidas a los sistemas de producción. Llevar la PaaS a la empresa La tremenda algarabía alrededor de la PaaS se puede ver tanto a través de la creciente adopción dentro de la comunidad de desarrolladores, así como también a través de la cantidad de proveedores entrando al espacio con soluciones en línea y en el lugar de la PaaS. Aunque al principio la usaron principalmente los primeros adoptadores e innovadores (incluyendo a los desarrolladores individuales, arranque de empresas y pequeñas empresas) PaaS está entrando en lo habitual. ¿Qué es habilitar esta adopción habitual por las empresas más grandes y una sección más amplia del mercado? 5 Mientras existe mucha innovación continua en middleware, herramientas e idiomas, también existe una considerable inercia en las prácticas y en habilidades establecidas que cualquier organización toma en cuenta al planificar metodologías de desarrollo. redhat.com Un cambio es que la PaaS se está volviendo más multilingüe. Red Hat ha realizado encuestas en varios eventos que revelan consistentemente que la mayoría de los encuestados intentan desarrollar software para ambientes en nube usando idiomas similares a los que ellos usan hoy en día. 5 Las plataformas PaaS que limitan a los desarrolladores a un idioma específico en una plataforma de hosting específica a menudo han sido criticadas por los desarrolladores debido a que limitan esta elección. Dice que un número de ofertas de PaaS de idioma y marco específicos han cambiado hacia un enfoque más políglota (múltiples idiomas y marcos). OpenShift, por ejemplo, tiene cartuchos que sirven al mecanismo a través del cual se exponen los servicios de la plataforma. El lanzamiento inicial de la oferta en el lugar de Red Hat incluyó cartuchos para Java, PHP, Ruby, Perl y Phyton, así como también MySQL y Postgres para servicios de datos. OpenShift también tiene versiones node.js y MongoDB soportadas por la comunidad. Informe técnico El camino a la PaaS Empresarial 3 Y Red Hat está expandiendo esa comunidad. Red Hat quiere ver nuevos cartuchos, tanto para versiones nuevas de la tecnología que ya tiene, así como también nuevas tecnologías que las personas quieren incorporar. Nuevos idiomas, nuevos marcos, nuevos servicios de datos y otras extensiones. Otra consideración importante es el soporte para diferentes modelos operacionales. Un servicio en línea funciona como un simple impulso para un desarrollador que solo quiere probar el servicio. Ciertos negocios de internet con nuevo estilo serán incluso más cómodos usando un servicio en línea para todas sus aplicaciones de producción,especialmente si pueden tener confianza en que el código que escriban se pueda mover a cualquier parte sin realizar cambios, como en el caso de OpenShift. Sin embargo, muchas organizaciones siguen prefiriendo o solicitando que al menos un subconjunto de sus aplicaciones se ejecute en un ambiente sobre el cual tengan un control total. Ellos quieren los beneficios operacionales de la PaaS, pero quieren estar a cargo de la infraestructura. De igual forma pueden preferir exponer menos opciones para los desarrolladores que lo normal en un caso bajo el modelo devops. Posiblemente, esta filosofía “ITOps” más tradicional se transformará en estructuras organizacionales integradas más funcionales con el pasar del tiempo. Sin embargo, tales cambios ocurrirán crecientemente y, por lo tanto, las ofertas de PaaS tales como OpenShift que pueden soportar una variedad de filosofías operacionales tienen beneficios importantes. Sobre OpenShift Enterprise OpenShift Enterprise es un producto comercial, ofrecido a través de una suscripción como todos los productos de Red Hat, que le permite a las organizaciones de TI configurar y administrar sus propias PaaS. Red Hat cura, fortifica, prueba y certifica el código abierto del proyecto OpenShift Origin (bajo la licencia Apache 2.0) para ofrecer el producto OpenShift Enterprise confiable, con soporte y listo para las empresas. Arquitectónicamente, la única dependencia de OpenShift Enterprise es Red Hat Enterprise Linux. OpenShift Enterprise se puede ejecutar en un sistema sin sistema operativo que esté ejecutando Red Hat Enterprise Linux. Puede ejecutarse en infraestructura virtual proporcionada por Red Hat Enterprise Virtualization u otra plataforma de virtualización. La infraestructura Red Hat Enterprise Linux se puede administrar y disponer usando herramientas tales como Red Hat CloudForms o Red Hat Network Satellite. Pero OpenShift Enterprise es una capa organizada de PaaS que es independiente de cualquier herramienta o infraestructura específica (que no sea Red Hat Enterprise Linux). 6 El corredor se puede ejecutar, alternativamente, a través de múltiples instancias para evitar tener un solo punto de falla. OpenShift Enterprise se ejecuta en una instancia de Red Hat Enterprise Linux (el “corredor”)6, la cual administra una o más otras instancias de Red Hat Enterprise Linux (los “nodos”). Entonces, OpenShift Enterprise proporciona los mecanismos para aplicaciones múltiples para ejecutarse dentro de aquellos nodos de forma segura y con un rendimiento predecible, así como también proporcionando capacidades de monitoreo y auto escalabilidad para aquellas aplicaciones. Capacidad múltiple de la aplicación, donde las aplicaciones múltiples (cada una consistiendo de uno o más “engranajes”) puedan coexistir dentro de cada nodo, se proporciona a través de una variedad de funciones de Red Hat Enterprise Linux y se administra por el corredor OpenShift Enterprise. Estas funciones incluyen: redhat.com Informe técnico El camino a la PaaS Empresarial 4 SELinux, una implementación de un mecanismo de control de acceso obligatorio (MAC) en el kernel de Linux, verifica operaciones permitidas a un nivel más allá de lo que pueden proporcionar los controles de acceso a discreción (DAC) estándar. Lo creó inicialmente la Agencia de Seguridad Nacional de EE.UU. y puede implementar reglas en archivos y procesos en un sistema Linux y en sus acciones, en base a una política definida. SELinux proporciona un alto nivel de aislamiento entre las aplicaciones que se ejecutan dentro de OpenShift Enterprise. Grupos de control (cgroups) ofrecen una poderosa forma de ubicar el procesador, la memoria y los recursos de I/O entre las aplicaciones. Proporcionan un control detallado de la utilización de los recursos en términos de consumo de memoria, uso de I/O (almacenamiento y red) y prioridad de procesos, habilitando el establecimiento de políticas que proporcionan garantías de calidad de servicio. Los espacios de nombre Kernel separan los grupos de procesos para que no puedan ver los recursos en otros grupos. Desde la perspectiva de una aplicación ejecutándose en OpenShift, por ejemplo, la aplicación tiene acceso a un sistema en ejecución Red Hat Enterprise Linux aun cuando, en realidad, puede ser una de muchas aplicaciones ejecutándose dentro de una instancia de Red Hat Enterprise Linux. Colectivamente, estas tecnologías implementan un enfoque que es similar en ciertos aspectos a lo que comúnmente se llaman contenedores, pero con mayor aislamiento y mínima sobrecarga de recursos. Se informó la filosofía detrás de OpenShift desde su génesis como un servicio en línea, ahora conocido como OpenShift Online, en que la alta seguridad y eficiencia son primordiales. La autoescalabilidad, que viene integrada en la oferta de OpenShift Online, también está disponible en la oferta en el lugar de OpenShift Enterprise. Cuando implementa una aplicación a través de OpenShift, puede implementarla con escalabilidad activada o desactivada. Si implementa su aplicación con escalabilidad desactivada, lo que implementa si lo que tendrá, ya sea que esté en un engranaje o en varios. Si implementa con autoescalabilidad activada, entonces la aplicación puede escalar y consumir engranajes adicionales en base al uso de esa aplicación y sus necesidades para más recursos. Por ejemplo, en lugar de, digamos, poner una base de datos MySQL y JBoss Enterprise Application Platform en un engranaje, usted pondría MySQL en un engranaje separado, JBoss Enterprise Application Platform en su propio engranaje y luego, configuraría un balanceador de carga en base a software, con HAProxy como tercer engranaje. HAProxy luego detectaría el nivel de solicitudes viniendo a la aplicación. Si ve que el tráfico excede cierto umbral, hará una solicitud para que el corredor haga girar un engranaje adicional de JBoss Enterprise Application Platform y configurarlo usando técnicas de clúster de JBoss . redhat.com Informe técnico El camino a la PaaS Empresarial 5 No hay aprisionamiento de idiomas y marcos Plataforma Herramientas de desarrollo Ecosistema de código abierto No hay aprisionamiento de idiomas y marcos Extensibilidad en base a cartucho Plataforma Herramientas de desarrollo Web Móvil Middleware de clase empresarial JBoss Datos grandes Enterprise Impulsar sus aplicaciones Ecosistema de código abierto Web Móvil Middleware de clase empresarial JBoss SO de capacidad segura Extensibilidad en base a cartucho Datos grandes Enterprise Impulsar sus aplicaciones SO de capacidad segura Red Hat Enterprise Linux Red Hat Enterprise Linux Red Hat Storage Red Hat Storage Cloud Engine System Engine Administración de recursos de nube Administración de nube híbrida Interfaz IaaS y Virt Proveedores de nube certificados de Red Hat OpenStack vSphere Además de una variedad de idiomas y marcos de programación (incluyendo las últimas tecnologías de Java EE 6) OpenShift también soporta herramientas de desarrollo populares. Una de esas herramientas es Apache Maven, una herramienta de administración de proyectos de software. Maven puede administrar la creación, informes y documentación de un proyecto a partir de un modelo central. Otra de estas es Jenkins, que a menudo se usa como un sistema de integración continuo, facilitando a los desarrolladores a integrar cambios al proyecto y facilitando a los usuarios a obtener una creación fresca (y por tanto, aumentando la productividad). Las extensiones del protocolo de autenticación de red del servicio de directorio LDAP y Kerberos le permiten a los equipos de TI integrar OpenShift en sus sistemas de autenticación de empresa para que cuando los desarrolladores recurran a OpenShift, puedan autenticar con sus credenciales de LDAP y/o Kerberos. El enfoque arquitectónico de OpenShift Enterprise tiene grandes beneficios para los desarrolladores y sus organizaciones. Está creado en un sistema operativo de capacidad múltiple seguro y probado, Red Hat Enterprise Linux y, proporciona máxima flexibilidad en cómo ese sistema operativo está implementado y administrado. Proporciona soporte para herramientas e idiomas que son tanto poderosos como familiares. Y proporciona un gran control a los administradores, que cambian del administrador Red Hat Enterprise Linux al administrados PaaS de la forma más sencilla posible con políticas y configuraciones por defecto que satisfarán muchos requerimientos listos para usarse. redhat.com Informe técnico El camino a la PaaS Empresarial 6 Informe técnico El camino a la PaaS Empresarial Conclusión OpenShift Enterprise potencia tecnología importante y aprendizaje operacional del servicio alojado OpenShift Online de Red Hat y los entrega en una forma en que las organizaciones pueden controlar y consumir en sus propios centros de datos u otros ambientes dedicados. Como otra oferta de suscripción de Red Hat, OpenShift también tiene un proyecto de comunidad de código abierto, OpenShift Origin, al cual Red Hat contribuye a través de su filosofía de desarrollo en proyectos de exploración primero, cuando sea posible. Este es un paso importante debido a que la computación en nube (e incluso TI de modo más general) está permanentemente bajo la mira de CIO, analistas de la industria de TI y otros al estar en un camino hacia la infraestructura TI híbrida. Un tamaño no encaja todo y tampoco lo hace un modelo de implementación. Las tecnologías más efectivas son aquellas que son lo suficientemente flexibles para adaptarse a las necesidades dadas de una organización hoy en día mientras se preserva la portabilidad de las aplicaciones y herramientas para los ambientes potencialmente diferentes de mañana. Esta discusión atañe particularmente a la PaaS, que comenzó en muchos casos como, esencialmente, una oferta de punto alojado para un entorno de desarrollo acotadamente definido. Por otra parte, OpenShift siempre ha sido de la idea de escoger idiomas y marcos y de la portabilidad de aplicaciones. Con OpenShift Enterprise (y OpenShift Origin), ahora existe una opción de modelos operacionales que ayuda a asegurar que las organizaciones no queden encerradas en un proveedor o una forma de hacer las cosas. Y esta elección sólo se hará más importante a medida que la PaaS represente crecientemente la forma en que ocurre el desarrollo de software en la computación en nube. Para obtener información adicional sobre OpenShift, visite https://www.openshift.com/enterprise-paas. ACERCA DE RED HAT Red Hat es el proveedor líder del mundo de soluciones de código abierto que, utilizando un enfoque impulsado por la comunidad, entrega tecnologías confiables y de alto rendimiento de nube, virtualización, middleware, Linux y almacenamiento. Red Hat también ofrece servicios premiados de soporte, capacitación y consultoría. Red Hat es una empresa S&P con más de 70 oficinas alrededor del mundo, lo que impulsa los negocios de sus clientes. facebook.com/redhatinc @redhatnews linkedin.com/company/red-hat redhat.com #11508337_v1_1013 NORTEAMÉRICA 1 888 REDHAT1 EUROPA, MEDIO ORIENTE Y ÁFRICA 00800 7334 2835 [email protected] ASIA PACÍFICO +65 6490 4200 [email protected] AMÉRICA LATINA +54 11 4329 7300 [email protected] Copyright © 2013 Red Hat, Inc. Red Hat, Red Hat Enterprise Linux, el logotipo de Shadowman, y JBoss son marcas comerciales de Red Hat, Inc., registradas en los Estados Unidos y en otros países. Linux® es la marca comercial registrada de Linus Torvalds en los Estados Unidos y en otros países.