por Ponlakshmi
A partir de 2024, millones de aplicaciones de IoT están corriendo en la nube. Más del 50% de los despliegues Implementaciones basadas en la nube que prevén conectividad y escalabilidad de gran escala. MQTT Broker no es el único componente de un despliegue de IoT. Tenemos muchos componentes adicionales como colas, almacenamiento de datos, motor de agregación de datos, IA/ML, herramientas de monitoreo y más según sea necesario para la solución. Gestionar tal combinación de aplicaciones hablando entre sí para la recopilación, procesamiento y la visualización necesita una orquestación mejor y perfecta. Docker es una gran herramienta que está disponible Libre y de código abierto.
El componente básico del despliegue de IoT es elMQTT Servidor. Hay dos maneras de usar la misma.
Para ambas formas de ejecutar la creación del docker es muy similar excepto para algunas configuraciones para el almacenamiento de datos o la conexión a la aplicación backend.
Esta sección le ayuda a configurar un entorno docker MQTT Server con un almacenamiento de datos en una base de datos relacional. Hemos tomado un despliegue basado en ubuntu como ejemplo para desplegar elMQTT Broker. Sin embargo esto se puede hacer con el otro sistema operativo también.
Le recomendamosMySQLpara ser ejecutado en una máquina física que una sección para el propósito de persistencia de datos. Siga las instrucciones siguientes para configurar el MySQL. Tiene que instalar el servidor MySQL primero.
$ sudo apt-get update
$ sudo apt-get install -y mysql-server-5.7
Modifique la configuración MySQL. Por defecto el mysql funciona a 127.0.0.1 y permite sólo el local aplicación para conectarse a ella. Puede cambiarlo como 0.0.0.0 para la aplicación que se ejecuta en secciones y otras máquinas para acceder a MySQL.
$ gedit /etc/mysql/mysql.conf.d/mysqld.cnf
dirección bind = 0,00,0
Reinicie el MySQL para que los cambios surtan efecto.
$ servicio de sudo mysql reinicio
Proporcionar acceso a los datos:El usuario raíz de MySQL tiene acceso sólo a la máquina local para leer y escribir datos en las bases de datos. Necesitamos permitir que el usuario root acceda a los datos de la sección. Conéctese a la consola MySQL del localhost y ejecute las siguientes consultas.
Mysql -u root -pIntroduzca la contraseña:
mysqlTODOS LOS PRIVILEGADOS EN *.* A ‘root’@’% IDENTIFIED BY ‘root ’
CON LA OPCIÓN DE LA GRANTA;
mysqlFLUSH PRIVILEGES
Su servidor MySQL está listo para conectarse desde cualquier sección que se ejecuta en su servidor Ubuntu.
Docker necesita ser instalado en su ubuntu para crear la imagen del docker de laMQTT Brokery también ejecute el Bróker MQTT dockerizado. Para instalar el Docker, ejecute el siguiente comando.
$ apt-get install docker. io
Descargar Free MQTT Brokerpara Ubuntu y Extraigalo de su carpeta /home/ubuntu. Si está extrayendo el archivo de alguna otra carpeta, asegúrese de utilizar la carpeta de referencia correcta
ubuntu@
Modificar la configuración de laMQTT Broker para Enlace MySQL
$ cd /home/ubuntu/Bevywise/CrystalMQ
$ gedit conf/datastore.conf
DB_SERVER = MYSQL
DBHOST= detectmysql host ip
MYSQL_USER=
MYSQL_PASSWORD = >
Crear el archivo del docker
Gedit DockerfileDESDE ubuntu
RUN apt-get update " apt-get install -y \
libexpat1 \
libsqlite3-0 \
wget \
unzip
RUN rm -rf /var/lib/apt/lists/*
ADD ./CrystalMQ / CristalMQ
RUN chmod +x /CrystalMQ/bin/runbroker.sh
RUN chmod +x /CrystalMQ/bin/install_mysql_connector.sh
WORKDIR /CrystalMQ/bin
RUN ./install_mysql_connector.sh
EXPOSE 1883 8080 8883 10443 8081
CMD [./runbroker.sh]
Construir la imagen del docker
# Docker construye -t mqttroute .
# Docker images
root@ubuntu # docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
mqtt último 45f7ee9a1ec7 Hace 7 segundos 81.15 MB
ubuntu latest 7feff7652c69 hace 4 semanas 81.15 MB
Empieza a usar el comando docker. El siguiente comando ejecutará el MQTT Broker como un proceso de daemon. Si usted está planeando ejecutar MQTT Broker en un modo seguro, el documento sobreUn servidor mqtt segurote ayudará a crear una instancia segura y luego empaquetarla con el muelle.
$ docker run -d --name "enter-container-name" --restart=always -p "80:8080" "Intro-docker-image-name"
Nota: Si ha utilizado un puerto diferente en lugar de 8080, simplemente reemplace el número de puerto en el comando anterior.
A continuación hay un Docker descargable Archivo de imagen de nuestro MQTT Broker, que proporciona todos los recursos necesarios, lo que permite configurar y ejecutar fácilmente Docker a través de un proceso sencillo.
Nota:El Docker Descargable Configuración de imagen solo admite Base de datos SQLite, y los datos no serán almacenados; sólo puede ver los datos en tiempo real.
Después de descargar, ejecute el siguiente comando para descomprimir el archivo y prepararlo para la extracción:
bzip2 -d route.tar.bz2
Luego ejecute el siguiente comando para cargar los recursos necesarios en el sistema Docker.
docker load -i "file.tar"
A continuación, puede proceder ejecutando Docker con el siguiente comando:
$ docker run -d --name "enter-container-name" --restart=always -p "80:8080" "Intro-docker-image-name"
Nota: Si ha utilizado un puerto diferente en lugar de 8080, simplemente reemplace el número de puerto en el comando anterior.
MQTT Broker por defecto admite un número de almacenamiento de bases de datos como MySQL, MSSQL, PYSQL, SQLITE, Elastic Búsqueda. Cualquiera de estos almacenamientos de datos IoT puede ser habilitado en el propio archivo de configuración de almacenamiento de datos. In Además de estos almacenamientos, podemos personalizar el requisito de almacenamiento adicional utilizando elPython MQTT Broker personalizado extensospara transformar los datos en el formato según sea necesario antes del almacenamiento. Estas extensiones personalizadas también se puede utilizar para conectar estos datos a las colas o aplicaciones empresariales.
El almacenamiento de datos o la cola o cualquier otra aplicación que reciba o envíe datos al MQTT Broker debe ser colocado fuera de la imagen del docker. Si su otro componente es una cola o aplicación que no almacena datos, puedes correr eso también en un muelle. Si se está conectando a una base de datos o a un motor de datos grande, entonces tiene que se ejecuta en un servidor físico o virtual con almacenamiento persistente. Se recomienda utilizar el almacenamiento como un servicio como Amazon RDS para un mejor y seguro almacenamiento de datos.
Solution provider IoT Platformes un multi-tenant framework and it is based on the micro services based architecture. Cada componente del marco se puede ejecutar en un contenedor de muelles y desplegado en los servidores Físicos o VM en la nube o en la premisa. el dockerized componentes de los MQTT Server se puede desplegar en los kubernetes. El despliegue en este caso se hará por nosotros. Los scrips completos de vigilancia para los componentes, incluyendo el monitoreo funcional y la aplicación será desplegado y puede ser monitoreado por su Equipo Dev-ops sobre la consola de la interfaz de usuario web.
Containerizationayuda a ejecutar la aplicación en aislamiento independiente de la Sistema operativo del servidor físico o VM haciendo elMQTT Serverun entorno virtual predefinido dando un mayor nivel de consistencia. A medida que el VM dockerized consume menos memoria, la aplicación general seráaltamente escalable y portátil. La combinación de docker y kubernetes hará la lapso de implementación a través de múltiples VM mantiene el control sobre una única orquestación para una gestión fácil.
Debe leer otros artículos relacionados