DevOps Classroom Series – 15/Dec/2020

Story of Learning Thoughts – Application Deployments

  • Learning Thoughts (a ficticious organization) is working on different projects in the following domains
    • Health Care
      • iCare:
        • developed in Java and is to be deployed on Linux based Systems
        • Database: Postgres
      • radCare:
        • developed in .net and is to be deployed on Windows Servers
        • SQL Server Database
    • Fintech
      • personal-fin:
        • Java backend
        • Andrioid Frontends
        • ios Frontends
        • Mongodb
      • Stock-watch:
        • Python backend
        • Andriod
        • IOS
        • Angualar
        • Database: Oracle
    • eCommerce
      • lt-commerce:
        • Developed in python Django
        • Database is mysql
    • CRM (Customer Relationship Management)
      • lt-crm
        • Developed in python flask
        • Andriod
        • ios
        • Database is mysql and Mongodb
    • HRMS (Human Resource Management Systems)
      • Lt-HRMS
        • Developed in PHP
        • Deployed in Linux on Apache Servers
        • Database is mysql
  • Learning Thoughts Deployment Process
    • Each application will have following environments (6)
      • Developer Environment
      • Testing
        • System Testing
        • Functionality Testing
        • Performance Testing
        • UAT (User Acceptance Testing/Pre-Production)
      • Production
    • Release-Frequency
      • Every day the changes made by developers in the code needs to be deployed to Developer Environment, Functionality Testing and System Testing
      • Performance Testing Environment & UAT Env will be updated once in a week
      • Production env will be updated once in two weeks
  • Lets get the team introduced
    • Mike: Expert in linux and shell scripting
    • Mitch: Expert in Windows, Powershell and SQL Server
    • Mark: Expert in Databases
    • Stacy: The manager Preview
  • Are these 3 people enough for creating/maintaining six environments per project?
    • No, We have a junior team who help in creating/maintaining six environemts Preview
  • Can we manually deploy applications with this team?
    • No, we need some kind of automation.
  • We have experts (Mike, Mitch, Mark) who can create complex scripts to deploy applications. Can we use that?
    • No, bcoz junior team has work on executing and fixing scripts, Complex scripts can be difficult to manage.
  • Would it be better if the scripts have
    • how the application has to be deployed?
    • what has to deployed?
  • It would be easier if the script written describes what has to be done?
  • Lets call what has to be done as desired state
  • So we need a way to describe a desired state and when we run the script it should ensure desired state is maintained
  • To maintain a desired state we need tools which are intelligent, scripts (shell/powershell) will not be enough
  • Exactly this is where Configuration Management (CM) comes into play. In CM we would have a tool intelligent to maintain desired state.
  • Lets see how the CM tools work Preview

Exercise

  • To Get Some idea about devops watch 1-7 videos Refer Here

Leave a Reply

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

About learningthoughtsadmin