Rails K8s Demo

screenshot of Rails K8s Demo
bootstrap

[ABANDONED] Easy Rails on Kubernetes approach for Digital Ocean and a classic Rails stack: Puma, Redis, Sidekiq, Postgres, Action Cable, Webpacker. Helm 3 in production and docker-compose + dip (https://github.com/bibendi/dip) in development. Issues and PRs welcome.

Overview

Le Wagon has developed a promising Rails-on-Kubernetes setup for their projects, leveraging Docker and GitHub Actions to streamline the development and deployment process. This initiative aims to create a standardized approach that not only simplifies local development but also ensures that production environments are effectively managed. The demo application showcases a standard Action Cable chat application using Rails 6 and Stimulus, perfectly exemplifying the potential of this stack for full-stack developers.

By utilizing a combination of popular tools, such as Sidekiq for background processing and Postgres for database management, this setup aims to make lifecycle management of Rails applications much more efficient. The emphasis is on maintaining a balance between functionality and simplicity, ensuring developers can focus on building applications without getting bogged down by the complexities of Kubernetes management.

Features

  • Docker Integration: Standardizes environment setup for Rails applications, allowing for consistent local and production environments.
  • Action Cable: Demonstrates real-time capabilities in a chat application, leveraging Rails 6 for seamless user interactions.
  • Customizability: Supports external Postgres databases and allows for easy migration from Heroku, making it versatile for various project needs.
  • Single Environment/Cluster: Simplifies Kubernetes management, letting Digital Ocean handle the master node while developers focus on coding.
  • Rails Stack Compatibility: Incorporates a classic Rails stack including Puma, Sidekiq, Redis, and Webpacker, which caters to the preferences of full-stack developers.
  • Local Development Tools: Utilizes dip for a user-friendly command-line experience while working with Docker, enabling easy management of services and dependencies.
  • Reproducibility: Ensures consistent deployment configurations that can easily be tracked and customized alongside application code.
  • GitHub Integration: Allows deployments with a simple git push or PR merge, streamlining the workflow for continuous delivery.
bootstrap
Bootstrap

Bootstrap is the most popular CSS Framework for developing responsive and mobile-first websites.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.