Pregunta ¿Hay alguna característica en Linux que sea esencial para alojar Ruby on Rails?


Estoy en un proyecto en el que vamos a alojar una aplicación Ruby on Rails en un servidor Linux que tenemos. ¿Todos los tipos de Linux son igualmente capaces de alojar aplicaciones de Rails? Si no, ¿qué funciones están presentes en algunas distribuciones de Linux pero no en otras que son esenciales para alojar aplicaciones de Rails?


7
2017-11-15 02:34


origen


Para evitar que esta pregunta se convierta en una pregunta de carro de la compra, solicito específicamente características en los sistemas operativos Linux que permitirán que las respuestas sigan siendo útiles una vez que los sistemas operativos actuales de Linux hayan quedado obsoletos. - Kevin
Si va a utilizar rvm muchos serán un buen ajuste. Ubuntu, CentOS, incluso FreeBSD tiene un rvm bastante estable, no es realmente un problema hoy en día. - Danila Ladner
Buena pregunta. Algunas distribuciones se adaptan mejor a ciertas aplicaciones que otras porque los desarrolladores desarrollan y mantienen las aplicaciones en una plataforma en particular, por lo que es bueno descubrir cuál es la más compatible. - Matt
@Kevin El problema con esta pregunta es que cae en una de dos categorías: "¿Cuál es el mejor widget?" (que es como preguntarnos "¿De qué color debo pintar mi casa?": la respuesta es totalmente personal) o "¿Qué es importante para mí?" (que no podemos responder porque no sabemos lo que es importante tú). Si actualiza su pregunta para decirnos más sobre lo que está tratando de hacer, podría convertirse en algo a lo que podamos darle una buena respuesta, pero como está redactado ahora obtendrá 1000 respuestas, cada una sugiriendo una respuesta diferente. plataforma, y ​​cada uno igualmente correcto :-) - voretaq7
@ voretaq7: Creo que mi pregunta tal como está redactada no pide plataformas específicas. Solicita características que algunos sabores de Linux ofrecen que podrían ser especialmente importantes para alojar Rails, por lo que las respuestas no serán plataformas, sino características del SO. Una buena respuesta reconocerá que todas las distribuciones de Linux son igualmente capaces de alojar Rails o señalará características muy específicas que, si no están presentes, serán un factor decisivo. ¿Mi forma de ver la pregunta la hace efectiva? Si no es así, ¿qué pasa con mi pregunta sigue siendo incorrecta? - Kevin


Respuestas:


Debes usar la distribución con la que te sientas más cómodo.

Lo único que se me ocurre de la cabeza que realmente importaría es qué distribución sería "mejor" si planeara usar las versiones de Ruby, rieles, etc. provistas por el sistema operativo. No hay nada que le impida crear su propia versión. Versión en cualquier distribución, pero eso puede ser más complicado de lo que vale para usted.

RHEL / CentOS no mantiene las versiones actualizadas a medida que se publican. Esto puede ser bueno porque debería eliminar los problemas de compatibilidad al actualizar el sistema operativo. Esto puede ser malo porque es posible que desee una característica que se agregó en una versión posterior. Es posible que pueda evitar este problema agregando un repositorio adicional que tenga versiones más nuevas.

No soy un chico de Debian, así que no puedo hablar sobre ningún tema específico, pero tengo la impresión de que Debian suele proporcionar versiones más nuevas. Esto puede ser bueno porque no tendrá que buscar una característica que se haya agregado recientemente. Esto puede ser malo porque puede instalar una actualización y romper su aplicación.

Pero realmente la mejor respuesta es usar lo que sea más cómodo para ti.


10
2017-11-15 02:47



