Você está na página 1de 22

Prácticas

recomendadas
para el desarrollo
de aplicaciones
modernas
Cómo reinventar la manera en la
que su empresa genera valor
INTRODUCCIÓN

Están dadas las condiciones


para implementar el desarrollo
de aplicaciones modernas
La transformación digital afectó radicalmente la
manera en la que las compañías generan valor y
la velocidad con la cual incorporan cambios en sus
productos y servicios. Cada vez más compañías
crean productos que son tecnológicos per se o que
reciben una influencia profunda de la tecnología;
todas las compañías se están transformando en
compañías de tecnología. Para poder competir
en este nuevo contexto, las empresas deben
crear mejores productos digitales y deben hacerlo
a un ritmo cada vez más ágil.

Muchas compañías están logrando innovar con mayor rapidez mediante


la modificación de sus métodos de diseño, creación y administración de
aplicaciones a través de lo que denominamos "desarrollo de aplicaciones
modernas". El desarrollo de aplicaciones modernas aumenta la agilidad
de sus equipos y la fiabilidad, seguridad y escalabilidad de sus aplicaciones.
Automatiza o reduce la carga operativa a los fines de permitir a los equipos
invertir más tiempo en crear lógica de negocio. Favorece un entorno en
el que es posible realizar muchas pruebas porque los pequeños errores
no generan interrupciones en el sistema. Esta metodología también exige
un cambio radical en la manera de abordar la generación de valor.
2
2
INTRODUCCIÓN

67 % La guía cubre los siguientes temas:


Para poder crear aplicaciones modernas, es posible
que deba replantear los patrones arquitectónicos de
sus aplicaciones, el modelo operativo y el proceso de • Innovar quiere decir escuchar a sus clientes
cree que deben aumentar el ritmo
entrega de software. Aunque estas modificaciones
para continuar siendo competitivos
son radicales a nivel organizacional, el proceso • Las prácticas recomendadas para el desarrollo
no debe ser absoluto: si bien un gran número de de aplicaciones modernas
organizaciones realiza un gran salto para crear

56 %
nuevas aplicaciones modernas en la nube, muchas 1 F
 avorecer la realización de pruebas
otras adoptan una estrategia gradual, una aplicación mediante el establecimiento de una cultura
a la vez. Independientemente del enfoque que de responsabilidad
afirmó que las mejoras aumentaron
elija, con seguridad querrá tener en cuenta las
los ingresos en el primer año 2 U
 tilizar microservicios para crear
prácticas recomendadas que hemos observado
aplicaciones integradas por componentes
implementar a nuestros clientes mientras creaban
3 A
 ctualizar aplicaciones e infraestructura
aplicaciones modernas.

42 %
rápidamente mediante la automatización
Estas prácticas recomendadas para el desarrollo de la canalización de lanzamientos
de aplicaciones modernas surgen de nuestra 4 M
 odelar y aprovisionar recursos para
adoptó una postura empresarial experiencia en la creación de aplicaciones para aplicaciones mediante el uso de
que prioriza la digitalización Amazon.com, así como de la prestación de infraestructura como código
servicios a millones de clientes de AWS de todo el 5 S
 implificar la administración de
mundo. Hemos observado prácticas comunes que infraestructura con tecnologías sin servidor
permitieron a nuestros clientes aumentar el nivel de
“La invención requiere dos cosas: 6 Incrementar
 la visibilidad para mejorar
agilidad y crear aplicaciones mejores que respaldan
poder realizar muchas pruebas el rendimiento de las aplicaciones
el éxito de sus empresas. Si bien es posible abordar
7 P
 roteger el ciclo de vida entero de las
y no tener que lidiar con el daño estas prácticas desde cualquier punto de partida
aplicaciones mediante la automatización
colateral de las pruebas fallidas”. y en cualquier orden, el resultado es el mismo:
de los procesos de seguridad
aplicaciones más seguras, fiables, escalables y
–Andy Jassy, CEO, Amazon Web Services
rápidamente disponibles para sus clientes y socios. • Comience a implementar el desarrollo
de aplicaciones modernas hoy mismo

3
INNOVADORES DIGITALES

Innovar quiere decir escuchar a sus clientes


En un informe reciente de Vision Report, "Digital Rewrites the Rules of
Business", Forrester Research define la mentalidad enfocada en los clientes
de un innovador digital. La principal misión de estos desestabilizadores
modernos es:
ESCUCHE
“…Utilizar ecosistemas y recursos digitales para mejorar los
resultados de los clientes de manera continua y, al mismo tiempo,
optimizar la excelencia operativa... mediante la implementación
de un razonamiento digital en las experiencias de los clientes,
las operaciones, los ecosistemas y los factores de innovación. 1
Enfocarse en el cliente significa tomar decisiones empresariales a través de
un trabajo en retrospectiva desde el punto de vista del cliente. A partir de ese RUEDA DE LA
punto, significa desarrollar continuamente productos y servicios para lograr INNOVACIÓN
de una mejor manera los resultados que los clientes esperan. Por último,
significa escuchar lo que sus clientes realmente valoran para poder continuar
creando y probando soluciones por ellos. Esto es lo que se denomina “rueda
de la innovación”. REPITA PRUEBE
La idea fundamental es que el disparador de cualquier innovación comienza
con una demanda del cliente, mejora con los comentarios de este y se repite
constantemente (y de manera rentable) hasta que la demanda cambia y el
ciclo completo comienza de nuevo. Cuanto más rápido sus equipos logren
girar la rueda de innovación, más sólida será su diferenciación en el mercado
y más se apartará de la competencia.

