Clouds para mi Claus

Tengo la suerte y la fortuna de que mi esposa no es ingeniera de sistemas, ni tiene plena comprensión de mi lenguaje técnico, y todo ese argot, esa jerga que usamos en informática nerd, de hecho ella no tiene una idea exacta de los mis pensamientos digitales ni de mi mundo basado en bits bytes y qubits para almacenar información o del procesamiento de pixeles para representarlos en algún tipo de modelos 3D, y digo la suerte, porque disruptivamente mi vida hace diariamente un alto en el camino, cuando paso tiempo con ella, seguramente si fuese ingeniera mantendríamos surfeando en internet buscando resolver juntos cada cosa que me llama la atención, o cada problema que se nos presentara lo buscaríamos resolver de una manera muy ingeniosa.- por el contrario, como no es ingeniera, nuestras charlas y conversaciones nunca o casi nunca giran en torno a los scripts, las líneas de código o para hacer conexión con la idea de este post, con las nubes.

Sin embargo conversando en estos días durante un café, ella me manifestó que se sentía interesada en comprender de una manera sencilla sobre todos esos temas de cloud que nos apasionan a todos nosotros los informáticos, así que he decidido escribir este post para personas, no para ingenieros.

La nube es la nueva frontera para los devops y los sysadmins

Y es que seguramente si le preguntas a mis padres o a mis hijas, que es lo que hace Fabián, seguramente miraran hacia los lados, lo pensaran un poco haciendo esa mirada para el techo, y finalmente no lo saben a detalle tampoco… muy por encima dirán, ¡” Es ingeniero!”… como si eso mágicamente lo explicará todo. Tal vez solo explica mis prominentes y abultados cachetes… jajaja.

En esencia “la ingeniería de sistemas se propone por medio de procedimientos, rutinas y algoritmos, el resolver necesidades específicas que faciliten la vida de las personas.”, desde una óptica académica, o una comparativa profesional, los psicólogos tratan de entender el comportamiento humano, los filósofos se cuestionan si la historia y los métodos fueron éticos, apropiados, y dadas las circunstancias la mejor opción, bueno por algoritmos vamos a decir que son métodos o funciones, que deducimos pensando en optimizar, mejorar, o facilitar, pero ese primer ejercicio de pensar como hallar una solución es lo que realmente le da valor que no solo por medio de código podemos realizar, realmente lo que se busca es ofrecer recomendaciones que permitan flujos, aprobaciones, o crear software que ayude a las personas a facilitar sus tareas diarias. Insisto, no todo lo que vemos los ingenieros de sistemas son bits, bytes y qubits, a veces el hecho de como registrar contablemente, es un procedimiento más manual que sistémico. Muchas de las soluciones actuales son más incluyentes y permiten que personas con limitaciones o acceso reducido, puedan aprovechar el potencial de la informática.

Sin embargo, no voy a idealizar que los sistemas informáticos no hayan transformado nuestra capacidad de memorizar y de retener en nuestros propios pensamientos alguna información importante. Como muchas personas de mi generación, a veces lográbamos memorizar los números de identidad, de cuentas bancarias o los números de teléfono de nuestros propios familiares, ahora que existen libretas digitales y post-it virtuales,  ya nadie recuerda ni por ejercicio ninguna información. Simplemente le piden a Alexa, Siri, Bixbi o Google que les recuerde la hora de la novela…

Bueno, volveré al tema de este post, sin cuestionar los efectos colaterales de la informática moderna, y los asistentes digitales y mi mala memoria, la evolución oficinista, administrativa y de secretaria artificial, que ha ofrecido Microsoft Office, no tiene comparación, y recuerdo con cierta nostalgia cuando de pequeño acompañante iba a la oficina de mi mamá quien era asistente- secretaria de gerencia. Ella tenía que organizar carpetas en archivadores, con cientos de documentos que mecanografiaba en su flamante máquina de escribir. Ahora le hacemos dictados por voz y la información es almacenada e indexada para facilidad de búsqueda.

Hoy en día todos hablan de Cloud computing peeero… eso en términos claros, ¿eso que es? – bueno vamos a decir simplemente que en tiempos de antaño cuando Windows server 2003 existía, teníamos capacidades de virtualizar máquinas usando un aplicativo llamado virtual PC. Virtualizar una máquina consiste en crear un espacio de ejecución donde asignamos una cantidad de memoria y un número de procesadores para instalar un sistema operativo sobre un archivo que llamamos un disco duro virtual, sobre este se puede instalar según convenga un Linux o un Windows. Este hipervisor hacia la administración de recursos del sistema operativo del host para permitir que una máquina imaginaria (virtual), se ejecutará dentro de la máquina física.  Ciertamente esto propone en ese momento un paradigma nuevo y disruptivo que permite aprovechar más el uso de los recursos como procesadores o memoria, el uso de cableado, alimentación eléctrica y de refrigeración. Pero sobre todo dinamiza increíblemente el tiempo de despliegue e instalación de nuevos proyectos se reduce a horas… que digo horas, minutos tal vez.

