Cómo elegí una pila tecnológica con una base para el futuro

Comience con un simple, pero no a expensas de un mayor crecimiento.

imagen

Después de comenzar mi carrera como ingeniero de software, más tarde me convertí en emprendedor tecnológico y fundé dos compañías SaaS que atrajeron más de $ 100 millones de capital de riesgo de Silicon Valley.

El problema era que estas compañías requerían grandes inversiones para crear los complejos sistemas de software multiinquilino que eran, lo que también requería especialistas en ventas e implementación para promover y apoyar constantemente su trabajo. Por lo tanto, en 2017, fundé 8base .

En el corazón de 8base está la idea de que existe una gran demanda de plataformas y herramientas que aceleren, mejoren y abaraten el desarrollo de software. 8base proporciona un entorno de software completo y comprensible, y nuestra arquitectura es increíblemente importante. Por qué La pila tecnológica está diseñada no solo para nosotros, sino también para nuestros clientes.

Nuestro equipo tiene una amplia experiencia trabajando en compañías SaaS, y tenemos creencias claras que nos guían en la elección de nuestras soluciones arquitectónicas. Aquí hay algunos de ellos:

- Primero, la API (API-first): la infraestructura informática, los datos y la lógica empresarial deben estar del lado del servidor y representarse mediante una única API dinámica.

- Flexibilidad : la infraestructura informática debe ser un servicio totalmente personalizable para una aplicación en ejecución.

- Flexibilidad de desarrollo frontend . El software es más un arte en estos días que la ciencia y las empresas se expresan a través de la tecnología. Los desarrolladores deberían poder diseñar y crear interfaces de usuario en cualquier estilo combinado con varios factores de forma.

Ponemos estas ideas en el núcleo de 8base.

Pila de tecnología 8base


En primer lugar, elegimos Amazon Web Services (AWS) como infraestructura informática, porque es el líder del mercado en computación en la nube. Utilizamos muchos servicios de AWS:

- AWS Lambda para informática sin servidor (sin servidor). Las aplicaciones creadas con 8base también usan Lambda. La falta de servidor es un modelo informático relativamente nuevo que ejecuta código en respuesta a eventos, gestionando automáticamente los recursos informáticos necesarios. Lambda aborda las necesidades informáticas de la misma manera que una empresa de energía: brindando servicios personalizados y medibles. Esto minimiza la necesidad de ingenieros de DevOps, lo que a su vez conduce a menores costos.

- Bases de datos AWS Aurora MySQL y MongoDB Atlas . Cada uno es una base de datos como servicio, lo que los hace rápidos, confiables, tolerantes a fallas, manejables y escalables. 8base también ofrece Aurora MySQL dedicada para cada espacio de trabajo de desarrollador.

- Servicio para almacenar objetos AWS S3 (Servicio de almacenamiento simple) . 8base resuelve el problema de proporcionar acceso a S3 para espacios de trabajo y aplicaciones de cliente front-end. Esto facilita el almacenamiento de documentos, imágenes, archivos de voz y video y mucho más. 8base también usa FileStack para que los desarrolladores puedan conectar fácilmente sus cuentas de almacenamiento en la nube, sociales y de otro tipo. Elegimos S3 porque es económico, rápido, confiable y prácticamente ilimitado en volumen de almacenamiento.

- AWS API Gateway es utilizado por el motor 8base y está disponible de forma predeterminada para aplicaciones cliente creadas en 8base como un servicio para crear, publicar y proteger las API REST y WebSocket.

8base ha convertido el increíblemente poderoso motor GraphQL API en parte de la plataforma. GraphQL es un estándar desarrollado por Facebook y se convirtió en código abierto en 2015. Es un punto final único que proporciona una conexión dinámica entre el frontend y el backend. GraphQL permite a los desarrolladores front-end trabajar muy rápidamente, reduciendo la dependencia de los desarrolladores back-end. Esta tecnología API ayuda al equipo de 8base y a los equipos que usan 8base a desarrollarse más rápido.

