paint-brush
Lanza tu idea de inicio en un díapor@johnjvester
1,154 lecturas
1,154 lecturas

Lanza tu idea de inicio en un día

por John Vester7m2022/07/28
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

El tiempo es dinero, especialmente con las nuevas empresas. Vea lo fácil que puede ser lanzar su idea de inicio usando Render Unified Cloud

Company Mentioned

Mention Thumbnail
featured image - Lanza tu idea de inicio en un día
John Vester HackerNoon profile picture


Recientemente, estaba pensando en la película de 1987 "Wall Street" y más específicamente en el personaje de Michael Douglas, gordon gecko . En ese momento, la versión de mí de 20 años que vio la película la noche en que se estrenó estaba enfocada en su educación universitaria. Estaba tratando de absorber todo lo posible con la esperanza de extraer alguna ventaja educativa que pudiera aplicarse a mi licenciatura.


Siempre recordaré la cita de Gordon Gekko: “El bien más valioso que conozco es la información”.

Avance rápido 35 años, y la declaración de Gordon Gekko sigue siendo válida hoy en día, especialmente cuando nos damos cuenta de que la "información" se puede definir de manera amplia. La información puede ser información real que se posee y que es muy buscada, pero la información también puede verse como un diferenciador que un innovador planea llevar al mercado.

La desventaja de la información es que cuando se vuelve conocida y consumida por completo, se transforma en conocimiento común y pierde su valor como mercancía. Por eso es importante que los innovadores aprovechen sus oportunidades lo más rápido posible, y antes de que un competidor los supere en el mercado.

Estoy seguro de que Gordon Gekko estaría de acuerdo con la conclusión de Benjamin Franklin de que “ el tiempo es dinero ” y que las nuevas empresas tienen una cantidad finita de tiempo para hacer pública su propiedad intelectual (o información).

Entonces, exploremos cómo una startup puede lanzar su concepto en cuestión de horas en lugar de días.

Un resumen de Render Unified Cloud

En mi publicación " Pase cero tiempo en DevOps con Render PaaS ", tomé la plataforma Render para una prueba de manejo y demostré qué tan rápido se puede implementar una aplicación basada en git. De hecho, si desea hacer una pregunta a mi servicio Magic 8-ball basado en Go, simplemente inicie esto.

Como seguimiento, me dieron una mirada interna a la plataforma Render y escribí sobre ella en " La nube perfecta: AWS, GCP y Azure todo en uno ". Lo que encontré fue un diseño sólido que no solo ofrece un enfoque de "Cero DevOps", sino una plataforma basada en la nube que escala bien desde la fase de inicio para mantenerse al día con implementaciones de producción exitosas, todo mientras mantiene una estructura de costos justa.

Con las conclusiones exitosas de mis artículos anteriores, siento que Render es una solución ideal para validar el desafío de lanzar una idea de inicio en un día.

Además, espero que los servicios proporcionados por Render simplemente funcionen y se mantengan fuera del camino, permitiendo que el enfoque permanezca en llevar una nueva idea al mercado.

La idea de inicio

Para hacer las cosas divertidas, asuma que nuestra startup tiene una idea disruptiva del mercado con respecto a las compras en línea. Nuestra idea permite que alguien coloque productos en su carrito de compras actual en un minorista en línea, luego use nuestro complemento de navegador para encontrar el mejor comerciante según la siguiente configuración:


  • Mejor precio
  • En stock y listo para enviar
  • Entrega más rápida
  • Reputación del comerciante


Estos ajustes se pueden configurar como parte del complemento, lo que permite al cliente decidir qué es lo que más le importa.

Con el complemento del navegador instalado, nuestra idea de inicio permitiría a los consumidores comenzar con un minorista que conocen y les permitiría concentrarse en encontrar los productos que desean primero. Una vez que el carrito esté listo, el complemento hará el análisis necesario y creará un carrito para el mejor comerciante, dejando que el cliente simplemente complete la compra.

Nuestro ambiente

Dado que nuestra idea de inicio es puramente ficticia, supongamos que ya existen los repositorios de código necesarios:

  • startup-idea-client: aplicación ReactJS
  • startup-idea-plugin: complemento basado en Javascript para comunicarse con los niveles de servicio y cliente
  • startup-idea-service: servicio basado en Go que alberga el esquema de PostgreSQL


Estos repositorios están todos en GitLab como se muestra aquí:


La ilustración simple a continuación demuestra la conectividad entre el navegador del cliente y los repositorios y componentes mencionados anteriormente:

El cliente utilizará nuestro complemento de navegador para interactuar con el carrito de compras actual. Cuando sea necesario, el complemento realizará las llamadas de servicio necesarias a los niveles de cliente (React) y de servicio (Go). Los datos de nuestra solución residirán en la base de datos (PostgreSQL), con toda la comunicación necesaria funcionando a través del nivel de servicio.

Nuestras metas

Desde una perspectiva de DevOps, nuestra startup tiene varios objetivos:


  1. Necesitamos que nuestra plataforma de alojamiento "simplemente funcione" con nuestros repositorios existentes basados en git.
  2. Debemos lanzar nuestra idea en cuestión de horas… no de días.
  3. Esa misma plataforma de alojamiento debería poder adaptarse a un alto grado de refactorización en todos los aspectos del diseño... sin introducir nuevos desafíos.
  4. Si nuestra demanda aumenta, a través de una mención en una publicación popular o un influencer en las redes sociales, tener una manera simple de escalar nuestro servicio ahorrará mucho tiempo y estrés.


Nuestra esperanza para Render es que ni siquiera nos demos cuenta de que está ahí. Necesitamos Render para responder a nuestras solicitudes e instrucciones, luego producir los servicios esperados y las aplicaciones del cliente.

