Docker is an application which is designed for creation, deployment and running of the application easy.
Docker is the containerization of an application and its parts needed, in a container and ship it all as package. In other way we can say that if we want a particular package to be updated then these containers makes it easy to update that particular part instead of updating the whole.
Docker is primarily developed for the Linux.
It is not a complete virtual machine and does not require or include a separate operating system, but it relies on the Linux Kernel and uses its resource isolation features such as groups, kernel namespaces, a union capable file system like Overlay FS and others.
The Docker containers are lightweight and several containers can run easily on a single server or virtual machine. It allows the application to run on the same server or machine with other applications simultaneously. It also allows the other application to run rather than the same, which boosts the performance and reduces the size of the application. It is an open source and one can extend and add extra features which are not available in the package.
If you need a simple, powerful, and easy to use tool that configures, manages and updates the programmes on dozens of servers at once. But the abstraction remains the same whether we manage one computer or many. Ansible is very simple to understand, it takes a while to learn how to use it. But once you understand it becomes very easy for one to handle it.
Ansible is very simple but very powerful. Ansible has two types of servers:-
- Controlling Machines
There is a single controlling machine where the orchestration begins; it describes the location of nodes through its access. Nodes are managed by a controlling machine over SSH.
Ansible connects the nodes and pushes out into small programmes called Ansible modules. The modules reside on any machine without any requirement of server daemons or databases.
We can login from anywhere as any user as no root login is required. Kerberos, SSH keys with SSH-agents are the ways to use Ansible.
Ansible authorized keys module, Kerberos or identity management system helps to control what machines can access what hosts. It also adds new machines without the involvement of any extra signing SSL server. It can also plugin to another sources in our infrastructure.
Ansible modules can be written in any language that can return JSON. There are various Python APIs that extends Ansible’s connection types, call backs and also adds new server side behaviors.
Ansible is a great choice as it is easily automated on one device.
Jenkins is software that allows continuous integration. It is helpful for the developers who writes the codes and don’t know that its deployment will be beneficial for the application or not. Here Jenkins does the work for him. It picks up the changed source code and before deploying, it tests and compiles the code. When it gets everything fine then it applies to the application else report the bug or error and asks to fix it.
It is an open source and it does not require any additional installations or components. It is free of cost. It is easily configurable and can easily be modified and extended. It is available for all platforms and different operating systems. It is an open source so it is widely used, and there is no shortage of support from large online communities. The developers get instant report of the bug fix and errors. So it saves time and they manage it in getting the right code. Therefore it saves both time and money and it is durable.
GIT is a distributed revision control and source code management system. It is free open source application, Git was first designed by Linus Torvalds for Linux kernel development.
- You can clone the Git repository as a local working copy.
- You can modify the local working copy by adding/editing files.
- You can also update the local working copy by taking other developer’s modification.
- You can review the changes and different before commit.
- Once you commit the changes. If everything is fine, then you push the changes to the repository.
- After committing, if you see something wrong, then you can restore the last commit and push the changes to the repository.