Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Old Approach

Pros:

  • Sunbird was installed using a single script.

  • Very minimal set of variables to be defined prior to install (about 40 odd variables)

  • 2 hours installation

  • Very less technical knowledge required to setup

Cons:

  • Customization was tough

  • Customization possible only for docker images

  • No control on contents and frameworks

  • Cannot analyze data patterns

  • Only core components available for use but not Knowledge Platform and Data Pipeline

New Approach

Pros:

  • All components can be installed - LP, DP and Core service's 

  • Easy customization of all components by forking the desired repository

  • Spin up a Jenkins instance and start building on your own

  • Everything is a Jenkinsfile

  • Version control of build and deploy process using Jenkinsfile
  • Visibility on how Sunbird does build and deploy by just looking at the Jenkinsfiles
  • Docker images can be stored in any registry and artifacts in azure blobs or locally on Jenkins
  • Seamless and quick rollbacks
  • All features, updates and process of Sunbird available to end users
  • 85% of ansible variables refactored

  • Only about 100 odd variables need to initialized for entire setup
  • 600 variables refactored to about 100 odd variables
  • Every comfiguratuok can be overridden based on requirements
  • Easy upgrades by just using the latest GA certified tag by one click build and deploy.
  • Total control and content and frameworks 
  • Minimal hardware - Just 10 servers for entire setup
  • Easy scaling of infrastructure - All through ansible inventory and Jenkinsfiles
  • Production ready setup and easy promotion of code from dev to production 
  • Anyone can run a full stack sunbird with home brewed customizations

Cons:
  • Takes a day's effort
  • Medium level technical skills required to setup
  • Only azure blobs supported to store artifacts at this point of time (can be skipped if stored locally on Jenkins)

How this was done?
  • Converted every freestyle Jenkins job to a Jenkinsfile 
  • Constant and non mandatory variables were set to its default which is as per standards 
  • Setting up Jenkins and all required jobs using 3 scripts.
  • Mandatory variables keys provided in a standard template along with detailed descriptions which needs to be filled

  • No labels