• AYNITECH GROUP

Desarrollo de Aplicaciones Modernas en AWS: El Futuro en el Cloud

Updated: Sep 5

Hoy en día muchas empresas están innovando rápidamente con productos digitales para competir en un mundo de nuevas tecnologías. Las aplicaciones modernas son la clave para incrementar la agilidad en los desarrolladores conjuntamente con la fiabilidad, seguridad y escalabilidad de las aplicaciones.

En la creación de aplicaciones modernas es posible que debas reconsiderar los patrones arquitectónicos de tu aplicación, modelo operacional y proceso de entrega de software.

Este es un enfoque poderoso de como diseñar, construir y administrar software en la nube.

A continuación, mostramos las 7 características de aplicaciones modernas.

  1. Cultura de propiedad.

  2. Patrones arquitectónicos: Microservicios.

  3. Computando aplicaciones modernas: Contenedores y AWS Lambda.

  4. Administración de Data: Bases de datos diseñadas con un propósito.

  5. Canal de lanzamiento CI/CD: Estandarizado y automatizado.

  6. Modelo Operativo: Lo más “serverless” posible.

  7. Seguridad: Responsabilidad de todos


Creando una Cultura de Propiedad

Todo empieza cuando hacemos posible que nuestro personal entregue mejores resultados a los clientes. Para esto, utilizamos este concepto: “Productos: No Proyectos”. Este concepto significa que los equipos que crean los “Productos” son responsables por el funcionamiento y mantenimiento de estos, de esta manera sean responsables del desarrollo de todo el producto y no solo de una parte. Cuando les damos a los equipos el control completo del ciclo de vida (Incluyendo: Feedback del cliente, planificación de la ruta de avance, desarrollo y operación de la aplicación) ellos se vuelven propietarios y se empoderan para crear y entregar nuevos resultados.

La autonomía crea motivación, abre la puerta a la creatividad y desarrolla una cultura de tomar riesgos en un entorno de confianza. Empoderar a los equipos a que sean propietarios del producto cambia la mentalidad de una organización, la estructura del equipo y el trabajo del cual ellos se hacen responsables.


Patrones Arquitectónicos: Microservicios

Es posible crear una buena cultura de propiedad en tu organización, pero todavía puede haber problemas para escalar si la arquitectura de la aplicación tiene dependencias que impiden que los equipos se apropien del producto final. Por eso es recomendable construir una arquitectura de Microservicios para aplicaciones que cambian y crecen rápidamente.

Microservicios es la expresión arquitectónica de una cultura de propiedad, los cuales dividen aplicaciones complejas en componentes que un solo equipo puede apropiarse y ejecutar de forma independiente. Con una aplicación monolítica, puede haber problemas cuando varios desarrolladores envíen cambios al mismo tiempo, lo cual produce fricciones en varios puntos del ciclo de vida. Todo esto implica coordinación previa de los cambios para asegurar de que no esta afectando el código de otro desarrollador. En el caso de hacer una actualización a una librería clave, se tiene que convencer al resto que también actualicen al mismo tiempo, y esto puede ser una tarea muy difícil.

Con una arquitectura de Microservicios, una aplicación es hecha de varios componentes independientes que corren cada proceso de la aplicación como un servicio. Cuando el servicio está corriendo independientemente y es administrada por un solo equipo, cada servicio puede ser actualizado, lanzado y escalado para satisfacer la demanda de funciones específicas de una aplicación. Por ejemplo, un shopping cart puede ser utilizado por muchos usuarios durante una venta. Microservicios comunican datos entre sí a través de interfaces definidas, utilizando APIs livianas, eventos o streams. Cada vez más desarrolladores están confiando en arquitecturas controladas por eventos, aquellos en el que las acciones se desencadenan en respuesta a los cambios en la data, para mejorar la escalabilidad y la resistencia de la aplicación, al mismo tiempo de reducir costos.

Computando Aplicaciones Modernas: Contenedores y AWS Lambda

Instancias ya no son la única opción en AWS. Las aplicaciones modernas ahora usan contenedores o serverless basados en eventos que son ejecutados en AWS Lambda. Elegir entre instancias, contenedores y Lambda se basa en cuanto una empresa requiere flexibilidad versus simplicidad. Los contenedores se han convertido en la forma mas popular de empaquetar código, lo que los convierte en una excelente manera de modernizar aplicaciones antiguas. Los contenedores ofrecen una excelente portabilidad y flexibilidad sobre la configuración de las aplicaciones. Por otro lado, Lambda ofrece mayor simplicidad con el fin de escribir código estrictamente para la lógica del negocio, y permite beneficiar la mayor agilidad que la nube puede ofrecer.

Administración de Data: Base de Datos diseñadas con un Propósito

El cambio hacia una arquitectura de Microservicios tiene un gran impacto en como almacenamos y administramos la data. Si cada Microservicio esta interactuando con una base de datos monolítica, entonces la base de datos sigue siendo un punto de falla. Es por este motivo que aplicaciones modernas son construidas con almacenes de datos desacoplados, cada uno de los cuales es parte de un solo Microservicio.

