ADO Operations→
Scribble currently supports Azure-based devops and our internal custom devops process. In theory this could be expanded to support AWS/GCP DevOps as well.
DevOps Code→
The devops code has been written to help:
- Deploy pipeline and LLM code that evolves over time
- Update platform libraries and services
- Update platform configuration files such as siteconf
- Configure common services such as nginx, supervisor
- Check the health and clean the system
The Azure-ADO deployment code is a combination of yaml templates and scripts. These scripts inturn call a comprehensive set of management scripts available in $HOME/enrich/manage. These scripts handle the application packaging, dependency management, version metadata management, and any error cases.
The codebase is stored in the customer's repo to enable auditing.
deploy
├── azure-ado
│ ├── common
│ │ ├── cleanup.yaml
│ │ ├── deploy-all-customers.yaml
│ │ ├── deploy-all-llms.yaml
│ │ ├── deploy-build.yaml
│ │ ├── deploy-customer.yaml
│ │ ├── deploy-llm.yaml
│ │ ├── deploy-routine.yaml
│ │ ├── deploy-service.yaml
│ │ ├── health.yaml
│ │ ├── install-env.yaml
│ │ └── install-files.yaml
│ ├── scribble-build
│ │ ├── cleanup.yaml
│ │ ├── deploy-all-customers.yaml
│ │ ├── deploy-all-llms.yaml
│ │ ├── deploy-build.yaml
│ │ ├── deploy-customer.yaml
│ │ ├── deploy-llm.yaml
│ │ ├── deploy-routine.yaml
│ │ ├── deploy-service.yaml
│ │ ├── health.yaml
│ │ ├── install-env.yaml
│ │ └── install-files.yaml
│ ├── Customer
│ │ ├── cleanup.yaml
│ │ ├── deploy-all-customers.yaml
│ │ ├── deploy-all-llms.yaml
│ │ ├── deploy-build.yaml
│ │ ├── deploy-customer.yaml
│ │ ├── deploy-llm.yaml
│ │ ├── deploy-routine.yaml
│ │ ├── deploy-service.yaml
│ │ ├── health.yaml
│ │ ├── install-env.yaml
│ │ └── install-files.yaml
└── scripts
├── archive
├── deploy
│ ├── __init__.py
│ ├── manage.py
│ └── utils.py
└── run-deploy.sh
Pipelines→
Once the organization has been setup and permissions to connect a repository are give, pipelines can be added by the customer. Scribble or IT operations team can trigger the pipelines as required. We expect to have 15-20 pipelines that are common across customers and are relatively stable, and any customer-specific pipelines to reflect the needs of a particular setup.
Pipeline | Category | Summary |
---|---|---|
deploy-build.yaml | CI | Do a full build to check integration of Customer and Scribble pipelines and services |
deploy-customer.yaml | Assistants | Update the customer codebase (scribble's contrib repo is also treated as a customer) |
deploy-all-customers.yaml | Assistants | Update all customer repos configured on the machine |
deploy-all-llms.yaml | Agents | Update all LLM agents and environment |
deploy-llm.yaml | Agents | Update a single LLM agent and associated environment |
deploy-routine.yaml | System | Regular upgrade of all platform libraries and services |
deploy-service.yaml | System | Update the code base of services such as doodle and datastore |
install-env.yaml | Configuration | Update environment variables and site configuration |
install-files.yaml | Configuration | Update configuration files of services such as nginx and supervisor |
health.yaml | Health | Check every aspect of the system including OS, python, libraries, directory structure, processes |
cleanup.yaml | Health | Cleanup temp files, very old runs etc |
Files→
Filename | Summary |
---|---|
Production | Environment variables |
<server>.<env name>.config.json | Version management and deployment preferences |
<server>.<env name>.siteconf.jsonx | Credentials and site configuration |
<server>.<env name>.django-env | Environment variables |
Project Management→
Depending on the project management process, the system will use:
- Work Items - Issues and Epics including approvals to deploy, status etc
- Wiki - Notes about the deployment
- Board - Move issues across the various stages