Introduction to
Docker &
Containers
Start Learning Simple – Part-1
By : Sandeep Hijam
Introduction
I have recently started reading
and understanding the Docker
and Container hype which has
been here for quite some time.
Viewed lots of YouTube videos,
research lots of articles,
everybody keeps on speaking the
same thing repeatedly. All those
are informative but for me, they
are not so easy to digest. If we
are starting out it is very difficult
to understand the technical
jargon.
Running Market
Whenever we hear or ask what is
docker and container the most
common answer that we
received is "Machine independent
Micro-service application. Now as
laymen we will start searching for
what is this microservice, then we
will get the answer to be
somewhat like "De-coupling /
De-centralising the application
and making it into small -small
module". BUT why it needs to be
so technical can it not made to be
more simple.
Earlier Knowledge
Earlier how do we make the
software application, we write a
bunch of code into our computer
then compile and built the
application. This complete code is
either distributed in the form of
Application EXE or Web
page/application right. I believe
everybody is following till now.
Once we receive this EXE/ Web
application we either install or
host it on the customer machine
and our production is done.
As the technology progress, we
shifted from application install/
hosting on a single on-premise
server to multi-VM (Virtual
Machine) application
installation/hosting. Till here we
all are comfortable and there was
no confusion in terms of the
technology shift.
Compute More
W h a t i s c l o u d
c o m p u t i n g t h e n ,
Well there are many definitions
which describe the services along
with their pros and cons? But let
me say it like this. It is nothing but
an Interconnected virtual
machine running anywhere and
accessible from everywhere with
multiple services running on top
of it.
Now with the arrival of cloud
computing, the technology is
shifting at a very rapid speed. It is
now becoming impossible to
keep ourselves at that pace. So
before we go to container and
docker let's understand what is
cloud computing.
How Connected
Now let's come back to the
original topic what is Container
and docker. Both this word will
always be interconnected just like
the old-days of application/web
server and the project code
which might be written in any
language.
So in the early time, we need to
set up the application/webserver
to run our code if we do not have
this then the project will not run.
Some of the servers are IIS,
Apache web server, Apache
Tomcat, etc.
In the very same way, w e n e e d
t o i n s t a l l a d o c k e r t o
r u n o u r c o n t a i n e r c o d e .
So for simple understanding, I
would keep docker just like a
web server. Yes, I know it not
apple to apple comparison
docker does much more than
just running the application.
Containers
Now then w h a t i s t h e
c o n t a i n e r , it is just our normal
application code what we have
been writing. Yes, that is it. Ok,
let's see in-depth, now we have
the docker installed on the
system, and then we write the
code on our favorite code editor
like visual studio, Notepad++, etc.
after this we compile the
application and make a docker
image which is now called as a
container image. I know what
you might be thinking if these are
the same why use container why
don't we follow the old school.
To understand this let me take
you to micro-services, what it
really is and how we are really
benefitting from this shift.
Micro-services
I would say this micro-service is
not new we have been using for
decades. It is just been much more
beneficial with the arrival of cloud
computing. I think we can compare
this with an old digit magazine disc
application where we see all the
SWF (Flash files) separated into
multiple files. Also in the modern
development context, I will
compare with the popular PHP
base WordPress application. But
this is not the full microservices we
are just referring to the way the
files are structure and arrange.
So Now let's see what is this
microservices. As the name
suggests, we have to divide our
application function/feature into
multiple services. How do we
divide into small functions? Let
me compare it with the old day's
application development model
The Old-Way
Step 1:
Step 2:
Step 3:
Step 4:
Step 5:
Understand the
requirement/customer problem.
Design the solution by dividing it into
features or functions that the
customer/problem required.
We select the technology and then set
up the development environment e.g
.Net / Java programming language is
chosen and then set up the
environment.
Develop - Test and Deploy the
application using the selected
language.
This is an additional step if the
problem/requirement demands the
3rd party Integration either API base
or any other we do that by accessing
and understanding the exposed API.
In the old development model, we follow the below step.
The New-Way
Step 1:
Step 2:
Step 3:
Requirement gathering or
understanding the problem
Designing the solution by segregating
the features and functions required
Here we choose the team/teams and
not the programming language as in
the above. Also, we instruct the team
to write the code with API integration
in mind from the start. So each team
member will use their favorite
programming language and do not
share the same environment.
In the old development model, we follow the below step.
All the team members can choose the
function/features that they want to
develop using their comfortable
language. Now each one of them will
run the functions/features separately
and check it.
Reality Check
Then there is a question of how does
each one of them will check the
features and functionality of the
complete application if they are just
developing their own part. Now
that's the beauty of this
development approach. So let me
say in this way, remember I
compared earlier on this article that
Microservices is like PHP based
WordPress Application. Each and
everyone will either developed
temporary UI or used an Open
Source resource like POSTMAN to
check the function and the features
that they have been developing.
Once the function is developed the
other team person can just be used
the same function in the form of
API calls. is it confusing lets me
explain like this
There are 3 developers developing 3
features or functions separately
Developer 1: Developed the function
for form entry.
Developer 2: Developed the function
of extracting the graph from
another server.
Developer 3: This person developed
the front end UI of the application
Scenario
Scenario – In-depth
All these developers are developing
using their comfortable
programming language. All of them
are developing at their own pace
with no dependencies on each other.
Now once each of them has
completed their task they will
communicate saying their functions
are ready.
At this time the Developer 3 or UI in
our example will just use the API
call on the UI page to perform those
functions. He does not need to
write any code on Developer 1 or
developer 2 behalf. In this scenario
for communication among the
team, we use DevOps. DevOps is
another topic which I will not cover
in this, just understand that in the
microservice scenario we use
DevOps to communicate among
team members.
So now we have many independent application codes connected
together to form an application which is called Micro-services. To re-
cape, Microservices are nothing but interconnected small-small
applications developed using different technologies and making bigger
Applications.
Conclusion Now Coming Back to Container and
Docker, as in microservices we are
developing an application using
different languages and
technologies then their
dependencies will also exist right. To
overcome this Docker will generate
Images with all the technical
dependencies of the applications
and kept it somewhere to access.
Here comes the beauty of cloud
computing, As it is accessible from
anywhere if the compile images are
placed at the cloud location which
make it easily accessible. One such
location is the docker hub where we
store the docker images. Now
anyone who wants to access these
images they can easily take the
docker hub image URL and host it
anywhere or use it
Summary
Docker is the application that we
need to installed on our machine to
generate Container Images
We can take docker as old days web
or application server for easy
understanding
Microservices approach is
interconnected small-small
application and making it into a
bigger application
We use API to connect among the
microservices application
About Me
He is passionate and well-organized leader
and likes to be on top of the agenda. He is
having a dynamic management career
with strong skills in relationship building,
problem-solving, program management,
and planning.
Digital Transformation Leader with
competency in transformation/migration
of businesses in Public cloud. Helping
Customers/Partners in Cloud Consulting,
Cloud Adoption, Cloud Transformation ,
Cloud Security, Cloud Governance and
Management.
10 year’s hands-on experience on Presales
and Bid Management Activities. An
extensively experience resource in
defining technology and solution roadmap
for enterprise customers.
SANDEEP HIJAM
( MCP, ITIL, Azure Certified Architect, with 14
Years Industry experience )
https://bit.ly/34Hp0ER
https://www.facebook.com/sandeephijam/
+91-7838357977

