25 agosto 2021

Más pastiches: La nube


Contumaz, sigo con temas más o menos técnicos que tal vez no interesen a nadie más que a mi mismo. En nuestra sección de "cosas raras" me gustaría conversarles de algo que recién estoy aprendiendo que son los servicios en la nube o cloud computing.

La verdad es que hace tiempo traté de aprender sobre eso pero no entendí nada, los kubenettes, instancias y rarezas por el estilo resultaron ser chino para mí, lo único que entendí vagamente fue que tenía algo que ver con la virtualización y de eso yo algo sabía.

Por ejemplo dentro del notebook que estoy usando ahora yo podría crear otras "maquinas virtuales" es decir simular que tengo otros computadores casi completamente independientes del anfitrión, la aplicación típica de esto era hacer una maquina virtual de Linux dentro de un computador con Windows o viceversa. Esto es diferente a partir el disco en dos partes e instalar un sistema operativo en cada una, porque en este caso el sistema que emulamos es un computador completo, no solo el sistema operativo. En fin, es bastante enredado de explicar pero después de usarlo un poco se entiende lo que son las "máquinas virtuales".

La computación en la nube es parecida -hasta donde yo entiendo, pero en lugar de hacer la virtualización en nuestro equipo la hacemos usando la enorme infraestructura de Google, Microsoft o Amazon, cuyas granjas con cientos de miles de servidores de alta capacidad permanecen con una gran capacidad ociosa. Virtualizamos no solo equipos, sino también almacenamiento, servicios y software, pagando solo por lo que usamos.

Todas estas cosas se entienden mejor con ejemplos prácticos. Los que han usado Dropbox, Google Drive, Google Pictures o One Drive de Microsoft están usando el almacenamiento en la nube, este es el ejemplo más sencillo, tenemos una cuenta y es "como si tuviéramos" espacio para almacenar en  servidor remoto. En realidad no es así porque nuestras datos están desparramados en muchos servidores y van cambiando de lugar de acuerdo a las necesidades de carga, pero para nuestros ojos, es como si algún benevolente billonario nos convidara un pedacito en algún enorme servidor para que lo usemos.

Si alguien tiene contratado Windows Office 365 -una porquería a mi modo de ver- entonces sabe lo que es arrendar software como servicio, en realidad lo que tiene es una cuenta que permite usar cualquier aplicación de Office como Word, Excel, etc. pagando una cantidad insignificante por hora de uso. Otros proveedores de software como Adobe han intentado esto, pero al parecer no les ha ido muy bien, las personas no estamos muy acostumbradas a arrendar software, no importa que los pagos sean insignificantes. La costumbre es más bien robar (piratear) y usar gratis.

Google Cloud
Ayer
me llegó un mail de Google ofreciéndome gratis sus servicios en la nube. No muy convencido abrí una cuenta, que me ofrecía el uso gratis por tres meses de prueba, claro que tenía que poner el número de una tarjeta de crédito. Ningún problema, tenía una tarjeta de débito Mach del BCI, casi sin saldo y procedí a abrir la cuenta, para ver de que diablos se trataba y me apareció  la pantalla que muestro al principio de esta entrada..

Me quedé boquiabierto con la cantidad de servicios que ofrecen, pero el que me impresionó más fue uno que se llama "Computer Engine" y permite crear máquinas virtuales en la infraestructura de Google. En un par de minutos, siendo yo un completo ignorante en el asunto y sin paciencia para leer instrucciones, igual tenía funcionando mi primer computador con Linux Debian 10, aquí lo tienen

Para los que conocen Linux sabrán que esa pantalla negra significa que estoy trabajando en modo consola ¿Se puede trabajar con un escritorio? Si, pero todavía no aprendo a instalarlo. Ni que decir que el Linux "vuela", por algo está  en la nube. También se puede instalar máquinas Windows, pero eso en la versión pagada. 

¿El costo? 0,9 centavos de dólar (unos 8 pesos chilenos) por hora de uso, solo se cobra mientras se está usando. ¿Para qué diablos puede servir? Bueno, creo que esto si que puede ser muy útil por lo siguiente: Yo tengo -por ejemplo- un pequeño Raspberry que me costó unos 50 dólares, es del porte de mi billetera y lo puedo llevar en el bolsillo a cualquier parte, hasta escribí el blog Raspberry Pi y Arduino para dummies, con los experimentos que hacía con él.:

Bueno, con la virtualización le acabo de encontrar un uso que podría ser enorme. Me explico, supongamos que contrato el servicio pagado de Google Cloud y creo una máquina virtual en Windows y otras cuantas en Linux, recuerden que solo pago por el tiempo que las uso. Ahora bien, estas máquinas virtuales solo usan cuatro cosas de nuestro computador: el teclado, la pantalla, el mouse y la tarjeta de red.