1 
Digital Rewrites The Rules Of Business, The Vision Report In The Digital Business Playbook, Nigel Fenwick y Ted Schadler,
26 de febrero de 2018, ©2018 Forrester Research, Inc.

4
INNOVADORES DIGITALES

Si desea innovar a escala, • Interacción directa con los clientes - Utilizar precisión de la toma de decisiones desde el
plataformas digitales para entrar en contacto área editorial a la de ventas mediante el uso de
coloque la tecnología con los clientes y atender sus necesidades datos procesables recopilados a partir de una
como elemento central de manera directa ayuda a las empresas a gran cantidad de fuentes.

de su negocio mantenerse vigentes. La interacción y atención


directa de los mercados permite a compañías
Estos nuevos modelos de negocio pueden
modificar la economía de su empresa mediante
Si los clientes guían la innovación, tendrá una como Dollar Shave Club enfocarse en cumplir
la creación de nuevos flujos de ingresos y el
dirección clara de la evolución de sus recursos las expectativas de los clientes. El proveedor
establecimiento de una diferenciación competitiva.
tecnológicos y de su negocio. Considere los online, que fue recientemente adquirido por
Este tipo de desestabilización del sector es posible
siguientes ejemplos de innovaciones de clientes Unilever, vende hojas de afeitar directamente a
cuando se cuenta con la libertad para realizar
de AWS obtenidos del informe de Forrester los clientes mediante una suscripción mensual.
pruebas sin tener que lidiar con el daño colateral
Research acerca de cómo la transformación
• Servicios y productos digitales - La creación generado por los errores.
digital “vuelve a escribir las reglas empresariales”:
de servicios y productos digitales nuevos
El desarrollo de aplicaciones modernas ayuda a
• Mercados digitales - Las organizaciones permite a las compañías generar flujos de
que la innovación digital prospere porque reduce el
ahora pueden crear plataformas digitales que ingresos completamente nuevos. Por ejemplo,
tiempo invertido en tareas operativas y deja lugar
vinculen compradores y vendedores en un Netflix transmite mediante streaming contenido
para la realización de pruebas. El uso de arquitecturas
mercado bipolar, lo que les permite obtener original. Las empresas innovadoras también
que reducen el riesgo de cualquier error en la
resultados con mayor rapidez y, en muchos están utilizando API y plataformas digitales
aplicación completa también permite a los equipos
casos, de una manera más rentable. Airbnb, para ofrecer competencias básicas: Stripe presta
probar ideas nuevas con mayor frecuencia. Cuando
Salesforce y muchas otras compañías están servicios que permiten a sus clientes mover
los equipos de desarrollo pueden probar cosas
creando mercados digitales que conectan dinero en la web de manera rápida y segura.
nuevas, realmente lo hacen. Además, probar cosas
compradores y vendedores, a menudo sin
• Servicios de información - Las empresas con el desarrollo de aplicaciones modernas es más
ser propietarios de los recursos subyacentes.
orientadas a los servicios están utilizando fácil porque los procesos de entrega de software
datos para optimizar competencias básicas y nuevos permiten a los desarrolladores lanzar ideas
mejorar los índices de éxito de los negocios nuevas con mayor rapidez y frecuencia.
nuevos. The Financial Times logró mejorar la

“Creemos que todas las compañías deberían convertirse en innovadores digitales.


Todos los CEO deben reinventar continuamente sus empresas con tecnología
madura como base, o bien mirar cómo sus clientes los abandonan y cómo se
desestabilizan los mercados”. 1
1
Digital Rewrites The Rules Of Business, The Vision Report In The Digital Business Playbook, Nigel Fenwick y Ted Schadler, 26 de febrero de 2018, 5
©2018 Forrester Research, Inc.
PRÁCTICAS SÓLIDAS

El desarrollo de aplicaciones Prácticas recomendadas para el desarrollo


modernas es una estrategia eficiente de aplicaciones modernas
para diseñar, crear y administrar
software en la nube. Esta estrategia
sólida aumenta el nivel de agilidad 1 Favorecer la realización de pruebas mediante el establecimiento de una cultura
de sus equipos de desarrollo, de responsabilidad

además de la fiabilidad y seguridad


2 Utilizar microservicios para crear aplicaciones integradas por componentes
de sus aplicaciones, lo que le permite
crear y lanzar mejores productos con 3 Actualizar aplicaciones e infraestructura rápidamente mediante la automatización
mayor rapidez. A partir de nuestra de la canalización de lanzamientos

experiencia en asesoramiento para


