Data Analysis Project Presentation: Unveiling Your Ideal Customer, Bank Custo...
Microservices in academic environment
1. Evaluating the scope of
Microservices in Academic
Environment
Guided By :
Dr. Hardik Joshi
Milind Bhagwati
Mayursinh Vaghela
2. To build a classic web application using any
language
Presentation Layer
Business Layer
Database Layer
Monolithic Application
3. To Run the Application
Create Package.
Deploy it on Web Server.(Ex: Apache)
Application becomes monolithic.
Continued…
4. 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
5. 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…
6. 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
7. 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]
8. 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).
9. Developers can work independently to
develop/deploy their own modules.
Continuous Deployment is possible.
Continued…
11. 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?
12. 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).
14. 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.
15. 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/
16. 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.
18. Docker is a shipping container system for code.
Continued…
19. 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…
20. 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…
21. 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
23. 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
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 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
27. 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
28. 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
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 of multiple web servers on single
system.
Scope for Future Work
46. 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
52. 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?
53. 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…
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