Sin embargo, decimos que es una nube, porque es borroso, lograr identificar en que servidor (físico) se están ejecutando nuestras cargas de máquinas virtuales, y dado que pueden estar ejecutándose en muchas maquinas físicas, no precisamente en el mismo centro de datos, por eso decimos que estamos en una nube. Por referirme puntualmente al caso de Microsoft, al momento de escribir este post Azure cuenta con más de 60 centros de datos a nivel mundial, centros de datos que tienen el tamaño de 20 campos de futbol americano, es decir que son lotes enormes, con diferentes edificios, con alimentación eléctrica redundante, y diferentes salas llenas de miles y miles de racks donde están organizados miles o cientos de miles de servidores físicos.

Porque gracias a la virtualizacion, podemos simular redes internas o externas, podemos manejar distintos sistemas operativos y montar fácilmente todo un escenario de laboratorio con varias máquinas virtuales sobre un solo servidor físico. 😉

Microsoft pudo transformar esta aplicación de virtual PC a un concepto llamado hipervisor o Hyper-v donde se podía hacer una mejor administración de recursos gracias a una integración nativa a nivel de kernel.  Paralelamente otros fabricantes como VMware o Virtual Box también presentaron sus funciones de hipervisor, y en el mundillo Linux hubo buenos competidores también.  Sin embargo, aprendimos que para el host se precisan 2GB de RAM al menos, y por cada máquina virtual para su propio sistema operativo 2 GB más lo que precisa el rol que la máquina virtual ejecutará. El mundo de los centros de datos llenos de servidores ruidosos, calurosos y monotarea rápidamente fueron cambiando a modelos de virtualización de máquinas, las cuales podían migrar entre diferentes hosts y esto aumentaba significativamente los índices de disponibilidad para estos equipos. Claramente vivimos una gran optimización de uso de recursos, de redes y de espacios.

Para una empresa emergente o startup era difícil invertir unos $15.000 dólares para comprar sus propios servidores, entonces muchos empezaron a alquilar un espacio compartido, un co-hosting con otras empresas sobre los mismos servidores, así pagando entre varios el alquiler era como compartir los costos de la renta de un departamento entre varios. Sin embargo, la actividad de poder aplicar hotfix a los diferentes sistemas operativos, y mantener un monitoreo constante sobre el uso de recursos y de las alertas de disponibilidad, podía precisar de un sistema adicional como System Center Operations Manager o Nagios. Entonces aquellos centros de datos que permitían al cliente autogestión, escalabilidad y alta disponibilidad fue lo que denominamos una nube privada, o en inglés un private Cloud. Grandes corporaciones como AWS, Google o Azure de Microsoft, implementaron enormes centros de datos, como si fueran complejos hoteleros, donde puedes escoger la talla de la máquina virtual que quieres alquilar, de acuerdo con el tamaño de la suite así mismo tienes que pagar.

En la nube publica entonces puedes contratar diferentes tipos de servicio, desde un flamante Windows Server 2022, con 64 VCPU y 512 terabytes de RAM, a un modesto Linux de un VCPU y media giga de RAM. Nos podemos montar en una maquina muy sencilla y en la medida que nuestro negocio prospere, o el servicio se haga más popular y utilizado podemos o agrandar en capacidades la máquina o ampliar el número de equipos que realizan el mismo rol. Estas nubes públicas son flexibles en cuanto a contratos y pagos así que puedes usar tu tarjeta de crédito y pagar de acuerdo con tus consumos, o aprovisionar un saldo del cual ir descontando cada mes como un modelo prepagado

Ahora bien, si he sido claro hasta este punto, quiero que se imaginen la nueva realidad donde ya no ocupamos sistemas operativos independientes por cada instancia de máquina virtual, sino que ocupamos un “sandbox” que es un espacio de ejecución aislado, donde podemos ejecutar los Pods de Docker, estas instancias ocupan menos recursos pues funcionan con la misma mecánica que un rol instalado a un sistema operativo, ocupando las librerías DLL y los binarios para ejecutar su aplicación. La idea de usar estos microservicios está revolucionando todas las arquitecturas, porque es como si tuvieras varios módulos que se pudieran añadir a tu habitación del Hotel… quieres con Jacuzzi, ¡¡bam!! Ahí está, quieres otra habitación, ¡¡bam!! Desplegada… en cuestión de segundos, necesitas otro baño, igualmente… así mismo hay pods basados en Linux Alpine que pesan solamente 5MB, y que tras instalar un NGINX que equivale a un apache o un IIS, nos permite publicar un web site.

