Mostrando entradas con la etiqueta cloud. Mostrar todas las entradas
Mostrando entradas con la etiqueta cloud. Mostrar todas las entradas

domingo, 27 de abril de 2025

GCP: Google Cloud Run

En esta ocasión veremos qué es y para qué sirve Google Cloud Run. Google Cloud Run es una plataforma serverless que permite ejecutar aplicaciones en contenedores de manera escalable y sin preocuparse por la infraestructura subyacente.

Según la documentación oficial:

  • Puedes ejecutar contenedores como aplicaciones web, microservicios, funciones sin servidor y trabajos de procesamiento por lotes. 
  • Cloud Run gestiona la infraestructura, permitiéndote enfocarte en el código y la aplicación, sin preocuparte por la gestión de servidores.

Lo que se puede hacer:

  1. Desplegar aplicaciones web y APIs: Ejecuta aplicaciones web, microservicios o APIs RESTful en contenedores, con soporte para lenguajes como Python, Node.js, Java, Go, etc. 
  2. Escalado automático: Escala automáticamente los contenedores según la demanda (de cero a miles de instancias) y reduce a cero cuando no hay tráfico, optimizando costos. 
  3. Ejecutar tareas programadas o eventos: Procesa eventos de Pub/Sub, Cloud Scheduler o desencadenantes HTTP para tareas como procesamiento de datos, ETL o automatización. 
  4.  Soporte para aplicaciones stateless: Ideal para aplicaciones sin estado que manejan solicitudes HTTP o eventos, como backend para aplicaciones móviles o sitios web. 
  5. Integración con CI/CD: Automatiza despliegues con herramientas como Cloud Build, GitHub Actions o GitLab, permitiendo flujos de desarrollo continuo. 
  6. Gestión simplificada: No requiere gestionar servidores; Google Cloud Run maneja parches, actualizaciones y balanceo de carga. 
  7. Soporte para WebSockets: Útil para aplicaciones en tiempo real, como chats o juegos. 
  8. Integración con otros servicios de Google Cloud: Conecta fácilmente con Cloud Storage, Firestore, BigQuery, o bases de datos como Cloud SQL para construir aplicaciones complejas. 
  9.  Despliegue de aplicaciones de machine learning: Sirve modelos de ML en contenedores para inferencia en tiempo real. 
  10. Personalización de entornos: Usa imágenes de contenedores personalizadas con Docker, permitiendo flexibilidad en dependencias y configuraciones. 
  11. Seguridad y autenticación: Integra con Identity-Aware Proxy (IAP), Firebase Authentication o OAuth para proteger endpoints, y soporta dominios personalizados con HTTPS. 
  12. Ejecución de trabajos (Jobs): Ejecuta tareas de corta duración, como migraciones de bases de datos o procesamiento por lotes, con Cloud Run Jobs.

Cloud Run es ideal para desarrolladores que buscan una solución serverless, escalable y fácil de usar para desplegar aplicaciones modernas, con un modelo de pago por uso que optimiza costos.

Enlaces:

https://cloud.google.com/run

jueves, 17 de abril de 2025

Firebase Studio, el Visual Studio Code de Google

La "benevolente" y nada "maquiavélica" empresa Google ha lanzado una plataforma para programar: Firebase Studio.

Firebase Studio es un entorno de desarrollo basado en la nube, diseñado para acelerar la creación, prueba, implementación y ejecución de aplicaciones web y móviles de pila completa con inteligencia artificial (IA). Combina herramientas como Project IDX, Genkit y la IA de Gemini para ofrecer un espacio de trabajo colaborativo accesible desde cualquier navegador. Permite a desarrolladores y no programadores construir aplicaciones de calidad de producción, incluyendo APIs, backends, frontends y más, de forma rápida y eficiente.

Nota: Esto no es nada nuevo. Hace años existió una plataforma similar llamada: Cloud 9, ahora propiedad de AWS.

