Evaluating the scope of
Microservices in Academic
Environment
Guided By :
Dr. Hardik Joshi
Milind Bhagwati
Mayursinh Vaghela
 To build a classic web application using any
language
 Presentation Layer
 Business Layer
 Database Layer
Monolithic Application
 To Run the Application
 Create Package.
 Deploy it on Web Server.(Ex: Apache)
 Application becomes monolithic.
Continued…
 As the application grows, the code base
grows with it.
 Difficult to change the application language.
 If any single application function or
component fails, then the entire application
goes down.
Drawbacks of Monolithic Application
 To scale a monolithic application we have to
deploy the same packages in more servers.
 Every module is tied together. So, developers
can’t work independently to develop
modules.
Continued…
 The objective of this dissertation is to
evaluate the use of container
technologies/microservices in academic
environment.
 For instance
 Android Studio
 Multiple versions of Web Server
 Multiple versions of Java
Objective of Dissertation
 Microservices are small, independent processes
that communicate with each other to form
complex applications which communicate with
each other through simple APIs.
 These services are small building blocks,
highly decoupled and focused on doing a small
task, facilitating a modular approach to system-
building.
Microservices
1
Newman, Sam. Building Microservices. " O'Reilly Media, Inc.", 2015.
[1]
 For each functionality creation of one service
is easy.
 Larger applications can remain unaffected by
the failure of a single service.
 Technology Independence : new technology
stack on an individual service.
Why do we require Microservices?
2
Thönes, Johannes. "Microservices." IEEE Software 32.1 (2015): 116-116.3
Lewis, James, and Martin Fowler. "Microservices." (2014).
 Developers can work independently to
develop/deploy their own modules.
 Continuous Deployment is possible.
Continued…
 Amazon
 Netflix
 Google
 eBay
Big players considering Microservices
 Different Container technology is used to
implement microservices.
 Operating-System-level virtualization allows
us to run multiple isolated user-space
instances in parallel. These user-space
instances have the application code, the
required libraries, and the required runtime to
run the application without any external
dependencies. These user-space instances are
referred to as containers.
How to move on Microservices?
 Each Container represents the different
services in microservices architecture.
 Containers are lightweight and designed to
run anywhere.
 Multiple containers can be deployed in a
single or multiple VM.
 It is easy to deploy new versions of services
inside containers.
Continued…
4
Kratzke, Nane. "About microservices, containers and their underestimated impact on network performance. "Proceedings of CLOUD COMPUTING 2015 (2015).
Continued...
Hypervisor Based Container Virtualization
5
https://courses.edx.org/
 Different platform and tools are available to create
and manage containers.
1. Docker Platform 4. Mesos
2. Kubernetes 5. Amazone ECS
3. Shipyard 6. OpenStack Magnum
Continued…
6
Mouat, Adrian. Using Docker: Developing and Deploying Software with Containers. " O'Reilly Media, Inc.", 2015.
 Once we remove the packages which are not
required to boot the base OS and run
container-related services, we are left with
specialized OSes, which are referred to as
Micro OSes for containers.
1. Atomic Host 3. Vmware Photon
2. CoreOs 4. RancherOs
Continued…
7
https://courses.edx.org/
 Docker enables developers and IT admins to
build, ship and run any application, anywhere.
 Docker provide below services:
 Cloud adoption (CaaS)
 Portability (Build once run anywhere)
 Agility
 Control
Why Docker for Microservices?
8
https://docs.docker.com9
Stubbs, Joe, Walter Moreira, and Rion Dooley. "Distributed systems of microservices using Docker and Serfnode. " Science Gateways (IWSG), 2015 7th
International Workshop on. IEEE, 2015.
 Docker Ecosystem
Continued…
 Docker is a shipping container system for code.
Continued…
 Isolation using linux Kernel features
- Namespaces - cgroups
1. Pid 1. Memory
2. Mnt 2. cpu
3. Net 3. devices
4. Uts
5. Ipc
6. user
Continued…
 Docker Platform Consists of multiple
products/tools for container orchestration
and making container deployments scalable.
1. Docker Engine 4.Docker Swarm
2. Docker Hub 5. Docker Compose
3. Docker Machine 6. Kitematic
Continued…
 Docker Engine is the program that enables
containers to build, shipped, and run.
 Docker Engine uses linux kernel namespaces
and control groups.
 Namespaces gives isolated workspace.
 It is also known as Docker Daemon.
Docker Engine
Continued...
 The Docker Hub is the official source of pre-