No es práctico que una sola base de datos cumpla las necesidades especificas de un set de varios Microservicios. Al desacoplar la data junto con los Microservicios, los equipos son libres de elegir la base de datos que mejor se adapte a la tarea en cuestión. Por ejemplo, si la aplicación requiere data sobre ítems que cambian en el transcurrir del tiempo, entonces puede elegir una base de datos basado en tiempos como Amazon Timestream, o si se necesita mantener una verificación criptográfica de registro de transacciones, Amazon Quantum Ledger sería una buena opción. Por lo general, la mejor base de datos es la base que hace exactamente lo que el Microservicio necesita.

Canal de Lanzamiento CI/CD: Estandarizado y Automatizado

Arquitecturas de Microservicios permiten a equipos agilizar los procesos, y esto significa que habrá más cosas por lanzar. Lo malo es que no será posible enviar nuevos cambios rápidamente a los usuarios finales si el canal de lanzamiento está atascado. El lanzamiento tradicional por lo general es lento debido a que es un proceso manual. La solución a esto se da en dos partes: estandarización y automatización.

Al definir el proceso de entrega de software mediante el uso de plantillas de las mejores prácticas, se puede proporcionar un estándar para modelar y provisionar todos los recursos de infraestructura en un entorno en la nube. Plantillas denominadas “Infraestructura como código” ayudan a los desarrolladores a iniciar en la dirección correcta, porque la plantilla provisiona por completo la capa de tecnología necesaria para una aplicación a través de código en vez de utilizar un proceso manual.

Con la automatización, se pueden crear procesos repetibles que aceleran el ciclo de vida. Estos procesos son llamados integración continua y entrega continua (CI continuous integración, CD continuous delivery). Automatizando el canal de lanzamiento mediante CI/CD ayuda a enviar código de alta calidad rápidamente y más seguido. De hecho, “Puppet stage of DevOps” reporta que los equipos que utilizan estas prácticas tienen una taza de fallas cinco veces menor, una proporción de commit-to-deploy de 440 veces mas rápido, y un incremento de lanzamiento de 46 veces más frecuente. Pero lo más destacado es que los equipos tienen 44% más de tiempo para crear nuevas ideas y escribir código en vez de administrar procesos y herramientas.

Modelo Operativo: Lo Más “Serverless” Posible

Las empresas prefieren adoptar un modelo operacional que haga posible eliminar cualquier actividad que no sea relacionada con la competencia central del negocio. Para adquirir agilidad que nos permita una innovación rápida, se recomienda construir una arquitectura de Microservicios usando servicios serverless donde sea posible.

Un modelo serverless ayuda a crear y ejecutar aplicaciones sin provisionar y administrar servidores. Este modelo permite lo siguiente: eliminar el mantenimiento de servidores, escalar flexiblemente, pagar solo por la ejecución, y automatizar la alta disponibilidad. El modelo ayuda a concentrarnos netamente en los aspectos de la aplicación sin tener que preocuparnos por los detalles de la infraestructura.

Ya sea que este migrando o creando aplicaciones nuevas, una serverless te permitirá beneficiarte de la mayor agilidad que la nube puede ofrecer.

Seguridad: Responsabilidad de Todos

La seguridad debe incluirse en cada etapa del ciclo de vida del desarrollo de la aplicación y en cada componente de la misma. Se debe de asegurar que las aplicaciones solo funcionen para el propósito definido, con el fin de proteger el negocio y los usuarios finales.

En aplicaciones modernas, las características de seguridad están integradas en cada componente de la aplicación, probándose y desplegándose automáticamente con cada versión. Esto significa que la seguridad ya no es responsabilidad exclusiva del equipo de seguridad, tiene que estar integrada en cada etapa del desarrollo y producción. La operación y los equipos involucrados tienen todos en conjunto un rol por ejercer.

Conclusión

Las aplicaciones modernas crean diferenciación competitiva permitiendo una rápida innovación. Al cambiar el patrón de arquitectura, modelo operativo y proceso de entrega de software, se puede cambiar recursos de operaciones estándar a actividades diferenciadoras. Es posible experimentar más y convertir ideas en lanzamientos más rápido. Puedes fomentar un

entorno donde los desarrolladores pasan más tiempo construyendo. El desarrollo moderno de aplicaciones es cómo las organizaciones innovan con rapidez y agilidad.Administrar el blog desde la computadora

En primer lugar publica tu sitio web usando el Editor de Wix y, a continuación, dirígete a tu sitio web online e inicia sesión con los datos de acceso de tu cuenta Wix. Iniciada la sesión, podrás escribir y editar entradas, gestionar los comentarios, marcar entradas, etc. Sólo tienes que hacer clic en el ícono de 3 puntos ( ⠇) para ver todo lo que puedes hacer.


#aynitechgroup #aws #cloud

Contact

USA   -   CHILE    -   PERU

  • Blanco Icono LinkedIn
  • White Facebook Icon
  • White Instagram Icon

© 2020  AYNITECH GROUP