The PR https://github.com/apache/fluo-muchos/pull/429 is relevant to
this discussion.

On Thu, Jan 6, 2022 at 1:53 PM Christopher <ctubb...@apache.org> wrote:
>
> On Thu, Jan 6, 2022 at 11:31 AM Keith Turner <ke...@deenlo.com> wrote:
> >
> > The way I use Muchos I have never really cared too much what the OS is
> > from the perspective of testing and experimenting.  I use Muchos to
> > experiment with and test Fluo and Accumulo features and functionality
> > at scale.  When I use Muchos I hope to spend as little time as
> > possible working on Muchos itself and as much time as possible working
> > on the experiment/test I am trying to run.  From the perspective of
> > saving time, I care a lot about the OS for two reasons. First I would
> > prefer something that's stable (like RHEL derivatives or Ubuntu LTS
> > releases)  so that when I do use Muchos it's less likely that I have
> > to spend time dealing with a change in the OS that breaks something.
> > Second, if we all decide to make Muchos work with a single default OS,
> > then we can all benefit from each other's work saving time for all of
> > us.
> >
> > > I am interpreting that to mean "what do we
> > > want the default image to be?"
> >
> > Yes, that is what I am thinking.
> >
> > > Process-wise, I believe it would be simpler and less taxing on effort / 
> > > testing / supportability to standardize on one final OS target platform.
> >
> > I also agree with this as I think it will save time for using Muchos
> > to test Fluo and Accumulo at scale.
> >
> > >  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.
> >
> > We should definitely steer clear of using terminology like "supporting
> > OS X".  There is never any guarantee that Muchos will work when
> > someone uses it with the default OS it's using, much less some other
> > OS.
> >
> > > 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.
> >
> > I would be surprised if the current version of Muchos worked w/ no
> > changes on RHEL8.  But I have no idea if it would or would not work.
> >
>
> RHEL7 and RHEL8 are downstream of Fedora, and there haven't been
> substantial changes in Fedora over that period that I know of that
> would have negatively impacted Muchos. I tried to set up Fedora today,
> and the main thing I had to change was to disable the attempts to
> install the 'epel-release' yum repository. For those not familiar,
> that repository basically contains packages from Fedora that RedHat
> didn't package in RHEL, so as a workaround, you have to install them
> from the Fedora-maintained "EPEL" repo. So, that repository isn't
> needed when deploying to Fedora, since it already has the packages in
> its main repos. Trivially, I also had to add collectd-disk to the list
> of installed packages, because it wasn't installed by default. I also
> changed the default user to "fedora" from "centos" in the
> muchos.props, but that's AMI-specific user config anyway.
>
> While I was trying out Fedora, I saw that we already have some logic
> in there to support CentOS/RHEL 8. I did not test that.
>
> > > I largely concur with the list of aspects to consider that Arvind has 
> > > provided
> >
> > I also agree with that list.
> >
> > > There should be ready availability of OpenJDK binary distribution for 
> > > that OS.
> >
> > Ideally the new default OS would make OpenJDK 8,11, and 17 easily
> > installable from its package manager.
>
> Fedora supports these Java LTS versions in parallel, and the same
> package names that CentOS/RHEL use. I use Fedora for development and
> switch between these versions as needed, routinely, by simply changing
> JAVA_HOME environment variable in my bashrc and updating my PATH.
>
> >
> > > - 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
> >
> > As each code change is code reviewed, if someone notices something
> > that would make using another OS really hard they can mention it in
> > the review.  Personally I would not be interested in spending time on
> > making the statement "users can easily configure a different image and
> > have reasonable expectations that Muchos will work with little or very
> > minor tweaks" a reality because I can't see how to achieve it w/o
> > testing against other OSes (besides the default) periodically.  A
>
> I agree that we shouldn't spend time/effort into that. My argument
> here is that I think we get this reasonable expectation naturally by
> sticking to something in the same RPM-based EL family of operating
> systems that we currently use and which currently meets our needs,
> because these versions upstream and downstream of RHEL aren't
> substantially different from each other. This is how we've been able
> to bump through the CentOS7 releases 7.1, 7.2, 7.3, etc. so easily.
>
> > slightly different way to approach this may be to accept changes to
> > Muchos to make it work with an OS besides the default OS as long as
> > those do not introduce an excessive maintenance burden. I think it
> > would be nice to avoid introducing complexity and processes to support
> > multiple OS that does not improve the ability to test Fluo and
> > Accumulo functionality at scale.
> >
> > > My preferred default would be Fedora
> >
> > I suspect making something like Fedora, a non-LTS Ubuntu version, or
> > Centos stream the default OS will lead to more time spent dealing with
> > OS changes that takes time away from testing/experimenting with
> > Accumulo and Fluo at scale. Given this I would prefer a RHEL 8
> > derivative or Ubuntu LTS (20.04 or 22.04) as the new default OS.
>
> I've been using Fedora for 10+ years of Accumulo development and have
> rarely, if ever, encountered a substantial deviation from CentOS/RHEL
> behavior that required I take any time away from testing/experimenting
> with Accumulo to address it, *except* for those rare instances where
> we got advanced warning of something that would soon impact CentOS
> because of it being patched in Fedora first. In fact, it's been easier
> to do development in Fedora for Java, because Fedora has made newer
> Java releases available much more regularly and predictably than on
> CentOS. In spite of its reputation as "bleeding edge" (which I think
> only applies to the rawhide branch of Fedora anyway, which I never
> use), Fedora is just as stable as any of the downstream CentOS/RHEL
> distros that build off it. The user experience with Fedora should be
> identical, or nearly so, to any RHEL8 derivative, since they're in the
> same family. However, Fedora receives security updates more regularly,
> and more rapidly, since it is upstream of those.
>
> I would strongly prefer *not* using a Debian-based derivative at the
> default, because the user experience will be substantially different
> than any of the RPM-based distros used in any of the actual production
> deployments of Accumulo I'm familiar with, and defaulting to Ubuntu
> would make packages and other conventions no longer work out of the
> box, without at least a little effort, for EL-based distros, if
> somebody wanted to test at scale on an EL OS they might use in
> production.
>
> I'd be happy with a RHEL8 downstream distro if there was one that
> stood out as ubiquitous. Currently, I think Alma and Rocky are the two
> main competitors, but I don't know if either are available on Azure. I
> also don't know if either have the infrastructure to support regular
> releases and security updates yet. This is why I suggested Fedora. It
> does have these things, and is as close as we can get to RHEL8,
> without paying RHN subscription fees.
>
> >
> > > - we should focus on OS/OS families actually used by devs in their
> > > Accumulo/Fluo testing environments
> >
> > This is hard to know w/ certainty.  That is why I was thinking voting
> > on a list of candidates for the new default OS might be good. When
> > people vote they could consider this among many other things.
>
> Right. By this, all I meant was that Muchos is our tool, and it should
> meet our dev needs, rather than us trying to cater to what some
> external non-dev user might hypothetically want to use if they had
> their ideal pick.
>
> >
> > > - it should be a GNU/Linux OS, since Accumulo isn't really designed or
> > > tested with anything else (sorry BSD users)
> >
> > Yeah should definitely be  GNU/Linux OS
> >
> > On Wed, Jan 5, 2022 at 11:32 PM Christopher <ctubb...@apache.org> wrote:
> > >
> > > 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

Reply via email to