Hello all

I've given a thought to this multi-cloud marketing buzz with Cassandra

Theoretically feasible (with GossipingPropertyFileSnitch) but practically a
headache if you want a minimum of performance and security

The problem comes from the network "devils in the details"

Suppose DC1 in AWS inside a VPC and DC2 in Azure inside a VNet

One needs to allow traffic between both DCs. Of course, apart from obvious
networking stuff like allowing traffic on Security Group, there is much
more to consider.

If your C* nodes have all public IPs, then the inter-node traffic can go
through the Internet, with unpredictable latency and connection bandwidth.
Also you need to encrypt this traffic with SSL and manage certificates on
each node (and more importantly certificates ROTATION, imagine the surprise
after one year when they expire, your production is down ...). Exposing
your C* node with public IPs is also risky (hacking, DDoS ....)

A better solution is to have all your nodes in private VPC and VNet with
private IPs and the big question is how to route the traffic between 2
cloud providers using their network backbone without going through the
Internet....

As far as I know (some may correct me if I'm wrong) there is no direct
backbone connection between AWS and Azure so you may need to ask a 3rd
party ISP like Equinix to provide this kind of link. Basically from the AWS
VPC you have a Direct Connect to Equinix, then from Equinix an Express
Route to Azure VNet. This is technically possible, complex to implement,
and especially very expensive... Of course, the SSL certificates are also
required in this scenario unless you absolutely trust your ISP (which you
shouldn't)

Another thing to consider is the outgoing traffic. Indeed when running
repair, if you have a lot of de-synchronized data between both DCs or if
you undergo a lot of over-streaming, the bill for network traffic can also
be substantial. Most cloud providers don't charge for Data In, but for Data
Out :-)

All this blabla is about inter-node traffic, I'm not even talking about
client/server traffic, good luck!

Regards



On Thu, Sep 5, 2019 at 8:22 PM Goutham reddy <goutham.chiru...@gmail.com>
wrote:

> Thanks Jon that explained me everything.
>
> On Thu, Sep 5, 2019 at 10:00 AM Jon Haddad <j...@jonhaddad.com> wrote:
>
>> Technically, not a problem.  Use GossipingPropertyFileSnitch to keep
>> things simple and you can go across whatever cloud providers you want
>> without issue.
>>
>> The biggest issue you're going to have isn't going to be Cassandra, it's
>> having the expertise in the different cloud providers to understand their
>> strengths and weaknesses.  You'll want to benchmark every resource, and
>> properly sizing your instances to C* is now 2x (or 3x for 3 cloud
>> providers) the work.
>>
>> I recommend using Terraform to make provisioning a bit easier.
>>
>> On Thu, Sep 5, 2019 at 9:36 AM Goutham reddy <goutham.chiru...@gmail.com>
>> wrote:
>>
>>> Hello,
>>> Is it wise and advisable to build multi cloud environment for Cassandra
>>> for High Availability.
>>> AWS as one datacenter and Azure as another datacenter.
>>> If yes are there any challenges involved?
>>>
>>> Thanks and regards,
>>> Goutham.
>>>
>>

Reply via email to