written Dockerfiles, providing public and
private repositories for images.
 Images are read only template used to create
containers.it can be built by any docker hub
user.
 Images are stored in the docker hub or in local
Registry.Container runs from this images.
Docker Hub
 Install / Configures Docker Engine.
 Basic Management of Host.
 Docker Machine helps us configure and
manage one or more Docker engines running
locally or on cloud environments. With Docker
Machine we can start, inspect, stop, and
restart a managed host, upgrade the Docker
client and daemon, and configure a Docker
client to talk to our host.
Docker Machine
 Docker Swarm is a native container
orchestration tool. It logically groups multiple
Docker engines to create a virtual engine, on
which we can deploy and scale applications.
 Components of Swarm :-
 Swarm Manager
 Swarm Agents
 Swarm discovery service
Docker Swarm
Continued...
 Docker Compose is a tool for creating and
managing multi container applications.
 Containers are all defined in a single file called
docker-compose.yml.
 Each container runs a particular component of
your application.
 Compose will spin up all your containers in a
single command.
Docker Compose
 Kitematic is a great GUI tool for Mac OS X and
Windows.
 Search for the image you need, create and run
container.
 Kitematic offers basic configuration options,
but for more advanced settings we need to
use command line.
Kitematic
1. Newman, Sam. Building Microservices. " O'Reilly Media,
Inc.", 2015.
2. Thönes, Johannes. "Microservices." IEEE Software 32.1
(2015): 116-116.
3. Lewis, James, and Martin Fowler. "Microservices." (2014).
4. Kratzke, Nane. "About microservices, containers and their
underestimated impact on network performance.
"Proceedings of CLOUD COMPUTING 2015 (2015).
5. https://courses.edx.org/
References
6. Mouat, Adrian. Using Docker: Developing and Deploying
Software with Containers. " O'Reilly Media, Inc.", 2015
7. https://courses.edx.org
8. https://docs.docker.com
9. Stubbs, Joe, Walter Moreira, and Rion Dooley. "Distributed
systems of microservices using Docker and Serfnode. "
Science Gateways (IWSG), 2015 7th International
Workshop on. IEEE, 2015.
Continued…
 Implementation of multiple web servers on single
system.
Scope for Future Work
 Installing Docker :-
Installing Docker in Linux
 Installing Docker Engine:-
Continued…
 Docker Help:-
Continued…
 Docker Machine commands:-
Continued…
 Starting Docker Service :-
 Starting Docker as Daemon :-
Continued…
 Before creating a container we can see the list of
images available in our machine.
How to create a container?
 Creating a container:-
Continued…
 Listing containers :-
Continued…
 Installing Apache Server :-
Multiple Versions Of Web Servers
 Installing Apache-php :-
Continued…
 Listing all images :-
Continued…
 Inspecting a Container :-
Continued…
 Homepage of Apache :-
Continued…
 Homepage of Apache-php :-
Continued…
 Docker Toolbox is used on windows operating
system.
 It uses oracle virtualbox instead of hyper-v.
 Nested virtualization scenarios, such as running
docker for windows on a VMWare or parallel
instances might work but come with no guarantees
(i.e not officially supported.)
Installing Docker on Windows
 Docker Toolbox welcome screen & Server creation :-
Continued…
 Remote login into Server using ssh & pulling images :-
Continued…
Continued…
 Creating Docker Client :-
Continued…
 Docker Client accessing Docker Server :-
 Command : docker-machine ssh ServerMachine
Continued…
 Install Docker Engine for centOS as it will be our
Docker Server.
 Install Docker Toolbox or Docker for windows in all
windows computers as these computers will be our
Docker Clients.
 Setup network between Server and Client.
How to implement Docker in RCC?
 Once successful networking is done , Docker Machine
will be created which will contain required images.
 Docker Client will run the containers which will be
available in Docker Machine using ssh.
Continued…
1. https://docs.docker.com
2. https://www.digitalocean.com
3. https://www.liquidweb.com
4. https://www.jessfraz.com
5. https://hub.docker.com
6. D. Jaramillo, D. V. Nguyen and R. Smart, "Leveraging
microservices architecture by using Docker
technology," SoutheastCon 2016, Norfolk, VA, 2016,
pp. 1-5. doi: 10.1109/SECON.2016.7506647
References
Thank You

