## About it
This repository is part of a Backend Learning Project offered b Ingate Educa and signed to me by Yoyo Sensei from Japan.
The main goal is creating a the backend environment for implementing the card game marketplace developed using the Vue.js framework as the final project of the last Vue Ingate class.
- Images
- Containers
- Container-Orchestration (docker-compose)
- ERD - entity relationship diagram
- Database management (TablePlus)
- Express.js (web framework)
- Objection.js (ORM)
- API Documentation (Stoplight)
- API creation
- Test creation (Mocha)
- Route creation
- Models creation
Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.
Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels.
A Docker image is a read-only template used to build containers. Images are used to store and ship applications.
Because all of the containers share the services of a single operating system kernel, they use fewer resources than virtual machines.
When virtual machines are used, they spend lots of gigabytes in operational systems, which are fully installed. Another thing is that virtual machines still take too much time in their provisioning and have a limited portability. Working with Docker it is possible to isolate a single application and its dependencies, besides enabling more efficient use of system resources.
The container-orchestration aims to provide a "platform for automating deployment, scaling, and operations of application containers across clusters of hosts".
We will work with Docker Compose, that is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
Basically, the container-orchestration provides:
- Provisioning and deployment
- Configuration and scheduling
- Resource allocation
- Container availability
- Scaling or removing containers based on workloads
- Traffic routing
- Monitoring
- Applications configuration
- Containers security