Para una aplicación SaaS a gran escala, ¿cuáles son las cosas que deben tenerse en cuenta al diseñar la aplicación?

La seguridad siempre debe ser una preocupación. Además, desea tener una gran cantidad de monitoreo, New Relic es ideal para esto. Desea recibir notificaciones de excepciones no detectadas, algo así como Airbrake. Es posible que desee comentarios de los usuarios, algo así como Kiss Metrics. Desea poder escalar fácilmente, lo que significa mucho más que simplemente usar un host en la nube como Heroku o EC2. Significa desarrollar su aplicación de tal manera que sea fácil de escalar, siga las pautas de la aplicación The Twelve-Factor. Además, desea que sus solicitudes sean súper rápidas, por lo que cualquier cosa que requiera algún procesamiento debe colocarse en un trabajo en segundo plano, algo como Sidekiq. Debes asegurarte de buscar bibliotecas que puedas usar para no construir algo que ya existe, sino también elegir bibliotecas que estén probadas y tengan una gran comunidad que las respalde. Desea la documentación adecuada y quizás wikis para que los nuevos desarrolladores del equipo puedan ponerse en marcha rápidamente. Desea asegurarse de escribir una base de código fácil de mantener utilizando patrones de diseño orientados a objetos apropiados cuando sea necesario respaldados por pruebas automatizadas. A medida que su aplicación crece, desea dividir partes de su aplicación en módulos, cada uno administrado en su propio repositorio por su propio equipo de desarrollo.

Mantenibilidad

Por ejemplo, asegúrese de que la aplicación esté bien probada y estructurada de manera tal que se minimice el acoplamiento innecesario entre componentes, la separación de preocupaciones, etc. Así, a medida que el proyecto crece, puede agregar, escalar o repensar partes de él sin tener que refactorizar otras partes, o recurrir a soluciones menos limpias que pueden ser frágiles o difíciles de entender más adelante.

Hay muchas otras cosas que pueden ser importantes para su aplicación en particular, pero si lo hace por adelantado, eventualmente hará que todo lo demás sea más fácil.

Un tema que en muchos casos se pasa por alto al diseñar una aplicación es cómo lo apoyará, de modo que la capacidad de monitorear es como se menciona aquí (y se puede hacer con muchas otras herramientas más baratas que New Relic), pero también la capacidad de tener Herramienta centralizada de registro y agregación de errores que lo ayudará a analizar los problemas rápidamente y encontrar la fuente del problema. Desea que esta herramienta forme parte de su arquitectura general, ya que tendrá errores y quiere estar listo. Leí el otro día esta publicación y resume algunos de los temas relevantes 3 formas de detectar errores y registros

More Interesting

¿Cómo es vender SaaS en una industria competitiva y cuán importante es la experiencia?

¿Cómo se construyen típicamente los planes de bonificación SDR?

¿Cuáles son algunas de las mejores prácticas para presentar los Términos y condiciones / Términos de servicio a los usuarios de su producto SaaS?

¿Cuál es el mejor PaaS para SaaS?

¿Cuál es la próxima gran novedad en términos de SaaS, dedicada a los consumidores?

¿Por qué los mayoristas necesitan CRM?

Joe Lonsdale: ¿Qué opinas de las compañías SaaS como Vestorly (formación 8) que agrega contenido en lugar de curarlo? ¿Es una carrera hacia la agregación?

¿Gastarías $ 15k en una startup SaaS si alguien legalmente te diera una lista de 230,000 correos electrónicos reales y verificados sobre personas interesadas en tu servicio?

¿Cuál es la pila tecnológica detrás de Box?

En general, ¿cuánto cobran las empresas SaaS como proporción de los ingresos de sus clientes? ¿O no establecen puntos de precios con esta métrica?

¿Cuántas pequeñas / medianas empresas SaaS hay en los Estados Unidos?

¿Qué problemas enfrentan las empresas SaaS?

¿Existe algún complemento para Kissmetrics que pueda brindarle las métricas básicas de SaaS en un panel de control agradable (MRR / ARR / Expansión de cuenta / Churn / etc.)?

¿Cuáles son algunos buenos diseños de arquitectura de software para una plataforma de aplicación SaaS que maneja un gran número de organizaciones?

Multitenancy: ¿Cuál es la mejor forma de asistencia para solucionar problemas de la aplicación SaaS multi-inquilino?