Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ci/migration/plan_a_migration.md')
-rw-r--r--doc/ci/migration/plan_a_migration.md71
1 files changed, 71 insertions, 0 deletions
diff --git a/doc/ci/migration/plan_a_migration.md b/doc/ci/migration/plan_a_migration.md
new file mode 100644
index 00000000000..488b2abf3a2
--- /dev/null
+++ b/doc/ci/migration/plan_a_migration.md
@@ -0,0 +1,71 @@
+---
+stage: Verify
+group: Pipeline Authoring
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+type: index, howto
+---
+
+# Plan a migration from another tool to GitLab CI/CD
+
+Before starting a migration from another tool to GitLab CI/CD, you should begin by
+developing a migration plan.
+
+Review the advice on [managing organizational changes](#manage-organizational-changes)
+first for advice on initial steps for larger migrations.
+
+Users involved in the migration itself should review the [questions to ask before starting a migration](#technical-questions-to-ask-before-starting-a-migration),
+as an important technical step for setting expectations. CI/CD tools differ in approach,
+structure, and technical specifics. While some concepts map one-to-one, others require
+interactive conversion.
+
+It's important to focus on your desired end state instead of strictly translating
+the behavior of your old tool.
+
+## Manage organizational changes
+
+An important part of transitioning to GitLab CI/CD is the cultural and organizational
+changes that come with the move, and successfully managing them.
+
+A few things that organizations have reported as helping:
+
+- Set and communicate a clear vision of what your migration goals are, which helps
+ your users understand why the effort is worth it. The value is clear when
+ the work is done, but people need to be aware while it's in progress too.
+- Sponsorship and alignment from the relevant leadership teams helps with the point above.
+- Spend time educating your users on what's different, and share this guide
+ with them.
+- Finding ways to sequence or delay parts of the migration can help a lot. Importantly though,
+ try not to leave things in a non-migrated (or partially-migrated) state for too
+ long.
+- To gain all the benefits of GitLab, moving your existing configuration over as-is,
+ including any current problems, isn't enough. Take advantage of the improvements
+ that GitLab CI/CD offers, and update your implementation as part of the transition.
+
+## Technical questions to ask before starting a migration
+
+Asking some initial technical questions about your CI/CD needs helps quickly define
+the migration requirements:
+
+- How many projects use this pipeline?
+- What branching strategy is used? Feature branches? Mainline? Release branches?
+- What tools do you use to build your code? For example, Maven, Gradle, or NPM?
+- What tools do you use to test your code? For example JUnit, Pytest, or Jest?
+- Do you use any security scanners?
+- Where do you store any built packages?
+- How do you deploy your code?
+- Where do you deploy your code?
+
+### Jenkins
+
+If you are [migrating from Jenkins](jenkins.md), these additional questions can help with planning
+the migration:
+
+- What plugins are used by jobs in Jenkins today?
+ - Do you know what these plugins do exactly?
+ - Do any plugin wrap a common build tool? For example, Maven, Gradle, or NPM?
+- What is installed on the Jenkins agents?
+- Are there any shared libraries in use?
+- How are you authenticating from Jenkins? Are you using SSH keys, API tokens, or other secrets?
+- Are there other projects that you need to access from your pipeline?
+- Are there credentials in Jenkins to access outside services? For example Ansible Tower,
+ Artifactory, or other Cloud Providers or deployment targets?