Cómo ejecutar un Bot de Telegram 24/7

Introducción

Mientras los bots siguen revolucionando el mercado a cada día que pasa, tú ya has aprendido a crear el tuyo propio, incluso a darle vida con opciones avanzadas. Sin embargo, no puedes permitirte ejecutarlo en tu ordenador personal, sólo las horas que lo uses y preocupándote manualmente de iniciarlo en cada momento… ¡Estamos en el siglo XXI!

Hoy aprenderás las distintas alternativas que existen para tener un bot rápido, rentable y disponible, automatizado para que no tengas nada de lo que preocuparte una vez iniciado.

¿Qué necesito?

¡Pues está claro! Dejo mi ordenador encendido día y noche… ¿No?

Sí. No. Depende.
Sí, porque técnicamente es posible. Nada te lo impide.
No, porque es la peor de las posibilidades para llevarlo a cabo.
Depende, porque para una mínima parte de la población, quizá sea la única posibilidad.

Como te adelantaba en la introducción, a la hora de escoger un lugar donde ejecutar nuestro bot tenemos que tener en cuenta 4 factores principales: Velocidad, Rentabilidad, Disponibilidad y Mantenimiento.

Ordenador personal

Desgraciadamente, dejar tu ordenador personal encendido 24/7, a pesar de ser una posibilidad, es la que presenta los peores resultados en las 4 características.

Velocidad: Aun teniendo un ordenador moderno, a continuación verás que hay alternativas mucho mejores. Además, por muy potente que sea, si es tu ordenador personal le estás dando paralelamente otros usos y contiene otras muchas aplicaciones y servicios instalados y ejecutándose que consumen recursos, dejando a tus bots con una cantidad de recursos limitada. Si con esto no fuera poco, la velocidad de tu bot no sólo requiere de un buen dispositivo, sino también de una buena conexión a internet, algo que cualquier hogar no ofrece de manera profesional y que, de nuevo, está condicionado a que tú mismo o cualquier otra persona de tu casa limite al consumir con otros servicios.

Rentabilidad: Aunque ya hayas terminado de pagar tu ordenador y tu tarifa de internet no suponga un problema al estar pagándola igualmente, la tarifa de la luz puede aumentar considerablemente con un ordenador encendido permanentemente (y ya sabemos cómo está el precio de la luz en España). Ten en cuenta que los ordenadores son cada vez más potentes y por lo tanto requieren de un mayor consumo energético. Además, los ordenadores personales no están pensados para este uso y, si se lo das, acabará degradándose a una mayor velocidad con el tiempo.

Disponibilidad: Cada vez que necesites reiniciar o actualizar tu ordenador (entre otras cosas), dile adiós al bot. A esto habría que sumarle cualquier problema que tengamos con nuestra línea de ADSL o fibra, que se vaya la luz en la casa, etc… Para ti pueden parecer pocos segundos, minutos u horas, pero un usuario no esperará hasta que soluciones lo que ocurra.

Mantenimiento: En relación con el punto anterior, si ocurre cualquier cosa, tú y solo tú serás el encargado de estar físicamente frente a tu ordenador y volver a ejecutar el bot. Se acabaron tus vacaciones.

Ordenador antiguo personal

Si esta fuera la mejor posibilidad disponible, para mejorar el apartado anterior podríamos recurrir a la utilización de un antiguo ordenador que tengamos por casa.

Velocidad: Aunque las características sean mucho menores que tu ordenador nuevo, ten en cuenta que le darás un uso totalmente exclusivo a tus bots, además de que la mayor parte de la velocidad de un bot viene dada por la conexión a internet.

Rentabilidad: Los ordenadores antiguos, al disponer de menores recursos, suelen necesitar de menos energía para funcionar.

Disponibilidad: Al estar únicamente dedicados a este propósito. No necesitarás reiniciarlo, actualizarlo ni nada por el estilo.

Mantenimiento: En este caso, no hay ninguna mejoría en comparación con la opción anterior.
Aunque parecen grandes mejoras, tanto la velocidad como la rentabilidad y disponibilidad mejoran en pequeñas cantidades respecto al primer caso.

Servidor personal