Características

  • Prototipado con IA: Utiliza el App Prototyping agent con Gemini 2.0 Flash para generar aplicaciones web (actualmente con Next.js, con más frameworks en el futuro) a partir de descripciones en lenguaje natural, imágenes o bocetos, sin necesidad de programar. 
  • Codificación con control total: Ofrece un entorno basado en Code OSS (similar a Visual Studio Code) con soporte para lenguajes como Java, Python, Node.js, Go, .NET, y frameworks como React, Angular, Vue.js, Flutter, entre otros. Incluye autocompletado, depuración y extensiones del Open VSX Registry. 
  • Flexibilidad y personalización: Permite importar proyectos desde GitHub, GitLab o Bitbucket, usar plantillas predefinidas (más de 60 disponibles) o personalizar entornos con Nix. 
  • Despliegue sencillo: Publica aplicaciones con un clic usando Firebase App Hosting, Cloud Run o infraestructura personalizada, con vistas previas instantáneas mediante URLs públicas o códigos QR. 
  • Colaboración en tiempo real: Comparte espacios de trabajo mediante enlaces para que equipos trabajen simultáneamente, similar a Google Docs. 
  • Asistencia de IA: Gemini en Firebase ayuda con tareas como generación de código, corrección de errores, pruebas, documentación y gestión de dependencias.

Modos de uso

  • Sin código: Ideal para principiantes, permite crear prototipos describiendo la idea en lenguaje natural. 
  • Codificación manual: Para desarrolladores avanzados que prefieren editar código directamente en un IDE completo.

Limitaciones:

  • Actualmente, el App Prototyping agent solo soporta aplicaciones web con Next.js. 
  • Las funciones de IA generativa están sujetas a la Política de Uso Prohibido de IA Generativa y los Términos de Servicio de Gemini API. 
  • Para evitar que los datos se usen en entrenamiento de modelos, se puede desactivar la finalización de código o evitar el uso del App Prototyping agent.
  • La interfaz está principalmente en inglés, aunque acepta instrucciones en español.

Ejemplo de uso:

Un usuario puede describir: "Quiero una aplicación web para gestionar tareas con autenticación de usuarios y un diseño minimalista". Firebase Studio genera un prototipo funcional en minutos, con código, interfaz y API configurada. Luego, el usuario puede ajustar el diseño con Gemini, editar el código manualmente o publicarlo directamente.

Un punto de vista...

El creciente número de plataformas que usan IA debería ponernos a pensar: ¿En un futuro todo será automatizado y, por ende, no se necesitará de intervención humana?

Solo el tiempo lo dirá.

Nota curiosa: ¡Este es el post número 333 del blog!

Enlaces:

https://firebase.studio/
https://code.visualstudio.com/
https://atom-editor.cc/

sábado, 28 de diciembre de 2024

AWS: tipos de Computación en la nube (Cloud Computing)

Continuamos con esta serie sobre AWS (Amazon Web Services) que iniciamos en la anterior entrega:

AWS en un vistazo.

En ésta ocasión veremos los 3 tipos de computación en la nube.

Los 3 tipos de computación en la nube (cloud computing)

  1. Software as a Services (SaaS) o Software como servicio: programas como servicios. Un ejemplo, Gmail, Outlook, etc.
  2. Platform as a Service (PaaS) o Plataforma como servicio: un servicio que te permite crear, implementar y gestionar aplicaciones en la nube. Ejemplos, AWS Elastic Beanstalk, AWS Lambda, etc.
  3. Infrastructure as a Services (IaaS) o Infraestructura como servicio: servidores, centro de datos, edificios, etc.

Las principales empresas que ofrecen este tipo de servicios son:

  • Amazon con su AWS.
  • Microsoft con su Microsoft Azure.
  • Google con su Google Cloud Platform.

Quien parece llevar la delantera es AWS, mientras que Microsoft Azure y GCP pelean la 2da y 3era posición.

Como programador, ¿Qué podemos esperar de estos 3 tipos de computación en la nube?

Saas

No necesitas preocuparte por la instalación, mantenimiento o actualización del software; todo eso lo gestiona el proveedor. Puedes acceder a las aplicaciones desde cualquier dispositivo con conexión a Internet. Generalmente se paga por suscripción, lo que puede ser más económico que comprar software de escritorio. Menos control sobre la personalización y configuración del software.

Paas

Automatización del escalado de aplicaciones según la demanda. Facilidad para integrar con bases de datos, servicios de mensajería, y otros servicios de nube. Herramientas y servicios para el desarrollo, pruebas, entrega y administración de aplicaciones.

Iaas

Mayor control sobre el hardware virtualizado, permitiéndote configurar el entorno según tus necesidades específicas. Capacidad de aumentar o disminuir la infraestructura según sea necesario rápidamente.Responsabilidad sobre la gestión de sistemas operativos, aplicaciones, entornos de runtime, etc. Paga solo por los recursos que uses, lo cual puede llevar a ahorros significativos.

Nota: Al usar este tipo de servicio debemos entender que no somos los dueños, solo los clientes. Los pagos por usar estos servicios deberán ser administrados correctamente sino queremos llevarnos un buen susto.

Continuaremos con este tema en futuras entregas.

Enlaces:

https://awsnewbies.com/cloud-computing/

domingo, 15 de diciembre de 2024

¿Qué es la computación en la nube? (vídeo en inglés)

En este vídeo del canal @amazonwebservices nos explican lo qué es la computación en la nube (cloud computing), enfocado a AWS (Amazon Web Services).

sábado, 14 de diciembre de 2024

AWS en un vistazo

Amazon Web Services (AWS), es una plataforma de servicios en la nube que ofrece una amplia gama de productos y soluciones de cómputo, almacenamiento, bases de datos, análisis y más.

Sirve para:

  • Alojamiento de aplicaciones: Permite a las empresas desplegar y escalar aplicaciones sin necesidad de gestionar físicamente los servidores. 
  • Almacenamiento de datos: Ofrece soluciones como S3 para almacenamiento de objetos y EBS para almacenamiento en bloque. 
  • Computación: Provee servicios como EC2 para instancias de máquinas virtuales. 
  • Análisis y Big Data: Herramientas como Redshift para análisis de datos a gran escala. 
  • Seguridad y cumplimiento: Ofrece servicios para la protección de datos y la conformidad normativa.

AWS facilita a las organizaciones la innovación, reducción de costos y mejora de la agilidad empresarial mediante el uso de la nube.

Como programadores, ¿Qué podemos esperar de AWS?

  • Infraestructura como servicio (IaaS): Podrás lanzar y gestionar servidores virtuales (EC2) según tus necesidades, escalando recursos de manera dinámica. 
  • Plataforma como servicio (PaaS): AWS ofrece servicios como Elastic Beanstalk, que te permiten desplegar aplicaciones web sin preocuparte por la infraestructura subyacente. 
  •  Bases de datos gestionadas: Puedes utilizar servicios como RDS para bases de datos relacionales o DynamoDB para bases de datos NoSQL sin tener que manejar la administración de la base de datos. 
  • Herramientas de desarrollo: AWS CodeCommit para control de versiones, CodeBuild para compilar aplicaciones, CodeDeploy para automatizar despliegues, y CodePipeline para flujos de trabajo de CI/CD. 
  • Servicios de almacenamiento: S3 para almacenamiento de objetos, ideal para archivos estáticos, backups, o datos para aplicaciones. 
  • Machine Learning y AI: Servicios como SageMaker para construir, entrenar y desplegar modelos de machine learning sin necesidad de gestionar la infraestructura. 
  • Seguridad: IAM para gestionar permisos y acceso, además de herramientas como WAF para proteger aplicaciones web. 
  • Análisis de datos: Redshift para grandes volúmenes de datos, Athena para SQL queries sobre datos en S3, y Kinesis para streaming de datos en tiempo real. 
  • APIs y Servicios sin servidor: Lambda te permite ejecutar código sin aprovisionar o gestionar servidores, perfecto para microservicios o eventos específicos. 
  • Redes y CDN: VPC para crear redes privadas virtuales y CloudFront para una red de entrega de contenido que acelera la distribución global de tu contenido. 
  • Monitoreo y logs: CloudWatch para monitoreo y logs de tus aplicaciones y recursos de AWS. 
  • Facilidad de integración: AWS está diseñado para trabajar bien con muchos lenguajes y frameworks de programación, facilitando la integración con tus herramientas y flujos de trabajo existentes.