Introduction to Docker and Containers- Learning Simple

  • 1.
    Introduction to Docker & Containers StartLearning Simple – Part-1 By : Sandeep Hijam
  • 2.
    Introduction I have recentlystarted reading and understanding the Docker and Container hype which has been here for quite some time. Viewed lots of YouTube videos, research lots of articles, everybody keeps on speaking the same thing repeatedly. All those are informative but for me, they are not so easy to digest. If we are starting out it is very difficult to understand the technical jargon.
  • 3.
    Running Market Whenever wehear or ask what is docker and container the most common answer that we received is "Machine independent Micro-service application. Now as laymen we will start searching for what is this microservice, then we will get the answer to be somewhat like "De-coupling / De-centralising the application and making it into small -small module". BUT why it needs to be so technical can it not made to be more simple.
  • 4.
    Earlier Knowledge Earlier howdo we make the software application, we write a bunch of code into our computer then compile and built the application. This complete code is either distributed in the form of Application EXE or Web page/application right. I believe everybody is following till now. Once we receive this EXE/ Web application we either install or host it on the customer machine and our production is done. As the technology progress, we shifted from application install/ hosting on a single on-premise server to multi-VM (Virtual Machine) application installation/hosting. Till here we all are comfortable and there was no confusion in terms of the technology shift.
  • 5.
    Compute More W ha t i s c l o u d c o m p u t i n g t h e n , Well there are many definitions which describe the services along with their pros and cons? But let me say it like this. It is nothing but an Interconnected virtual machine running anywhere and accessible from everywhere with multiple services running on top of it. Now with the arrival of cloud computing, the technology is shifting at a very rapid speed. It is now becoming impossible to keep ourselves at that pace. So before we go to container and docker let's understand what is cloud computing.
  • 6.
    How Connected Now let'scome back to the original topic what is Container and docker. Both this word will always be interconnected just like the old-days of application/web server and the project code which might be written in any language. So in the early time, we need to set up the application/webserver to run our code if we do not have this then the project will not run. Some of the servers are IIS, Apache web server, Apache Tomcat, etc. In the very same way, w e n e e d t o i n s t a l l a d o c k e r t o r u n o u r c o n t a i n e r c o d e . So for simple understanding, I would keep docker just like a web server. Yes, I know it not apple to apple comparison docker does much more than just running the application.
  • 7.
    Containers Now then wh a t i s t h e c o n t a i n e r , it is just our normal application code what we have been writing. Yes, that is it. Ok, let's see in-depth, now we have the docker installed on the system, and then we write the code on our favorite code editor like visual studio, Notepad++, etc. after this we compile the application and make a docker image which is now called as a container image. I know what you might be thinking if these are the same why use container why don't we follow the old school. To understand this let me take you to micro-services, what it really is and how we are really benefitting from this shift.
  • 8.
    Micro-services I would saythis micro-service is not new we have been using for decades. It is just been much more beneficial with the arrival of cloud computing. I think we can compare this with an old digit magazine disc application where we see all the SWF (Flash files) separated into multiple files. Also in the modern development context, I will compare with the popular PHP base WordPress application. But this is not the full microservices we are just referring to the way the files are structure and arrange. So Now let's see what is this microservices. As the name suggests, we have to divide our application function/feature into multiple services. How do we divide into small functions? Let me compare it with the old day's application development model
  • 9.
    The Old-Way Step 1: Step2: Step 3: Step 4: Step 5: Understand the requirement/customer problem. Design the solution by dividing it into features or functions that the customer/problem required. We select the technology and then set up the development environment e.g .Net / Java programming language is chosen and then set up the environment. Develop - Test and Deploy the application using the selected language. This is an additional step if the problem/requirement demands the 3rd party Integration either API base or any other we do that by accessing and understanding the exposed API. In the old development model, we follow the below step.
  • 10.
    The New-Way Step 1: Step2: Step 3: Requirement gathering or understanding the problem Designing the solution by segregating the features and functions required Here we choose the team/teams and not the programming language as in the above. Also, we instruct the team to write the code with API integration in mind from the start. So each team member will use their favorite programming language and do not share the same environment. In the old development model, we follow the below step. All the team members can choose the function/features that they want to develop using their comfortable language. Now each one of them will run the functions/features separately and check it.
  • 11.
    Reality Check Then thereis a question of how does each one of them will check the features and functionality of the complete application if they are just developing their own part. Now that's the beauty of this development approach. So let me say in this way, remember I compared earlier on this article that Microservices is like PHP based WordPress Application. Each and everyone will either developed temporary UI or used an Open Source resource like POSTMAN to check the function and the features that they have been developing. Once the function is developed the other team person can just be used the same function in the form of API calls. is it confusing lets me explain like this There are 3 developers developing 3 features or functions separately Developer 1: Developed the function for form entry. Developer 2: Developed the function of extracting the graph from another server. Developer 3: This person developed the front end UI of the application Scenario
  • 12.
    Scenario – In-depth Allthese developers are developing using their comfortable programming language. All of them are developing at their own pace with no dependencies on each other. Now once each of them has completed their task they will communicate saying their functions are ready. At this time the Developer 3 or UI in our example will just use the API call on the UI page to perform those functions. He does not need to write any code on Developer 1 or developer 2 behalf. In this scenario for communication among the team, we use DevOps. DevOps is another topic which I will not cover in this, just understand that in the microservice scenario we use DevOps to communicate among team members. So now we have many independent application codes connected together to form an application which is called Micro-services. To re- cape, Microservices are nothing but interconnected small-small applications developed using different technologies and making bigger Applications.
  • 13.
    Conclusion Now ComingBack to Container and Docker, as in microservices we are developing an application using different languages and technologies then their dependencies will also exist right. To overcome this Docker will generate Images with all the technical dependencies of the applications and kept it somewhere to access. Here comes the beauty of cloud computing, As it is accessible from anywhere if the compile images are placed at the cloud location which make it easily accessible. One such location is the docker hub where we store the docker images. Now anyone who wants to access these images they can easily take the docker hub image URL and host it anywhere or use it
  • 14.
    Summary Docker is theapplication that we need to installed on our machine to generate Container Images We can take docker as old days web or application server for easy understanding Microservices approach is interconnected small-small application and making it into a bigger application We use API to connect among the microservices application
  • 15.
    About Me He ispassionate and well-organized leader and likes to be on top of the agenda. He is having a dynamic management career with strong skills in relationship building, problem-solving, program management, and planning. Digital Transformation Leader with competency in transformation/migration of businesses in Public cloud. Helping Customers/Partners in Cloud Consulting, Cloud Adoption, Cloud Transformation , Cloud Security, Cloud Governance and Management. 10 year’s hands-on experience on Presales and Bid Management Activities. An extensively experience resource in defining technology and solution roadmap for enterprise customers. SANDEEP HIJAM ( MCP, ITIL, Azure Certified Architect, with 14 Years Industry experience ) https://bit.ly/34Hp0ER https://www.facebook.com/sandeephijam/ +91-7838357977