Microservices in academic environment

  • 1.
    Evaluating the scopeof Microservices in Academic Environment Guided By : Dr. Hardik Joshi Milind Bhagwati Mayursinh Vaghela
  • 2.
     To builda classic web application using any language  Presentation Layer  Business Layer  Database Layer Monolithic Application
  • 3.
     To Runthe Application  Create Package.  Deploy it on Web Server.(Ex: Apache)  Application becomes monolithic. Continued…
  • 4.
     As theapplication grows, the code base grows with it.  Difficult to change the application language.  If any single application function or component fails, then the entire application goes down. Drawbacks of Monolithic Application
  • 5.
     To scalea monolithic application we have to deploy the same packages in more servers.  Every module is tied together. So, developers can’t work independently to develop modules. Continued…
  • 6.
     The objectiveof this dissertation is to evaluate the use of container technologies/microservices in academic environment.  For instance  Android Studio  Multiple versions of Web Server  Multiple versions of Java Objective of Dissertation
  • 7.
     Microservices aresmall, independent processes that communicate with each other to form complex applications which communicate with each other through simple APIs.  These services are small building blocks, highly decoupled and focused on doing a small task, facilitating a modular approach to system- building. Microservices 1 Newman, Sam. Building Microservices. " O'Reilly Media, Inc.", 2015. [1]
  • 8.
     For eachfunctionality creation of one service is easy.  Larger applications can remain unaffected by the failure of a single service.  Technology Independence : new technology stack on an individual service. Why do we require Microservices? 2 Thönes, Johannes. "Microservices." IEEE Software 32.1 (2015): 116-116.3 Lewis, James, and Martin Fowler. "Microservices." (2014).
  • 9.
     Developers canwork independently to develop/deploy their own modules.  Continuous Deployment is possible. Continued…
  • 10.
     Amazon  Netflix Google  eBay Big players considering Microservices
  • 11.
     Different Containertechnology is used to implement microservices.  Operating-System-level virtualization allows us to run multiple isolated user-space instances in parallel. These user-space instances have the application code, the required libraries, and the required runtime to run the application without any external dependencies. These user-space instances are referred to as containers. How to move on Microservices?
  • 12.
     Each Containerrepresents the different services in microservices architecture.  Containers are lightweight and designed to run anywhere.  Multiple containers can be deployed in a single or multiple VM.  It is easy to deploy new versions of services inside containers. Continued… 4 Kratzke, Nane. "About microservices, containers and their underestimated impact on network performance. "Proceedings of CLOUD COMPUTING 2015 (2015).
  • 13.
    Continued... Hypervisor Based ContainerVirtualization 5 https://courses.edx.org/
  • 14.
     Different platformand tools are available to create and manage containers. 1. Docker Platform 4. Mesos 2. Kubernetes 5. Amazone ECS 3. Shipyard 6. OpenStack Magnum Continued… 6 Mouat, Adrian. Using Docker: Developing and Deploying Software with Containers. " O'Reilly Media, Inc.", 2015.
  • 15.
     Once weremove the packages which are not required to boot the base OS and run container-related services, we are left with specialized OSes, which are referred to as Micro OSes for containers. 1. Atomic Host 3. Vmware Photon 2. CoreOs 4. RancherOs Continued… 7 https://courses.edx.org/
  • 16.
     Docker enablesdevelopers and IT admins to build, ship and run any application, anywhere.  Docker provide below services:  Cloud adoption (CaaS)  Portability (Build once run anywhere)  Agility  Control Why Docker for Microservices? 8 https://docs.docker.com9 Stubbs, Joe, Walter Moreira, and Rion Dooley. "Distributed systems of microservices using Docker and Serfnode. " Science Gateways (IWSG), 2015 7th International Workshop on. IEEE, 2015.
  • 17.
  • 18.
     Docker isa shipping container system for code. Continued…
  • 19.
     Isolation usinglinux Kernel features - Namespaces - cgroups 1. Pid 1. Memory 2. Mnt 2. cpu 3. Net 3. devices 4. Uts 5. Ipc 6. user Continued…
  • 20.
     Docker PlatformConsists of multiple products/tools for container orchestration and making container deployments scalable. 1. Docker Engine 4.Docker Swarm 2. Docker Hub 5. Docker Compose 3. Docker Machine 6. Kitematic Continued…
  • 21.
     Docker Engineis the program that enables containers to build, shipped, and run.  Docker Engine uses linux kernel namespaces and control groups.  Namespaces gives isolated workspace.  It is also known as Docker Daemon. Docker Engine
  • 22.
  • 23.
     The DockerHub is the official source of pre- written Dockerfiles, providing public and private repositories for images.  Images are read only template used to create containers.it can be built by any docker hub user.  Images are stored in the docker hub or in local Registry.Container runs from this images. Docker Hub
  • 24.
     Install /Configures Docker Engine.  Basic Management of Host.  Docker Machine helps us configure and manage one or more Docker engines running locally or on cloud environments. With Docker Machine we can start, inspect, stop, and restart a managed host, upgrade the Docker client and daemon, and configure a Docker client to talk to our host. Docker Machine
  • 25.
     Docker Swarmis a native container orchestration tool. It logically groups multiple Docker engines to create a virtual engine, on which we can deploy and scale applications.  Components of Swarm :-  Swarm Manager  Swarm Agents  Swarm discovery service Docker Swarm
  • 26.
  • 27.
     Docker Composeis a tool for creating and managing multi container applications.  Containers are all defined in a single file called docker-compose.yml.  Each container runs a particular component of your application.  Compose will spin up all your containers in a single command. Docker Compose
  • 28.
     Kitematic isa great GUI tool for Mac OS X and Windows.  Search for the image you need, create and run container.  Kitematic offers basic configuration options, but for more advanced settings we need to use command line. Kitematic
  • 29.
    1. Newman, Sam.Building Microservices. " O'Reilly Media, Inc.", 2015. 2. Thönes, Johannes. "Microservices." IEEE Software 32.1 (2015): 116-116. 3. Lewis, James, and Martin Fowler. "Microservices." (2014). 4. Kratzke, Nane. "About microservices, containers and their underestimated impact on network performance. "Proceedings of CLOUD COMPUTING 2015 (2015). 5. https://courses.edx.org/ References
  • 30.
    6. Mouat, Adrian.Using Docker: Developing and Deploying Software with Containers. " O'Reilly Media, Inc.", 2015 7. https://courses.edx.org 8. https://docs.docker.com 9. Stubbs, Joe, Walter Moreira, and Rion Dooley. "Distributed systems of microservices using Docker and Serfnode. " Science Gateways (IWSG), 2015 7th International Workshop on. IEEE, 2015. Continued…
  • 31.
     Implementation ofmultiple web servers on single system. Scope for Future Work
  • 32.
     Installing Docker:- Installing Docker in Linux
  • 33.
     Installing DockerEngine:- Continued…
  • 34.
  • 35.
     Docker Machinecommands:- Continued…
  • 36.
     Starting DockerService :-  Starting Docker as Daemon :- Continued…
  • 37.
     Before creatinga container we can see the list of images available in our machine. How to create a container?
  • 38.
     Creating acontainer:- Continued…
  • 39.
     Listing containers:- Continued…
  • 40.
     Installing ApacheServer :- Multiple Versions Of Web Servers
  • 41.
  • 42.
     Listing allimages :- Continued…
  • 43.
     Inspecting aContainer :- Continued…
  • 44.
     Homepage ofApache :- Continued…
  • 45.
     Homepage ofApache-php :- Continued…
  • 46.
     Docker Toolboxis used on windows operating system.  It uses oracle virtualbox instead of hyper-v.  Nested virtualization scenarios, such as running docker for windows on a VMWare or parallel instances might work but come with no guarantees (i.e not officially supported.) Installing Docker on Windows
  • 47.
     Docker Toolboxwelcome screen & Server creation :- Continued…
  • 48.
     Remote logininto Server using ssh & pulling images :- Continued…
  • 49.
  • 50.
     Creating DockerClient :- Continued…
  • 51.
     Docker Clientaccessing Docker Server :-  Command : docker-machine ssh ServerMachine Continued…
  • 52.
     Install DockerEngine for centOS as it will be our Docker Server.  Install Docker Toolbox or Docker for windows in all windows computers as these computers will be our Docker Clients.  Setup network between Server and Client. How to implement Docker in RCC?
  • 53.
     Once successfulnetworking is done , Docker Machine will be created which will contain required images.  Docker Client will run the containers which will be available in Docker Machine using ssh. Continued…
  • 54.
    1. https://docs.docker.com 2. https://www.digitalocean.com 3.https://www.liquidweb.com 4. https://www.jessfraz.com 5. https://hub.docker.com 6. D. Jaramillo, D. V. Nguyen and R. Smart, "Leveraging microservices architecture by using Docker technology," SoutheastCon 2016, Norfolk, VA, 2016, pp. 1-5. doi: 10.1109/SECON.2016.7506647 References
  • 55.

Editor's Notes

  • #8 Newman, Sam. Building Microservices. " O'Reilly Media, Inc.", 2015.
  • #9 Thönes, Johannes. "Microservices." IEEE Software 32.1 (2015): 116-116.