4 Modelar y aprovisionar recursos para aplicaciones mediante el uso de infraestructura
la creación de aplicaciones destinado
como código
a organizaciones de todas las clases,
hemos identificado las siete prácticas 5 Simplificar la administración de infraestructura con tecnologías sin servidor
recomendadas para el desarrollo de
aplicaciones modernas que utilizan 6 Incrementar la visibilidad para mejorar el rendimiento de las aplicaciones

los innovadores modernos para


7 Proteger el ciclo de vida entero de las aplicaciones mediante la automatización
lograr sus metas. de los procesos de seguridad

6
UNA CULTURA DE RESPONSABILIDAD

Favorecer la realización productos son responsables de su ejecución y


mantenimiento. Responsabiliza a los equipos de
empoderados para desarrollar y lograr nuevos
resultados para los clientes. La autonomía genera
de pruebas mediante el productos del desarrollo de la totalidad de un motivación, le abre la puerta a la creatividad y
establecimiento de una producto, no de una fracción. desarrolla una cultura en la que se toman riesgos
dentro de un entorno de confianza.
cultura de responsabilidad Después de una década de crear y ejecutar una
aplicación web con un alto nivel de escalabilidad, Si bien la adopción de una cultura de
La innovación proviene, básicamente, de las Amazon.com, aprendimos de primera mano la responsabilidad no es una tarea técnica por
personas. Por lo tanto, permitirles obtener importancia de otorgar autonomía a nuestros naturaleza, continúa siendo uno de los aspectos
mejores resultados para los clientes es la primera equipos. Cuando les dimos a nuestros equipos la más desafiantes del desarrollo de aplicaciones
etapa del desarrollo de aplicaciones modernas. responsabilidad de llevar a cabo el ciclo completo modernas. Empoderar a los equipos para que sean
Utilizamos el concepto de “productos, no de la aplicación, incluidas las tareas de tener en responsables de los productos implica un cambio
proyectos” para describir la manera en la que cuenta los comentarios de los clientes, planificar de mentalidad en su organización, de estructura
esto afecta la estructura de los equipos. En pocas la hoja de ruta y desarrollar y hacer funcionar la de los equipos y del trabajo que tienen a cargo.
palabras, significa que los equipos que crean aplicación, se hicieron responsables y se sintieron

7
CULTURA DE RESPONSABILIDAD/CAPITAL ONE

Capital One se dio cuenta de la importancia Mediante la modificación de la manera en la que “Establecer una cultura de desarrolladores
de convertirse en una excelente compañía de entrega software con la nube de AWS, Capital sólida es importante para atraer y conservar
tecnología digital para poder continuar siendo One logró reducir el tiempo necesario para crear profesionales talentosos. Adoptar un proceso
un excelente banco. Con ese objetivo en mente, infraestructura de aplicaciones en un 99 %. El de DevOps en la nube es tan solo otra manera
adoptaron un modelo de DevOps para sus cambio también fomentó una cultura de mayor mediante la cual podemos fomentar y respaldar
equipos de productos. Este modelo unifica los colaboración y ayudó a la compañía a atraer la existencia de equipos independientes y
equipos de desarrollo y operaciones y utiliza excelentes desarrolladores. autónomos que se sientan empoderados para
automatización, monitorización e integración hacer su mejor trabajo todos los días”.
continua de código nuevo para lograr ciclos
–George Brady, vicepresidente ejecutivo y director
de desarrollo más rápidos.
de tecnología, Capital One

8
MICROSERVICIOS

Utilizar microservicios para


crear aplicaciones integradas
por componentes
Si bien es posible que actualmente su aplicación monolítica sea fácil de
administrar, los desafíos aumentarán a medida que su negocio crezca,
incluida la manera de distribuir las responsabilidades vinculadas con la
aplicación entre los equipos. Puede generar una cultura de responsabilidad
sólida y aún así tener dificultades para aumentar la escala si la arquitectura
de su aplicación tiene dependencias estrechas que no permiten a los
equipos asumir responsabilidades en relación con el producto final. Este
es el motivo por el cual recomendamos crear arquitecturas basadas en
microservicios para aplicaciones que crecen y se modifican rápidamente.

Los microservicios son la expresión arquitectónica de una cultura de


responsabilidad, ya que dividen claramente aplicaciones complejas en
componentes que un único equipo puede ejecutar y del cual puede hacerse
responsable de manera independiente. En una aplicación monolítica, existen
8 razones por las cuales las aplicaciones modernas
muchos desarrolladores que implementan cambios en toda una canalización
se crean con microservicios
de lanzamientos compartida, lo que provoca fricción en muchos puntos del
ciclo de vida. Durante la etapa de desarrollo, los ingenieros deben coordinar
los cambios por adelantado para asegurarse de no afectar el código de otro 1 Elija la herramienta correcta para el trabajo
profesional. Para poder actualizar una biblioteca compartida con el objetivo de
2 Mejore la resiliencia de las aplicaciones
aprovechar las ventajas de una característica nueva, es necesario convencer a
todos los demás de que lo hagan al mismo tiempo, ¡una tarea difícil! Además, 3 Suministre un escalado pormenorizado para controlar los costos
si desea implementar una corrección importante en una característica, 4 Optimice la productividad de su equipo
igualmente necesita combinarla con las modificaciones en progreso.
5 Simplifique las reconexiones de servicios en composiciones nuevas
Con posterioridad a la etapa de desarrollo, también deberá enfrentar una
6 Permita a sus equipos realizar pruebas con un menor nivel
carga cuando implemente cambios en la canalización de entrega. Inclusive
de riesgo
cuando realizan un cambio en una solo línea de una sección pequeña de
código, los ingenieros deben coordinar los cambios con anticipación, combinar 7 Respalde una adopción más ágil de tecnología nueva
su código, resolver conflictos con lanzamientos, volver a compilar la aplicación 8 Integre características nuevas de manera segura y rápida
entera, ejecutar todos los conjuntos de pruebas e implementarla nuevamente.

