There is an old saying in the software industry: The structure of a system
follows from the structure of the organization that created it (Conway's
Law). Seriously, the main, first question for your end is who owns the
applications in terms of executive management, such that if management
makes a decision that dramatically affects the app's impact on the cluster,
is it likely that they will have done so with the concurrence of management
who owns the other app. Trust me, you do not want to be in the middle when
two managers are in dispute over whose app is more important. IOW, if one
manager owns both apps, you are probably safe, but if two different
managers might have differing views of each other's priorities, tread with
caution.

In any case, be prepared to move one of the apps to a different cluster if
and when usage patterns cause them to conflict.

There is also the concept of devOps, where the app developers also own
operations. You really can't have two separate development teams administer
operations for one set of hardware.

If you are dedicated to operations for both app teams and the teams seem to
be reasonably compatible, then it could be fine.

In short, sure, technically a single cluster can support  any number of key
spaces, but mostly it will come down to whether there might be an excess of
contention for load and operations of the cluster in production.

And then little things like software upgrades - one app might really need a
disruptive or risky upgrade or need to bounce the entire cluster, but then
the other app may be impacted even though it had no need for the upgrade or
be bounced.

Are the apps synergistic in some way, such that there is an architectural
benefit from running on the same hardware?

In the end, the simplest solution is typically the better solution, unless
any of these other factors loom too large.


-- Jack Krupansky

On Thu, Apr 2, 2015 at 9:06 AM, Ian Rose <ianr...@fullstory.com> wrote:

> Hi all -
>
> We currently have a single cassandra cluster that is dedicated to a
> relatively narrow purpose, with just 2 tables.  Soon we will need cassandra
> for another, unrelated, system, and my debate is whether to just add the
> new tables to our existing cassandra cluster or whether to spin up an
> entirely new, separate cluster for this new system.
>
> Does anyone have pros/cons to share on this?  It appears from watching
> talks and such online that the big users (e.g. Netflix, Spotify) tend to
> favor multiple, single-purpose clusters, and thus that was my initial
> preference.  But we are (for now) no where close to them in traffic so I'm
> wondering if running an entirely separate cluster would be a premature
> optimization which wouldn't pay for the (nontrivial) overhead in
> configuration management and ops.  While we are still small it might be
> much smarter to reuse our existing clusters so that I can get it done
> faster...
>
> Thanks!
> - Ian
>
>

Reply via email to