Guía intermedia de Google Cloud Platform
¡Hola, amigo programador! Si ya dominas los conceptos básicos de Google Cloud Platform (GCP) y estás listo para elevar tu conocimiento a un nivel intermedio, ¡estás en el lugar correcto!
Vamos a explorar uno de los recursos más esenciales de GCP, donde las cosas comienzan a ponerse más interesantes y que necesitas dominar.
Antes de continuar, ¿ya tienes lo básico de GCP?
Si aún no has explorado el mundo de Google Cloud Platform, te sugiero que leas mi artículo "Guía inicial de Google Cloud Platform", disponible aquí mismo en nuestra plataforma. En él, encontrarás información sobre cómo configurar el entorno, una visión general de las principales herramientas y servicios de GCP y una introducción a los conceptos fundamentales
Asegúrate de haber adquirido esos conocimientos básicos antes de continuar con esta guía intermedia de Google Cloud Platform. Ahora, vamos a dar un salto al siguiente nivel y explorar recursos más avanzados que GCP tiene para ofrecer.
Existen varios temas de nivel intermedio a tratar y, si es posible, haré una guía específica de cada uno de ellos, siendo los principales que pretendo abordar: Gestión de instancias, Almacenamiento de datos a gran escala, Seguridad y cumplimiento, Orquestación de contenedores con Kubernetes, Servicios de análisis de datos, Arquitectura de microservicios y Machine Learning en GCP
Pero, entre los varios recursos que se destacan en GCP, uno de los esenciales a dominar son las redes virtuales, el foco de esta guía intermedia.
¡Vamos allá!
Redes virtuales específicas: Creación, configuración de redes virtuales personalizadas en GCP, incluyendo subredes, encaminamiento personalizado y balanceo de carga.
Las redes virtuales son una parte fundamental de la infraestructura de GCP, permitiéndote crear y gestionar redes aisladas y seguras para tus proyectos. En el nivel intermedio, vamos más allá de los conceptos básicos y nos sumergimos en recursos más avanzados.
Una de las principales ventajas de crear redes virtuales personalizadas es la capacidad de segmentar tu infraestructura en subredes. Las subredes permiten dividir una red en segmentos más pequeños, proporcionando control granular sobre el tráfico y la comunicación entre las instancias de GCP. Con esto, es posible crear entornos aislados para diferentes partes de tu proyecto, garantizando mayor seguridad y eficiencia.
Además, exploraremos el encaminamiento personalizado, que permite configurar rutas personalizadas para dirigir el tráfico entre tus subredes. Con esta funcionalidad, puedes optimizar la comunicación entre diferentes componentes de tu proyecto, asegurando que el tráfico se rote de manera eficiente, de acuerdo con tus necesidades específicas.
Otro aspecto importante abordado en esta guía es el balanceo de carga. GCP ofrece opciones avanzadas de balanceo de carga, permitiendo distribuir el tráfico de manera uniforme entre las instancias y recursos de tu proyecto. Aprenderás a configurar y ajustar estas opciones para garantizar la alta disponibilidad y la escalabilidad de tu aplicación.
Al final de esta guía, tendrás un conocimiento sólido sobre redes virtuales avanzadas en GCP. Serás capaz de crear y configurar redes virtuales personalizadas, dividir tu infraestructura en subredes, configurar el encaminamiento personalizado y optimizar el balanceo de carga.
Creación de una red virtual:
Comenzarás importando la clase ‘NetworksClient’ de la biblioteca @google-cloud/compute. La notación .v1 indica la versión de la API de Compute Engine que se utilizará.
A continuación, se creará la función createCustomNetwork que será responsable de crear una red virtual personalizada en GCP. Recibe tres parámetros: projectId (ID del proyecto en GCP), networkName (nombre de la red virtual) e ipRange (rango de direcciones IP que abarcará la red virtual).
A partir de esto, se crea una instancia del cliente ‘NetworksClient’ y se define la ruta del proyecto utilizando el ID del proyecto proporcionado
A continuación, se define un objeto ‘networkRequest’ que contiene las configuraciones para la creación de la red virtual. El ‘parent’ es la ruta del proyecto, el ‘name’ es el nombre de la red virtual, ‘autoCreateSubnetworks’ se define como false (indicando que no se crearán subredes automáticamente), ‘routingMode’ se define como 'REGIONAL' (indicando que el enrutamiento será regional), e ‘ipAllocations’ contiene las asignaciones de IP, incluyendo el rango de IP proporcionado.
A partir de esto, se debe enviar la solicitud de creación de la red virtual, la cual se envía utilizando el cliente NetworksClient. El resultado de la operación se almacena en la variable ‘operation.’
Después de la creación de la red virtual, se muestra un mensaje informando que la red fue creada con éxito y al final tenemos algunos ejemplos con el uso de la función createCustomNetwork, pasando los valores específicos para crear una red virtual con el ID de proyecto 'my-project', nombre 'my-network' y rango de IP '10.0.0.0/16'. Tu código debe parecerse a este modelo:
Creación de una subred dentro de una red virtual:
Comenzamos nuevamente importando la clase ‘SubnetworksClient’ de la biblioteca @google-cloud/compute. La notación .v1 ndica la versión de la API de Compute Engine que se utilizará.
Con esto, creamos la función ‘createSubnetwork’ que será responsable de crear una subred dentro de una red virtual en GCP. Recibe cinco parámetros: ‘projectId’ (ID del proyecto en GCP), ‘region’ (región donde se creará la subred), ‘networkName’ (nombre de la red virtual), ‘subnetworkName’ (nombre de la subred) e ‘ipRange’ (rango de direcciones IP que abarcará la subred).
Hecho esto, partimos para la creación del cliente y definición de la ruta del proyecto y de la red virtual, en el cual se crea una instancia del cliente SubnetworksClient, y se definen la ruta del proyecto, utilizando el ID del proyecto proporcionado, y la ruta de la red virtual utilizando la ruta del proyecto y el nombre de la red virtual.
El siguiente paso es la configuración de la solicitud de creación de la subred a través de la definición de un objeto ‘subnetworkRequest’ que contiene las configuraciones para la creación de la subred. El ‘parent’ es la ruta del proyecto, ‘region’ es la región donde se creará la subred, ‘name’ es el nombre de la subred, ‘ipCidrRange’ es el rango de direcciones IP que abarcará la subred, y ‘network’ es la ruta de la red virtual.
Finalmente, la solicitud para crear la subred se envía utilizando el cliente SubnetworksClient. El resultado de la operación se almacena en la variable operation y, después de la creación de la subred, se muestra un mensaje informando que la subred fue creada con éxito con algunos ejemplos de uso. Tu código debe parecerse a este modelo:
Configuración de balanceo de carga:
Nuevamente, estamos importando la clase ‘BackendServicesClient’ de la biblioteca @google-cloud/compute. La notación .v1 indica la versión de la API de Compute Engine que será utilizada.
A partir de esto, crearemos la función ‘createLoadBalancer’ que será responsable de configurar un balanceador de carga en GCP. Recibe cuatro parámetros: ‘projectId’ (ID del proyecto en GCP), ‘backendServiceName’ (nombre del servicio de back-end), ‘instanceGroupName’ (nombre del grupo de instancias) e ‘healthCheckName’ (nombre del chequeo de salud).
El siguiente paso también será la creación del cliente y definición de las rutas del proyecto, grupo de instancias y chequeo de salud, donde se crea una instancia del cliente BackendServicesClient, y se definen las rutas del proyecto, grupo de instancias y chequeo de salud, utilizando los IDs y nombres proporcionados.
Con esto, podemos definir un objeto ‘backendServiceRequest’ que contiene las configuraciones para la creación del balanceador de carga. El ‘parent’ es la ruta del proyecto, ‘name’ es el nombre del servicio de back-end, ‘backends’ contiene la configuración del grupo de instancias y ‘healthChecks’ contiene la configuración del chequeo de salud.
Finalmente, la solicitud para crear el balanceador de carga se envía utilizando el cliente BackendServicesClient. El resultado de la operación se almacena en la variable operation y, tras la creación del balanceador de carga, se muestra un mensaje informando que el balanceador de carga fue creado con éxito, con algunos ejemplos de uso. Tu código debe parecerse a este modelo:
Configurando reglas de firewall:
La configuración de las reglas de firewall sigue el mismo inicio de las etapas anteriores, con algunas peculiaridades, siendo estas:
La línea const { Firewall } = require('@google-cloud/compute').v1; importa la clase Firewall de la biblioteca @google-cloud/compute, versión v1.
La función createFirewallRule es una función asíncrona que recibe varios parámetros, como el ID del proyecto, el nombre de la regla de firewall, el nombre de la red, los rangos de origen, las etiquetas de destino y los puertos permitidos.
A continuación, se crea una instancia del cliente Firewall se define la ruta del proyecto y se crea el objeto firewallRequest para contener las configuraciones de la regla de firewall. Este especifica el padre (proyecto), el nombre de la regla de firewall, la red, los rangos de origen, las etiquetas de destino y los puertos permitidos. La función allowedPorts.map mapea los puertos permitidos en un formato específico para ser usados en la solicitud.
La solicitud para insertar la regla de firewall se envía usando el cliente Firewall, y el resultado se almacena en la variable operation. La función operation.promise() espera la conclusión de la operación. Finalmente, se muestra un mensaje informando que la regla de firewall fue creada con éxito.
El ejemplo de uso demuestra cómo llamar la función createFirewallRule con valores específicos para crear una regla de firewall con el ID del proyecto 'my-project', nombre de la regla de firewall 'my-firewall-rule', nombre de la red 'my-network', rangos de origen ['0.0.0.0/0'], etiquetas de destino ['web-server'] y puertos permitidos [80, 443].
Recuerda que estos ejemplos de código son solo ilustrativos y pueden variar de acuerdo con las bibliotecas específicas de GCP que estés utilizando. Asegúrate de consultar la documentación oficial de GCP y la documentación de la biblioteca del cliente para obtener ejemplos de código actualizados y adecuados a tu necesidad.
Con esto, concluyo esta guía. ¡Estate atento a la próxima guía, hay mucho más por aprender! Es fundamental estudiar y practicar regularmente para convertirse en un desarrollador habilidoso en Google Cloud Platform (GCP).
Ahora que tienes una visión general de un cierto tema intermedio, podemos avanzar al nivel avanzado en el próximo artículo. ¿Qué opinas? ¿O prefieres más artículos de nivel intermedio?
Y tú, desarrollador, ¿ya has creado algo usando Google Cloud Platform? ¿Ya has tenido algún contacto previo con los temas de esta guía? Comparte tus experiencias en los comentarios abajo. Aquí en Revelo Community, encontrarás más contenidos escritos por mí, relacionados con programación.
- Gabriel Reis Duarte.
Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.