9
MICROSERVICIOS

Para una compañía en rápido crecimiento que TODO Y UNA SOLA COSA: DOS TIPOS DE APLICACIONES
intenta innovar y competir, este contexto de
sobrecargas y lentitud es inaceptable. Si adopta
los microservicios, puede dividir una aplicación
Aplicaciones monolíticas Hace todo
monolítica en servicios de funciones mínimos que
se pueden implementar juntos para lograr un Aplicación única
caso de uso más amplio. Los equipos que crean
cada microservicio asumen la responsabilidad Debe implementarse una aplicación entera
de diseñar, implementar, proveer respaldo en
Una base de datos
producción, introducir correcciones y, sobre todo,
se encargan de la calidad. Organización en función de capas de tecnología

La independencia tiene sus beneficios. Cuando Estado en cada instancia de tiempo de ejecución
una aplicación monolítica se divide, cada
microservicio cuenta con su propio almacén de Una pila de tecnología para la aplicación entera
datos completamente descentralizado. Ya no
existen bus de servicios empresariales, bases de
Aplicación monolítica
datos únicas ni ningún recurso integral. También
es posible modificar y actualizar cada componente
con rapidez, sin afectar demasiado la aplicación en Microservicios Hace una cosa
su conjunto. Ahora que logró reducir el impacto de
cualquier cambio, puede empezar a probar ideas Servicios de funciones mínimos
nuevas con mayor frecuencia y menor riesgo.
Implementación individual, interacción conjunta

Cada uno tiene su propio almacén de datos

Organización en función de capacidades empresariales

El estado se externaliza

Posibilidad de elegir recursos tecnológicos para cada


microservicio

10
MICROSERVICIOS/YELP

Gracias a su firme enfoque en conectar a las El equipo de Yelp utilizó AWS Step Functions “Podemos seleccionar tareas
personas con empresas locales, Yelp logró para refactorizar su proceso monolítico de forma individuales de manera flexible
generar una de las comunidades más leales segura y gradual, modelando tareas pequeñas
y migrarlas a AWS Lambda, y
de Internet. La compañía tomó la decisión de individualmente mientras incorporaba pasos
reemplazar su proceso monolítico de facturación nuevos al flujo de trabajo. Esta metodología Step Functions nos compaña durante
de suscripciones, que controla una sección suministró mayores niveles de visibilidad para todo el trayecto desde la estructura
de vital importancia para sus operaciones: realizar un seguimiento del progreso de cada monolítica a la sin servidor, lo que nos
compras recurrentes en más de 100 000 cuentas etapa, coherencia del manejo integrado de errores, ayuda a crear rápidamente sistemas
publicitarias. Yelp trabajó junto con AWS para eficiencia de marcos paralelos y flexibilidad para
más eficientes y resilientes”.
transformar de manera segura la plataforma de ejecutar tareas independientemente de si se
facturación crítica para el negocio en un entorno encuentran en entornos locales, en contenedores –Dave Marin, ingeniero de minería de datos, Yelp
sin servidor basado en microservicios modernos o en funciones.
alojados en la nube.

11
AUTOMATIZAR LA CANALIZACIÓN DE LANZAMIENTOS

Actualice aplicaciones e infraestructura


mediante la automatización de
la canalización de lanzamientos
Las arquitecturas basadas en microservicios permiten a los equipos trabajar
con mayor agilidad, lo que significa que tendrá muchas cosas para lanzar...
¡excelente! Sin embargo, no podrá ofrecer nuevas características con mayor
rapidez a sus clientes si la canalización de lanzamientos está empantanada.
Los procesos manuales son los principales responsables de la lentificación de
las canalizaciones de lanzamientos tradicionales. Cuando estudiamos nuestros
procesos, descubrimos que los procesos manuales presentes en todo el proceso
de lanzamiento, desde los cambios en el código y las solicitudes de creación a las
pruebas y la implementación, eran el principal obstáculo de la velocidad de los
lanzamientos. Cada paso que no estaba automatizado generaba posibilidades
de que se produjesen demoras y errores manuales.

