|
3 | 3 | :description: Learn about {company} migration tools.
|
4 | 4 | :page-tag: migration,zdm,zero-downtime,zdm-proxy,components
|
5 | 5 |
|
6 |
| -{company} migration tools include the {product} {product-short} toolkit and three data migration tools. |
| 6 | +The {company} {product} ({product-short}) toolkit includes {product-proxy}, {product-utility}, {product-automation}, and several data migration tools. |
7 | 7 |
|
8 |
| -{product-short} is comprised of {product-proxy}, {product-utility}, and {product-automation}, which orchestrate activity-in-transition on your clusters. |
9 |
| -To move and validate data, you use {sstable-sideloader}, {cass-migrator}, or {dsbulk-migrator}. |
| 8 | +For live migrations, {product-proxy} orchestrates activity-in-transition on your clusters. |
| 9 | +{product-utility} and {product-automation} facilitate the deployment and management of {product-proxy}. |
10 | 10 |
|
11 |
| -You can also use {sstable-sideloader}, {cass-migrator-short}, and {dsbulk-migrator} on their own, outside the context of {product-short}. |
| 11 | +To move and validate data, you use data migration tools. |
| 12 | +You can use these tools alone or with {product-proxy}. |
12 | 13 |
|
13 | 14 | == {product-proxy}
|
14 | 15 |
|
15 |
| -The main component of the {company} {product} toolkit is {product-proxy}, which is designed to be a lightweight proxy that handles all real-time requests generated by your client applications during the migration process. |
| 16 | +The main component of the {company} {product} toolkit is {product-proxy-repo}[{product-proxy}], which is designed to be a lightweight proxy that handles all real-time requests generated by your client applications during the migration process. |
| 17 | +This tool is open-source software that is open for xref:ROOT:contributions.adoc[public contributions]. |
16 | 18 |
|
17 |
| -{product-proxy} is open-source software that is available from the {product-proxy-repo}[zdm-proxy GitHub repo]. |
18 |
| -This project is open for public contributions. |
19 |
| - |
20 |
| -The {product-proxy} is an orchestrator for monitoring application activity and keeping multiple clusters (databases) in sync through dual writes. |
| 19 | +{product-proxy} is an orchestrator for monitoring application activity and keeping multiple clusters (databases) in sync through dual writes. |
21 | 20 | {product-proxy} isn't linked to the actual migration process.
|
22 | 21 | It doesn't perform data migrations and it doesn't have awareness of ongoing migrations.
|
23 |
| -Instead, you use a data migration tool, like {sstable-sideloader}, {cass-migrator}, or {dsbulk-migrator}, to perform the data migration and validate migrated data. |
| 22 | +Instead, you use a <<data-migration-tools,data migration tool>> to perform the data migration and validate migrated data. |
24 | 23 |
|
25 | 24 | {product-proxy} reduces risks to upgrades and migrations by decoupling the origin cluster from the target cluster and maintaining consistency between both clusters.
|
26 | 25 | You decide when you want to switch permanently to the target cluster.
|
@@ -78,24 +77,58 @@ Throughout the {product-short} documentation, the term _{product-proxy} deployme
|
78 | 77 | You can scale {product-proxy} instances horizontally and vertically.
|
79 | 78 | To avoid downtime when applying configuration changes, you can perform rolling restarts on your {product-proxy} instances.
|
80 | 79 |
|
81 |
| -For simplicity, you can use the {product-utility} and {product-automation} to set up and run Ansible playbooks that deploy and manage {product-proxy} and its monitoring stack. |
| 80 | +For simplicity, you can use {product-utility} and {product-automation} to set up and run Ansible playbooks that deploy and manage {product-proxy} and its monitoring stack. |
82 | 81 |
|
83 | 82 | == {product-utility} and {product-automation}
|
84 | 83 |
|
85 |
| -You can use the {product-automation-repo}[{product-utility} and {product-automation}] to set up and run Ansible playbooks that deploy and manage {product-proxy} and its monitoring stack. |
| 84 | +You can use {product-automation-repo}[{product-utility} and {product-automation}] to set up and run Ansible playbooks that deploy and manage {product-proxy} and the associated monitoring stack. |
86 | 85 |
|
87 | 86 | https://www.ansible.com/[Ansible] is a suite of software tools that enables infrastructure as code.
|
88 | 87 | It is open source and its capabilities include software provisioning, configuration management, and application deployment functionality.
|
89 | 88 | The Ansible automation for {product-short} is organized into playbooks, each implementing a specific operation.
|
90 | 89 | The machine from which the playbooks are run is known as the Ansible Control Host.
|
91 | 90 | In {product-short}, the Ansible Control Host runs as a Docker container.
|
92 | 91 |
|
93 |
| -You use the {product-utility} to set up Ansible in a Docker container, and then you use {product-automation} to run the Ansible playbooks from the Docker container created by {product-utility}. |
| 92 | +You use {product-utility} to set up Ansible in a Docker container, and then you use {product-automation} to run the Ansible playbooks from the Docker container created by {product-utility}. |
94 | 93 |
|
95 |
| -The {product-utility} creates the Docker container acting as the Ansible Control Host, from which {product-automation} allows you to deploy and manage the {product-proxy} instances and the associated monitoring stack, which includes Prometheus metrics and Grafana visualizations of the metrics data. |
| 94 | +{product-utility} creates the Docker container acting as the Ansible Control Host, from which {product-automation} allows you to deploy and manage the {product-proxy} instances and the associated monitoring stack, which includes Prometheus metrics and Grafana visualizations of the metrics data. |
96 | 95 |
|
97 | 96 | To use {product-utility} and {product-automation}, you must prepare the recommended infrastructure, as explained in xref:deployment-infrastructure.adoc[].
|
98 | 97 |
|
99 | 98 | For more information, see xref:setup-ansible-playbooks.adoc[] and xref:deploy-proxy-monitoring.adoc[].
|
100 | 99 |
|
101 |
| -include::ROOT:migrate-and-validate-data.adoc[tags=migration-tool-summaries] |
| 100 | +== Data migration tools |
| 101 | + |
| 102 | +You use data migration tools to move data between clusters and validate the migrated data. |
| 103 | + |
| 104 | +You can use these tools alone or with {product-proxy}. |
| 105 | + |
| 106 | +=== {sstable-sideloader} |
| 107 | + |
| 108 | +{sstable-sideloader} is a service running in {astra-db} that imports data from snapshots of your existing {cass-short}-based cluster. |
| 109 | +This tool is exclusively for migrations that move data to {astra-db}. |
| 110 | + |
| 111 | +For more information, see xref:sideloader:sideloader-zdm.adoc[]. |
| 112 | + |
| 113 | +=== {cass-migrator} |
| 114 | + |
| 115 | +You can use {cass-migrator} ({cass-migrator-short}) for data migration and validation between {cass-reg}-based databases. |
| 116 | +It offers extensive functionality and configuration options to support large and complex migrations as well as post-migration data validation. |
| 117 | + |
| 118 | +You can use {cass-migrator-short} by itself, with {product-proxy}, or for data validation after using another data migration tool. |
| 119 | + |
| 120 | +For more information, see xref:ROOT:cassandra-data-migrator.adoc[]. |
| 121 | + |
| 122 | +=== {dsbulk-migrator} |
| 123 | + |
| 124 | +{dsbulk-migrator} extends {dsbulk-loader} with migration-specific commands: `migrate-live`, `generate-script`, and `generate-ddl`. |
| 125 | + |
| 126 | +It is best for smaller migrations or migrations that don't require extensive data validation, aside from post-migration row counts. |
| 127 | + |
| 128 | +You can use {dsbulk-migrator} alone or with {product-proxy}. |
| 129 | + |
| 130 | +For more information, see xref:ROOT:dsbulk-migrator.adoc[]. |
| 131 | + |
| 132 | +=== Custom data migration processes |
| 133 | + |
| 134 | +If you want to write your own custom data migration processes, you can use a tool like Apache Spark(TM). |
0 commit comments