"No soy un chico de Debian, así que no puedo hablar sobre ningún tema específico, pero tengo la impresión de que Debian suele proporcionar versiones más nuevas". Sí y no. Uso Ubuntu regularmente y no está tan actualizado cuando estás en versiones LTS que en las distribuciones de "vanguardia". En general, ninguna distribución de Linux es "mejor" en Ruby debido a la forma ultra agresiva con la que opera el mundo Ruby (y Gem). No importa en qué plataforma se encuentre, tendrá que aprender a instalar Ruby (y Gems) a la medida y no hay mucho que hacer para simplificarlo. - JakeGould
“Instalar Ruby es fácil: lo he hecho varias veces”. Espera hasta que comiences a programar y te encuentres con problemas de compatibilidad de versiones e incluso con Gem. Entonces entenderás lo que quiero decir. - JakeGould
Me gustaría poder votar 100 en ese último comentario. - Fred the Magic Wonder Dog
Mi error. Cuando leí "instalar Ruby", pensé que querías decir "obtener a Ruby de las herramientas de distribución de paquetes de Linux". Instalar Ruby sin esas herramientas definitivamente sería mucho más difícil. - Kevin


Todas las variantes de Unix son "igualmente capaces" de hospedar Ruby / Rails, al menos en el sentido de que Ruby, el marco Rails, y una gran cantidad de gemas se ejecutarán en ellas. Entonces, en ese sentido, "utilice el sistema operativo con el que usted y su equipo se sientan más cómodos" es la respuesta correcta.

Algunas cosas yo Buscar personalmente en un sistema operativo -

  1. ¿Se envía Ruby con el sistema operativo (o está disponible en puertos, etc.) razonablemente actual?
    Todo el brillo nuevo requiere Ruby 1.9.x en estos días, por lo que si un sistema operativo solo está entregando Ruby 1.8, lo voy a poner en la acera. Si yo PODRÍA instálelo a mano, pero tengo trabajo más que suficiente para crear un entorno estable. ¿Por qué aceptaría más trabajo manteniendo mi propio paquete Ruby?

  2. Son los paquetes de soporte de Ruby (rvm, gemas, etc.) ¿razonablemente actual?
    La misma lógica que (1): me gustaría poder usar la administración de paquetes del sistema operativo tanto como sea posible, pero si tengo que anular el administrador de paquetes e instalar manualmente Cada gema que voy a usar - Bueno, puedo vivir con eso, pero hace las cosas más difíciles.

  3. ¿Es el sistema operativo adecuado para mis objetivos?
    Es borroso: la mejor manera de determinar si un sistema operativo es "adecuado" es supera a las luces de la vida en el test / benchmarking con tu carga de trabajo.
    Aquí es donde descubres que FooOS tiene horrible rendimiento de subprocesos múltiples, y BarOS tiene un subsistema de disco que exige que todas las demás operaciones en el sistema se detengan cada vez que un subproceso desea escribir datos, por lo que BazOS (que es decididamente mediocre en ambos) en realidad tiene un mejor desempeño porque su aplicación es multihilo y escritura intensiva.
    Si solo está viendo "Linux", las diferencias aquí serán insignificantes (o "solucionables" girando sysctl mandos). Si amplía su búsqueda de SO para incluir otros sistemas (BSD, OS X, Solaris, AIX, HP-UX, Windows), puede comenzar a ver alguna variación real en las características de rendimiento o la capacidad de carga.

    Hay algunas consideraciones no técnicas aquí también. Si tiene la opción de elegir entre dos sistemas hipotéticos, uno es un sistema operativo libre y otro un sistema de pago por licencia que es dos veces más rápido pero cuesta $ 5000 por núcleo de CPU por licencia, obtenga el sistema gratuito. Su servidor quad-core de doble procesador le costará $ 40,000 en costos de licencias, e incluso si nos estamos equivocando en el costoso lado del hardware, es MUCHO más servidores que ejecutan el sistema operativo gratuito. Incluso si está pagando por la energía y la refrigeración, es bastante claro quién gana con una métrica de costo por unidad de rendimiento ...

  4. ¿Podemos gestionar el sistema operativo?
    ¿Tiene el sistema operativo herramientas que le permitirán administrarlo (o funciona bien con herramientas que ya usa / sabe cómo usar / desea usar, como Puppet y Chef)?
    ¿Su equipo está lo suficientemente cómodo con el sistema operativo para administrarlo? ¿Podrá manejar la próxima actualización importante de la versión, o entrará en pánico y simplemente se estancará en lo que haya instalado el día que lo implementó y quedará siempre frustrado cuando falten las nuevas funciones que desea?


3