AWS cuenta con una amplia documentación sobre sus servicios y herramientas. Por ejemplo, podrás encontrar una guía del SDK de AWS para diferentes lenguajes de programación como Java, C++, Python, Go, etc.

Desde como descargarlo, instalarlo e iniciar un proyecto.

AWS es una alternativa sobre otros servicios similares como GCP y Microsoft Azure, entreo otros más. Algunos dicen que lleva la delantera sobre éstos dos.

En GCP existe el servicio de almacenamiento de datos llamada Bigquery, en comparativa a AWS sería Redshift. En ambas se pueden crear Stored Procedures. Sin embargo, Redshift usa PostgreSQL para hacerlo, mientras que Bigquery tiene su propio SQL integrado.

Un ejemplo de SP en Redshift, usando PostgreSQL, sería:

CREATE OR REPLACE PROCEDURE holamundo()
LANGUAGE plpgsql
AS $$
BEGIN
    RAISE INFO 'Hola, mundo!';
END;
$$;

-- Para ejecutar este Stored Procedure, usarías:
CALL holamundo();

Actualmente existen tutoriales para aprender a usar los servicios y herramientas de AWS.

Continuaremos con este tema en próximas entregas.

Enlaces:

https://aws.amazon.com/
https://aws.github.io/
https://www.w3schools.com/aws/
https://awsnewbies.com/

domingo, 28 de julio de 2024

El mercado de la nube: Cloud Computing

 


La computación en la nube (cloud computing) es un modelo de entrega de servicios de tecnología de la información (TI) que permite acceder a recursos informáticos, como servidores, almacenamiento, bases de datos, redes, software y otros servicios, a través de internet. 

Estos recursos son gestionados por proveedores de servicios en la nube y se ofrecen a los usuarios bajo demanda, generalmente con un modelo de pago por uso.

Características de la Computación en la Nube:

  1. Acceso bajo demanda: Los usuarios pueden acceder a los recursos de computación y almacenamiento cuando los necesitan, sin necesidad de interacción humana con el proveedor del servicio.

  2. Acceso remoto: Los servicios en la nube están disponibles a través de internet, lo que permite acceder a ellos desde cualquier lugar y en cualquier momento.

  3. Escalabilidad: Los recursos en la nube pueden escalarse rápidamente hacia arriba o hacia abajo según las necesidades del usuario, proporcionando flexibilidad para adaptarse a las demandas cambiantes.

  4. Pago por uso: Los usuarios pagan solo por los recursos que utilizan, lo que puede ser más económico que mantener una infraestructura propia.

  5. Mantenimiento y administración: El proveedor del servicio en la nube se encarga del mantenimiento, actualizaciones y administración de los recursos, permitiendo a los usuarios centrarse en sus actividades principales.

Modelos de Servicio en la Computación en la Nube:

  1. Infraestructura como Servicio (IaaS): Proporciona recursos de infraestructura básicos, como máquinas virtuales, almacenamiento y redes. Ejemplos: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP).

  2. Plataforma como Servicio (PaaS): Proporciona una plataforma que permite a los desarrolladores construir, desplegar y gestionar aplicaciones sin preocuparse por la infraestructura subyacente. Ejemplos: Google App Engine, Microsoft Azure App Services, Heroku.

  3. Software como Servicio (SaaS): Proporciona aplicaciones completas que se ejecutan en la nube y están disponibles para los usuarios a través de internet. Ejemplos: Google Workspace, Microsoft Office 365, Salesforce.

Modelos de Implementación de la Computación en la Nube:

  1. Nube pública: Los servicios son ofrecidos al público en general por un proveedor de servicios en la nube. Los recursos se comparten entre múltiples usuarios o clientes. Ejemplos: AWS, Azure, GCP.

  2. Nube privada: Los servicios se utilizan exclusivamente por una sola organización. La infraestructura puede ser gestionada internamente o por un tercero, y puede estar ubicada dentro de las instalaciones de la organización o externamente.

  3. Nube híbrida: Combina nubes públicas y privadas, permitiendo que los datos y aplicaciones se compartan entre ellas. Este modelo proporciona más flexibilidad y optimiza la infraestructura y la seguridad.

  4. Nube comunitaria: La infraestructura es compartida por varias organizaciones con intereses comunes, como requisitos de seguridad o cumplimiento.

