solución de implementación gratuita para la aplicación Rails sin necesidad de tarjeta de crédito

Somos un equipo de 5 colegas y estamos construyendo un proyecto de sitio web usando Rails, tenemos ciertas funcionalidades en mente que no funcionarán en "localhost" (como Google Maps, registrarse usando Google+ o Facebook, etc.).

Estamos buscando una solución de implementación gratuita que no necesite información de tarjeta de crédito para nada gratis porque no tenemos tarjetas de crédito (ni tarjetas de débito ni nada excepto efectivo, todavía somos estudiantes :3).

requisitos

  1. gratis o tiene un plan gratis.
  2. solo necesita la información de la tarjeta de crédito para funciones pagas, no la necesita para nada (y me refiero a nada) gratis.
  3. puede trabajar con Rails.
  4. capacidad para instalar programas externos, nuestra aplicación necesita mongodb instalado, también necesita elasticsearch y rmagick (o ImageMagick), el servicio debe permitirme instalarlos de cualquier manera, siempre que sea gratis y no necesite una tarjeta de crédito.

No requerido

  • para ser completamente libre, sé que no existe tal cosa, solo necesito un plan gratuito con, por ejemplo, 100 mb y 100 mb de base de datos (honestamente, necesito mucho menos que eso, pero este es un buen comienzo), no me importa no -escalabilidad ni soporte porque no estamos planeando convertirlo en un sitio real, solo un hogar para que nuestro maestro vea las funcionalidades que no se pueden ver con localhost.

Requisito opcional

  • puede clonar un repositorio de bitbucket, nuestro código ahora está en un repositorio privado de bitbucket, sería bueno simplemente clonarlo.

Ya probado

  1. Heroku: la implementación fue gratuita, pero cuando quisimos tener MongoDB, incluso agregar complementos gratuitos requiere información de la tarjeta de crédito.

  2. openshift: aquí está la URL: nuestro proyecto , como puede ver, parece caído y del servidor. Sin embargo, incluso si no es del servidor, encontré mongolab pero no encontré cómo adjuntarlo a mi aplicación después de suscribirme (de todos modos, no encontré ningún complemento para ImageMagick).

  3. cloud66: parecía bueno, pero al proporcionar la URL del repositorio dice "no se pudieron obtener los archivos de origen Permiso denegado", agregué su clave SSH en la configuración de mis cuentas y como claves de implementación en el repositorio e intenté hacerlo público pero no no importa cómo lo intente, todavía recibo este mensaje, cloud66 no puede funcionar con https y bitbucket solo da ssh y https :( y cloud66 no parece tener la capacidad de clonar un repositorio local o construir una pila vacía (que puedo empujar mi repositorio local a más tarde).

  4. Microsoft Azure: esto requiere el número de teléfono o la información de la tarjeta de crédito, la tarjeta de crédito que no tenemos, el número de teléfono es lamentable que nuestro país esté bloqueado. No puedo seleccionarlo de la lista desplegable (y, por lo tanto, nuestro código de país no puede) t aparece, lo que significa que ningún número de teléfono puede funcionar).

  5. Motor de aplicaciones de Google: parece que necesita la información de la tarjeta de crédito.

  6. AppFog: no parece tener un plan gratuito.

  7. jajaja sinceramente no recuerdo que he probado xD.

Respuestas (1)

He pasado mucho tiempo trabajando con virtualización, Docker y automatización recientemente. Uno de los mayores desafíos ha sido lograr un buen entorno de prueba internamente, sin tener que pagar cantidades exorbitantes de dinero para usar servicios como Heroku. Sabía que tenía que haber una alternativa mejor y más asequible, y estaba decidido a encontrarla.

He usado casi todos los servicios de CI disponibles, incluidos Jenkins, Circle CI, Codeship y Travis. Aprendí que cada uno de estos servicios tiene sus propias peculiaridades. Por ejemplo: dependencias difíciles de instalar, pruebas de Selenium, servicios de infraestructura requeridos, límites de compilación, etc. Es por eso que he llegado a amar a Drone. Puedo ejecutar mi conjunto de pruebas en una imagen acoplable limpia cada vez, las dependencias de caché (al igual que lo hace Heroku) y ejecutar una acción de implementación si la compilación de prueba tiene éxito.

Estoy usando Drone para la integración continua y Dokku para PaaS. Drone está construido usando Go y utiliza Docker. Se puede ejecutar dentro de un contenedor con muy poca configuración.

Drone es una plataforma de integración continua basada en tecnología de contenedores. Cada compilación se ejecuta dentro de un contenedor Docker efímero, lo que me brinda un control total sobre mi entorno de compilación con aislamiento garantizado.

La integración de Drone con Docker significa que puede admitir una gran cantidad de lenguajes, incluidos PHP, Node, Ruby, Go y Python, por nombrar algunos. Cada prueba generará un nuevo contenedor basado en imágenes específicas del Registro público de Docker. Incluso puede hacer uno propio para adaptarse a su aplicación específica si es necesario.

He acoplado Drone con Dokku, un Heroku simple como PaaS construido sobre Docker. El uso del flujo de Github con esta configuración permite la puesta en escena automática de todas las ramas de características que pasan sus pruebas.

Con un comando simple:   git push dokku mastersiempre que mi compilación pase en Drone, el código se implementa en un contenedor Docker nuevo. Dokku crea la aplicación en un subdominio del host de Dokku y se implementa automáticamente.