Esto quiere decir que si llevo estas cosas en un estuche, podría disponer del equivalente a varios computadores de alto rendimiento en cualquier lugar donde tenga conexión a Internet, bastaría con conectar mi modesto Raspberry a una pantalla y lo demás y listo. Al menos ese es el potencial que yo le veo al asunto. Claro que me falta aprender más como se configuran las cosas, pero eso debiera ser trivial.

Sin contar que el servicio de Google Cloud ofrece otras cosas, como capacidad ilimitada de almacenamiento, la cantidad de webhosting que queramos para tener servidores virtuales -ahora me explico por qué pude contratar un webhosting por 4 años en apenas 8 dólares, y también se pueden armar redes privadas virtuales, que se pagan solo en base al volumen en que las usamos.

Esto son puras maravillas y ventajas, aunque suena demasiado bueno para ser cierto. Para cosas sin importancia y que pueda perder en cualquier momento, o que puedan hacerse públicas sin que yo corra peligro o alguien pueda avergonzarme, los servicios en la nube suenan perfecto. Incluso es posible que a futuro los planes de Internet traigan ya incluido un servicio como Google Cloud o similar, que pagaremos justo con la cuenta a fin de mes, pero igual, yo nunca pondría algo personal en esos servidores, ni muerto. Confío tanto en Google como en las vacunas para el Covid. Si alguien anda diciendo "no seas malo" me reviso instintivamente la billetera y el reloj, por si me los han pelado. 

