What Gets Migrated
Server to Cloud transformation with focus on app compatibility and user identity mapping.
Issues & Custom Fields
Workflows (Converted)
Apps (Compatibility Check)
Users (Server ID → Cloud ID)
Attachments & Links
Issue History
Critical Migration Notice
This is NOT a simple data migration. Jira Server/DC and Jira Cloud have architectural differences requiring app compatibility validation, workflow conversion, and user identity transformation. Atlassian's native migration tool (JCMA) handles basic data, but OpsMigrator adds AI-powered validation, app analysis, and workflow redesign support. Expect 20-30% manual intervention for app migration and custom workflow adjustments.
1. Prerequisites
Jira Data Center Requirements
- Version: Jira DC 8.0+ or Jira Server 7.13+ (REST API v3)
- Access Level: Jira Administrator or System Administrator
- Network: REST API accessible (https://jira.company.com:8443)
- Authentication: Admin credentials with API access
- Permissions: Browse Projects, View Issue, Administer Jira
- App Inventory: List of installed apps with versions
Jira Cloud Requirements
- Instance: Jira Cloud site (your-company.atlassian.net)
- Access Level: Site Administrator
- Authentication: Atlassian API Token
- Subscription: Appropriate user tier (Standard/Premium/Enterprise)
- Cloud Apps: Pre-purchase Cloud-compatible versions of required apps
Technical Requirements
- Minimum 8 GB RAM, 100 GB disk space
- Network connectivity to both Jira DC and Jira Cloud
- OpsMigrator CLI version 2.5+
- Atlassian Marketplace App Compatibility Check completed
Atlassian JCMA vs OpsMigrator: Atlassian provides free Jira Cloud Migration Assistant (JCMA) for basic migrations. OpsMigrator complements JCMA with AI-powered app compatibility analysis, custom workflow validation, and advanced user identity mapping. Use OpsMigrator for complex migrations with 50+ apps or custom workflows.
2. Connector Setup
Step 1: Configure Jira Data Center Connector
Generating Jira DC Credentials:
- Login to Jira DC as Administrator
- Navigate to Settings (⚙️) → System → User Management
- Create service account:
svc-cloud-migration
- Grant Jira System Administrators global permission
- Add to all project roles with Administrator access
- Test API:
GET https://jira.company.com/rest/api/3/myself
Jira DC Connector Configuration:
{
"connectorType": "JiraDataCenter",
"baseUrl": "https://jira.company.com",
"authentication": {
"authMethod": "Basic",
"username": "svc-cloud-migration",
"secretValue": "PASSWORD"
},
"jiraConfiguration": {
"isDataCenter": true,
"version": "9.4.0",
"apiVersion": "3",
"enableSSL": true,
"timeout": 120
},
"rateLimiting": {
"maxRequestsPerSecond": 50,
"maxConcurrentRequests": 10,
"retryAttempts": 5,
"retryDelayMs": 2000
},
"dataOptions": {
"includeAttachments": true,
"attachmentSizeLimit": 50,
"includeHistory": true,
"includeComments": true,
"includeWorklog": true,
"maxHistoryAge": 365
},
"appAnalysis": {
"scanInstalledApps": true,
"checkCloudCompatibility": true,
"exportAppConfiguration": true
}
}
Step 2: Configure Jira Cloud Connector
Generating Jira Cloud API Token:
- Navigate to
https://id.atlassian.com/manage-profile/security
- Click Create API token
- Label:
OpsMigrator DC to Cloud Migration
- Copy token immediately (shown once)
- Test API:
GET https://your-company.atlassian.net/rest/api/3/myself
Jira Cloud Connector Configuration:
{
"connectorType": "JiraCloud",
"baseUrl": "https://your-company.atlassian.net",
"authentication": {
"authMethod": "Basic",
"username": "admin@company.com",
"secretValue": "API_TOKEN"
},
"jiraCloudConfiguration": {
"cloudId": "your-cloud-id",
"organizationId": "your-org-id",
"apiVersion": "3",
"enableCloudFeatures": true
},
"userMapping": {
"mapServerIdsToCloudAccountIds": true,
"createMissingUsers": false,
"inactiveUserStrategy": "MapToGenericUser"
},
"workflowConversion": {
"autoConvertServerWorkflows": true,
"validatePostConditions": true,
"preserveCustomValidators": true
},
"rateLimiting": {
"maxRequestsPerSecond": 100,
"maxConcurrentRequests": 10,
"retryAttempts": 3,
"retryDelayMs": 1000
}
}
Step 3: Validate Connections
# Validate both connectors
opsmigrator connector validate --source jira-dc-connector.json
opsmigrator connector validate --target jira-cloud-connector.json
# Expected output:
✓ Jira Data Center connection successful
- Version: 9.4.0 (Data Center)
- Projects: 47 accessible
- Issues: 487,392
- Installed Apps: 68 (23 Marketplace, 45 Custom)
- Custom Workflows: 34
✓ Jira Cloud connection successful
- Cloud ID: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Users: 492 active (87% match with DC users)
- Cloud Apps: 12 pre-installed
- App Compatibility: 18 of 23 Marketplace apps available on Cloud
- Workflow Compatibility: 28 of 34 workflows can auto-convert
3. App Compatibility Analysis
The App Migration Challenge
Jira Server/DC apps are NOT compatible with Jira Cloud. Each app must have a separate Cloud version. OpsMigrator's AI analyzes your installed apps and provides migration recommendations.
| App Category |
Typical Compatibility |
Migration Strategy |
| Atlassian Marketplace Apps |
70-80% have Cloud versions |
Purchase Cloud licenses, reconfigure post-migration |
| Custom In-House Apps |
0% compatible (require redevelopment) |
Rewrite as Forge apps or Connect apps (3-6 months typical) |
| Workflow Apps (ScriptRunner, etc.) |
Cloud versions available but functionality differs |
Recreate workflows in Cloud version (OpsMigrator provides mapping) |
| Automation Rules |
50-60% auto-convertible |
OpsMigrator attempts conversion; manual review required |
| JQL Functions from Apps |
Varies by app |
Validate all saved filters post-migration; rewrite JQL if needed |
OpsMigrator App Analysis Report
# Run app compatibility analysis
opsmigrator analyze apps --source jira-dc-connector.json
# Example Output:
App Compatibility Report - Jira DC to Cloud
============================================
Total Apps Installed: 68
MARKETPLACE APPS (23):
✓ ScriptRunner for Jira (v6.45.0) → Cloud version available (v8.5.0)
✓ Tempo Timesheets (v14.2) → Cloud version available (v16.3)
✓ Zephyr Scale (v8.7.0) → Cloud version available (Zephyr Squad Cloud)
✗ Old App XYZ (v2.1) → No Cloud version available
⚠ Custom Validator Plugin (v1.0) → Cloud equivalent: Jira Misc Workflow Extensions
CUSTOM APPS (45):
✗ Internal Workflow Scripts (v1.5) → Requires Forge app redevelopment
✗ Custom Field Automation (v2.0) → Rewrite as Automation for Jira rules
✗ Legacy Integration App (v3.2) → Migrate to Jira Cloud REST API integration
RECOMMENDATION:
- 18 of 23 Marketplace apps: Purchase Cloud licenses before migration
- 5 apps: Find Cloud alternatives or retire features
- 45 custom apps: Budget 4-6 months for Forge app redevelopment
- Total App Migration Cost Estimate: $85K-$150K (licenses + development)
App Migration Reality
Apps are the #1 blocker in DC to Cloud migrations. Expect 30-50% of apps to require workarounds or custom development. Budget 4-8 weeks for app compatibility resolution BEFORE data migration begins. OpsMigrator cannot migrate app functionality—only analyze compatibility and export configurations.
4. Workflow Conversion Strategy
Server vs Cloud Workflow Differences
Jira Cloud workflows have restrictions that Server workflows don't have:
- No Groovy Scripts: ScriptRunner workflows must be recreated using Cloud version (different API)
- Limited Validators: Some custom validators don't exist on Cloud; use Jira Misc Workflow Extensions
- No Direct DB Access: Workflows that query Jira database directly will fail
- Automation Differences: Server automation rules must be recreated in Cloud Automation
OpsMigrator Workflow Conversion
OpsMigrator's AI analyzes workflows and provides conversion strategies:
| Workflow Element |
Auto-Convertible? |
Manual Action Required |
| Standard Transitions |
✓ Yes |
None |
| Built-in Validators |
✓ Yes |
None |
| Built-in Conditions |
✓ Yes |
None |
| ScriptRunner Scripts |
✗ No |
Recreate in ScriptRunner Cloud (different API) |
| Custom Validators (from apps) |
⚠ Partial |
Find Cloud equivalent app or retire validator |
| Post Functions (standard) |
✓ Yes |
None |
| Post Functions (scripted) |
✗ No |
Rewrite in Cloud Automation or ScriptRunner Cloud |
OpsMigrator Workflow Analysis: OpsMigrator exports all workflows to XML and provides detailed conversion reports. For each non-convertible element, it suggests Cloud alternatives. Budget 1-2 weeks for workflow recreation in Jira Cloud after data migration completes.
5. User Identity Transformation
Server ID vs Cloud Account ID
This is a critical technical difference:
- Jira Server/DC: Users identified by internal User ID (integer or username string)
- Jira Cloud: Users identified by Atlassian Account ID (GUID:
557058:abc123...)
Challenge: All issue assignments, watchers, comments, and history must be remapped from Server IDs to Cloud Account IDs.
OpsMigrator User Mapping Process
- Extract Server Users: Query Jira DC for all active users with email addresses
- Match to Cloud: Query Jira Cloud for users by email address
- Generate Mapping: Create Server ID → Cloud Account ID mapping table
- Handle Unmatched: For retired users or mismatched emails, map to generic "Historical User" account
- Validate: Confirm 90%+ match rate before proceeding with migration
# User mapping validation
opsmigrator users map --source jira-dc-connector.json --target jira-cloud-connector.json
# Example Output:
User Mapping Report
====================
Total DC Users: 492
Total Cloud Users: 487
MATCHED (87%):
- Email match: 428 users
- Name match (no email): 0 users
UNMATCHED (13%):
- Retired DC users (no Cloud account): 52 users
- Email mismatch: 12 users
RECOMMENDATION:
- Provision Cloud accounts for 12 active users with mismatched emails
- Map 52 retired users to "historical-user@company.com" account
- Proceed with migration after provisioning
User Provisioning Critical
Provision all Cloud user accounts BEFORE migration. Jira Cloud requires users to exist before issues can be assigned to them. If migration encounters missing user, it will fail or assign to generic account. Coordinate with IT to create Cloud accounts 1-2 weeks before migration.
6. Migration Process (5 Phases)
1
Assessment & Planning
Duration: 1-2 weeks
- Run OpsMigrator app compatibility analysis
- Purchase Cloud app licenses (2-3 weeks lead time)
- User identity mapping and Cloud provisioning
- Workflow conversion planning
- Key Milestone: App strategy finalized
2
Cloud Environment Setup
Duration: 3-5 days
- Configure Jira Cloud instance (projects, schemes)
- Install Cloud-compatible apps
- Provision all user accounts
- Configure basic workflows (detailed later)
- Validation: Test issue creation
3
Pilot Migration
Duration: 5-7 days
- Migrate 1-2 representative projects (5-10K issues)
- Validate user assignments, attachments, links
- Test app functionality in Cloud
- Refine mappings and resolve issues
- Iterations: 2-3 cycles typical
4
Production Migration
Duration: 1-2 weeks
- Freeze Jira DC (read-only mode)
- Full project migration in batches (50K-100K issues/day)
- Real-time validation and error handling
- Daily progress reports to stakeholders
- Execution: Phased by project
5
Workflow Recreation & Cutover
Duration: 1-2 weeks
- Recreate custom workflows in Cloud
- Reconfigure Cloud apps (ScriptRunner, etc.)
- User training on Cloud interface
- Parallel operation (DC read-only, Cloud active)
- Hypercare: 2-4 weeks support
Success Story
Global Manufacturing Company - 4-Week Migration
- Scale: 487,000 issues across 47 projects, 492 users, 68 apps (23 Marketplace, 45 custom)
- Challenge: 34 custom workflows with ScriptRunner, 45 custom apps requiring redevelopment
- Result: 94.7% data accuracy, 18 Marketplace apps migrated, 12 custom apps retired, 15 rewritten as Forge apps
- Timeline: 4 weeks migration + 3 months app redevelopment
- Outcome: Jira DC decommissioned 6 weeks after Cloud go-live, $180K annual savings (infrastructure costs)
7. Red Flags & Mitigation
Detection: 45 custom in-house apps will not function on Cloud
Impact: Critical business functionality lost post-migration; workflows broken.
Mitigation:
- Budget 4-6 months for Forge app redevelopment (Atlassian's Cloud app framework)
- Alternatively: Migrate functionality to Automation for Jira (Cloud native)
- Or retire features if non-critical (stakeholder approval required)
- Budget $50K-$200K for app redevelopment (typical for 10-20 apps)
Detection: 280 ScriptRunner scripts embedded in workflows and automation
Impact: Scripts must be rewritten for ScriptRunner Cloud (different API); 0% auto-convertible.
Mitigation:
- Purchase ScriptRunner Cloud license before migration
- OpsMigrator exports all scripts with usage context
- Budget 4-8 weeks for script rewriting (experienced ScriptRunner developer required)
- Alternative: Convert simple scripts to Automation for Jira (Cloud native, no coding)
- Cannot proceed with migration until script strategy finalized
Detection: 64 active DC users have no Cloud account
Impact: Issues assigned to these users will fail migration or be assigned to generic account.
Mitigation:
- Coordinate with IT to provision Cloud accounts 1-2 weeks before migration
- Ensure email addresses match between DC and Cloud (critical for mapping)
- Map retired users to "historical-user@company.com" account
- Re-run user mapping validation after provisioning
Detection: 12 of 34 workflows have elements that cannot auto-convert to Cloud
Impact: Workflows must be recreated in Cloud; temporary workflow simplification required.
Mitigation:
- OpsMigrator provides workflow conversion report with Cloud equivalents
- Use simplified workflows during migration; add complexity post-migration
- Budget 1-2 weeks for workflow recreation after data migration
- Test critical workflows in pilot before production migration
Detection: 127 attachments exceed Jira Cloud 50 MB file size limit
Impact: Large attachments cannot be migrated; data loss for documentation/evidence.
Mitigation:
- OpsMigrator exports large files to Azure Blob Storage or Confluence
- Add link to external storage in issue comments
- Alternatively: Split large files or compress before migration
8. Best Practices
Before Migration
- App Strategy First: Resolve app compatibility 4-6 weeks before data migration (longest lead time)
- Purchase Cloud Licenses Early: Atlassian Marketplace procurement can take 2-3 weeks
- User Provisioning: Coordinate with IT 2-4 weeks in advance for Cloud account creation
- Data Cleanup: Archive closed projects and obsolete issues (reduces migration scope by 20-30%)
- Stakeholder Training: Conduct Cloud interface training before migration (reduces support burden)
During Migration
- Pilot Mandatory: Always run 2-3 pilot iterations before production migration
- DC Freeze: Put Jira DC in read-only mode during production migration (prevents data drift)
- Phased Rollout: Migrate projects incrementally (reduces risk)
- Daily Validation: Run OpsMigrator validation reports after each batch
- Communication: Daily status updates to stakeholders (expectations management)
After Migration
- Workflow Recreation: Budget 1-2 weeks post-migration for custom workflow setup
- App Reconfiguration: Reconfigure Cloud apps (settings don't migrate automatically)
- Parallel Operation: Run DC (read-only) and Cloud in parallel for 4-6 weeks
- Hypercare Support: Provide intensive support for first 2-4 weeks
- DC Decommissioning: Keep DC accessible for 3-6 months for reference/compliance
9. Frequently Asked Questions
Should I use Atlassian JCMA or OpsMigrator?
Both. Atlassian's free JCMA tool handles basic data migration well. OpsMigrator adds AI-powered app analysis, workflow conversion reports, advanced user mapping, and validation. For simple migrations (<10 apps, standard workflows), JCMA alone is sufficient. For complex migrations (50+ apps, custom workflows), OpsMigrator provides critical insights JCMA doesn't offer.
What happens to my custom apps?
Custom Server/DC apps will NOT work on Cloud. You must rewrite them as Forge apps (Atlassian's Cloud app framework) or Convert functionality to Automation for Jira. Budget 4-6 months and $50K-$200K for app redevelopment. OpsMigrator exports app configurations to help developers understand functionality.
Can ScriptRunner scripts migrate automatically?
No. ScriptRunner Cloud uses different APIs than ScriptRunner Server. All scripts must be rewritten. OpsMigrator exports scripts with context, but cannot auto-convert. Budget 4-8 weeks for script rewriting. Simple scripts can be converted to Automation for Jira (Cloud native, no coding).
How long does Jira DC need to be offline?
Jira DC does NOT need to be offline. Recommended: freeze DC (read-only mode) during 1-2 week production migration. After migration, run DC (read-only) and Cloud in parallel for 4-6 weeks. Zero downtime for read access; temporary write blackout during migration window.
What's the success rate for user mapping?
OpsMigrator achieves 85-95% automatic user mapping success. Failures occur when: (1) DC users have no Cloud account, (2) Email addresses don't match between DC and Cloud, (3) Retired users no longer exist. Unmatched users map to generic "Historical User" account with original name preserved in custom field.
Can I migrate only specific projects?
Yes. OpsMigrator supports selective project migration. Common scenario: Migrate active projects first, archive historical projects on DC. Reduces migration scope by 30-50%. Phased approach also allows incremental user training and risk mitigation.
What are typical costs for DC to Cloud migration?
- Small (<100K issues, <20 apps): $50K-$100K (1-2 months, includes OpsMigrator license, consulting, app licenses)
- Medium (100K-500K issues, 20-50 apps): $100K-$250K (2-3 months, includes app redevelopment)
- Large (500K+ issues, 50+ apps): $250K-$500K+ (3-6 months, extensive app redevelopment, dedicated team)
Costs include: OpsMigrator license, Cloud app licenses (annual), consultant fees, app redevelopment (Forge apps), training. This is 2-4x more expensive than Jira Cloud to ADO migrations due to app complexity.
Ready to Migrate to Jira Cloud?
Schedule a consultation to discuss your app compatibility strategy and migration timeline.