I think that Cassandra in Docker is a bit out of scope of this discussion 
though, but here are my concerns.  

I don’t see any profits of putting another layer between Cassandra and OS 
because:
- we have less control over system-level configuration (e.g. ulimits, 
propagation of /proc/sys properties to host, disk tuning)
- node configuration becomes very messy with bash init scripts or anything (yes 
we can provision Docker with Ansible, but it looks like configuration overkill)
- if node fails, you have to repair it, not just restart process
- seed nodes recovery becomes pretty challenging
- access to node via 'docker exec' over ssh to host machine is inconvenient
- Cassandra is tuned for hardware, you can’t just rollout container which works 
on your laptop to any infrastructure and get any predictable performance at any 
cloud/datacenter without appropriate tuning
- think about monitoring (DataStax OpsCenter, for example need to have ssh 
access to Cassandra node in order to install agents)

We now currently use CoreOS/Docker Cassandra installation at AWS. What I could 
say is that we spent much more time troubleshooting Docker instead of focusing 
on Cassandra performance.

It would be great to continue our talk outside this topic, so feel free to 
reach me out via email, we can discuss all the details.  

--  
Anton Kirillov
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)


On Tuesday, March 10, 2015 at 5:49 PM, Gurvinder Singh wrote:

> On 03/10/2015 03:57 PM, Anton Kirillov wrote:
> > Gurvinder,
> >  
> > your points are really interesting to consider, but as for me it
> > is still looks pretty like a bit narrow solution, because not all  
> > widespread systems are having frameworks to run on Mesos. But it
> > really depends on your goals.
> >  
> > We have pretty specific use cases, one of them is using Spark on
> > Mesos to achieve HA alongside with Cassandra as datastore. So we
> > install Mesos Slave with Cassandra node on the same machine to
> > achieve greater data locality. And Docker is pretty poor choice for
> > running Cassandra in it but there is no other way to run Cassandra
> > on CoreOS (afaik)
> >  
>  
> We also plan to run different frameworks on our cluster and Spark,
> Cassandra being one of them. I would like to know what are the issues
> you faced while running cassandra in docker. As docker with volume
> attached has almost bare metal performance.
> >  
> > Another idea is that when you go to “big iron” OS footprint
> > doesn’t matter a lot while you have multi-core and huge RAM
> > hardware. It looks like premature optimization.
> >  
>  
> Optimization is one thing, but with CoreOS you get more determinstic
> updates of OS with rollback option which can be quite useful when
> running large infrastructure. The current discussion is to get to know
> about community feeling about these ideas, It is not to say that it's
> the best solution :)
>  
> - Gurvinder
> > My points just come from recent experience and more
> > problem-oriented. But it would be really nice to see Mesos as
> > native CoreOS service to experiment with.
> >  
> > -- Anton Kirillov Sent with Sparrow
> > <http://www.sparrowmailapp.com/?sig>
> >  
> > On Tuesday, March 10, 2015 at 3:12 PM, Gurvinder Singh wrote:
> >  
> > > Thanks Anton for sharing your experience. Response in line. On
> > > 03/10/2015 01:01 PM, Anton Kirillov wrote:
> > > > Hi Gurvinder,
> > > >  
> > > > our team have an experience with Mesos on CoreOS with fleet,
> > > > and we decided to switch to bare metal deployments and here are
> > > > our main reasons.
> > > >  
> > > > First of all, it doesn’t look like a great idea to package
> > > > resource manager into Docker putting one more abstraction layer
> > > > between a resource itself and resource manager.
> > > >  
> > >  
> > > I agree. That was the main reason I asked about closer
> > > integeration of mesos with coreos. If you look here kubernetes  
> > > (https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/getting-started-guides/coreos/cloud-configs/master.yaml)
> > >  
> >  
> >  
>  
> run natively in coreos, not in a container. As it is started by
> > > cloud-init process. So something similar for mesos will resolve
> > > this issue. Although kubernetes is possible due to simple go
> > > binary with no dependency, I looked at the Mesos library
> > > dependency and compare with library on coreos. Only 2 are missing
> > > (libmesos-<version>.so, libsasl2.so). So I think it is possible
> > > for mesos to follow the same model as kubernetes to run
> > > natively.
> > >  
> > > >  
> > > > From DevOps point of view it is hard to control such thing as
> > > > ZooKeeper restarts (and ensemble rolling restarts as well)
> > > > which is the core service discovery mechanism for Mesos. You
> > > > have to put some sidekick services to provide peer discovery
> > > > mechanics and it doesn’t look very robust.
> > > >  
> > >  
> > > That's why I mention about the JIRA where mesos can use etcd.
> > > The sidekick could be solved by using the flannel  
> > > (https://github.com/coreos/flannel) to make each container
> > > addressable inside your cluster.
> > > >  
> > > > Very common use case with Mesos is running Docker on top of it
> > > > either with Marathon or with Aurora. But Docker service needs
> > > > to be installed on worker nodes. So you’re coming to
> > > > Docker-into-Docker situation which cancels all advantages of
> > > > both transparent resource management and simple deployment
> > > > configuration.
> > > >  
> > > > One more point on Mesos inside Docker here, is that you have to
> > > > attach Mesos data directories from container to a host. Given
> > > > that you’re already running Mesos container in privileged mode
> > > > and sharing directories with state with host there is no more
> > > > reasons to run Mesos inside a container. And consider container
> > > > restart (not just failure) with registry corruption and
> > > > following synchronization issues.
> > > >  
> > > > Another our use case with multi-region cluster deployments
> > > > showed some issues with etcd heartbeat/leader election
> > > > timeouts, which need to be increased in order to handle bigger
> > > > latencies between data centers. If timeouts increase fleet
> > > > starts to work in unpredictable way, loosing and finding peer
> > > > nodes again which is not appropriate in production  
> > > > environment.
> > > >  
> > >  
> > > I have not experience with multi region deployment. As such
> > > scenario for zookeeper can also be hard, where as consul claims
> > > to address this issue.
> > >  
> > > The reason for asking is that with coreos we have a small
> > > footprint, upto date OS which can boot the mesos to manage whole
> > > cluster. By using docker, we can have multi tenancy support too.
> > > Just ideas :P
> > >  
> > > - Gurvinder
> > >  
> > > >  
> > > > You can take a look at this configuration for Mesos-CoreOS-HA
> > > > as well  
> > > > https://github.com/akirillov/mesos-deploy/tree/master/mesos-coreos-ha
> > > >  
> > >  
> > >  
> >  
>  
> --  
> > > > Anton Kirillov Sent with Sparrow
> > > > <http://www.sparrowmailapp.com/?sig>
> > > >  
> > > > On Tuesday, March 10, 2015 at 11:08 AM, Gurvinder Singh wrote:
> > > >  
> > > > > Hi Micheal,
> > > > >  
> > > > > Yes I tested the tutorial and it works fine for testing.
> > > > > Later on I used fleet to run mesos workers on all coreos
> > > > > machines too. I was wondering how the landscape is looking in
> > > > > the community regarding coreos. As is there any interest from
> > > > > community or mesos team to support coreos in general. If yes
> > > > > the then how you see where Mesos fits in with Fleet,  
> > > > > Kubernetes.
> > > > >  
> > > > > My current understanding is that Fleet is useful for
> > > > > lightweight scheduling, where as Mesos and kubernetes are
> > > > > kind of serving the similar purpose. Mesos has been here for
> > > > > a while and more feature complete than kubernetes. But
> > > > > Kubernetes has more tight integeration with coreos like use
> > > > > etcd for co-ordination, flannel for networking. I wonder
> > > > > what's the plan are when it comes to Mesos for such. I have
> > > > > seen the JIRA for etcd
> > > > > (https://issues.apache.org/jira/browse/MESOS-1806)
> > > > >  
> > > > > I understand that the landscape is changing fast but its good
> > > > > to know about Mesos roadmap in this regard. Also would love
> > > > > to know if anybody using Coreos with Mesos beyond testing.
> > > > >  
> > > > > Thanks, Gurvinder On 03/09/2015 11:35 PM, Michael Park
> > > > > wrote:
> > > > > > Hi Gurvinder,
> > > > > >  
> > > > > > We got started on this work at Mesosphere and there's a
> > > > > > tutorial  
> > > > > > <http://mesosphere.com/docs/tutorials/mesosphere-on-a-single-coreos-instance/>
> > > > > >  
> > > > >  
> > > > >  
> > > >  
> > > >  
> > >  
> >  
>  
> on
> > > > > > how to do a single-node setup. We ran the mesos-master and
> > > > > > slaves in docker containers which led to this JIRA ticket  
> > > > > > <https://issues.apache.org/jira/browse/MESOS-2115>. I
> > > > > > haven't been able to follow-up on this article recently,
> > > > > > and I'd like to hear about others who have made further
> > > > > > progress as well.
> > > > > >  
> > > > > > At the time, we were thinking that using fleet shouldn't be
> > > > > > too difficult since it uses the systemd unit files but
> > > > > > didn't quite get around to it.
> > > > > >  
> > > > > > Perhaps you'll find the tutorial to be a decent starting
> > > > > > point.
> > > > > >  
> > > > > > Thanks,
> > > > > >  
> > > > > > MPark.
> > > > > >  
> > > > > > On 9 March 2015 at 17:52, Gurvinder Singh  
> > > > > > <[email protected] (mailto:[email protected])
> > > > > > <mailto:[email protected]>  
> > > > > > <mailto:[email protected]>  
> > > > > > <mailto:[email protected]>> wrote:
> > > > > >  
> > > > > > Hi,
> > > > > >  
> > > > > > I am wondering if anybody in the community has looked into
> > > > > > or are running mesos on top of coreos. I would be
> > > > > > interested to hear out your experiences around following
> > > > > > areas
> > > > > >  
> > > > > > - Users management on coreos cluster and containers running
> > > > > > with Mesos - Are you using fleet to run mesos or run it as
> > > > > > service in cloud-config and don't use fleet at all -
> > > > > > Networking among hosts flannel or ? - Any other interesting
> > > > > > insights you found considering such setup
> > > > > >  
> > > > > > Thanks, Gurvinder  

Reply via email to