¿Qué tiene más sentido para un aula de programación, 20 computadoras de placa única o 20 máquinas virtuales?

Entonces, ¿qué se enseña en este aula de programación? Hay un conjunto muy pequeño y especializado de tareas que se abordan bien con SBC y muy pocas de ellas tampoco se pueden lograr en una VM. Por el contrario, una VM que se ejecuta en un servidor razonablemente potente y moderno puede alojar cualquier cantidad de posibles lenguajes y entornos de desarrollo. La configuración de VM también tiene la ventaja de ser fácilmente replicable, administrada centralmente, etc. Mantener un estándar común puede ser una gran victoria en un entorno de enseñanza, particularmente para las clases anteriores en el plan de estudios donde se aprenden los conceptos básicos del sistema (IDE, compilador , etc.) puede tomar casi tanto tiempo como enfocarse realmente en el tema deseado de la clase.

El único caso que se me ocurre es que un SBC dedicado podría tener sentido no serían tanto las clases de programación en particular, sino más bien algunos aspectos del diseño de hardware o tal vez una disciplina dentro de la ingeniería eléctrica.

Sin embargo, dicho esto, es probable que tales clases se centren en sistemas integrados y microcontroladores, lo que requeriría algo similar a un Arduino en lugar de una versión más pequeña, más lenta y generalmente más limitada de una PC. La programación para tales sistemas ocurre en sistemas operativos de propósito general, que probablemente regresen al caso de VM o, mucho más probable, a las computadoras portátiles que los estudiantes potencialmente ya tienen con ellos.

El factor principal a tener en cuenta es que estos sistemas deben revertirse a un punto conocido con frecuencia. Las máquinas virtuales pueden crearse una vez y replicarse muchas veces muy rápidamente. Reinstalar software en 20 computadoras individuales es mucho más trabajo.

El parcheo es otro problema que favorece a las máquinas virtuales. Al mantener una instantánea de su imagen de trabajo, puede aplicar parches y probarlos antes de enviar todas sus máquinas al nuevo parche. Si el parche causa problemas, simplemente puede volver a la instantánea anterior. Si el parche es bueno, construyó nuevas máquinas virtuales a partir de su imagen de trabajo.

El almacenamiento es una preocupación importante ya que la cantidad de sistemas se multiplica. Hacer copias de seguridad de datos de 20 máquinas es mucho más problemático que hacer copias de seguridad de datos de unos pocos servidores.

Del lado de los tableros individuales está el rendimiento. Sin embargo, si está buscando computadoras de placa única, probablemente no esté buscando un gran rendimiento. Por otro lado, si elige nuevas computadoras de alta gama para cada estudiante, el rendimiento superaría fácilmente lo que se podría lograr con las máquinas virtuales sin una gran inversión.

Las aulas tienden a ocuparse de pequeños proyectos que pueden ser manejados fácilmente por una VM. Las máquinas virtuales se pueden escalar agregando más servidores y la escala se puede aplicar de dos maneras. Si necesita más asientos para estudiantes, puede agregar nuevas máquinas virtuales a nuevos servidores para mantener su rendimiento alto. Si necesita máquinas virtuales para estudiantes que necesitan un mejor rendimiento, puede agregar servidores que manejan un número menor de máquinas virtuales para proporcionar más potencia de procesamiento disponible para cada máquina virtual.

Tenga en cuenta que todos los estudiantes necesitarán una computadora física para acceder a una VM, pero en muchos casos simplemente pueden usar una computadora portátil que ya usan para otras cosas.

Las máquinas virtuales tienen varias ventajas

  1. Se pueden restablecer fácilmente.
  2. Pueden ser monitoreados.
  3. No puedes irte con una VM.
  4. Una máquina puede admitir 20 máquinas virtuales pequeñas, pero tiene suficiente almacenamiento para 100 que permite a los estudiantes guardar su estado entre clases.
  5. La copia de seguridad se puede centralizar para que los estudiantes no pierdan el trabajo.
  6. Las máquinas virtuales pueden ser 1G de ram bastante pequeñas y 5G de disco permitirán que muchos estudiantes trabajen en un entorno Linux.
  7. El rendimiento generalmente no es un problema, por lo que puede programar en exceso la CPU que ejecuta varias máquinas virtuales por núcleo.

Con la configuración 1/5, un servidor con unidades de 4TB duplicadas podría almacenar cerca de 800 imágenes de VM, lo que permite el sistema operativo base. Dale una CPU de 4 u 8 núcleos y 32 GB de RAM y 20 máquinas virtuales pequeñas son bastante posibles. Eso no es un gran servidor de ninguna manera.

Los SBC son mejores si realmente quieres controlar alguna pieza de hardware.

20 SBC, sin duda. Raspberry Pi 3 – $ 35, energía $ 5, teclado / mouse / monitor alrededor de $ 200, aproximadamente $ 240.

$ 240 * 20 = $ 4800 en total frente a $ 3000 – servidor, Y $ 2000 por 20 teclado / monitor / cliente ligero.

Además, los 20 nodos SBC pueden demostrar cómo funcionan las supercomputadoras. Cómo funciona la programación integrada …

No puedo hacer nada de eso con el servidor y los clientes ligeros.

Puede ejecutar 20 máquinas virtuales pequeñas más baratas de lo que puede mantener 20 SBC, IMO.

Sospecho que depende más de lo que intentas enseñar en el aula.

More Interesting

¿Debo estudiar Ingeniería informática o CS?

¿Cuál es la diferencia entre los títulos de maestría y maestría en ingeniería eléctrica e informática ofrecidos por la Universidad de Ottawa?

Soy un estudiante de pregrado en ingeniería informática en un país en desarrollo, con poca experiencia en investigación y un promedio de calificaciones de 3.4 ... ¿Qué es lo mejor que puede hacer el próximo año para garantizar un posgrado en una de las 10 mejores universidades?

Cómo identificar la cantidad mínima de bits que necesito para un campo de número de secuencia, dado el protocolo de ventana deslizante, el retraso, la capacidad y el tamaño del mensaje

¿Es importante aprender Java para un ingeniero informático?

¿Qué opciones debo completar para la tercera ronda de asesoramiento de ACPC si deseo ingeniería informática?

¿Las computadoras cuánticas eventualmente reemplazarán a las computadoras eléctricas convencionales?

¿Debo pasar de una especialización en ingeniería informática a una especialización en ingeniería de comunicaciones?

¿Cuál es la diferencia entre la ingeniería informática y la informática y puede un ingeniero informático hacer el trabajo de un científico informático?

¿Cómo debe desarrollarse un ingeniero informático a partir del primer año en una universidad privada?

Cómo combinar ingeniería informática y escritura

¿Hay buenos cursos de aprendizaje automático en las escuelas de ingeniería indias?

Si hoy fuera a escribir un sitio web de tipo de medios sociales como Facebook, Twitter o incluso Quora, ¿sería más inteligente usar C ++, Scala, Python (estoy pensando) o cualquier otro idioma como Haskell - Opiniones?

¿Podrá un estudiante de biología gestionar la ingeniería informática?

¿Por qué no hay un solo tipo de puerta lógica?