Utter

Utter is microservies framework for building independently deployable services.

Example:

utter deploy user@serverip

  1. Uses puma and nginx Dockerfile to create a proxy container and bind it to the host server
  2. this command makes a packages gem with the following structure for each endpoint and uploads it to the server
  • Endpoint_name
  • deploy (sourcecode)
    • DATA (docker-volume)
  • Dockerfile
  • Excecute the Dockerfile on the Server

utter new project_name -h gitlab -g projectname create folder structure for project_name asks or uses gitlab username&pass to create a new group named project_name creates a number of endpoints each with its own gitrepo locally and on the specified git host

utter new -e endpoint_name utter new -m model_name utter new -u utility_name utter test -e endpoint # builds the Dockerfile, runs the container, tests it via its local IP utter deploy -e endpoint # checks a configuration yaml file, cp the Dockerfile of the endpoint into a remote server, builds the Dockerfile, bind it to nginx container to expose it to the world.

On the deployment server:

  • Endpoint
  • endpoint
    • DATA (docker-volume)

What is a Microservice? =======================

  • business capability,
  • automated deployment,
  • intelligence in the endpoints, and
  • decentralized control of languages and data.

Why Microservies? =================== Building software is difficult, if software projects are not keen to avoid complexity, they are destined to fall into its traps.

Microservices Architucural pattern Challenges: ================================================

  • Significant Operations Overhead
  • Substantial DevOps Skills Required
  • Implicit Interfaces
  • Duplication of Effort
  • Distributed System Complexity
  • Asynchronicity is Difficult
  • Testability Challenges

How can Utter help? ====================

  • Utter deploy command deploys for each endpoint (endpoint gem + Dockerfile, DATA docker-volume for SSD), nginx image for mapping ports and services.

External Refs: