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

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/

sábado, 19 de octubre de 2024

Terraform o Infraestructura cómo código

 

Según la Wikipedia, la Infraestructura como Código (Infrastructure as Code, en Inglés) es: el proceso de gestión y aprovisionamiento de centros de datos informáticos a través de archivos de definición legibles por máquina, en lugar de configuración de hardware físico o herramientas de configuración interactiva.

Básicamente:

  • Es la capacidad de aprovisionar y respaldar su infraestructura de computación a través de código en lugar de procesos y configuraciones manuales.  
  • Permite definir el estado deseado de su infraestructura sin incluir todos los pasos para llegar a ese estado.
  • Automatiza la administración de la infraestructura para que los desarrolladores puedan centrarse en crear y mejorar las aplicaciones en lugar de administrar los entornos.

Enfoques diferentes de la infraestructura como código

Declarativa

La IaC declarativa permite al desarrollador describir los recursos y la configuración que componen el estado final de un sistema deseado.

A continuación, la solución de IaC crea este sistema a partir del código de infraestructura. Esto hace que la IaC declarativa sea fácil de usar, siempre que el desarrollador sepa qué componentes y configuraciones necesita para ejecutar su aplicación.

Imperativa

La IaC imperativa permite al desarrollador describir todos los pasos para configurar los recursos y llegar al sistema y al estado de ejecución deseados.

Si bien no es tan sencillo escribir la IaC imperativa como la IaC declarativa, el enfoque imperativo se hace necesario en las implementaciones de infraestructuras complejas. Esto es especialmente cierto cuando el orden de los eventos es crítico.

¿Qué es Terraform?

Terraform es una herramienta de Infraestructura como Código (IaC) que permite definir, provisionar y gestionar infraestructura en la nube o en entornos locales mediante archivos de configuración.

Estos archivos, escritos en un lenguaje declarativo llamado HashiCorp Configuration Language (HCL), describen los recursos y servicios que se quieren desplegar, como servidores, redes, bases de datos, entre otros.

Terraform es capaz de interactuar con múltiples proveedores de servicios en la nube (como AWS, Azure, Google Cloud) y otras plataformas, facilitando la creación y modificación de infraestructuras complejas de forma eficiente.

Se relaciona con IaC porque permite automatizar y versionar la infraestructura de la misma manera que se gestiona el código de software, asegurando que las configuraciones sean reproducibles, auditables y escalables.

Instalando Terraform

En Linux:

Abrimos una terminal y escribimos estos comandos:


# Actualizar paquetes
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common

# Añadir repositorio oficial de HashiCorp:

wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

# Instalar Terraform
sudo apt-get update && sudo apt-get install terraform

# Verificar instalación
terraform -v

Tendremos instalado Terraform en Linux.

En Mac OS:

Abrimos una terminal y escribimos estos comandos:


# Instala Terraform con Homebrew:
brew tap hashicorp/tap

brew install hashicorp/tap/terraform

terraform -v

Tendremos instalado Terraform en Mac OS.

En Windows:

Para esto es necesario contar con Chocolatey instalado en nuestras máquinas:

choco install terraform

Verificamos la instalación:

terraform -v

Tendremos Terraform instalado.

Ahora imaginemos que queremos crear una instancia de EC2 en AWS. Usaremos Terraform para lograrlo. La extensión del programa será *.tf

main.tf

# Especifica el proveedor de nube, en este caso AWS
provider "aws" {
  region = "us-east-1"  # Región donde se va a desplegar la infraestructura
}

# Definir una clave SSH para conectarse a la instancia
resource "aws_key_pair" "example" {
  key_name   = "example-key"
  public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3..."  # Llave pública SSH
}

# Crear una instancia de EC2 en AWS
resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"  # Identificador de la AMI (Amazon Machine Image)
  instance_type = "t2.micro"  # Tipo de la instancia

  # Configurar la clave SSH para la instancia
  key_name = aws_key_pair.example.key_name

  tags = {
    Name = "Terraform Example Instance"  # Etiqueta para identificar la instancia
  }
}

# Salida para ver la IP pública de la instancia creada
output "instance_public_ip" {
  value = aws_instance.example.public_ip
}

1. Inicializamos el proyecto:

$ terraform init

2. Previsualizar los cambios (plan):

$ terraform plan

3. Aplicar cambios:

$ terraform apply

4. Destruir la infraestructura (cuando ya no sea necesaria):

$ terraform destroy

Hemos dado una breve explicación de lo que es IaC y cómo se relaciona con Terraform.

Enlaces:

https://chocolatey.org/
https://www.terraform.io/

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

Microsoft Azure en un vistazo

Microsoft Azure es una plataforma de servicios en la nube ofrecida por Microsoft. Similar a Google Cloud Platform (GCP) y Amazon Web Services (AWS), Azure proporciona una amplia gama de servicios de computación en la nube, incluyendo almacenamiento, análisis, redes, bases de datos, inteligencia artificial, desarrollo de aplicaciones y más.

Algunos servicios que ofrece:

  1. Azure Virtual Machines: Ofrece máquinas virtuales escalables y flexibles para ejecutar aplicaciones en la nube, con soporte para una variedad de sistemas operativos.
  2. Azure Blob Storage: Proporciona almacenamiento de objetos seguro y altamente escalable para datos no estructurados, como archivos multimedia y documentos.
  3. Azure SQL Database: Es un servicio de base de datos relacional completamente administrado que ofrece escalabilidad, seguridad y alta disponibilidad para aplicaciones críticas.
  4. Azure App Service: Permite a los desarrolladores crear, implementar y escalar aplicaciones web y móviles de manera rápida y sencilla, sin preocuparse por la infraestructura subyacente.
  5. Azure Kubernetes Service (AKS): Proporciona una plataforma de contenedores administrada basada en Kubernetes para desplegar, gestionar y escalar aplicaciones en contenedores de manera eficiente.
  6. Azure Functions: Permite ejecutar código en la nube sin tener que preocuparse por la infraestructura subyacente, lo que facilita la creación de aplicaciones basadas en eventos y sin servidor.
  7. Azure Cognitive Services: Ofrece una variedad de servicios de inteligencia artificial preentrenados, como reconocimiento de imágenes, procesamiento de lenguaje natural y análisis de sentimientos, para agregar funcionalidades avanzadas a las aplicaciones.
  8. Azure DevOps: Proporciona herramientas para el desarrollo de software, incluyendo control de versiones, seguimiento de problemas, integración continua y entrega continua (CI/CD), para facilitar la colaboración en equipos de desarrollo.

En próximas entregas veremos más de este tema.

Enlaces:

https://azure.microsoft.com/

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/

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