Deployment
Server Versioning
Cogni+ allows you to maintain multiple concurrent deployments of the same MCP server, providing powerful workflows for development, testing, and production environments.Understanding Server Versioning
Each MCP server in Cogni+ can have multiple deployments with different configurations:- Environment Separation: Maintain separate deployments for production, staging, and development
- Version Control: Associate deployments with specific Git commits for traceability
- Blue/Green Deployments: Run multiple versions simultaneously to enable zero-downtime updates
- A/B Testing: Deploy variations with different configurations to compare performance
- Progressive Rollouts: Test new features with a limited audience before full release
Creating Multiple Deployments
To create a new deployment version of your server:Using the Web Interface
- Navigate to your server in the Developer Dashboard
- Click the “New Deployment” button
- Configure the deployment settings:
- Name: A descriptive name (e.g., “production”, “staging”, “v2.0”)
- Environment: The deployment environment (development, staging, production)
- Git Reference: The commit, branch, or tag to deploy
- Resources: CPU, memory, and scaling parameters
- Click “Create Deployment”
Using the CLI
Managing Active Deployments
Only one deployment can be the active default for a server at any time. The active deployment is the one used when clients connect without specifying a version.Set a Deployment as Active
Connecting to Specific Deployments
Clients can connect to specific deployments by including the deployment name in the connection URL:Environment Variables
Each deployment can have its own set of environment variables:Using the Web Interface
- Navigate to your server’s deployment
- Click the “Environment Variables” tab
- Add or edit variables as needed
- Save changes and restart the deployment if required
Using the CLI
Deployment Workflows
Here are some common workflows enabled by server versioning:Continuous Integration/Deployment
- Development: Automatic deployments from your
developbranch - Staging: Manual promotion of specific commits to staging
- Production: Controlled promotion of verified staging deployments
Feature Testing
- Create a separate deployment for a new feature
- Test the feature with a limited group of users
- Compare performance metrics between versions
- Roll out to all users by making it the active deployment
Emergency Rollbacks
If a deployment has issues:- Quickly set a previous stable deployment as active
- Users are immediately routed to the stable version
- Debug the problematic deployment while maintaining service
Deployment History and Logs
Track the history of your server deployments:Best Practices
- Semantic Naming: Use clear names that indicate the purpose of each deployment
- Resource Optimization: Allocate appropriate resources based on expected load
- Monitoring: Set up alerts for each deployment to catch issues early
- Documentation: Document configuration differences between environments
- Automated Testing: Run tests against non-production deployments before promotion