Snehal Satish Kalke
● Graduated at the top of the class from Ramrao Adik
Institute of Technology (RAIT) - Computer Engineering
- Batch of 2017.
● Working as a part of the research & development team
at Unotech Software Pvt Ltd.
● Experienced in working on multiple domains including
Analytics, Middleware Development, API development
and Basics of Databases.
● An integral team player, who motivates themselves and
their team continuously to work towards achieving the
goals in a timely fashion and in a manner consistent to
Website: https://goo.gl/Qe6KLh the standards of the organization.
GitHub: https://github.com/snehalkalke5
LinkedIn:https://www.linkedin.com/in/sneh
al-kalke-4b5090115/
Academic Background
College / School Degree CGPA/ Percentage
Ramrao Adik Institute of Bachelor of Engineering in CGPA 9.25
Technology Computer Science
Ramnivas Ruia Junior College HSC 83.83 %
Shivaji Vidyalaya SSC 96.18 %
Achievements
● Secured an Award For Excellence from Vidyalankar Dnyanapeeth Trust for
the year 2014 and 2015.
● Secured First Rank in school SSC examination in the year 2010-11.
● Secured First Place (in Mumbai region) in Mumbai Prantiya Rashtrabhasha
Examination in the year 2008.
● Obtained 13th rank (in Mumbai) in Middle School Scholarship Exam in the
year 2005.
APPLICATION DEVELOPMENT
USING
CONTAINERIZATION
Develop for the future
Overview
● Planning a Project
● Problems faced by developers
● Virtualization as a solution
● Containerization - A better solution
● Using Docker for Implementing Containerization
● Example
● Conclusion
THE PLAN
● Divide the work into units or
modules, and assign one or
more developers to each
module.
● Assign deadlines for each
module and for integration.
● Test each module
independently, their individual
integrations and a system end-
to-end test.
● Test deployment strategies.
● Rework the code in silo to fix
issues.
● REPEAT THE ABOVE.
THE PROBLEM
● Tracking down system-specific dependencies and environment variables.
● Separate, full-fledged environments for each phase of SDLC is very
expensive.
● Updating Individual Components and testing them without affecting the
environment.
● Reducing the time taken for infrastructure setup and focusing on
deliverables.
● Scaling the applications.
VIRTUALIZATION
● Ideally, there is a need for having multiple
setups for -
○ Each individual milestone to be
developed and unit-tested.
○ Integration testing of the milestones.
○ User Acceptance Testing.
○ Production
● Virtualize the hardware into multiple virtual
machines.
● Virtual machines are guest Operating
Systems installed over the base hardware.
● PROBLEM??
CONTAINERIZATION
● OS-level virtualization.
● Flexible: Even the most complex
applications can be containerized.
● Interchangeable: You can deploy updates
and upgrades on-the-fly.
● Portable: You can build locally, deploy to
the cloud, and run anywhere.
● Scalable: You can increase and
automatically distribute container replicas.
● Stackable: You can stack services
vertically and on-the-fly.
DOCKER
● Docker Engine - Open Source Component that provides the docker daemon
and utilities to create and run containers as services.
● Docker Hub - Holds a repository of Images, analogous to Git.
● Docker Compose - Provides cluster like deployment capabilities to the
containers created by utilities of Docker Engine
IMAGES AND CONTAINERS
● Containers are analogous to bare metal computer machines, that are allowed
to share resources with the host system - such as Disk Volumes, RAM and
CPU cores, even networks.
● Images are the software component that are loaded onto the container,
including, base Operating System, Libraries and Binaries and the application
binary and sources.
Example - Middleware Application Interface
Server Setup
● 1 middleware application server called Hydra
● 1 instance of OTRS Service Desk
● 1 instance of MongoDB cluster - consisting of 9 nodes.
● All set up on a base image of CentOS 7 operating system.
● Network setup to assign static IPs and Port Forwarding into the host system.
Benefits
● Reduces OS complexity down to one system.
● Reduces disk and RAM utilization down enough to be managed on a single
workstation.
Setting up OTRS and Middleware Server
● Download Dockerfile for OTRS.
● Download Dockerfile for Middleware Server.
● Build images for both
○ cd hydra && sudo docker build -t “hydraimage:v0” .
○ cd otrs && sudo docker build -t “otrsimage:v0” .
● Start a container for both
○ docker run -itd --name “otrscontainer” --privileged otrsimage /sbin/init
○ docker run -itd --name “hydracont” --privileged hydraimage /sbin/init
● Connect to OTRS and obtain their IP for configuration on middleware
○ docker exec -it otrscontainer bash
■ ip r
● Make changes to Middleware container and commit the changes to image
○ docker commit hydracont snehalkalke666/hydraimage:v1
Setting up MongoDB cluster using Compose
● Create a docker-compose.yml file
● Install docker-compose
○ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-
`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
○ sudo chmod +x /usr/local/bin/docker-compose
● Start the cluster with one click
○ docker-compose up
Conclusion
How did this help us?
● Reduced my setup time.
● Helped initiate new members to development.
● Rapid Prototyping.
● Separation of Concerns.
● Improve our processes.
100%
The improvement in my back-office to client-side deployment ease.
Reduction in my squabbles with infrastructure team.
Transferring Knowledge.
THANK YOU