Para poder agilizar dicho proceso, debe automatizar cada uno de esos pasos.
Mediante la automatización, puede crear un movimiento repetible que aumente la
velocidad de su rueda. Estos procesos se denominan integración continua y entrega
continua (CI/CD). Automatizar la canalización de lanzamientos a través de CI/CD Más detalles:
ayuda a los equipos a lanzar código de alta calidad con mayor rapidez y frecuencia.
Integración continua - La integración continua es una práctica
Los equipos que adoptan CI/CD envían más código y lo hacen con más de desarrollo de software en la que los desarrolladores fusionan
celeridad. De hecho, según el informe "Puppet state of DevOps", los equipos que modificaciones de código en un repositorio centralizado.
implementan estas prácticas tienen un índice de error 5 veces inferior, un plazo A continuación, se ejecutan compilaciones y pruebas automatizadas.
desde la etapa de confirmación a la de implementación 440 veces más rápido y un La integración continua se refiere con más frecuencia a la etapa de
índice de implementaciones con una frecuencia 46 veces superior. Particularmente, compilación o integración del proceso de lanzamiento de software e
los equipos que incorporan CI/CD invierten el 44 % de su tiempo en la creación de incluye tanto un componente de automatización (por ej., un servicio
características y código nuevos en vez de en administrar procesos y herramientas. de compilación o CI) y un componente cultural (por ej., aprender
Las canalizaciones de CI/CD se han convertido en la nueva planta de producción para a realizar integraciones con frecuencia).
la creación de aplicaciones modernas. En Amazon, comenzamos a usar CI/CD para
aumentar la velocidad con la que se realizaban los lanzamientos y los resultados Entrega continua - La entrega continua es una práctica de desarrollo
fueron increíbles: logramos millones de implementaciones al año y el nivel de de software en la que las modificaciones de código se preparan
agilidad sigue aumentando de un año al siguiente. Para que las compañías puedan automáticamente para entregarse en la etapa de producción. La
beneficiarse de nuestra experiencia, creamos un conjunto de herramientas destinadas entrega continua se amplía sobre la integración continua mediante
a desarrolladores que están basadas en las herramientas que utilizamos internamente. la implementación de todos los cambios de código en un entorno
De esta manera, nuestros clientes pueden entregar código con mayor rapidez. de pruebas o de producción después de la etapa de compilación.

12
AUTOMATIZACIÓN CI/CD/LULULEMON

Con AWS, Lululemon Athletica pone en Lululemon disminuyó el tiempo necesario para “Cualquier canalización de integración e
funcionamiento entornos de desarrollo en cuestión crear nuevas cuentas de producción de dos días a implementación continuas debe ser automatizada,
de minutos en vez de días, automatiza el entorno y unos pocos minutos mediante el uso de plantillas fácil de administrar y detectable, y eso es
permite el uso de la integración e implementación de AWS CloudFormation y AWS CodePipeline. El exactamente lo que obtenemos mediante el uso
continuas. La compañía canadiense vende incremento de agilidad permitió a los equipos de de AWS. Obtenemos un nivel de simplicidad y
vestimenta inspirada en el yoga y otras prendas de desarrollo de Lululemon realizar pruebas y lograr transparencia que no podíamos lograr en nuestro
vestir en más de 350 ciudades de todo el mundo. las mejores soluciones en vez de conformarse con entorno local anterior”.
Lululemon ejecuta sus entornos de desarrollo y aquello para lo que tenían recursos asignados.
–Sam Keen, director de arquitectura de productos,
pruebas (así como una próxima aplicación móvil) Lululemon
en la nube de AWS.

13
INFRAESTRUCTURA COMO CÓDIGO

Modelar y aprovisionar recursos para aplicaciones


mediante el uso de infraestructura como código
Cuando se cuenta con una arquitectura de servicios back-end, transacciones y elementos
aplicaciones modular y se lanzan recursos muy similares. Sin embargo, en la actualidad, cualquier
rápido, hay muchas partes movibles, y estas se recurso puede ser código fuente: servidores,
mueven a una velocidad realmente alta. Cuando firewalls, routers, balanceadores de carga, permisos
se realizan modificaciones manuales en un de identidad, alertas de monitorización, todo esto.
entorno, es fácil introducir errores que pueden En la nube, es posible obtener acceso a todos los
afectar la aplicación. Además, a medida que recursos mediante una API y aprovisionarlos bajo
aumente la escala de su aplicación, ajustar la demanda y de manera elástica; puede usar código
escala de su infraestructura sin inconvenientes para automatizar todo.
puede transformarse en un desafío. Para lograr
que todos sus recursos funcionen de la forma Mediante el uso de infraestructura como código,
esperada, necesita un entorno coherente que puede aprovisionar sus recursos de una manera
pueda modificarse y cuya escala pueda ajustarse segura y repetible, lo que le permite compilar y
en función de las necesidades de las aplicaciones. volver a compilar su infraestructura y aplicaciones
Enfrentamos este desafío mediante el modelado sin tener que realizar acciones manuales ni escribir
de todos los recursos de las aplicaciones y de la secuencias de comando personalizadas. En cambio,
infraestructura como código. sus equipos pueden realizar cambios con control
del código fuente y permitir que la canalización
La infraestructura como código le permite pruebe e implemente las actualizaciones. Esta
aprovisionar y modificar recursos mediante estrategia no solo reduce los índices de error,
programación a través del uso de código. Funciona sino que también agiliza radicalmente el proceso
como su única fuente de verdad para que pueda de implementación de infraestructura.
estandarizar componentes de infraestructura,
mantener ajustes de configuración que cumplan
requisitos de conformidad y resolver problemas con
mayor rapidez. La infraestructura tradicional estaba
basada en hardware y el código fuente tradicional
era sitios web, aplicaciones, lógica de negocio,

