Monday, September 3, 2018

Docker concepts


- Docker is changing how applications are deployed by simplifying the overall application delivery experience. It increases your ability to deliver software more rapidly, and provides a common platform for dev and ops to collaborate. It also maximizes efficiency by integrating seamlessly with existing tool chains.

Docker is a platform for developers and sysadmins to develop, deploy, and run applications with containers. The use of Linux containers to deploy applications is called containerization. Containers are not new, but their use for easily deploying applications is.
Containerization is increasingly popular because containers are:
  • Flexible: Even the most complex applications can be containerized.
  • Lightweight: Containers leverage and share the host kernel.
  • Interchangeable: You can deploy updates and upgrades on-the-fly.
  • Portable: You can build locally, deploy to the cloud, and run anywhere.
  • Scalable: You can increase and automatically distribute container replicas.
  • Stackable: You can stack services vertically and on-the-fly.

Note: Please go through following link for more information and getting started.
1. https://docs.docker.com/get-started/
2. https://docs.docker.com/get-started/#docker-concepts
3. https://medium.com/travis-on-docker/why-and-how-to-use-docker-for-development-a156c1de3b24


Docker compose:

Typical application have multiple components.
We can run multi container applications with Docker Compose.(database server, application server , caching and messaging server etc...)
Docer compose allow you to run multi container application easily.

- Define and run multicontainer applications.
- Configuration defined in one or more files
   docker-compose.yml (default)
   docker-compose.override.yml (default)
- Mulitiple files specified using -f
- Single command to manage all services
- Great for dev, staging, and CI

--  To bring up all the services, to build all the images, to shut down all the services, that is very convenient.  

SOLID-Design-Principles

SOLID-Design-Principles The SOLID principles are fundamental to designing effective, maintainable, object-oriented systems. Whether you...