What benefits does the Marathon package bring to DC/OS? - docker

Apologies for the noob question; I am new to using DC/OS (using v1.8.7) and have learnt that DC/OS has Marathon built in (Source: https://docs.mesosphere.com/1.8/administration/release-notes/).
When I go to the 'Universe' browser in DC/OS, I find that I can download and install the Marathon (v1.3.3) package.
Is this package now redundant for the version of DC/OS that I am using?
Why would I use the Marathon package in DC/OS - what features does it give to me that I don't already get from DC/OS?
I'm basically fumbling through setting up my first cluster and trying to learn as I go along, so I would appreciate any insight!
I have also posted the same question here: https://unix.stackexchange.com/questions/325103/what-benefits-does-the-marathon-package-bring-to-dc-os - but this forum doesn't seem to be any where near as active as StackOverflow; If i get an answer here, I will delete the other question or vice-versa.

Great question, happy to provide some clarification since I think we don't do a great job explaining this.
Is this package now redundant for the version of DC/OS that I am using?
No. The use case for this package (called Marathon-on-Marathon or MoM for short) is to give users a user-land supervisor. You don't want to share the System Marathon with your users and allow everyone to install stuff from the Universe? OK, no problem, install a MoM for each of your users/teams/projects and they can do whatever they like within it (for example, install Jenkins, Spark, etc.)
Why would I use the Marathon package in DC/OS - what features does it give to me that I don't already get from DC/OS?
See above. No additional feature (there are even some limitations, that is, there's stuff you can do on the System Marathon you can't do in MoM) but think of it as a multi-tenant and/or security feature (well, a poor-man's, really—the Mesosphere DC/OS Enterprise Edition provides a full-featured environment like authn/authz, ACLs, secrets, etc.).

Related

Editor suggestions with git integration

Can anyone suggest choices for a modern(ish) editor or IDE (mainly for use on Linux hosts/guests) that has good Git integration and if possible some level of vi/vim keystroke compatibility available ?
I mainly work with ansible, puppet, python (including pyspark), docker, k8s and editing via sshfs would also help, as would being able to use the ssh protocol (rather than git's own protocol) for remote git repo interaction.
I am considering Atom as I believe most or all of what I want can be accomplished through addition of various modules.
I was a big Atom user in the past but in the last few years I've moved to Visual Studio Code https://code.visualstudio.com/, the git integration is really good.
The real advantage though is the plugins, I work a lot with Puppet and the official Puppet plugin is a really good https://puppet-vscode.github.io/.
Most of the documentation I write is in markdown so having a plugin to preview markdown saves me a lot of time.
I've just recently started doing some work with Terraform and the plugin for that has made it a breeze https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform. This https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker is a great Docker plugin.
There is a stack of other plugins I use all the time to help with JSON, YAML, DOT and Ruby files and marking ToDo's in files.
I haven't used one but I'd expect there is a vim/vi, I come from a Solaris/Linux background so I was naturally very resistant to using any Microsoft products but VSC has won me over despite that prejudice.

will using Docker allow me to not install necessary requisites?

I am a bit confused about Docker and how can I use it. My situation is the following:
I have a project that requires the use of a requisite, in my case installing ROS2. I have installed it in my system and develop a program. No problem there.
I wish to upload it to Gitlab and use CICD there. So I am guessing I will push it to my repository and then build a pipeline where I can use as image the docker image for ROS 2. I haven't tried it yet (will do it tomorrow) but I guess that is how I should do it.
My question is, can I do something similar (or how to ) in my local machine? In other words, just use the docker image and then develop and build over there and not install the requisite in the first place?
I heartily agree that using docker to develop locally improves the development experience, primarily by obviating system specific dependency management, just as you say.
Exactly how this is done depends on how many components you need to develop simultaneously, and how you want the development environment to behave .
An obvious place to start might be docker compose, a framework for starting multiple docker containers. https://docs.docker.com/compose/gettingstarted/ looks like quite a nice tutorial on the subject, and straight from the horse's mouth too.
However, your robotics project (?) may not be a very good fit for the server/client model behind the write - restart python - execute client - debug - repeat cycle in the document. To provide a better answer, we'd need a lot more understanding of how exactly your local development works - what exactly you want your development process to look like in this project might require a different solution. So add some workflow details to your question!

CI tool with code metrics for ruby on rails application

I need to integrate a CI(continues integration)+CD(continuous deployment) tool for my ruby on rails application.
It would be great if it has the following features.
Code metric tool like (metric_fu)
Gitlab,Gitlub for repository managements.
Following are the list of CI tool I'm consider.
https://travis-ci.org/
https://circleci.com/
https://www.shippable.com/
https://www.codeship.io/
https://wiki.jenkins-ci.org
http://cruisecontrolrb.thoughtworks.com/
https://drone.io/
​please help me to compare the feature of these CI tools......
(full disclosure, I work for ThoughtWorks)
I'd replace CruiseControl.rb with http://www.go.cd/ or http://snap-ci.com - ThoughtWorks isn't actively updating CruiseControl.rb since Go CD came out several years ago. Both of the newer tools (also from TW) are designed with CD at their core.
To the main part of your question - With any of the tools you mentioned I'd recommend calling the code metrics tool of your choice as one of the stages, and not relying on the CI/CD tool to have that knowledge natively. Generally speaking, CI/CD servers are used to orchestrate a process that relies on several other tools like build systems, metrics tools, testing tools etc.
Magnum CI should be great for what you need.
It also deploys to Heroku, which hosts Rails apps. So if you want it to run some tests then deploy automatically, it sounds like it could be a good fit!
I found magnum-ci.com recently and feel it suites my entire need.
Hope this may help ROR enthusiastic...

Which VM is suitable for which Pharo/Squeak release on which system?

Is there a place (website) where i can find information on which VM is needed (minimum/maximum) for a specific Pharo or Squeak release on a specific OS?
I don't know if that exact information is documented, but I can try to give you a brief explanation... Even Pharo and Squeak paths have diverged a lot in the last times.
Pharo Official VM is the CogVM which is a StackVM with JIT. Then it also have StackVMs for platforms where code generation is not allowed.
The official virtual machines for Pharo are listed in http://www.pharo-project.org/pharo-download, and they work for sure from Pharo 1.2 up to Pharo 2.0. You can also have a look at the complete set of built vms in the CI server https://ci.lille.inria.fr/pharo/view/Cog/.
For older releases, Pharo (1.0 and 1.1) keeps a history of one-click distribution where the vm is freezed along with the image. You can find them in here: https://gforge.inria.fr/frs/?group_id=1299
On the other side, for Squeak, the same CogVMs should work in their latest versions, otherwise you should get an interpreter VM from http://squeakvm.org/index.html.
Hope it helps a bit
As #guillepolito says, the best thing today is to take the ones from the Pharo continuous integration Jenkins server (or pick a one-click).
Squeak VMs have been fading out in my practice. I keep a number of them around but as I do use Pharo, I try to build my own version from the Jenkins source as there is a lot to be learned from using those.
It is not difficult to get them built on the main platforms and at least you know what's under.
The main problem is that Eliot Miranda keeps on doing his things in his corner instead of working on a shared source three. That's the problem of having a low truck number on that.

How can I create an all-in-one installer for Ruby on Rails application deployment on Windows?

I'm in the process of deploying a rails application to Windows machines. I do all of my development with OS X and Linux, but the final app will actually run on Windows machines.
That said, my client is looking for an all-in-one Apache(I had to talk him out of IIS)+Rails+Application deployment/installer. He wants to hand all of his (Windows-based) clients an install CD for their respective servers (they all want their own setup).
Is there anything like this in existence? I realize Capistrano exists but that requires a great deal of setup on the hosts (especially for Windows) beforehand and it's not very feasible in this particular case.
In the past I've used InnoSetup (http://www.jrsoftware.org/isinfo.php) for creating installers, but I'm not sure that's going to work in this case.
If you guys have any input, suggestions, or highly persuasive client techniques (to talk them all out of Windows =P) it would be most appreciated.
Best.
Try with RubyStack:
BitNami RubyStack is an installer that greatly simplifies the installation of Ruby on Rails and its runtime dependencies. It includes ready-to-run versions of Ruby, Rails, MySQL and Subversion as well as a number of third-party libraries like FiveRuns TuneUp. RubyStack is distributed for free under the Apache 2.0 license and has been packaged using BitRock's multiplatform installer.
http://bitnami.org/stack/rubystack
I'd look into using jruby with glassfish. Make sure the users have java and it should be good to go.
RubyStack is the closest thing to what you're after, although you might need to tailer the install a bit and remove some unwanted baggage. I don't know of any other Windows projects for a production environment (InstantRails is designed for development).
Maybe you can make InstantRails meet your needs.
Ruby and thus Ruby on Rails is a fairly notorious deployment on Windows even in the best of circumstances, moreso when the setup is out or your hands like that. I don't mean to admonish, but this definitely speaks to matching development and deployment enviroment (I once ran into similar problems when I found out that the Java enviroment we were deploying to was a good half-a-decade out of date).
As I don't have enough Ruby-on-Windows experience to fairly weigh in on the matter, I'd say either LiveCD's or CygWin deployments may be worth looking at (Always good to broaden people's view on alternate Operating Systems, right?).
Have you considered building a single version that runs in a VM?
For this particular problem, I'd go with a traditional Windows installer package like NSIS.
When I had a client with a Windows-only IT department, though, I found they were much more amenable to an XServer than a linux server. I don't generally think of OS X as a server OS, but it actually worked really well. I tried for linux first, and when they shot it down, I suggested OS X and they jumped at it.
It helped, I think, that they already supported some Mac laptops.
Good luck!
As other posters have suggested, RubyStack should be a good option. It is free and you can always use it to run your own 'post install' scripts to customize it for what you want. If you want a supported stack or addition/modifications to RubyStack you can get commercial support from BitRock We have done so for several Rails based companies that wanted a local version, including for the guys over at GitHub

Resources