How To Cook Microservices (with Ruby spices) is a continuously updated collection of notes, insights and ideas about building software platforms empowered by microservices architecture with Ruby language




Journal Updates

1. Screencast: Running Ruby on Rails app with docker and docker-compose

Added 4 minutes long screencast to show how to easily run Ruby on Rails app with docker and docker compose.

In this video we:

  • create docker host with virtualbox provider on the local
  • build image for ruby on rails app
  • launch ruby on rails app with docker-compose
  • run specs for our app with docker-compose

Links:

github.com/akurkin/lightweight_rails_app

Sorry for aspect ratio (promise to set resolution properly optimized for YouTube next time when recording on retina display! :D). Continuous improvement FTW

In series of next screencasts looking forward to cover quite a few topics:

  • Introduction to Rancher - platform for orchestrating container infrastructure
  • How to deploy Rancher and run rails app with Rancher on Digital Ocean
  • How to use Rancher to automatically provision docker hosts and deploy feature branch to new hosts

Ruby on Rails app with docker and docker-compose

Subscribe to receive email updates now!

August 27, 2015

2. Continuous Delivery with Docker - Intro to GoCD and Build Image Pipeline diagram!

As part of this update, we’ve added section about Continuous Delivery Pipeline. Also included simple diagram that pictures first step of CD pipeline:

  • building
  • executing specs
  • and distributing docker image for future operations.

Second part of this update includes quick introduction to GOCD and why we stick to this tool (comparing to Jenkins).

In the next update we’ll add high-level diagram to picture full continous delivery pipeline from buidling an image to deploying it to remote environment!

Subscribe to receive email updates now!

July 10, 2015

3. Continuous Delivery with Docker - First notes added!

This is just a start of an interesting journey during which we’ll setup, configure and explain how to successfully implement continuous delivery pipeline with docker!

July 01, 2015

4. Platform Conventions - First notes added

When you work on a platform that is built of many different applications, it’s obvious that you encounter some similarities and some differences in these applications. And after some time you picture them as parts of bigger puzzle and try to abstract good practices into conventions.

This post is starting point to discuss some of these conventions we are using in platform built of microservices. And how to keep sanity when working with multiple applications.

Read this post and comment down below if you agree or disagree on any of these items!

June 01, 2015

5. API Documentation Guide - Requirements for killer API docs

Start thinking and writing down requirements for a perfect API docs. Read this post and comment down below if you agree or disagree on any of these items! Post your suggestions to possible gems how to implement it with Ruby.

June 01, 2015

6. Development with docker-machine and docker-compose: UPDATED

Continue post started recently on using docker-compose and docker-machine.

Updates:

  • add repository links to Dockerfile used in ruby microservice
  • add details about Dockerfile used in microservice
  • add updated docker-compose.yml and common.yml
  • add resources & references

April 08, 2015

7. Development using docker-machine and docker-compose (Part 1)

Start new post about development environment using Docker Machine and Docker Compose.

Part 1

We’ll begin by creating machine, then talking thru docker-compose.yml create for our platform. Also we’ll talk about high level diagram, cover some of the gotchas and problems encountered on the way and solutions to them.

April 07, 2015

8. Local development of platform powered by microservices (added)

Update to add new post about development approach of microservices covering few basic approaches. But for now focusing on vagrant and chef, with touch on Docker + Fig which will extensively covered in one of the next updates to this page.

January 23, 2015

9. Microservices - Inter-service communication (added)

Update to add new post about inter-service communication, which covers basic aspects of inter-service communication.

We are touching on 2 types of communication:

  • synchronous
  • asynchronous

Also covering 2 “styles” of async communication: orchestration and choreography.

January 12, 2015

10. Microservices - Technical Approach (added)

Next post to cover technical approach and popular frameworks available in Ruby to bootstrap platform empowered with microservices architecture.

Let’s cover advantages and disadvantages in following options:

  • rails + rails-api gem
  • other ruby frameworks (sinatra, lotusrb)
  • other languages

Also we’ll briefly touch on componentization.

January 11, 2015

11. Microservices Architecture Pattern

First post to give basic overview of microservices architecture referencing Martin Fowler’s Microservices study.

Covering these topics:

  • What is microservice?
  • Why bother considering it?
  • How we can build it?
  • Comparison to “traditional” rails’ monolith

January 10, 2015