Siguiendo en la escala de peores a mejores opciones, nos encontraríamos con comprar un servidor personal e instalarlo en tu propia casa. Que no es más que un ordenador optimizado para consumir muy poco, tanto en electricidad como en recursos computacionales, aportando por tanto una mayor Velocidad, Rentabilidad, Disponibilidad y Mantenimiento.

Los que mejores resultados ofrecen y a un precio realmente asequible son las Raspberry Pi. Las cuales son actualmente usadas para miles de propósitos distintos gracias a su precio, potencia y tamaño reducido. Si te decides por esta opción, te recomiendo el modelo Raspberry Pi 3 Model B+, el último en el mercado.

Servidor contratado

Aun así, ésta última opción requiere de una infraestructura de luz e internet rentables y disponibles, algo muy difícil de conseguir en un hogar y que sólo puede conseguirse a través de la contratación de un servidor profesional dedicado.

¡Bah, si la luz y el internet se van hasta en mi trabajo!

Por supuesto y es por eso (y porque también podría caer un meteorito sobre el edificio) por el que ni la mismísima Google puede ofrecerte una disponibilidad del servicio del 100%, que actualmente establece en un 99,978 %. Sin embargo, son entornos “a prueba de balas” especialmente diseñados para mantenerse activos y contar con alternativas energéticas y de internet ante posibles caídas en cualquier momento, algo que hará que tú posiblemente no notes ni una sola caída del servicio en tu vida.

¿Cómo contrato un servidor?

A pesar de que existen miles de alternativas con precios y características muy variados, uno de los servidores con mejor servicio son los que ofrecen SERED, sobre todo si los usuarios de tus bots serán mayoritariamente españoles, debido a que sus servidores están ubicados en nuestra región y por lo tanto ofrecen un tiempo de respuesta inigualable en la misma.

Para contratarlo sólo tienes que entrar en el siguiente enlace: https://sered.net/servidores-virtuales-ssd

Puedes contratar el servidor virtual (VPS) que prefieras, aunque el más barato te dará un rendimiento más que de sobra para varios de tus bots ejecutándose con miles de usuarios activos al mismo tiempo.

No tienes que cambiar ninguna opción solo continua y finaliza el proceso de compra.

Acabo de contratarlo, ¿Cómo accedo a mi servidor?

Recibirás un correo con cierta información, entre la que se encuentra:
IP principal: XXX.XXX.XXX.XXX
usuario: root
password: XXXXXXXXXXXXXX
Son los únicos datos relevantes que necesitarás para usarlo.

Descarga el programa “putty”, un programa muy simple que permite gestionar conexiones con cualquier tipo de servidor.

Una vez instalado, ábrelo, introduce la IP principal que obtuviste en el correo, escribe un nombre para recordar tu servidor y haz click en el botón Save.

Como verás, habrá aparecido el nombre de tu servidor en la lista inferior. Haz doble click en él para acceder al mismo.

Si te aparece cualquier ventana pidiendo confirmación para, por ejemplo, algún certificado, acéptalo sin reparo hasta que aparezca una ventana parecida a esta:

¿Qué es esta ventana negra? ¿¡Estamos hackeando el servidor?!!

Tranquil@, esta ventana es una ventana de comandos. Sólo te permite escribir cosas y darle al Intro para ejecutarlas. Por ejemplo, ahora mismo “login as:” nos pide que introduzcamos el nombre de nuestro usuario. Sólo tienes que escribir “root” y darle a Intro.

No ha sido tan difícil, ¿verdad?

Como puedes imaginarte, el siguiente paso es introducir la contraseña y darle a Intro. Ten en cuenta que ahora, por seguridad, no verás lo que escribes (ni siquiera asteriscos). No te extrañes, esto funciona así.

¡Listo! Ya estás dentro de tu servidor, con el cursor (verde) a la espera de que escribas y ejecutes (Intro) cualquier comando.

¿Cómo ejecuto el bot?

Antes de continuar, necesitamos añadir una nueva carpeta a nuestro bot que incluye archivos necesarios para su funcionamiento en servidores. Para ello descarga este archivo zip, accede a la carpeta “future-0.16.0” que contiene, dentro de ella a la carpeta “src” y copia la carpeta “future” que encontrarás para colocarla junto con el resto de archivos de tu bot, de manera que quede de la siguiente manera:

