Skip to content

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:

  1. Deploy pipeline and LLM code that evolves over time
  2. Update platform libraries and services
  3. Update platform configuration files such as siteconf
  4. Configure common services such as nginx, supervisor
  5. 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

New Organization New Organization New Organization New Organization

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
New Organization
New Organization

Project Management

Depending on the project management process, the system will use:

  1. Work Items - Issues and Epics including approvals to deploy, status etc
  2. Wiki - Notes about the deployment
  3. Board - Move issues across the various stages

New Organization