14
INFRAESTRUCTURA COMO CÓDIGO/WASHINGTON POST

The Washington Post reestructuró su modelo a los usuarios crear rápidamente sus propias “La capacidad para realizar implementaciones con
empresarial mediante la creación de Arc aplicaciones en la plataforma a través del uso del rapidez es fundamental. Cuando se necesita iterar
Publishing, una plataforma de SaaS que permite código de dichas plantillas. Con un compromiso con agilidad en un sistema, dicha capacidad es un
a cualquier compañía del sector de medios de enfocado en el mantenimiento del nivel de gran beneficio. Eso es lo que logramos con AWS”.
comunicación aprovechar la plataforma de calidad y de la velocidad, The Post permite a sus
–Patrick Cullen, arquitecto en jefe, The Washington Post
publicación escalable y flexible que The Post equipos distribuidos innovar de manera autónoma
desarrolla para sus propios fines. Arc, que está con supervisión mínima. Dicha libertad, sumada a
diseñada para lograr una innovación constante, la habilidad del periódico para conservar equipos
tiene más de 100 microservicios conformados pequeños y ágiles, ayudó a que Arc Publishing se
por más de 3000 contenedores que se ejecutan convirtiese en un éxito más allá de las paredes
en más de 150 instancias de Amazon EC2. de su propia sala de redacción. Mediante el uso
de una plataforma de desarrollo personalizada,
The Post adoptó una estrategia de infraestructura también creada en AWS, Arc finaliza diariamente
como código (IaC) en relación con la creación más de 50 implementaciones.
de plantillas de infraestructura, lo que permite

15
TECNOLOGÍAS SIN SERVIDOR

 implificar la administración de
S ¿Cuál es la definición de la modalidad sin servidor en AWS?

infraestructura con tecnologías Cuando decimos "sin servidor", nos referimos a la eliminación de las
operaciones de servidor, tareas arduas que no marcan ninguna diferencia.
sin servidor Esta es una distinción importante porque le permite enfocarse en la
creación de aplicaciones en vez de en la administración y el escalado de la
A medida que se modifiquen los procesos de entrega de software y los
infraestructura necesaria para respaldar la aplicación. Los cuatro principios
patrones de arquitectura, probablemente quiera adoptar un modelo operativo
de un modelo operativo sin servidor son:
que le permita quitar cualquier actividad que no sea una competencia principal
de su empresa. Para lograr un nivel de agilidad que le permita innovar con
1. Eliminación de la administración de servidores – No es necesario
rapidez, recomendamos crear arquitecturas basadas en microservicios que
aprovisionar ni mantener servidores. No se debe instalar, mantener
utilicen tecnologías sin servidor, siempre que sea posible.
ni administrar software ni tiempo de ejecución.

Las tecnologías sin servidor le permiten crear y ejecutar aplicaciones y


2. Escalado flexible – Es posible configurar la escala de su aplicación
servicios sin aprovisionar ni administrar servidores. Las tecnologías sin
automáticamente o bien ajustar su capacidad mediante la alternancia
servidor le proveen un modelo operativo que elimina la administración
de las unidades de consumo (por ej., nivel de procesamiento, memoria)
de servidores, suministra un ajuste de escala flexible, le permite pagar
en vez de las unidades de servidores individuales.
únicamente por recursos que generen valor y automatiza la disponibilidad
alta. Este modelo le permite crear y administrar los aspectos de su aplicación
3. Pago por valor – En vez de pagar por unidades de servidor, pague por lo
que generan valor para los clientes sin tener que preocuparse por los
que valora: nivel de procesamiento estable o duración de las ejecuciones.
detalles subyacentes.

4. Alta disponibilidad automatizada – Las tecnologías sin servidor


proveen disponibilidad y tolerancia a errores integradas. No debe
diseñar una arquitectura para estas capacidades, ya que los servicios
que ejecutan la aplicación las suministran de manera predeterminada.

Las tecnologías sin servidor son ideales para las compañías de gran crecimiento que desean
innovar con rapidez. Estas tecnologías respaldan el trabajo de equipos responsables encargados
de crear aplicaciones modernas y evita que estos deban pensar en servidores; con la modalidad
sin servidor, todo está automatizado. Las tecnologías sin servidor permiten a los equipos trabajar
aún más rápido y conservar un enfoque específico en las actividades que diferencian su empresa,
de manera que pueda aumentar la velocidad de su rueda de la innovación.
16
VISIBILIDAD

Incrementar la visibilidad para mejorar