A veces nuestras conversaciones entre ingenieros pueden ser realmente complicadas si no tienes el contexto…

Ahora bien, la invitación a todos ustedes es que exploren un poco más esta nueva visión que está revolucionando la forma de ejecutar aplicaciones registrándose en https://hub.docker.com ejecuten docker, usen el https://labs.play-with-docker.com/, también y porque no, que aprendan de Linux, de administración de soluciones de almacenamiento, así como de bases de datos, de seguridad informática, firewalls y de cómo funcionan las redes de comunicaciones, DHCP, enrutamiento, y resolución de nombres por DNS, aunque sea un poco, pero estas cosas crecen tan rápido como un incendio, y como son de comunidades, es muy fácil quedarse atrás del lote. cuando empezamos los primeros a explorar las configuraciones de soluciones en nube teníamos que al menos como una referencia, conocer de todos estos aspectos.

En este caso los microservicios componen toda tu arquitectura, esto es gracioso pues si necesitas un pod de base de datos, y dos o tres que hagan web front end es posible sin más que especificar el archivo de manifiesto. Vamos a aumentar el número de pods, simplemente modificamos el manifiesto y este desplegara tantas máquinas como hagan falta. Los pods como ya no ejecutan un sistema operativo ahora ocupan muy poca memoria, y reiniciar un pod es cuestión de segundos. Si tenemos que administrar algunos pods es sencillo, pero cuando estamos monitoreando algunos cientos de ellos, es necesario valernos de utilidades como Kubernetes para poder gestionarlos sin mayor problema.

Es fácil quedarse cuando no vamos pedaleando al igual.

Muchas grandes compañías como Netflix se apalancan en sus plataformas gracias a los microservicios y esto permite que un microservicio maneje el inicio de sesión mientras que otro lleve estadísticas de tus preferencias y de la parrilla que te ofrece en consecuencia a tus últimas visualizaciones, estos algoritmos se ejecutan sobre algunos pods. En el caso de estos pods podemos tener batallones de pequeños pods haciendo cálculos ejecución de firmas, análisis de datos y transformación de datos… con el poder de los microservicios.

Los quiero ver a todos pedaleando en Powershell, explorando los comandos de Docker, desplegando kubernetes y utilizando los archivos de manifiesto JSON para sus despliegues automatizados en la nube. Hasta la proxima amigos.

Azure-nautismo

Azure es la plataforma cloud de Microsoft

Cuando queremos empezar a practicar un deporte, empezamos por adquirir los elementos básicos, un balón apropiado, canilleras si es futbol Soccer, rodilleras si es voleibol o tu raqueta personal si es tenis. Para iniciarnos en el inmenso cloud de Microsoft Azure donde se pueden crear maquinas virtuales, aplicaciones web, o bases de datos, lo primero es obtener una suscripción gratuita donde nos pedirán un correo valido y un teléfono de contacto, para obtener U$200 de crédito, por 30 días.

Ahora que ya tienes acceso a tu suscripción, Azure es un servicio que se te cobra por el tiempo en uso de cada maquina virtual encendida, por el trafico de red, por el espacio de almacenamiento ocupado. La suscripción normalmente es la que define si Microsoft hará cobro después de facturar (mes vencido), o si tienes un saldo a favor (crédito) del cual se puede descontar lo facturado. Dentro de una suscripción tu puedes tener un propietario, y hasta 200 coadministradores.

Arquitectura de soluciones multi sitio en Azure

