DevOps Classroom Series – 06/Oct/2020

Story of Contenment Info Systems

  • Contenment info Systems develop applications for Car Manufactures for CRM (Customer Relationship Management)
  • The following are the users of the applications
    • Car Dealers
    • Car Manufacturers
    • Car Owners
    • Car Technicians
    • Car Service Advisors
    • Car Sales Advisors
  • Contenment Car Care (C3) is the Product Name.
  • Architecture of the application looks as shown below Preview
  • Customers of C3 are Preview
  • Customers have different virtual environments where c3 has to be deployed Preview
  • The application space where c3 is operating is highly competitive, so to keep up to market, lots of new features are added and Contenment info Systems has signed a deal for deploying applications on customer environments for free with zero down time.
  • How Can Contenment info Systems solve this?
  • They have following teams
    • Customer Specific Project Manager:
      • Benz: Annie
      • Tesla: Anthony
      • Ferrari: Andrew
      • BMW: Alica Preview
    • Architecture Team: Beckham Preview
    • Implementation team
      • Developers
      • Testers
      • DevOps Preview
  • There are two major problems in deploying applications quickly
    • Freqeunt releases with zero downtime commitment
    • Different Customer Environments
  • Web Server Deployment Steps
    • Ensure the Operating System is Linux
    • Install a nginx/apache server
    • Deploy the application package on webserver installed
  • Contenment Info Systems has the following possible ways of deploying applications
    • Manual Approach
    • Ad-hoc scripts (Shell/Powershell)
      • Create a script in any scripting language of choice (shell/powershell/python)
      • Scripts are procedural (What has to be done & How it has to be done)
      • Pros:
        • This is straight forward
      • Cons:
        • Changes are difficult to handle as the we might end up rewriting
        • Maintainability & Readability will be impacted
      • Examples: Shell, Powershell, Perl, Python Scripts
    • Configuration Management tools
      • They are declarative in Nature
      • Here we tell what we want
      • Examples:
        • Ansible
        • Chef
        • Salt Stack
        • Puppet
        • Powershell DSC
    • Server Templating Tools
      • We create a virtual machine image with the application installed
      • Examples: Packer
    • Provisioning Tools:
      • All of the above approaches speak about deploying applications on the server. whereas provisioning tools work on creating servers and then calling adhoc scripts or configuration management to deploy application.
      • Provisioning tools in the case of Contenment Info Systems Can create the below on almost any virtual platform
        • Network
        • Storage
        • Virtual Machines
        • DB layers
      • Each Vendor has their own provisioning tool
        • AWS => Cloudformation
        • Azure => ARM Templates
        • OpenStack => Heat
        • Google => Google Cloud Deployment Manager
      • Terraform is a provisioning tool which can work with literally any virtual platform.
  • The Choice for Contenment Info Systems for creating infra would be terraform
  • Now DevOps Team of C3 have to create infrastructure using terraform.

How to be effecient with Infra Provisioning

  • Before automating the scenario using tools like terraform try to create the infra manually on the virtual target platform

Leave a Reply

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

About learningthoughtsadmin