el rendimiento de las aplicaciones
Visualizar una aplicación monolítica creada en un en el sistema. Necesita todas las métricas y los También es fundamental saber qué implica un estado
entorno local era una tarea relativamente sencilla; datos para obtener una visibilidad a nivel de la correcto, y la estandarización es importante: debe
debía usar software de monitorización en el servidor aplicación y, a continuación, correlacionarlos con ver el sistema de una manera integral. Cuando se
principal. El mundo de la monitorización es diferente el comportamiento de los clientes a los fines de cuenta con una vista unificada de todos los recursos
y más desafiante cuando se trata de las aplicaciones optimizar la experiencia del cliente. Esto significa (y puede conseguirla en tiempo real), puede resolver
modernas. Los microservicios aumentan el nivel de recopilar el mayor volumen de datos posible y rápidamente problemas de clientes y aplicaciones
complejidad de la monitorización en la etapa de monitorear los componentes pequeños, desde a los fines de mejorar el rendimiento general.
producción porque hay muchas cosas para monitorear registros a métricas de aplicaciones. Una mayor
y estas pueden tener dependencias entre sí. Es visibilidad del estado de sus servicios y aplicaciones
probable que los microservicios se encuentren en le permite resolver problemas con mayor rapidez.
muchos lugares debido a la naturaleza distribuida de su Visibilidad
aplicación. Además, es posible que sus microservicios Vista integral de un sistema
Una visibilidad completa lo ayuda a obtener
se estén ejecutando en "servidores transitorios" y que
respuestas rápidamente e implica el uso de métricas,
algunos de estos solo se ejecuten durante unos pocos entero
registros y seguimientos. A los fines de mejorar el
segundos. Entonces, ¿cómo se logra una visualización
nivel de visibilidad, haga que sus servicios expongan
precisa y en tiempo real de una aplicación?
métricas básicas por sí mismos: índices de respuesta,
índices de error, etc., para que usted pueda recopilar
La visibilidad necesita:
Necesita una visualización integral del sistema que y agregar la mayor cantidad de datos posible. Puede métricas, registros, seguimientos
pueda realizar un seguimiento de todas las métricas monitorear los componentes pequeños y usar
y correlacionarlas para suministrar un único panel agregación para ver un panorama mayor; monitorear
de referencia con información de lo que sucede los microservicios para monitorear la aplicación.

17
SEGURIDAD Y CONFORMIDAD

Proteger el ciclo de
vida entero de las
aplicaciones mediante
la automatización de los
procesos de seguridad CANALIZACIÓN DE ENTREGA
Si bien esta práctica recomendada se incluyó
al final, no se equivoque: la seguridad de las
Compilar Probar Lanzar
aplicaciones es la mayor prioridad. La seguridad y
la conformidad deben incluirse en cada etapa del
ciclo de vida del desarrollo de aplicaciones y en
cada componente de la aplicación. Usted desea
garantizar que sus aplicaciones funcionen de la Desarrolladores Seguridad Clientes
manera prevista (y solo de la manera prevista)
para poder proteger su empresa y sus clientes. www

Los patrones de arquitectura basados en


microservicios pueden mejorar el nivel de seguridad de Planificar Monitorear
sus aplicaciones mediante el suministro de un control
pormenorizado de las políticas de seguridad de cada
microservicio individual. Sin embargo, una arquitectura BUCLE DE RETROALIMENTACIÓN
de microservicios también presenta desafíos debido a
la mayor área expuesta que debe proteger. La manera
de abordar este desafío es mediante la automatización
Los procesos de configuración y automatización seguros se necesitan...
de los procesos de seguridad. Proteger aplicaciones en
la nube significa trasladar las capacidades de seguridad Mientras los recursos se compilan, prueban y lanzan
a un nivel más profundo dentro de la estructura de Después de la implementación de los recursos (para garantizar
ingeniería del software y abordar la seguridad en todo que sigan configurados de la manera en la que se los diseñó)
el ciclo de vida de las aplicaciones, no solo en puntos
de verificación. Automatizar el proceso que permite
comprobar si las características de seguridad están
funcionando de la manera prevista ayuda a mantener
las aplicaciones protegidas sin lentificar el ciclo
de desarrollo.

18
SEGURIDAD Y CONFORMIDAD

Recomendamos introducir seguridad en el flujo de


trabajo de desarrollo (denominado DevSecOps) durante
la fase anterior a la implementación. Con posterioridad
a la implementación, el equipo puede garantizar que
la configuración que aprobó siga intacta; y, como está
basada en la nube, puede registrar notificaciones y
eventos automatizados de los cambios introducidos en
la infraestructura. También puede registrar y procesar
dichos eventos y notificaciones para implementar acciones,
como detecciones, alertas, correcciones, respuestas o
investigaciones. Las políticas de seguridad automatizadas
de principio a fin le proveerán más información sobre
cualquier cambio introducido en su entorno.

Más detalles:

DevOps es la combinación de filosofías culturales, prácticas y herramientas


que aumenta la capacidad de una organización para entregar aplicaciones
y servicios a gran velocidad: desarrollar y mejorar productos con un ritmo
mayor que el de las organizaciones que utilizan procesos de administración
de infraestructura y desarrollo de software tradicionales.

DevSecOps es la filosofía de integrar prácticas de seguridad en el proceso


de DevOps. DevSecOps implica crear una cultura de “seguridad como
código” mediante colaboraciones constantes y flexibles entre los ingenieros
encargados de los lanzamientos y los equipos de seguridad.

19
SEGURIDAD Y CONFORMIDAD/FICO

FICO provee un servicio de calificación crediticia desarrolladores pudieran enfocarse más en la ahora se puede finalizar en un día. A los fines de
y otros servicios al 95 % de las instituciones creación de características y funcionalidad, FICO limitar qué código se envía a producción, FICO
financieras más grandes de los EE.UU. Innovar quería migrar DMS a la nube. Al mismo tiempo, usa un ciclo de vida de desarrollo de software
con rapidez es clave para ser líder del sector. debía ofrecer un nivel de seguridad sólido y administrado para garantizar que los datos
Sin embargo, durante muchos años, FICO no continuar cumpliendo con las normas de PCI, financieros de sus clientes cumplan las obligaciones
contó con la agilidad necesaria para desarrollar GDPR, entre otras. de conformidad correspondientes. Para ello, utiliza
e implementar sus soluciones, como su producto herramientas de seguridad propias y servicios de
Después de evaluar las opciones disponibles,
estrella FICO Decision Management Suite AWS para cumplir todos los requisitos normativos
FICO migró DMS a AWS, lo que permitió a la
(DMS), con rapidez. Con el objetivo de que los y de seguridad.
organización introducir más innovación al mercado,
y con mayor rapidez. Lo que solía llevar semanas

20
RESUMEN FINAL

Comience a implementar el desarrollo La combinación del desarrollo de aplicaciones


modernas con AWS permite...
de aplicaciones modernas hoy mismo
> Conservar el nivel de rendimiento

El desarrollo de aplicaciones modernas crea una


> Mejorar la fiabilidad
diferenciación competitiva porque permite innovar
con rapidez. Mediante la modificación de su patrón > Proteger la empresa y sus usuarios

de arquitectura, modelo operativo y proceso de > Incrementar la productividad de los desarrolladores


entrega de software a través del uso de prácticas
recomendadas para el desarrollo de aplicaciones > Reducir el plazo para la comercialización

modernas, puede transformar recursos de > Aumentar los ingresos


operaciones estándares en actividades diferenciadas.
> Disminuir los costos operativos
Puede realizar más pruebas y convertir ideas en
lanzamientos con mayor rapidez. Puede generar
un entorno en el que los compiladores inviertan
más tiempo en tareas de creación. Las prácticas de
desarrollo de aplicaciones modernas son la manera
en la que las organizaciones, incluido Amazon,
innovan con velocidad y agilidad.

Cualquier punto de partida. Cualquier


aplicación. Cualquier innovación. AWS
concreta el desarrollo de aplicaciones
modernas.

21
© 2019, Amazon Web Services, Inc. o sus empresas afiliadas. Todos los derechos reservados.
RESUMEN FINAL

El desarrollo de aplicaciones
modernas en AWS
Millones de clientes de todo el mundo (incluidas las startups de mayor crecimiento, Más información acerca de cómo
grandes corporaciones y agencias gubernamentales líderes) confían en AWS para implementar prácticas recomendadas para
respaldar su infraestructura, incrementar el nivel de agilidad y disminuir los costos.
AWS ofrece una cartera integral de servicios para respaldar su negocio mientras
el desarrollo de aplicaciones modernas g
desarrolla aplicaciones modernas.

AWS para el desarrollo de aplicaciones modernas

MICROSERVICIOS SIN SERVIDOR

Informática sin servidor Servicio de cola Mensajería de Organización Bases de datos MYSQL
basada en eventos de mensajes publicación o suscripción AWS Step y POSTGRESQL
AWS Lambda Amazon SQS Amazon SNS Amazon Aurora Serverless

Contenedores Administración de API Almacenamiento Base de datos no basada


sin servidor Amazon API Gateway de objetos en SQL
AWS Fargate Amazon S3 Amazon DynamoDB

DESARROLLO, ENTREGA Y VISIBILIDAD

Aprovisionamiento Entrega continua IDE basado Auditoría Monitorización Depuración


de infraestructura AWS CodePipeline en la nube de usuarios Amazon CloudWatch AWS X-Ray
AWS CloudFormation AWS Cloud9 AWS CloudTrail

SEGURIDAD

Control del acceso Detección de amenazas Nube virtual privada Protección contra Administración de
AWS Identity and Access Amazon GuardDuty Amazon Virtual Private ataques DDOS certificados SSL/TLS
Management (IAM) Cloud (VPC) AWS Shield AWS Certificate Manager

Inicio de sesión único Administración Administración de Administración de WAF Claves de cifrado


AWS Single Sign de cuentas asuntos de seguridad AWS Firewall Manager AWS Key Management
On (SSO) AWS Organizations Amazon Inspector Service (KMS)

22

Você também pode gostar