Una estructura familiar y que fácilmente reconocemos es el rack que se implementa en los centros de datos, estos tienen switches de comunicaciones y soluciones de almacenamiento, además de los servidores enrackables, si hacemos esta estructura imaginaria en la definición de lo que podemos crear en Azure, podemos crear un grupo de recursos, el cual será un conjunto de elementos, para crear un grupo de recursos le definiremos tres valores, la suscripción, el nombre y la ubicación geográfica. una buena forma de identificar en que regiones nos conviene ubicar nuestros recursos consiste en ejecutar un Azure Speed Test lo que nos permite identificar cuan rápido obtenemos respuesta desde los diferentes centros de datos en todo el mundo. Confinar los diferentes elementos que conforman una solución dentro de un mismo grupo de recursos, ayudan a ordenar los elementos dentro de tu suscripción, ayuda a identificar cuanto te cuesta una solución después de desplegada mes a mes, pero para hacer una proyección de cuanto podría costar, antes de implementar se puede usar la calculadora de precios de Azure. Una buena practica consiste en etiquetar cada recurso, de manera que se puedan usar varios grupos de recursos para una misma aplicacion, de este modo podríamos tener un grupo de recursos de front end, para la publicación web de la aplicación, otro grupo de recursos para el midleware, y otro grupo de recursos para las base de datos. así se puede desplegar un balanceador de carga para los websites y una protección de firewall para llegar a las bases de datos.

Azure tiene una amplia oferta en su market place

Empezaremos por definir que dentro de cada grupo de recursos podemos definir un Storage Account, el cual es un tipo de almacenamiento basado en Blobs (Binary large object storage) en donde todo lo que creemos dentro del grupo de recursos se podrá almacenar, discos VHD, bases de datos, y aplicaciones web. y por otro lado debemos crear un Virtual Network, el cual será como nuestro switch virtual para todos los elementos que dentro del grupo de recursos creemos. este virtual network se puede empalmar con otros grupos de recursos (de hecho con otros VNet) por medio de emparejamientos peer to peer. el VNet se comporta como un DHCP que asigna direcciones IP a cada elemento creado dentro del grupo de recursos, y asociado a este VNet. dentro del ejercicio de arquitectura, debemos concebir y planear como van a ser las conexiones, por donde llega el trafico, y que puertos se van a habilitar, antes de empezar a hacer los despliegues sobre la suscripción, pues ensayar allí tiene costo.

En Azure encontramos diferentes elementos por cada categoría

Espero que les haya gustado este articulo, espero sus preguntas y comentarios, y recuerden #MeQuedoEnCasa

Nueva ruta de certificaciones Microsoft

Empecé el día con mi café, e investigando nuevos contenidos y referencias sobre las certificaciones de azure, quería saber que nuevos materiales encontraba para el AZ-103, pues en infraestructura IAAS es el nuevo examen de Microsoft que reemplazaría el AZ-102, el cual a su vez reemplazo el 70-533, y me encontré con la ruta completa de certificaciones de Microsoft , empezando con un nivel introductorio en Azure, el AZ-900 es el nivel para todos los que quieren comenzar a estudiar este producto, siguiendo con las certificaciones para Infraestructura (Az-103), desarrollo de aplicaciones (Az-203) y arquitectura (Az-300), para luego encontrarnos con DevOps (Az-400) y seguridad en Azure (Az-500), pero en mi opinion (la cual no han pedido) las líneas punteadas, y la continuidad académica deberían ser como una cadena, siguiendo la misma traza que mis líneas acaban de relatar. Porque no puedes llegar a Arquitecto sin conocer de antemano todas las aristas, que ofrece este poliedro.

Encontre que también hay una ruta de certificacion para cientificos de datos (la cual proviene de las certificaciones de SQL)

y otra linea se denomina Modern Workplace donde vemos que se encuentran las soluciones de Office 365, Exchange y Sharepoint, asi como Windows 10. Pero aqui analizo otra particularidad, Microsoft en los inicios de Office365 tenia un plan de formación donde aprendías primero de Exchange, SharePoint y Lync (en sus versiones 2010) y luego hacías el examen 70-321 de Office 365, luego en tiempos de Exchange 2013 y SharePoint 2013, surgió Skype for Business, y en esa entonces nos invirtieron la secuencia, aprendiendo primero de Office 365 que de servidores Exchange, Skype o SharePoint. ahora en este plan de carrera, veo que lo vuelven a definir despues.

hay una rama adicional sobre los servicios de dynamics, pero esa si ni la quise mirar porque es super extensa… y creo que mi estimada amiga y colega MCT Blanca Baute, a quien le envio un saludo.

información tomada de http://aka.ms/TrainCertPoster

Proxima conferencia: DevOpsDays2019 en Bogota

Ahora nos encontraremos el 25 y 26 de Mayo en el centro de convenciones de Avianca de 8:00 AM a 5:00 PM un par de dias para compartir conocimiento en temas de desarrollo, automatizacion, y cloud computing. mas info en https://devopsdays.co/ mi charla sera de Automatizacion, ARM Templates, Visual Studio Code, PowerShell y Azure-Cli para gestionar los recursos en Azure.

image8