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 :)
ObjectRocket
By arvind ram
ObjectRocket
- 430