Ventajas de la Computación en la Nube:

  • Reducción de costos: No es necesario invertir en infraestructura física y se paga solo por los recursos utilizados.
  • Flexibilidad y escalabilidad: Permite ajustar rápidamente los recursos según las necesidades del negocio.
  • Acceso global: Permite acceder a los servicios desde cualquier lugar con conexión a internet.
  • Innovación: Facilita la implementación rápida de nuevas tecnologías y servicios.
  • Mantenimiento y seguridad: El proveedor de servicios en la nube se encarga de la seguridad y el mantenimiento, liberando a las organizaciones de estas tareas.

Desafíos de la Computación en la Nube:

  • Seguridad y privacidad: La transferencia y almacenamiento de datos en la nube puede plantear preocupaciones de seguridad.
  • Dependencia del proveedor: Las organizaciones dependen de la disponibilidad y fiabilidad del proveedor de servicios en la nube.
  • Cumplimiento normativo: Las organizaciones deben asegurarse de que los servicios en la nube cumplan con las regulaciones y normativas aplicables.

La computación en la nube ofrece una manera eficiente y flexible de acceder a recursos informáticos y gestionar datos, permitiendo a las organizaciones centrarse en sus competencias principales mientras aprovechan la infraestructura gestionada por proveedores especializados.

Algunos de los servicios más populares en cuanto a Cloud Computing son los siguientes:

Google Cloud

https://cloud.google.com/

Microsoft Azure

https://azure.microsoft.com/es-mx/free

Amazon Web Services

https://aws.amazon.com/es/free

Alibaba Cloud

https://us.alibabacloud.com/

Oracle Cloud

https://www.oracle.com/mx/cloud/

IBM Cloud

https://cloud.ibm.com/

VMWare Cloud

https://vmc.vmware.com/

Cloud Sigma

https://www.cloudsigma.com/


sábado, 20 de abril de 2024

Google Cloud Platform (GCP) en un vistazo

GCP es, básicamente, un conjunto de servicios de computación en la nube ofrecidos por Google. Similar a Microsoft Azure de la malévola empresa Microsoft (broma) y AWS(el actual líder en este tipo de servicios) de Amazon. GCP comparte un tercero o a veces un segundo lugar en la posición de empresas que ofrecen servicios de cómputo en la nube. Entre sus múltiples y variados servicios podemos encontrar:

  • Computación en la nube.
  • Almacenamiento de datos en la nube.
  • Redes en la nube.
  • BigData y Análisis de Datos.
  • I.A. y Machine Learning.
  • Seguridad y cumplimiento.

GCP permite a las empresas y desarrolladores crear, implementar y escalar aplicaciones y servicios en la infraestructura global de Google, lo que les permite aprovechar la infraestructura y la tecnología de Google para sus propios fines.

Algunos de los principales servicios de Google Cloud Platform (GCP):

  1. Compute Engine: Ofrece máquinas virtuales escalables y flexibles que permiten a los usuarios ejecutar aplicaciones en la infraestructura de Google.
  2. App Engine: Es un entorno de desarrollo y alojamiento de aplicaciones totalmente administrado que escala automáticamente según la demanda de tráfico.
  3. Google Kubernetes Engine (GKE): Proporciona una plataforma de contenedores administrada basada en Kubernetes para desplegar, gestionar y escalar aplicaciones en contenedores.
  4. Cloud Storage: Es un servicio de almacenamiento en la nube altamente escalable y duradero que permite almacenar, acceder y compartir datos de forma segura y eficiente.
  5. BigQuery: Es un servicio de análisis de datos completamente administrado que permite realizar consultas SQL sobre conjuntos de datos extremadamente grandes en tiempo real.
  6. Cloud AI: Ofrece una amplia gama de herramientas y servicios de inteligencia artificial y aprendizaje automático, como Vision AI, Language AI y Video AI, para desarrollar aplicaciones inteligentes.
  7. Cloud Firestore / Firebase: Una base de datos en tiempo real y plataforma de desarrollo de aplicaciones móviles que permite crear aplicaciones de alta calidad con una infraestructura de servidor completamente administrada.
  8. Cloud Pub/Sub: Es un servicio de mensajería escalable y duradero que permite la ingestión y entrega de eventos entre componentes de aplicaciones distribuidas en tiempo real.

