Utter
Utter is microservies framework for building independently deployable services.
Example:
utter deploy user@serverip
- Uses puma and nginx Dockerfile to create a proxy container and bind it to the host server
- 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: