Existen varios enfoques modernos para la arquitectura y el desarrollo de aplicaciones que, en esencia, se resumen en «hacerlas más pequeñas y, por tanto, más eficientes».
Tanto los microservicios como las funciones como servicio (FaaS) se basan en el concepto de código altamente especializado. Si bien es cierto que la mayoría de las organizaciones no están descomponiendo sus aplicaciones en cientos de microservicios o miles de funciones, sí están adoptando progresivamente este diseño. A menudo, esto se debe a que facilita el desarrollo ágil, ya que un equipo relativamente pequeño puede diseñar, desarrollar y perfeccionar un servicio mucho más rápido que una aplicación monolítica de gran tamaño. Al fin y al cabo, es mucho más fácil escribir y probar algo que tiene 1000 líneas de código que una aplicación más grande que alcanza las 100.000 líneas.
Pero hay otra ventaja interesante de los microservicios y FaaS que no se destaca tanto como debería: la seguridad.
Hay muchos debates en Internet —y he leído bastantes— que intentan determinar la densidad «media del sector» de defectos y vulnerabilidades. Encontrarás estimaciones muy diversas: algunas se basan en análisis reales de código abierto y otras, en cifras declaradas por los propios interesados. La NASA, por ejemplo, ha destacado con orgullo su bajísima densidad de defectos como una de las razones del éxito del programa del transbordador espacial. También hay informes basados en datos recopilados de forma objetiva por empresas de seguridad como WhiteHat, pero sus cifras se centran en las vulnerabilidades por aplicación y no necesariamente por línea de código.
No existe un consenso real sobre la densidad de defectos y vulnerabilidades, salvo en que, efectivamente, existe.
Sin embargo, es lógico pensar que cuantas menos líneas de código escribas, menos probabilidades habrá de introducir defectos y vulnerabilidades. Igual de importante es que, cuantas menos líneas de código tengas que revisar para encontrar una vulnerabilidad o un defecto, más rápido lo encontrarás y, cabe suponer, lo corregirás.
Una de las razones por las que esto es así es el alcance. Si mi microservicio o función se centra en codificar un aspecto de la lógica de negocio, se necesita menos lógica y menos bibliotecas para implementarlo. Ese alcance más reducido implica menos posibilidades de introducir errores en la lógica o vulnerabilidades en las bibliotecas (de terceros o de otro tipo) necesarias para implementar esa lógica adicional. Cada vez que hay que incluir otro componente o realizar una llamada a otro servicio, se abre la puerta a posibles defectos y vulnerabilidades.
Disponer de menos interfaces para la función o el microservicio también contribuye a que el código sea más seguro. Cada interfaz (un punto de entrada, como una llamada a una API) introduce la posibilidad de que exista una vulnerabilidad, ya que se están procesando datos introducidos por el usuario. Y, como todos sabemos, los datos introducidos por el usuario siempre deben considerarse sospechosos y potencialmente maliciosos.
Y si los microservicios reducen la posibilidad de que existan vulnerabilidades y defectos, limitar aún más el alcance a una función debería reducirla todavía más.
Ahora bien, esto no quiere decir que los microservicios y FaaS sean intrínsecamente más seguros que sus equivalentes monolíticos y de tres capas. El código descuidado sigue siendo código descuidado, independientemente del número de líneas que tenga. Pero sí es cierto que ambas arquitecturas favorecen prácticas de desarrollo y entrega que pueden dar lugar a un código más seguro.
Tener presentes las ventajas de seguridad al evaluar o implementar microservicios o FaaS puede ayudar a evitar que el código se vuelva innecesariamente complejo, además de impedir la introducción de vulnerabilidades.
Sobre el autor

Lori MacVittie es ingeniera distinguida y evangelista jefe en la Oficina del CTO de F5, y cuenta con una amplia experiencia en entrega de aplicaciones, estrategia de automatización e infraestructura. Es conocida por convertir la complejidad en claridad, ya sea definiendo mecanismos de protección para agentes de IA, analizando arquitecturas multinube frágiles o explorando los límites de los sistemas escalables. Aporta más de treinta años de experiencia en el sector en desarrollo de aplicaciones, arquitectura de TI y operaciones de redes y sistemas. Antes de incorporarse a F5, fue una galardonada editora de tecnología. MacVittie posee un máster en Informática y es una autora prolífica cuyas publicaciones abarcan la seguridad, la nube y la arquitectura empresarial. También es una apasionada de los juegos de mesa y los videojuegos, y expresa sin complejos sus firmes opiniones sobre el queso.
Más artículos de Lori Mac VittieArtículos relacionados del blog

Cree servicios públicos seguros, resilientes y preparados para la IA con F5 y AWS
Descubre cómo las organizaciones del sector público pueden modernizar de forma segura sus aplicaciones y soluciones de IA, al tiempo que gestionan los sistemas heredados, el cumplimiento normativo y el riesgo operativo.
Protección de los sistemas de IA: por qué la seguridad debe avanzar al ritmo de la innovación
Desde acelerar avances revolucionarios en medicina y educación hasta transformar la vida cotidiana, la IA está cambiando nuestra forma de vivir y trabajar. Pero también ofrece grandes oportunidades a los ciberdelincuentes.
Avanzar hacia la optimización digital tras la transformación
Descubre estrategias de optimización digital para garantizar políticas de seguridad coherentes, impulsar la madurez de la transformación digital y superar los retos de la transformación.
Proyecto de código abierto destacado: mayor observabilidad con F5 Cloud Logger iApp
En el punto de mira del código abierto: cómo aumentar la observabilidad. Lee el blog de F5 para descubrir cómo exportar fácilmente la telemetría de BIG-IP a plataformas modernas de análisis en la nube.
El estado de la entrega de aplicaciones en 2018: la transformación digital impulsa la automatización y la multinube pese a las preocupaciones de seguridad
Descubre las principales conclusiones del cuarto informe anual de F5 sobre el estado de la entrega de aplicaciones.
Estado de la entrega de aplicaciones en 2017: automatización, API y DevOps
Descubre el informe sobre el estado de la entrega de aplicaciones de 2017. Lee el blog retrospectivo de F5 sobre los inicios del auge de las redes declarativas y los flujos de DevOps.