DevOps Classroom Series – 26/Jun/2020

Containerization of Applications with Docker

  • Consider the below image as your applications architecture Preview

  • The below image has implementation specifics Preview

  • This application has a user interface/website hosted on apache server and radiology systems help in scheduling Scans (CT/PET/MRI etc) and Pharma system helps in Pharma procument and MRS (Medical Record System) will store the patient records. The database is mysql and it would store the infromation from radiology, pharma and mrs.

  • Now if we have to run the application on docker containers what would be the approach

Approach

  1. Build a docker image along with the code base
    • webapplication
    • radiology
    • pharma
    • mrs
    • mysql
  2. Lets identify the communication mechanism.
    • Each tier communicates with other over ipaddress/hostname and port combinations Preview
    • So network should be available for communications
  3. When containers are deleted the data changed by container is also lost, so we need a mechanism to preserve the changes in mysql container
  4. when applications run, we need to have access to logs to find out if something goes wrong.
  5. when the load to the applications increase, we should be able to scale the containers

Problems to be Solved

  1. How do i preserve the data from a container
  2. How do i configure the network connectivity between containers
  3. How do i manage scaling the containers, accesing logs
  4. when new version of the images arrive how should i deploy the new version without having downtime

MicroServices

  • Consider the below application which is pharma management application Preview
  • This pharma app has many functionalities
    • User management
    • Inventory Management
    • Order Management
  • Now lets assume we add radioligy system also Preview
  • Now lets assume there is a load on pharma systems as there are some offers and we scale the pharma app. The load is on Order management but we are scaling the other functionalities also
  • Microservices can help in here. Microservice are collection of services that are
    • loosely coupled
    • Independantly deployable
    • Organized around business scenarios
    • Highly maintable and testable
  • Lets break the functionality as smaller services Preview
  • We run each service on a docker container and will have capabilities to scale them individually Preview

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About learningthoughtsadmin