T101 — Building and deploying to azure with Kubernetes.
Published: 2020-05-22 23:44:29

In this section, I will be explaining what docker means and why it is necessary you use it for your application.

History before docker

Years back before docker, companies(developers) use servers that they have to install an operating system that has complete control of the hardware required to run the application or use a virtual machine in place of an operating system. Using this approach comes with a lot of disadvantages like memory complexity and ease of maintenance.
Using a virtual machine later became a better alternative to the first approach. Virtual machines platform are also called a hypervisor. Hypervisors give access to multiple virtual machines to share the same physical resources in the system. This was was better than such that individual virtual machines that were in the system will try to behave perfectly like the whole system as one.

This makes individual virtual machines to be managed like moving it, copying it from one place to another, cloning it, and finally scaling it to meet up with the performance for your application. Virtual machines have their deficiency with many companies have encountered in years past.
Disadvantages of using virtual machines.

The first thing noted is that they are not that fast. virtual machines are a bit lagging when it comes to meeting up with certain enterprise application speed,

The second thing noted is the complexity of managing several virtual machines and it is system dependent. Considering all this deficiency made docker the goal for most enterprise applications.
Docker.

Docker is a set of the platform as a service (PaaS) which was authored by Solomon Hykes, developed with Go language you can check here. They own Docker, Inc.

Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and deploy it as one package. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code…


Docker Containers are transforming the DevOps (developer operations) landscape as an important tool in DevOps arsenal. The use cases for Docker Containers within the realm of DevOps are plenty. Running apps over Docker Containers and then deploying anywhere (Cloud or on-premise or any flavor of Linux) is a reality now


Portability & compatibility

Portability is one of the great features of docker a containerized application can be deployed to any platform and it will work perfectly.

Performance

Performance containers do not set up an operating system in it before it works this made it have a huge edge over the virtual machine and this really helps out in terms of memory management.

Agility

when it comes to agility docker makes applications more agile and responsive. Making continuous integration easy, straight forward, and very fast.

Isolation

Isolation: docker runs different container independently of the dependency. this makes applications use only the resources that are being assigned to them. which will really save when it comes to performance degradation. don't worry too much about building container we will surely get to the stage where you will build your own container in this article.


Scalability.

Scalability: docker provide an easy method of scaling your application this can be done with docker swarm or Kubernetes. docker swarm is not advisable due to its defects. Kubernetes is widely recommended now.
Simplicity and Faster Configurations
Simplicity and faster configuration: using docker makes everything simple down to the configuration. which really saves time and leads to rapid development.

Security.

Security: The last of these benefits of using docker is security. From a security point of view, Docker ensures that applications that are running on containers are completely segregated and isolated from each other, granting you complete control over traffic flow and management. No Docker container can look into processes running inside another container. From an architectural point of view, each container gets its own set of resources ranging from processing to network stacks.

Next, we will talk about setting up docker :)