ObjectRocket

Intern Project Presentation

 

Overview

  • Devtools for Ubuntu and CentOS
  • Feature Environments using devtools
  • CLI to manage feature environments

Devtools for Ubuntu and Centos

  • Use docker-engine directly to run containers instead of docker-machine
  • Developed interfaces so we can plug modules for extending to other platforms in future
    • Installing dependencies
    • Configuring Dnsmasq

Feature Environments using devtools

  • Now we can deploy one specific feature of the ObjectRocket platform with a URL like
    • https://feature-name.objectrocket.cloud
  • We can pass this URL to
    • Users to test / demo the feature
    • Automated testing system

Feature Environments using devtools

  • Base image is built using Packer
    • Installs all dependencies
    • Install Nginx for basic auth
    • Clones devtools
    • Pulls all docker container images
    • Image is saved in Rackspace Cloud

Feature Environments using devtools

 

  • Machine for the feature is created and provisioned using Terraform
    • Setup Basic Auth using nginx
    • Pull appropriate container images for the feature
    • Install devtools to start all the services
    • Setup ssl using nginx
    • Machine is created in Rackspace Cloud

Feature Environments using devtools

 

  • DNS for the features environment is created in Amazon Route53
    • A record for the machine is created
    • CNAME for each of the services is created
    • CNAME is used to configure SSL on different ports in the same machine

CLI to manage feature environments

  • CLI can be used to
    •  create
    •  destroy
    •  extend lifetime
    •  cleanup

CLI to manage feature environments

  • CLI checks if all downstream services are healthy
  • Then uses Terraform to spin up a feature environment and saves all the configs in FeatureAPI
  • FeatureAPI is built with python Flask and MongoDB
    • Basic CRUD for feature envs collection
    • Deployed in AWS ECS using CircleCI

Demo

  • Building devtools image using Packer
    • packer build -machine-readable template.json
  • Creating Feature Environments
    • ./feature create vars_file env_file ttl
  • Managing feature environments
    • extend, destroy

Thanks Team

For helping me do this :)

Made with Slides.com