Admitimos cualquier marco frontend, pero 8base se hace usando React . React es una biblioteca de JavaScript de código abierto mantenida por Facebook y la comunidad de desarrolladores. Es óptimo para datos que cambian rápidamente. Hoy, React es increíblemente popular y también ofrece React Native, un marco para crear aplicaciones nativas en iOS y Android.

Finalmente, elegimos la plataforma Auth0 para la autenticación. Los desarrolladores pueden integrar muy fácilmente Auth0 en sus aplicaciones cliente, mientras que al mismo tiempo tienen la capacidad de usar otros proveedores para la autenticación. Auth0 proporciona integración con más de 30 servicios sociales y corporativos para autorización, además de la autenticación multifactor y muchas otras características potentes.

Consejos


Diseño a escala

El enfoque de inicio lean a menudo se practica escribiendo rápidamente un producto de software para que los fundadores puedan comenzar inmediatamente a buscar su nicho de mercado. Insto a los fundadores a que piensen en los problemas que pueden enfrentar cuando sus productos deberán reescribirse después de encontrar un nicho.

Es mejor construir sobre una base sólida con la posibilidad de iteraciones continuas para mejorar el producto, sin sacrificar la posibilidad de una mayor escala. Lo hicimos con 8base, y ahora está dando sus frutos, ya que dedicamos nuestro tiempo a mejorar constantemente el producto, y no a su actualización técnica o refactorización del código anterior, que es esencialmente invisible para nuestros clientes.

Tenga cuidado con los desarrolladores que hacen productos de inicio sin pensar en un modelo de datos.

Algunas de las soluciones de back-end existentes en la actualidad permiten a los desarrolladores front-end, y especialmente a los desarrolladores de aplicaciones móviles, simplemente cargarles datos sin tener en cuenta ningún modelo o estructura de datos. Y para algunas aplicaciones esto es normal. Pero para la mayoría de las aplicaciones, por desgracia, no. Asegúrese de elegir un enfoque no estructurado de los datos porque es la opción correcta , no la más fácil. De lo contrario, sus datos se verán como espaguetis ... cuando estén cocidos.

Si usted es un fundador no técnico e involucra una agencia para ayudarlo con el desarrollo, hágales las siguientes ocho preguntas.

Las agencias tienden a proporcionar servicios profesionales y les interesa hacerlo el mayor tiempo posible. Sus objetivos no siempre coinciden con los suyos. Para verificar esto, puede hacer las siguientes preguntas:

1. ¿Cuál es su enfoque para el desarrollo de software: primer diseño (diseño primero) o primer diseño (ingeniería primero)?
2. ¿Cómo serán los primeros resultados obtenidos: serán diseños terminados o prototipos o ambos?
3. ¿A qué startups ayudaste, encontraron su nicho de mercado y se volvieron financieramente estables?
4. ¿Cómo diseñarás la arquitectura de la aplicación para que nunca tenga que cambiarla?
5. ¿Podrán otros desarrolladores trabajar en el proyecto?
6. ¿Podré escalar mi software cuando sea necesario?
7. ¿Qué sucede si queremos cambiar el diseño basado en nuevos datos de marketing?
8. ¿Qué será necesario para respaldar nuestro producto después de su lanzamiento?

Crear productos tecnológicos es un viaje para un emprendedor que nunca termina. Las decisiones iniciales sobre qué , quién y cómo , pueden separar el éxito del fracaso. Estas decisiones también incluyen respuestas a preguntas sobre quién decide qué debe hacer el producto, quién lo diseñará y desarrollará, y qué tecnologías básicas se utilizarán.

Las respuestas correctas a estas preguntas le dan al empresario la oportunidad de ganar, de lo contrario, las decisiones conducirán a la pérdida de tiempo, costos adicionales y, posiblemente, al fracaso.
Gracias por leer! Estaré encantado de comentar o contactarme con preguntas en albert@8base.com .

Source: https://habr.com/ru/post/471700/


All Articles