Cada uno de estos servicios está diseñado para proporcionar funcionalidades específicas que abordan diferentes necesidades en la nube, desde almacenamiento y análisis de datos hasta desarrollo de aplicaciones y servicios de inteligencia artificial

Enlaces:

https://cloud.google.com/

lunes, 1 de enero de 2024

Cosas por aprender... cosas nuevas por aprender

 

Quien se dedique a la programación debería saber que SIEMPRE HAY ALGO NUEVO QUE APRENDER.  Quien ose de creer que lo sabe todo en un futuro estará obligado (quiera o no) a demostrar que así es. Lo que antes era moda hoy es casi "obsoleto" (VB .Net, PHP, Delphi, Informix, etc.). Cosas como Docker, Kubernetes, Terraform, gRPC y demás cosas son lo de hoy. Y llegará un futuro en el que vendrán otros a decir "Esto es lo de hoy, olvídate del pasado". 


El programador incipiente dirá cosas como: "¡No puede ser! ¡Apenas estoy aprendiendo a programar en Angular y ya salió su reemplazo!"

Y es que las cosas son así: Evolucionas o te estancas

"Pepepero, ¿Debo aprender todo lo que salga? ¿Debo convertirme en un Todologo?

Dirán tanto el programador incipiente y como experto. Y la respuesta más discordante y neurótica será: Si y no. Si, porque debes familiarizarte con lo actual. No, porque es imposible saber al 100% algo. Es bueno saber que existe X o Y cosa, y mejor si se puede especializarse en algo. Muy difícil sería saberlo todo (nadie lo sabe todo aunque así lo crea).

Y no todo es sobre programación

También debemos aprender a comunicarnos. Saber escribir, saber leer correctamente. Saber como comunicar nuestras ideas. Saber como resolver cosas antes de que éstas ocurran.

El modelado de sistemas, procesos, etc. también es muy útil. El programador debe saber modelar, esto para evaluar si la organización para la que trabajas está logrando sus objetivos y si está satisfaciendo las necesidades de sus clientes.

En está época donde las IAs están siendo cada vez más populares el programador o quien trabaja con grandes cantidades de información debe familiarizarse con ellas o comenzar a pensar a que se dedicara en un futuro, pues nada se detiene, todo avanza y cambia. El que no vaya a la misma velocidad quedará atrás de todos.



¿Y qué con otros idiomas?

En este post ya hablamos un poco de la importancia de los idiomas (entre otras cosas).  Saber más de un idioma es indispensable en el mundo de informática. Ya sea para leer y entender documentación o hablar con clientes o usuarios. Incluso para exponer proyectos, crear manuales, o resolver incidencias.

Saber un idioma extra al que ya hablas es una ventaja. Saber más de 3 idiomas te pone arriba de otros. Y si hablas más de 3 o 6 podrías trabajar en cualquier parte del mundo, sobre todo si entre éstos son Inglés, Alemán , Koreano o Mandarín.

Certificaciones

Una certificación no te hace experto en algo. Indica que sabes ciertas cosas, solo eso. La experiencia muchas veces es lo que te ayuda a resolver problemas, no un papel. 

Es bueno tener certificaciones si tu trabajo lo requiere. Si eres programador Backend una certificación en Consumo y creación de APIs es un plus para tu carrera. Y si eres más de administración, tener certificaciones en Gestión de proyectos te abrirá otras puertas.

Todos los días podemos aprender cosas nuevas o reforzar lo que ya sabemos (o creemos saber).

Solo basta abrir un poco los ojos y ver en qué podemos mejorar. 

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog