Thanks for bringing this up for discussion, Keith! One point I'd like us to be clear about for the purposes of this discussion: when we say "move from Centos 7 to another OS", I want us to be clear that Muchos is only "on" CentOS 7 as a default configured image. Muchos *should* be able to run on any similar OS, by merely changing the image it is configured to use. For example, I expect it to work today without any changes on a RHEL7 image, or a RHEL8 or even CentOS Stream 8 image, and would be surprised if it didn't. So, when we talk about "moving", I am interpreting that to mean "what do we want the default image to be?" If we mean something other than selecting the default, then I'm not sure what we're talking about and would appreciate clarification.
Since the intent of Muchos, and the reason it continues to fall under the purview of the Fluo PMC, was for the Fluo developers to have a way to quickly deploy a test cluster of Accumulo and Fluo. While it may be used by some outside that scope, we should not lose sight of that intent. Given that purpose, it becomes clear that Muchos needs to be able to deploy on an operating system that the Accumulo and Fluo developers are actually using to test on to anticipate problems in their own production clusters. So, "[supporting] ... one final OS target platform" doesn't make sense to me if we have developers needing to use it to test on several different OSes because they use different OSes in production. >From Arvind's experience testing Ubuntu, and my own expectations using other Fedora and other Fedora-derived RPM-based distros like RHEL and CentOS, I think it's likely that the biggest incompatibilities preventing use of an arbitrary AMI is going to be the package names, and a few filesystem layout conventions. So, I'm not too worried about choosing one default and users still being able to configure a different one that they need to test on. As long as the differences between major OS families we use are minor, we can all still use the same Muchos to test with, by baking in some conditional logic, or making some aspects more configurable. I largely concur with the list of aspects to consider that Arvind has provided, but would add: - we should provide a reasonable default, but avoid doing things in Muchos that would tightly couple us to a particular image, so that users can easily configure a different image and have reasonable expectations that Muchos will work with little or very minor tweaks - we should focus on OS/OS families actually used by devs in their Accumulo/Fluo testing environments - it should be a GNU/Linux OS, since Accumulo isn't really designed or tested with anything else (sorry BSD users) My preferred default would be Fedora, because it is upstream of RHEL/CentOS/Rocky/Alma/etc., unless one of the RHEL downstream CentOS replacements becomes a de facto standard replacement for CentOS, because I'm likely going to need some kind of EL or upstream-to-EL testing for the enterprise users I support at $dayjob. However, given the ubiquity of Ubuntu among Debian varieties, I think it's reasonable to expect things to work more-or-less out of the box if the user configures a modern Ubuntu image. Related topic: would it make more sense to migrate Muchos away from Ansible, and use something that is maybe a little less hard-coded scripts, and a little more flexible user config? I'm thinking something like https://github.com/hashicorp/terraform#readme ; they have examples with cloud-init https://learn.hashicorp.com/tutorials/terraform/cloud-init ; Terraform is extremely well documented, and it seems to me that a few easily user-editable config templates could replace Muchos and support both EC2 and Azure easily. It's probably a bigger change than when Muchos moved to ansible from the previous scripts, but long-term, it seems better than trying to maintain our own provisioning code that's as flexible. However, I don't have much experience with Terraform. On Wed, Jan 5, 2022 at 6:45 PM Arvind Shyamsundar <arvin...@microsoft.com.invalid> wrote: > > Hi Keith, > Process-wise, I believe it would be simpler and less taxing on effort / > testing / supportability to standardize on one final OS target platform. > Supporting a choice of OS platforms is hard and more effort than rewards. > While selecting the OS, we could consider the following (this is just my > top-of-mind, there may be more aspects to consider): > > - End-of-life / LTS status for that OS. > - Licensing and commercial implications if any. > - Ready and wide availability of image(s) for the cloud providers (Azure, > EC2). > - We should not require the user of Muchos to have to build their own image. > - Those cloud provider image(s) should support cloud-init. > - Those cloud provider image(s) should be updated by the cloud provider (or > partners thereof) on a reasonably regular (quarterly or more frequent?) basis > to try to include as many security patches out-of-the-box. > - The OS should be reasonably "stable" in that it should not increase burden > on the user of Muchos by introducing any regressions (functional / perf) of > its own origin. > - There should be ready availability of OpenJDK binary distribution for that > OS. > ... etc. > > BTW, I did some work in December to evaluate Ubuntu 20.04 as a candidate OS > for the Muchos cluster nodes on Azure. In the proof-of-concept that I did, > the changes to the Muchos code base seemed to be contained to yum packages, > OpenJDK package names, and similar relatively minor changes. The downstream > playbooks for Zookeeper, Hadoop, Accumulo "just worked". > > I hope this helps. > > Arvind. > > -----Original Message----- > From: Keith Turner <ke...@deenlo.com> > Sent: Wednesday, January 5, 2022 2:00 PM > To: fluo-dev <dev@fluo.apache.org> > Subject: [EXTERNAL] [DISCUSS] Move Muchos from Centos 7 to another OS > > We need to move Muchos from Centos 7 to another OS. Not completely sure how > we should proceed. Below is a possible process we could follow to make this > change. > > * We collaborate to create a list of candidate OSes with pros and cons for > each OS, not sure where is best to do this. I don't think a mailing list is > the best place for this collaboration, however it's nice for the > collaboration to be recorded on the mailing list. > * We hold a vote (possibly iterative voting or ranked voting) to try to > reach consensus on one of the candidate OSes we would like Muchos to use. > * After a candidate is selected we can create a branch and start submitting > PRs to move Muchos to that new OS in the branch. When it's functional we can > merge that branch into main. > > Can anyone think of another process we could follow to move Muchos to another > OS? Does anyone object to the process proposed above or have suggestions to > improve it? > > Keith