Ahora sí, volvemos a la ventana del servidor.

Como sabes, estos tutoriales están dedicados a personas que no tengan idea alguna de programación y que tampoco pretendan aprender con ellos, así que me limitaré a indicarte cuáles son los siguientes comandos que tienes que ejecutar para dejarlo todo configurado y no tener que volver a hacerlo nunca más. Te los voy indicando por si quieres copiarlos, para pegarlos en el servidor utiliza el atajo de teclado “Shift + Insert”.

Comenzamos instalando el servicio FTP para transferir datos al servidor (el bot en este caso):

yum install vsftpd

Si en cualquier momento este u otros procesos te piden algo parecido a esto:

Simplemente piden tu confirmación, escribe una “y” y teclea Intro.

Indicamos que el servicio se ejecute siempre que se inicie el servidor.

chkconfig vsftpd on

Antes de ejecutar tu bot, tienes que copiarlo al servidor, para lo que necesitaremos que instales en tu ordenador el programa “FileZilla”, el cuál quizá conozcas ya que se usa habitualmente también para gestionar hostings normales.

Una vez instalado y abierto, haz click en la opción “Archivo” > “Gestor de sitios…” y crea un Nuevo Sitio introduciendo, igual que antes, la IP principal, usuario y contraseña, seleccionando el Protocolo y Modo de acceso que ves en la imagen:

Una vez rellenados, haz click en el botón “Conectar” y en la ventana de la derecha verás una lista de archivos y carpetas como esta:

Haz click en la carpeta de arriba con el nombre “home”, que es el directorio principal de nuestro servidor. Verás que abajo no aparecen archivos, ese espacio en blanco funciona como su fuera una carpeta de tu ordenador.

Teniendo en cuenta esto último, haz click derecho y dale a la acción “Crear directorio”.

Ponle el nombre “TelegramBots”:

Y dentro de esa carpeta crea otra con el nombre de tu bot:

Ahora solo arrastra los archivos de la carpeta de tu ordenador al de FileZilla, como si lo hicieras habitualmente entre dos carpetas de tu ordenador:

Cuando aparezcan todos los archivos, ya podrás cerrar el programa, ya estarán subidos a tu servidor privado.

Vuelve a la ventana del servidor, vamos a instalar Python, que si recuerdas del primer artículo de la serie, es el lenguaje de programación que utilizan nuestros bots para ejecutarse. Para ello ejecuta estos 3 comandos en orden:

sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm

sudo yum update

sudo yum install -y python36u python36u-libs python36u-devel python36u-pip

Ahora indicamos que el bot se ejecute siempre que se inicie el servidor, al igual que hicimos con el servicio FTP. Primero ejecutamos este comando para abrir un archivo de configuración:

sudo nano /etc/rc.local

Se abrirá el contenido del archivo y al final del mismo escribimos las siguientes 2 líneas:

cd /home/TelegramBots/PasionSeoBot
setsid python3.6 /home/TelegramBots/PasionSeoBot/PasionSeoBot.py &

Quedará de la siguiente manera:

Guarda el archivo con el atajo de teclado “Cntrl + O” y ciérralo con el atajo “Cntrl + X”.

Ahora ejecuta el comando para que este archivo de configuración, como te contaba anteriormente, se ejecute al iniciarse el servidor:

chmod +x /etc/rc.d/rc.local

Por último, ejecuta el último comando para reiniciar el servidor:

sudo reboot

Ya puedes cerrar todos los programas de tu ordenador y por supuesto apagarlo. ¡Verás cómo tu bot empieza a funcionar y nunca para!

 

 Carlos A. MATA – Ingeniero de Software

 

 Apasionado de 10 cosas: la tecnología y la música. Dirijo, diseño y desarrollo proyectos software de la oficina a mi casa.

Y si uso un portátil personal con batería… ¿no mejoraría la disponibilidad? Si decido comprar una Raspberry Pi, ¿Cómo accedo a ella y ejecuto el bot? ¿Qué hago si tengo que hacerle un cambio a mi bot? Si te surge una de estas dudas o cualquier otra, ¡No dudes en preguntarme en los comentarios! Estaré encantado de ofreceros mi opinión, conocimiento y debatir con vosotros (:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *