Una vez me preguntaron en una entrevista: ¿Cuál es el error más común cometido por los desarrolladores de bases de datos? Creo que el entrevistador esperaba que describiera algún tipo especial de consulta SQL que los desarrolladores siempre se equivocan.
Respondí: “fracaso para planificar el éxito”. Lo que quise decir fue: ¿qué sucede cuando la aplicación obtiene mucho éxito y atención? ¿Cómo va a escalar para manejar el tráfico? ¿Cómo hará copias de seguridad o actualizaciones si se espera que la aplicación funcione las 24 horas del día sin tiempo para realizar el mantenimiento? ¿Tiene un buen sistema para el monitoreo del sistema?
No ha especificado de qué tipo de aplicación está hablando. ¿Un juego para móviles? ¿Una aplicación web? ¿Un producto de software retráctil? No importa mucho, muchas de las estrategias son las mismas. Supongamos, por el simple hecho de argumentar, que es una aplicación móvil que interactúa con un sistema de fondo a través de una API.
- ¿Las aplicaciones reemplazarán los sitios web?
- ¿Cómo se construye una tienda de aplicaciones? ¿Cuál es la tecnología requerida y qué startups están haciendo cosas emocionantes en este espacio?
- ¿Hacer una aplicación web es difícil que hacer un sitio web?
- ¿Cuáles son las aplicaciones híbridas más famosas de las empresas indias?
- ¿Cuáles son las ventajas / desventajas de estos marcos de aplicaciones híbridas PhoneGap: Ratchet, The Answer to PhoneGap UI Development, ionicframework.com y mobileangularui.com?
- Supongo que obtener millones de usuarios era parte del plan para esta aplicación, y que hemos diseñado la aplicación con el objetivo de manejar el tráfico pesado, por lo que no se bloqueará y se quemará de inmediato. Pero vigílelo en caso de que lo haga.
- Deje que los gerentes de producto sepan lo que sucedió. Deben preparar comunicados de prensa, monitorear las menciones de su aplicación en las redes sociales, preparar a su equipo de soporte para un diluvio de llamadas y correos electrónicos, informar a la alta gerencia qué esperar, y así sucesivamente.
- Asegúrese de que los pagos realizados a través de la aplicación se procesen correctamente y siga supervisando eso. Los sistemas para ejecutar una aplicación para tantos usuarios se volverán caros y necesitaremos ingresos.
- Asegúrese de contar con sistemas de monitoreo adecuados para advertirnos si la carga es demasiado alta. Establezca un horario para asegurarse de que algún miembro del equipo de DevOps esté prestando atención al monitoreo en todo momento. Desarrolle métodos para estimar cuándo los servidores deben ser escalados.
- Inicie una revisión exhaustiva del código para detectar fallas de seguridad, especialmente las más comunes, inyección SQL y secuencias de comandos entre sitios. Cualquier aplicación que tenga tantos usuarios se convertirá en un objetivo para los hackers muy rápidamente. También prepárate para los ataques DDoS.
- Automatizar informes de uso de aplicaciones para gerentes de producto. Seguramente se emocionarán y querrán cortar y cortar el tráfico en cincuenta formas diferentes. No realizará ningún trabajo si está codificando informes personalizados todo el día. Intente crear una interfaz de informes de autoservicio, por ejemplo, un panel de New Relic.
- Asegúrese de tener suficiente espacio de almacenamiento para almacenar datos para esa cantidad de usuarios. Pronostique la tasa de crecimiento de los datos y calcule con qué frecuencia tendremos que proporcionar más espacio.
- Monitoree los cuellos de botella de rendimiento que aparecen a medida que crece el volumen de datos. Por ejemplo, consultas de bases de datos que funcionan adecuadamente cuando se consultan 100 mil filas, pero no cuando se consultan 100 millones de filas.
- Establezca expectativas con las ventas y el marketing, de que su equipo de ingeniería estará ocupado manteniendo el sitio funcionando por un tiempo, así que no espere un cambio rápido en el desarrollo de nuevas características.
- Ponte a trabajar.
Nota: La lista anterior no pretende ser una lista completa de todo lo que deba hacer después de que su tráfico crezca mucho. Los elementos de la lista son solo ejemplos.