New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cloud migration tutorial #1610
Cloud migration tutorial #1610
Conversation
a457025
to
3357769
Compare
3357769
to
9de181b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome.
demo-cloud-migration.md
Outdated
~~~ shell | ||
# In a new terminal, start node 1 on cloud 1: | ||
$ cockroach start --insecure \ | ||
--locality=cloud=platform1 \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why "cloud=platform1" instead of just "cloud=1"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. Done.
demo-cloud-migration.md
Outdated
|
||
## Step 2. Set up HAProxy load balancing | ||
|
||
Each CockroachDB node is an equally suitable SQL gateway to your cluster, but to ensure client performance and reliability, it's important to use TCP load balancing. [HAProxy](http://www.haproxy.org/) is one of the most popular open-source TCP load balancers, and CockroachDB includes a built-in command for generating a configuration file that is preset to work with your running cluster, so you'll use that tool here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about: "..., but to ensure an even balancing of client requests across available nodes, we can use a TCP load balancer."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
demo-cloud-migration.md
Outdated
|
||
## Step 7. Migrate all data to "cloud 2" | ||
|
||
In a new terminal, edit the default replication zone, adding a [hard constraint](configure-replication-zones.html#replication-constraints) that all replicas must be on nodes with `--locality=cloud=platform2`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why don't you provide some colorful additional narration to these steps that are demonstrating the value proposition. For example: "OK, we're now running three nodes one cloud 1. But what if we'd like to start experimenting with resources provided by another cloud vendor? Let's try that by adding three more nodes to a new cloud platform."
"We now have the cluster replicating across our two simulated cloud vendors. But after experimentation, we're happy with cloud vendor 2, and we decide that we'd like to move everything there. Can we do that without interruption to our live client traffic? Yes, and it's as simple as adding a constraint to our replication configuration that all replicas must be chosen from cloud vendor 2."
You get the idea...we need to give people a scenario so it's not just an abstraction that only folks who've been struggling specifically with these problems will understand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great feedback. I'll work on this.
9de181b
to
f8645eb
Compare
LGTM Review status: 0 of 10 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed. demo-cloud-migration.md, line 7 at r4 (raw file):
Cross-cloud migration is just a special case of cross-DC migration. Since this is just a simulation, it seems weird to say it's a simulation of the special case instead of the general case. But I guess that's what gets the clicks... demo-cloud-migration.md, line 55 at r4 (raw file):
This is mac-specific. I'm OK with not having instructions for other platforms at this point, but we should say something like "In a new terminal, install HAProxy. If you're on a Mac and using Homebrew, use demo-cloud-migration.md, line 64 at r4 (raw file):
These port numbers all start to run together. How about a round number like 26000 instead of 26270? demo-cloud-migration.md, line 66 at r4 (raw file):
demo-cloud-migration.md, line 98 at r4 (raw file):
There should be an introductory section that tells people they'll need to install Go (and we could put the haproxy installation instructions there too) demo-cloud-migration.md, line 183 at r4 (raw file):
Stop YCSB first, or it will start spewing errors as soon as you stop haproxy. Comments from Reviewable |
f8645eb
to
be30146
Compare
Review status: 0 of 10 files reviewed at latest revision, 9 unresolved discussions, some commit checks failed. demo-cloud-migration.md, line 64 at r4 (raw file): Previously, bdarnell (Ben Darnell) wrote…
Done. demo-cloud-migration.md, line 66 at r4 (raw file): Previously, bdarnell (Ben Darnell) wrote…
Done. Comments from Reviewable |
Minor feedback (we discussed in person too)
|
be30146
to
ff00ea8
Compare
Review status: 0 of 10 files reviewed at latest revision, 9 unresolved discussions. demo-cloud-migration.md, line 55 at r4 (raw file): Previously, bdarnell (Ben Darnell) wrote…
Done. demo-cloud-migration.md, line 98 at r4 (raw file): Previously, bdarnell (Ben Darnell) wrote…
Done. demo-cloud-migration.md, line 183 at r4 (raw file): Previously, bdarnell (Ben Darnell) wrote…
Done. Comments from Reviewable |
ff00ea8
to
2d75040
Compare
2d75040
to
80c4bbc
Compare
|
02bec34
to
9a77030
Compare
1 similar comment
9a77030
to
838cb2f
Compare
Merging. Will open a follow-up PR for the screencast part. |
838cb2f
to
5ae031f
Compare
A tutorial showing users how to use a local cluster to simulate cross-cloud deployment and then migration from one cloud to another.
I'm planning to add a simple screencast (with audio or text) demoing this across real cloud platforms, and offering that video as something to watch before you begin. But I'm opening this to get initial feedback on the flow and basic messaging.