Lanzamiento de tecnología de inicio

Dado que la instalación del complemento del navegador se realizará desde la aplicación React, solo debemos centrarnos en los siguientes aspectos para esta publicación:**

  • Aplicación de reacción estática
  • API RESTful basada en Go
  • Base de datos PostgreSQL


Después de iniciar sesión en mi cuenta de Render, llego al Tablero, donde puedo ver mi servicio Magic 8-ball:


A continuación, pasaré por el proceso de agregar una base de datos, un servicio de API RESTful y una aplicación de cliente.

Agregar PostgreSQL

Se puede agregar una nueva base de datos PostgreSQL a mi cuenta usando el botón Nuevo | Opción de menú de PostgreSQL :


A continuación, proporcioné la información básica para nuestra base de datos de inicio y luego hice clic en el botón Crear base de datos (no se muestra):


En unos segundos, la nueva base de datos PostgreSQL estaba lista para usar.


La cadena de conexión interna se calcula automáticamente para los componentes de nivel de servicio y trabajador que se ejecutan en el ecosistema Render. El valor de esta propiedad oculta tiene el formato que se muestra a continuación:


 postgres://admin_id:admin_password@hostname/database_name


Volviendo al Tablero ahora se muestra la instancia de PostgreSQL disponible para su uso:


Agregar el nivel de servicio

Para agregar el servicio basado en Go a Render, selecciono Nuevo | Opción de servicio web .


Como ya tengo instalada la integración de GitLab con mi cuenta (descubra cómo hacerlo aquí ), todos mis repositorios disponibles se mostraban automáticamente en la lista de selección:



Al seleccionar la opción startup-idea-service , noté que Render establece los valores predeterminados exactamente como se esperaba para mi servicio basado en Go. Todo lo que tenía que hacer era proporcionar un nombre (startup-idea-service), seleccionar un plan (nivel gratuito para esta publicación) y hacer clic en el botón Crear servicio web .



En unos segundos, se creó nuestro nuevo servicio y unos minutos más tarde, el servicio basado en Go se configuró por completo.


Para la conectividad de PostgreSQL, utilicé la sección Entorno para almacenar la referencia necesaria a la conectividad de la base de datos.


Esto variará de un nivel de servicio a otro, pero puede leer más sobre la conectividad de la base de datos aquí .


En este punto, los niveles de servicio basados en PostgreSQL y Go aparecen en el Tablero:


Agregar el nivel de cliente

Dado que estamos utilizando React para nuestro marco de trabajo cliente, podemos configurar el uso de un sitio estático seleccionando Nuevo | Opción de sitio estático .


Similar a la configuración del servicio, la lista de repositorios disponibles se mostró desde GitLab, y todo lo que tenía que hacer era seleccionar el repositorio startup-idea-client:


Esta vez, simplemente proporcioné el nombre del sitio estático (startup-idea-client) e hice clic en el botón Crear sitio estático .




No hubo necesidad de especificar un nivel aquí, ya que no se cobra por los sitios estáticos en la plataforma Render.

El sitio estático se creó en segundos y todas las dependencias necesarias para la aplicación React se instalaron minutos después. La aplicación estática estaba lista para usarse.


Render Dashboard ahora está completo con nuestros niveles de cliente, servicio y base de datos, todos disponibles.


Conclusión

Con el objetivo de lanzar nuestra idea de inicio en un día, pudimos lograr todo en cuestión de minutos, ¡ni siquiera horas! Aprovechar React, Go y PostgreSQL ciertamente ayudó a reducir este tiempo, pero podríamos haber seleccionado cualquiera de las siguientes opciones para obtener resultados que serían igual de rápidos:


  • Elixir
  • Nodo
  • PHP
  • Pitón
  • Rubí
  • Óxido
  • Sitios estáticos (Jekyll y Gasby)


Para todo lo demás, podríamos emplear Docker y usar el contenedor resultante para interactuar con la plataforma Render.

La mejor parte de este diseño es que la plataforma maneja cada solicitud, respondiendo automáticamente cuando las confirmaciones se envían a la rama que Render supervisa. Esto es importante cuando surgen necesidades de actualización y refactorización durante el ciclo de vida del desarrollo y deben estar disponibles rápidamente.


Desde 2021, he estado tratando de vivir de acuerdo con la siguiente declaración de misión, que creo que puede aplicarse a cualquier profesional de TI:

Concentre su tiempo en ofrecer características/funcionalidades que amplíen el valor de su propiedad intelectual. Aproveche los marcos, productos y servicios para todo lo demás.

-J. Vester


Teniendo en cuenta la pequeña cantidad de tiempo requerida para poner en marcha nuestra idea de inicio, está claro cuán estrechamente se adhiere la plataforma Render a mi declaración de misión personal. El hecho de que este mismo ecosistema pueda crecer con nuestra puesta en marcha a medida que aumenta la demanda de servicios, sin consecuencias de costos irrazonables, solidifica aún más esta solución como un líder con visión de futuro en el espacio de entrega de la nube.


Si bien el enfoque de este artículo es lanzar rápidamente una nueva idea de inicio, la conclusión más amplia es que Render ofrece a los clientes la capacidad de ponerse en marcha rápidamente y permite que el enfoque permanezca en las necesidades comerciales y las prioridades que impulsan las soluciones. Con la promesa de Zero DevOps, esta solución elimina la preocupación de la entrega basada en la nube y se mantiene al margen de la innovación del cliente.


Pensando en “Wall Street” y Gordon Gekko, siento que esta cita también es válida hoy: “ En mi libro, o lo haces bien o te eliminan.


El uso de la plataforma Render ciertamente entra en la categoría de "hacerlo bien".


¡Que tengas un gran día!