18 comentarios:

  1. Interesante lo que mencionas, Tomás. En todo caso una de las cosas que nunca he podido lograr con mis escasos conocimientos de redes (algunos ya obsoletos) es el de montar mi propio hosting y subir una pagina web, tarea que tengo pendiente desde hace rato. las paginas las tengo creadas en webnode, las quiero descargar y colocarlas en mi "servidor" (será un computador más o menos decente para ese proposito, con una capacidad solo para administrar correos, activar / desactivar usuarios, y unas cuantas funciones más y despues conectar el nic con ese servidor (lo tengo y es personal). alguna sugerencia? se agradece.

    ResponderBorrar
  2. o lo otro, podría ser factible montar un website en una nube?

    ResponderBorrar
  3. En eso si que te puedo orientar, porque lo he hecho varias veces, em mi blog http://raspiarduino.blogspot.com puedes ver las instrucciones detalladas, eso se llama "servidor LAMP" (Linux, Apache, MySQL, Php) porque eso es lo que hay que instalar. En teoría es super simple, basta copiar y pegar una serie de instrucciones en la consola, el 90% del trabajo en Linux es solo copy-paste de la abundante documentación que existe y es muy rápido.

    El 10% restante es lo que te puede llevar semanas, porque Linux tiene un gran problema con las versiones, entonces casi siempre llegas a una instrucción que es para una versión distinta de la que estás usando y allí tienes que ir a los foros para "interpretar" que diablos te quiso decir el mensaje de error y como arreglarlo, por eso las instalaciones terminan siendo como resolver un acertijo o un trabajo de investigación, se aprende harto pero consume horas y horas de andar buscando. Si no fuese por las versiones, Linux lo podría manejar perfectamente hasta un niño chico.

    Para armar un servidor propio lo mejor es hacerlo en un Raspberry Pi, ten en cuenta que debes tenerlo prendido los 365 días del año y si lo haces en un computador normal vas a gastar -inútilmente- un montón de plata solo en energía eléctrica.

    También necesitas tener un ancho de banda decente en tu conexión a Internet y sobre todo (esto es lo más difícil) un IP pública fija, pocos proveedores te dan eso gratis, también debes dejar abierta la puerta 80 de tu router (creo que todos los router de ISP lo permiten)

    En mi blog http://raspiarduino.blogspot.com sale paso a paso como hacerlo.

    Yo creo que eso solo tiene un valor educativo, para aprender Linux, quebrarse la cabeza un poco y entretenerse porque no es nada práctico tener un servidor en la casa.

    Una opción mucho mejor es contratar webhosting en eBay en la nube, por ejemplo este
    https://www.ebay.com/itm/283806717694?hash=item421432d6fe:g:2-8AAOSwhQhYxkpS

    Es totalmente funcional y muy barato (6 dólares por 18 meses), además te ofrece muchos servicios que si quisieras instalarlos tu mismo en un servidor en tu casa te vuelves loco (en especial el servicio de correwos, yo nunca lo pude instalar en el Raspberry, es complicadísimo por el asunto de los certificados de seguridad)

    Estos hosting incluyen muchas herramientas fundamentales como
    -Cpanel (para administrar el host)
    -Servicio de email y ftp
    -Softacolous (instala cientos de software para sitios web en un par de clics, como Wordpress, Moodle y muchos más)

    Si quieres subir una página Web puedes hacerlo con Softaculous-Wordpress, no cuesta nada, hay miles de plantillas y puedes hacer un sitio muy profesional, _Hoy casi el 100% de las páginas web son hechas con Wordpress

    También Google Cloud te permite levantar servidores web, pero son básicos, si quieres ponerle todos los servicios te recomiendo contratar el de ebay.

    Raya para la suma: lo recomendable es el de eBay que te cuesta como 4 luchas por un año y medio. También antes tienes que registrar tu dominio en http://www.nic.cl (son como 20 lucas por 2 años), eso es si quieres un dominio .cl (recomendado), también hay registadores más baratos para dominios .com ,net etc. esos se contratan en empresas como Godaddy, Dynadot u otras por el estilo y salen un poco más baratos, pero son más difíciles de adm,inistrar

    Es cuanto puedo informar a US.

    ResponderBorrar
  4. Gracias Tomás!

    lo del nic ya lo tengo, es el website de mi team de airsoft que llevo casi 10 años con el. solo que los encargados del website dejaron el team y el cacho me lo llevé yo como Team Lider. luego de un buen tiempo postergando cambiar el website y me hice uno en webnode.es (cuyo hosting es mas caro que la cresta) mientras resuelvo este cacho.

    ResponderBorrar
  5. Si buscas en eBay puedes encontrar incluso más baratos. Mi web http://bradanovic.cl me costó 8 dólares por 4 años, ya llevo como 3 sin problema. Mi otra web http://tombrad.com lleva como 2 años, igual sin problema

    Por si las moscas es recomendable tener todo respaldado en la casa porque con precios tan bajos uno nunca sabe lo que puede pasar, pero yo casi no he tenido problemas, excepto que me puse a experimentar con cpanel y lo eché a perder

    ResponderBorrar
  6. 我一点都不明白
    Ustedes empezaron. Que conste.

    ResponderBorrar
  7. wnwnwn fv ab rf cnen gnagb!

    https://rot13.com

    ResponderBorrar
    Respuestas
    1. Jaja. Bueno, lo de arriba es chino mandarín y significa “no entendí nada”
      Lo que me pasa a mi con la computación.

      Borrar
  8. Y abajo te contesté en ROT13 jaja, lo copias y pegas en el caillero que corresponde en http://rot13.com y verás lo que te puse. ¡De chino mandarin no entiendo nada!

    ResponderBorrar
  9. Yo me conformarìa con hacer lo que nunca hago, el famoso "backup" del disco, que absolutamente nunca hago. He perdido discos, pero algùn milagrero de la computaciòn me lo recuperò lo suficiente como para salvar archivos vitales. Copiarlo en la nube, por algùn procedimiento sencillo y ràpido. En lo posible que me manden un email recordando la obligaciòn de hacerlo con un link a un sencillo proceder para hacerlo.
    Ha veces busco y nadie ofrece este servicio. Uls

    ResponderBorrar
  10. "A veces" no "Ha veces", digo.

    ResponderBorrar
  11. Hola Tomás!

    Te falta aun aprender de contenedores, que en la practica se trata de modularizar lo que necesitas solamente, evitándote tener que levantar maquinas virtuales y configurarlas. El nombre de contenedores lo toma de los recipientes de carga de mismo nombre, y la idea es ejemplificar como una carga no importando el medio que la transporte, puede llegar integra a destino (tren, camión, barco, etc). Entonces, si tu contendor es un sitio web, tus requisitos serian un servidor del lenguaje usado, una base de datos (si la requieres) y ya. Incluso puedes obligar a trabajar con una versión en particular de estas, y es el entorno el encargado de suplir estas necesidades. Ventajas? contenedores con poco tamaño, fáciles de escalar (puedes perfectamente levantar mas de un contenedor a la vez, lo que se conoce como instancias), y que si no están siendo usadas, no consumen nada (ni cpu, ni ram, ni red).

    Ya una tendencia al extremo de esto, es lo llamado microservicios, donde para ejecutar un sistema, vas cargando modularmente lo que necesitas, y en caso de cuello de botella, puedes levantar infinitas instancias para suplir este problema, sin tener que levantar todo el código completo.

    ResponderBorrar
  12. Ulschmidt, si compras en eBay una licencia de Windows 10 por ejemplo (vale unos 5 dólares) tienes el servicio One Drive que lo puedes configurar para que vaya respaldando automáticamente todo tu computador sin mover un dedo. Yo lo desactivé por desconfiado, no quiero que el Tío Bill Gates se ponga a mirar mi colección de videos porno, pero si no tienes nada muy confidencial funciona de maravillas, ni te das cuenta y tienes todo tu computador en la nube automáticamente.

    Hola Mario! En realidad a los contenedores le estuve dando vuelta durante harto tiempo y drgún lo que entendí es una especie de micro virtualización de rutinas de propósito general como las .dll pero en la nube. me pareció muy interesante, pero por más que me quebré la cabeza tratando de idear alguna aplicación práctica que me pueda servir a mi, no se me ocurrió nada así es que no le di más bola. Supongo que para los que programan aplicaciones web pueden ser muy útiles

    ResponderBorrar
  13. Puede ser que mis ideas son muy de los años 90, pero en un país donde los servicios básicos son bastante vulnerables, prefiero servicios que funcionan con red interna, sin depender del Internet.

    Así, al menos parcialmente evito:
    Los efectos de conductores borrachos que derriban los postes con luz e internet acá, con una regularidad espantosa

    Los innumerables escaneadores de internet buscando puertos abiertos con servicios aprovechables como la telefonía IP.

    Los efectos imprevistos cuándo cualquier parte de la pirámide de servicios Internet deja de funcionar.

    Y los proveedores de servicios Cloud pueden cambiarlos cuándo se les da las ganas, un ejemplo es Google Play Music, ahora descansando en paz.

    ResponderBorrar
  14. Juan, todos esos riesgos existen y hay que tewnerlos muy en cuenta, también existen varios más, principalmente la manipulación o uso malicioso de nuestros datos por parte de los que nos vendieron el servicio, mal que mal siempre podrán acceder a esto.

    Sin embargo tener nuestra información solo localmente también tiene riesgos, algunos peores que almacenar en la nube. Por ejemplo tengo casi 20 discos duros que se me han "quemado" en el tiempo, la memoria SSD es todavía más frágil que la del disco duro. Estamos expuestos a robos, incendios y accidentes en nuestra casa.

    Yo creo que hay que tratar de dstribuir los huevos en distintas canastas. Para información sensible, jamás usaría servicios en la nube, digan lo que digan, así como nunca cambiaría billetes por bitcoin

    ResponderBorrar
  15. Hola Tomás, el dato del hosting esta increíble de bueno! Y la virtualizacion digna de investigar!! Se agradece.

    Veo que el blog esta alojado en Google, por lo tanto nos tienen recontra rastreados e identificados!! Glup!

    ResponderBorrar
  16. Si, los hosting de eBay son un gran dato, baratisimos y por lo general muy confiables, lo mismo que las licencias OEM de Windows y Office-

    Google no es tanto, los más manipuladores y sinierstros son -en este orden- Twitter y Facebook. El caso de Twitter es impresionante por lo arbitrario y descaradamente sesgado

    ResponderBorrar
  17. Ah, yo la mejor definición que conozco de la nube es "other's people computer" ("computador de alguien más").

    Teniendo eso en cuenta, hay varias cosas distintas que se tienden a mezclar un poco. Lo que tú estás usando es virtualización en la nube y es muy práctico, y un primer paso para mover una infraestructura existente a la nube. La gracia es que también puedes desactivarlos y te dejan de cobrar.

    Luego están otro tipo de servicios, como aplicaciones web sin la molestia de administrar el servidor, o poner una aplicación detrás de un servicio tipo "serverless" para enchufarlas a otro servicio que consuma, y manejar todo eso desde una aplicación en vez de todo a mano en diferentes computadores.

    Luego viene el tema containers donde entra kubernetes, etc., que es una más orientado al desarrollo. Hoy los computines usamos estas leseras para que los servidores se levanten y reciclen solos; por ejemplo, yo hago un cambio en mi código, luego usando GIT subo los cambios al servidor (git push) y en Microsoft Azure creo un Pull Request (un clic), donde viene otro desarrollador que revisa mis cambios, discutimos si está todo bien o tengo que arreglar algo, y luego se aprueba (un clic), y listo: el servidor ejecuta un "build" automático, se ejecutan todos los tests definidos, y si está todo bien, el "pod" (el término de kubernetes para una especie de servidor virtual) es reemplazado por una versión actualizada con los cambios que publiqué. Esto es lo que se conoce como "CI/CD", que ni te explico lo espectacular que es para uno que comenzó programando en C bajo DOS.

    ResponderBorrar

"Send me a postcard, drop me a line
Stating point of view
Indicate precisely what you mean to say
Yours sincerely, wasting away
Give me your answer, fill in a form
Mine for evermore
Will you still need me, will you still feed me
When I'm sixty-four"