La computación en la nube es uno de los temas más candentes de la ciudad. Ha transformado por completo la forma en que se desarrollan y mantienen las aplicaciones modernas con alta escalabilidad y baja latencia.
CloudSim es un marco de código abierto, que se utiliza para simular la infraestructura y los servicios de computación en la nube. Está desarrollado por la organización CLOUDS Lab y está escrito íntegramente en Java. Se utiliza para modelar y simular un entorno de computación en la nube como un medio para evaluar una hipótesis antes del desarrollo de software para reproducir pruebas y resultados.
Por ejemplo, si tuviera que implementar una aplicación o un sitio web en la nube y quisiera probar los servicios y la carga que su producto puede manejar y también ajustar su rendimiento para superar los cuellos de botella antes de arriesgarse a la implementación, entonces dichas evaluaciones podrían realizarse simplemente codificando una simulación de ese entorno con la ayuda de varias clases flexibles y escalables proporcionadas por el paquete CloudSim, sin costo alguno.
Beneficios de la simulación sobre el despliegue real:
Los siguientes son los beneficios de CloudSim:
- No se requiere inversión de capital . Con una herramienta de simulación como CloudSim no hay coste de instalación ni mantenimiento.
- Fácil de usar y escalable . Puede cambiar los requisitos, como agregar o eliminar recursos, cambiando solo unas pocas líneas de código.
- Los riesgos pueden evaluarse en una etapa anterior . En Cloud Computing, la utilización de bancos de pruebas reales limita los experimentos a la escala del banco de pruebas y hace que la reproducción de los resultados sea una tarea extremadamente difícil. Con la simulación, puede probar su producto en casos de prueba y resolver problemas antes de la implementación real sin ninguna limitación.
- No hay necesidad de enfoques de prueba y error . En lugar de confiar en evaluaciones teóricas e imprecisas que pueden conducir a un rendimiento del servicio y una generación de ingresos ineficientes, puede probar sus servicios en un entorno repetible y controlado sin costo alguno con CloudSim.
¿Por qué usar CloudSim?
A continuación se presentan algunas razones para optar por CloudSim:
- De código abierto y libre de costo , por lo que favorece a los investigadores/desarrolladores que trabajan en el campo.
- Fácil de descargar y configurar.
- Es más generalizado y extensible para admitir el modelado y la experimentación.
- No requiere ninguna computadora de altas especificaciones para trabajar.
- Proporciona políticas de asignación predefinidas y modelos de utilización para administrar recursos, y también permite la implementación de algoritmos definidos por el usuario.
- La documentación proporciona ejemplos precodificados para que los nuevos desarrolladores se familiaricen con las clases y funciones básicas.
- Resuelva los cuellos de botella antes de la implementación para reducir el riesgo, reducir los costos, aumentar el rendimiento y aumentar los ingresos.
Arquitectura CloudSim:
CloudSim Core Simulation Engine proporciona interfaces para la gestión de recursos como VM, memoria y ancho de banda de centros de datos virtualizados.
La capa de CloudSim gestiona la creación y ejecución de entidades centrales como máquinas virtuales, cloudlets, hosts, etc. También gestiona la ejecución relacionada con la red junto con el aprovisionamiento de recursos y su ejecución y gestión.
El código de usuario es la capa controlada por el usuario. El desarrollador puede escribir los requisitos de las especificaciones de hardware en esta capa según el escenario.
Algunas de las clases más comunes utilizadas durante la simulación son:
- Centro de datos : se utiliza para modelar el equipo de hardware fundamental de cualquier entorno de nube, es decir, el Centro de datos. Esta clase proporciona métodos para especificar los requisitos funcionales del centro de datos, así como métodos para establecer las políticas de asignación de las máquinas virtuales, etc.
- Host : esta clase ejecuta acciones relacionadas con la gestión de máquinas virtuales. También define políticas para aprovisionar memoria y ancho de banda a las máquinas virtuales, así como para asignar núcleos de CPU a las máquinas virtuales.
- VM : esta clase representa una máquina virtual al proporcionar miembros de datos que definen el ancho de banda, la RAM, los mips (millones de instrucciones por segundo) y el tamaño de una VM, al mismo tiempo que proporciona métodos setter y getter para estos parámetros.
- Cloudlet : una clase de cloudlet representa cualquier tarea que se ejecuta en una máquina virtual, como una tarea de procesamiento, una tarea de acceso a la memoria, una tarea de actualización de archivos, etc. Almacena parámetros que definen las características de una tarea, como su longitud, tamaño, mi (millones de instrucciones) y proporciona métodos similares a la clase VM, al mismo tiempo que proporciona métodos que definen el tiempo de ejecución, el estado, el costo y el historial de una tarea.
- DatacenterBroker : es una entidad que actúa en nombre del usuario/cliente. Es responsable del funcionamiento de las VM, incluida la creación, administración, destrucción y envío de cloudlets de VM a la VM.
- CloudSim : esta es la clase responsable de inicializar e iniciar el entorno de simulación después de que se hayan definido todas las entidades de la nube necesarias y luego detenerse después de que todas las entidades hayan sido destruidas.
Características de CloudSim:
CloudSim proporciona soporte para simulación y modelado de:
- Centros de datos, servidores y hosts virtualizados a gran escala.
- Políticas personalizables para el aprovisionamiento de host a máquinas virtuales.
- Recursos computacionales conscientes de la energía.
- Contenedores de aplicaciones y nubes federadas (unión y gestión de múltiples nubes públicas).
- Topologías de red de centros de datos y aplicaciones de paso de mensajes.
- Inserción dinámica de entidades de simulación con parada y reanudación de la simulación.
- Políticas de asignación y aprovisionamiento definidas por el usuario.
Instalación:
requisitos previos:
- Conocimiento de las funciones del lenguaje Core Java, como programación orientada a objetos y colecciones .
- Conceptos básicos de la computación en la nube .
- CloudSim está disponible para descargar aquí .
- Para este tutorial, hemos descargado el archivo zip de CloudSim 3.0.3.
Nota: CloudSim también usa algunas utilidades de la biblioteca commons-math3 de Apache. Descargue su archivo zip Binarios desde aquí .
Paso 1: Desde la carpeta zip, extrae cloudsim-3.0.3 en una carpeta. Además, extraiga el archivo jar commons-math3-3.6.1 en la misma carpeta.
Paso 2: Abra Eclipse IDE y vaya a Archivo -> Nuevo -> Proyecto Java.
Paso 3: Ingrese cualquier nombre para su proyecto y luego desmarque la casilla Usar ubicación predeterminada justo debajo y haga clic en Examinar .
Busque la carpeta donde extrajo sus archivos y seleccione la carpeta cloudsim-3.0.3 .
No haga clic en Finalizar todavía, porque necesitamos agregar un archivo jar a nuestro proyecto.
Paso 4 Haga clic en Siguiente y vaya a Bibliotecas -> Agregar archivos JAR externos . Ahora busque la misma carpeta donde extrajo su archivo jar commons-math3 y ábralo .
Paso 5 Finalmente, haga clic en Finalizar y espere a que se construya el proyecto. Una vez que se ha creado el proyecto, desde Project Explorer puede hacer clic en su proyecto y desde el menú desplegable ir a ejemplos -> org.cloudbus.cloudsim.examples donde puede encontrar códigos de muestra preescritos e intentar ejecutarlos.
Alcance
Con la flexibilidad y la capacidad de generalización del marco CloudSim, es fácil modelar entornos de nube pesados que, de lo contrario, requerirían experimentación en infraestructuras informáticas pagas. Las capacidades extensibles de escalar la infraestructura y los recursos para adaptarse a cualquier escenario ayudan en la investigación rápida y eficiente de varios temas en la computación en la nube.
CloudSim se ha utilizado en varias áreas de investigación, tales como:
- Programación de tareas
- Computación verde
- Aprovisionamiento de recursos
- Análisis forense de registro seguro.
Referencias:
Publicación traducida automáticamente
Artículo escrito por yuvrajjoshi31 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA