Header Ads Widget

Ticker

6/recent/ticker-posts

Las ramificaciones a largo plazo del mal diseño de API

 



Nuestro panorama digital está dominado por los servicios, muchos de los cuales impulsan las experiencias diarias en las que confiamos. La banca, el entretenimiento y muchas otras industrias ofrecen funciones básicas a sus clientes a través de sus API. ¿Qué sucede cuando las prácticas de diseño son mediocres?

La trampa de la gratificación instantánea

El diseño y la implementación de API están estrechamente relacionados, para bien o para mal. Presentar sus API primero tiene una ventaja comercial real. Los clientes pueden integrar sus servicios incluso antes de consultar a la competencia. Esta potencial ganancia a corto plazo es atractiva. Podemos discutir la guerra ideológica entre ingeniería y marketing, pero es mejor reservarlo para otro momento (o quizás para una sesión de terapia de grupo).

Buscar la gratificación instantánea es comprensible, pero peligroso. Es como desarrollar una API de tienda de campaña cuando sus servicios principales realmente requieren barras de refuerzo gruesas. Idealmente, el proceso de diseño incluiría pruebas de estrés y optimización exhaustivas. La confiabilidad también es crucial.

Impulsar un diseño de API en producción podría resultar en algunas cosas:

  • Aumento de los costos y las pérdidas a largo plazo para usted y sus clientes
  • Tiempo de inactividad inesperado
  • Escalabilidad mediocre y poca seguridad
  • Falta de coherencia, que puede dañar la experiencia del desarrollador.

Los proveedores deben darse cuenta de que ser el primero no es necesariamente lo mejor. Cualquier defecto de diseño se amplifica a medida que crece la base de usuarios. Esto puede provocar un caos tecnológico. Queremos detectar errores en el desarrollo, no en la producción, para que sean más fáciles y económicos de corregir. Si realmente queremos discutir el costo, los principales problemas de API pueden alejar a los clientes de sus soluciones.

No desea que los usuarios potenciales y descontentos acudan a otras API. Recuperar a los usuarios es una tarea desafiante. Eso puede resultar extremadamente frustrante para una empresa. Incluso podría hacer que los desarrolladores decidan que la creación de API no vale la pena , lo que puede dañar a la organización en el futuro.

Costos de montaje

Hicimos referencia a cómo el vuelo del usuario puede afectar su resultado final. Los recursos necesarios para solucionar problemas importantes pueden ser inmensos. La resolución de problemas es más barata al principio del proceso de diseño. Teniendo en cuenta que muchas empresas que impulsan nuevas API son nuevas empresas, estos costos imprevistos pueden provocar un colapso. Estas consecuencias pueden ser graves.

Sin embargo, diseñar una API que claramente necesitará actualizaciones para seguir siendo funcional (o mantener la paridad de características con la competencia) es una receta para los gastos. Las organizaciones ágiles que carecen de procedimientos formales de control de calidad pueden enviar API antes de que estén listas para producción. Los clientes en masa tienen la habilidad de descubrir problemas críticos que no se encuentran en alfa. El estado de privacidad de su API influirá en la exposición que recibe cada problema.

Tomemos, por ejemplo, la interrupción de 2013 de Amazon, que hizo que la empresa perdiera 4,8 millones de dólares en 40 minutos . El diseño de su API puede afectar directamente su rentabilidad y la de sus clientes. Los problemas de API conducen a la acumulación de "deuda técnica" o costos mensurables asociados con el mantenimiento futuro esperado.

Eso puede hacer que los equipos luchen por arreglos, lo que requiere varias horas de trabajo. Si contrata cualquier parte de su API a terceros, esas tarifas se acumulan rápidamente. La creación de software en torno a una API deficiente también puede resultar costosa. Sus usuarios también pueden requerir soporte adicional.

Exasperación por tiempo de inactividad

¿Qué pasa si nos encontramos con un problema paralizante? Esto puede interrumpir los servicios clave. Las fallas de la API pueden causar tiempo de inactividad, un período en el que los usuarios no pueden acceder a funciones esenciales. La adopción por primera o tercera parte puede agravar este problema.

Hemos visto que estos problemas surgen periódicamente con Reddit, una plataforma que cuenta con más de 330 millones de usuarios activos mensuales . El gigante social recibe la friolera de 14 mil millones de visualizaciones de pantalla mensuales. Curiosamente, el 70% de las visualizaciones de vídeo del sitio se producen en dispositivos móviles. ¿Por qué importa todo esto?

¡Ese tráfico es inmenso! Reddit es el tercer sitio web más popular solo en los Estados Unidos. Es una plataforma única donde ha florecido el desarrollo de terceros. La compañía proporciona a los desarrolladores externos API que desbloquean el acceso al contenido en todas sus aplicaciones. Estas aplicaciones móviles generan una gran cantidad de tráfico. El consumo de video (e imágenes) pone a prueba la API principal de Reddit. Cuando esta API experimenta problemas, a millones se les niega el acceso al contenido que adoran. Incluso las API mejor diseñadas sufren interrupciones ocasionales. Imagínese los posibles obstáculos con una API deficiente.

Ese tiempo de inactividad provoca un efecto dominó en todo el ecosistema. Los usuarios se frustran. Reddit se calienta y los desarrolladores externos se echan la culpa cuando la situación está fuera de sus manos. Los desarrolladores de Reddit de terceros son una audiencia cautiva, ya que Reddit monopoliza el acceso a su contenido. No hay API de respaldo para aprovechar. Dependiendo de la gravedad del problema, este proceso de resolución puede ser largo.

Diseñar para el crecimiento de usuarios

Podemos aplicar estas lecciones a cualquier aplicación, especialmente cuando las API no están diseñadas de manera efectiva. Las API deben someterse a pruebas de estrés para manejar los picos de tráfico. Tenga en cuenta que las plataformas populares se convierten en motores de marketing a medida que crecen. Las interrupciones del servicio para aplicaciones como Reddit e Instagram pueden afectar a quienes las aprovechan para la promoción, tanto a nivel corporativo como de base. Esto puede provocar una pérdida de ingresos.

Ingrese nuestro próximo elemento de diseño: escalabilidad . Muchas empresas diseñan API sabiendo que obtendrán seguidores de nicho modestos. Quizás su API tenga un atractivo para el mercado masivo. Su diseño debe ser sólido como una roca y estar listo para escalar junto con su base de usuarios. Debe manejar miles o incluso millones de llamadas en un período determinado y devolver resultados válidos sin una alta incidencia de errores. No desea que las aplicaciones se bloqueen y se conviertan en víctimas de su propio éxito.

Su API debe ser escalable, duradera y confiable. Esto mantendrá felices a sus usuarios y clientes, permitiéndole abordar proyectos adicionales.

La seguridad se erosiona a medida que aumenta la visibilidad

"Las Mac no contraen virus". Esta sola frase tuvo (algún) mérito en un momento, pero vino con una advertencia: la plataforma Mac estaba muy por detrás de Windows en popularidad. En su lugar, esa baja visibilidad llevó a los atacantes a la plataforma Windows, por lo que la mayoría de los programas maliciosos y virus obstaculizaron las PC. Esa percepción creó una falsa sensación de seguridad, que ha resultado problemática a medida que las Mac han ganado cuota de mercado.

Por supuesto, estamos hablando de sistemas operativos, pero lecciones similares se aplican a nuestras API. El diseño desordenado a menudo elude los fundamentos. Las empresas pueden dejar de lado las preocupaciones de seguridad o crear vulnerabilidades sin saberlo debido a malas prácticas. En su lugar, siga pautas como estas :

  • Utilice tokens para la identificación de dispositivos y usuarios
  • Cifre sus API y solicite firmas
  • Encuentra agujeros de seguridad temprano
  • Utilice cuotas y límites de paginación para controlar el flujo de tráfico
  • Considere utilizar una puerta de enlace API para control y análisis

Usamos estas API para muchas cosas: acceso a datos, autenticación, difusión de contenido y más. Los agujeros de seguridad evidentes pueden poner en riesgo la información confidencial. Los atacantes pueden acceder a datos privados o interrumpir servicios clave. Esto puede erosionar la confianza en su API e introducir nuevos costos. Es fundamental diseñar de acuerdo con las mejores prácticas para evitar que surjan tales problemas.

La creciente popularidad de sus API aumentará la visibilidad de los exploits, atrayendo a actores nefastos. Tanto las API REST como SOAP se benefician de la fortificación, incluso en el nivel más fundamental.

Diseñar con prospectiva es clave

Lo entendemos. Tiene un servicio o una función increíble que está ansioso por presentar a sus usuarios. El atractivo del desarrollo acelerado es poderoso, pero no debería prevalecer sobre el diseño de sonido. Recuerde siempre que una API cuidadosa asegurará su relevancia en el presente y el futuro. Su rentabilidad, tiempo de actividad, escalabilidad y seguridad se beneficiarán. No queremos usar el exceso de calderas como una muleta, o dejar de lado las mejores prácticas para obtener ganancias superficiales. Evitar las desagradables consecuencias a largo plazo ayudará a que sus proyectos prosperen.



Publicar un comentario

0 Comentarios