Skip to content

jdnichollsc/Cloud-Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 

Repository files navigation

Cloud Management

Diplomado Cloud Management de TI Capacitación en 2013

NUBE

Es un término informático que se refiere a una infraestructura de cómputo donde se pueden interconectar distintos dispositivos utilizando distintos medios de comunicación.

Se pueden encontrar Servidores ejecutando aplicaciones y servicios como:

  • Servicios para hospedar páginas web.
  • Servicios para almacenar archivos.
  • Servicios para almacenar datos.
  • Servicios de colaboración, mensajería, etc.

Nube Privada (Recursos On-premise)

Es la implementación de los servicios de cómputo sobre la infraestructura interna de las empresas. Las aplicaciones se ejecutan en la intranet, los datos se almacenan sobre la infraestructura de la intranet. Las organizaciones pueden evitar los gastos que implica la adquisición de hardware y software mediante la creación de ambientes virtualizados. Proporcionan seguridad de los datos cumpliendo con políticas de la empresa de no exponer los datos.

Nube Pública (Recursos Off-premise)

Ubicada sobre la infraestructura del proveedor de servicios de cómputo. Menores costos y alta disponibilidad.

Nube Híbrida (Ambientes híbridos)

Las aplicaciones y los datos se ubican parcialmente en ambientes privados y públicos.

Cloud On-premise vs Off-premise

CÓMPUTO EN LA NUBE (CLOUD COMPUTING)

Computación basada en Internet, mediante la cual los recursos se proporcionan a las computadoras u otros dispositivos sobre demanda. Poder acceder a aplicaciones de software o datos mediante Internet (el explorador web). Pagamos por lo que consumimos.

Gastos de operación

Pagos por el consumo de los servicios a los proveedores. Son más flexibles, conforme aumentan las necesidades de los datos y aplicaciones se pueden obtener más servicios. Solo pagamos por lo que consumimos, escalamos bajo demanda.

Gastos por activos fijos

Un centro de datos propio implica gastos por la adquisición de activos fijos. Gastos de mantenimiento y actualización del centro de datos.

Recursos computacionales en el Tiempo

Los centros de datos son buenos cuando la demanda es alta, pero cuando baja es un desperdicio. El cómputo en la nube elimina gastos de mantenimiento y actualización, por lo tanto se ahorran costos, solo se paga por la renta de espacio de los datos y las aplicaciones.

Utility Computing

Utility Computing: Suministro de recursos computacionales. El cómputo en la nube mejora el acceso a las aplicaciones y los datos, mediante el explorador web.

Computación ubicua: Está presente en un mismo tiempo en todas partes.

Agilidad para empresas TI

Contrato de nivel de servicio - Service Level Agreement SLA

Es un contrato escrito entre un proveedor de servicio y su cliente con objeto de fijar el nivel acordado para la calidad de dicho servicio.

TIPOS DE SERVICIOS

  1. Ofrecen la Infraestructura de sus centros de Datos.
  2. Ofrecen la Infraestructura de sus centros de Datos y herramientas para que puedan realizar las aplicaciones (APIs, SDKs)
  3. Ofrecen aplicaciones listas para ser utilizadas y almacenamiento para los datos.

CATEGORÍAS

Ontología del Cómputo en la nube

Cloud Computing Ontology

  1. Infraestructura como Servicio IaaS Servicio normal de hospedaje de un centro de datos, los proveedores rentan tiempo de cómputo y espacio de almacenamiento.

IaaS

  1. Plataforma como Servicio PaaS Incluye los servicios de Infraestructura y otros adicionales. Proporciona la plataforma sobre la cual se pueden desarrollar aplicaciones para la nube. El desarrollador solo se enfoca en la creación del código para resolver las necesidades de la empresa CloudWare: Sistema operativo para cómputo en la nube.

PaaS

  1. Software como Servicio SaaS Permite que una aplicación este disponible en internet mediante una suscripción de pago por el servicio. Los usuarios no desarrollan aplicaciones, utilizan las aplicaciones en la nube. El proveedor se encarga de la infraestructura, el trabajo de instalación, configuración y mantenimiento de las aplicaciones.

SaaS

WINDOWS AZURE

Es la plataforma de cómputo en la nube de Microsoft, es una nube pública del tipo plataforma como Servicio Paas. Proporciona el Software y Hardware para hospedar datos y aplicaciones. Proporciona Máquinas virtuales. Las aplicaciones y los datos son replicados 3 veces y se paga por lo que se consume. Los centros de datos de Microsoft (Más de una docena, cada uno posee miles de servidores), aportan la infraestructura para las aplicaciones y los datos.

Centro de Datos Microsoft

Las máquinas virtuales de Hyper-V permiten ejecutar varios Sistemas Operativos de manera simultánea en el mismo servidor físico. Corren Windows Server 2008 Release 2.

Categorías de servicios en Windows Azure

MODELOS DE EJECUCIÓN

  1. SITIOS WEB (WEB SITES) -> IaaS

Se enfoca en la ejecución de la aplicación y sus datos. Proporcionan hospedaje web como una infraestructura como servicio. Todas corren en el IIS o en Windows Azure Web Sites(Ejecuta IIS y Windows Server en una máquina virtual).

  • Sitios Web Estáticos
  • Aplicaciones Web Populares: Drupal, Wordpress, etc Soporta una gran cantidad de aplicaciones populares, y para los que emplean MySQL existe ClientDB para Windows Azure.
  • Aplicaciones Web personalizadas: ASP.NET, PHP, Node.js Pueden existir copias de las aplicaciones para proporcionar un balance de las peticiones.

Frameworks Web Soportados

Métodos de publicación Soportados

  1. SERVICIOS EN LA NUBE (CLOUD SERVICES) -> PaaS

Podemos ejecutar aplicaciones y sus datos, podemos establecer reglas de firewall o redes virtuales. Proporciona servicios de cómputo en una plataforma como servicio, soportando aplicaciones escalables, confiables y económicas en su operación. Los desarrolladores no se tienen que preocupar de administrar la plataforma de sus aplicaciones.

Cloud Service = Código + Configuración

Componentes de un Cloud Service

  • Archivo de definición del servicio (.csdef) Define el modelo del servicio, incluyendo el número de roles.
  • Archivo de configuración del servicio (.cscfg) Proporciona valores de configuración para Cloud Service y para roles individuales, incluyendo el número de instancias de los roles.
  • Paquete del Servicio (.cspkg) Contiene el código de la aplicación y el archivo de definición del servicio.

Cloud Service Role

Compuesto por los archivos de la aplicación y los archivos de configuración.

  • Web Role para aplicaciones Front-End Una aplicación que va a interactuar con el Usuario. Proporciona un servidor web IIS dedicado para hospedar aplicaciones web.
  • Worker Role para aplicaciones Back-End Las aplicaciones pueden ejecutar tareas largas de forma asíncrona e independiente de la interacción con el usuario. Similares a los servicios Windows tradicionales.

Cloud Services

Se basa en máquinas virtuales, la tecnología ofrece 2 opciones. Un rol puede tener muchas instancias definidas en el archivo de configuración del servicio.

  • Instancias Web Role Máquina virtual sobre la cual el código de la aplicación junto con su configuración se esta ejecutando. Cada instancia ejecuta una variante de Windows Server con IIS.

  • Instancias Worker Role Se ejecutan en la misma variante de Windows Server sin IIS.

Al crear un Cloud Service se pueden definir varios roles para distribuir el procesamiento de una aplicación de N-Niveles o N-Capas permitiendo un escalamiento flexible de la misma. Cada una de las Máquinas Virtuales tiene su propia dirección IP dentro del Centro de Datos de Microsoft, esta se conoce como una dirección IP directa. Las peticiones se balancean a cada una de las máquinas virtuales, pero los usuarios acceden desde una dirección pública virtual VIP proporcionando tolerancia a fallos.

Cloud Services

CARACTERÍSTICAS DE CLOUD SERVICES

  • Permiten crear aplicaciones y APIs de alta disponibilidad (99,95%) y escalabilidad infinita
  • Permiten centrarse en la aplicación y olvidarse de la infraestructura
  • Proporcionan dos ambientes: Ensayo y Producción
  • Permiten desarrollar APIs en internet para una amplia gama de dispositivos
  • Ayudan a crear arquitecturas de nubes modernas
  1. MÁQUINAS VIRTUALES -> IaaS (Se paga por hora de Ejecución)

Tenemos la opción de seleccionar el Sistema Operativo, permite crear y utilizar máquinas virtuales en la nube. Es un servidor en la nube que puede ser controlado y administrado. Se pueden crear mediante el portal de administración de Windows Azure o mediante la API basada en Rest Windows Azure Service Management (Herramientas de Script en Windows, Linux y MAC). Para crear una máquina virtual se requiere seleccionar un disco duro virtual como imagen de la máquina virtual, estos son almacenados en el Blob de Windows Azure, una imagen es un disco duro virtual que se utiliza como plantilla para crear un nueva máquina virtual, es una plantilla porque no tiene una configuración especial (nombre de la computadora o la configuración de usuarios). Al crear una máquina virtual utilizando una imagen, un disco de SO es creado automáticamente para la nueva máquina virtual. Para crear una máquina virtual también se puede utilizar un disco duro virtual que pueda servir de arranque y montarse como una versión de SO. Un disco es una versión de una imagen que puede ser ejecutado, después de que una imagen es provisionada esta se convierte en un Disco.

Para poder seleccionar un disco duro virtual tenemos 2 opciones:

  • Crear y subir hacia Windows Azure un archivo VHD que contiene la imagen
  • Utilizar algún disco duro virtual proporcionado por Microsoft por medio de la galería de máquinas virtuales

Los discos duros de la galería incluyen Windows Server 2008 Release 2, Windows Server 2008 Release 2 con SQL Server y Windows Server 2012. La galería también contiene imágenes Linux(Suse, Ubuntu). Estos discos se viven actualizando, mas sin embargo al montar una máquina virtual nosotros somos los responsables de las actualizaciones de la misma

Windows Azure Virtual Machines

Tamaños de máquinas virtuales

Tolerancia a fallas

La plataforma inicia inmediatamente la misma máquina virtual en otro servidor si el actual falla. Los discos duros son replicados en uno o varios centros de datos.

Para crear una máquina virtual tenemos 2 opciones:

  • Standalone VMs Una máquina virtual que se ejecuta de forma independiente. Cada máquina virtual tiene su propia dirección IP pública.
  • VMs en un Cloud Service Se ejecutará junto con otras máquinas virtuales. Recomendable para una aplicación de múltiples Niveles (Interfaz Web, Negocio, Base de Datos). Comparten la misma dirección IP pública. Beneficio del Balance de carga de trabajo proporcionado por Windows Azure, permitiendo que las peticiones de los Usuarios sean atendidas por todas las máquinas virtuales en el grupo.

Agrupamiento de Máquinas Virtuales: Cloud Services

Las Máquinas virtuales en el grupo pueden comunicarse entre ellas sobre la red local del Centro de datos de Windows Azure, de igual forma las MVs en el mismo Cloud Service pueden ser agrupadas en uno o más conjuntos de disponibilidad. Al agrupar las MVs en un conjunto o grupo de disponibilidad Windows Azure distribuye las máquinas virtuales a través del Centro de Datos para que estas no sean ubicadas en el mismo Servidor o incluso en el mismo Rack de Servidores (en el mismo dominio de fallo), por lo cual si alguno de los Servidores o Rack de Servidores en el Centro de Datos llega a fallar no se vería afectado el funcionamiento del Cloud Service al estar disponible en las otras máquinas virtuales en los otros Servidores físicos (Otro dominio de fallo).

Escenario de Uso

  • Máquinas Virtuales para desarrollo y pruebas Los desarrolladores pueden hacer uso de Máquinas Virtuales con configuraciones específicas para crear aplicaciones de manera sencilla y económica, utilizarlas y eliminarlas cuando ya no sean requeridas.
  • Ejecución de aplicaciones en la nube Ejecutar aplicaciones en la nube cuando exista alta demanda de ellas es un ahorro económico. Como estan en la Nube se pueden crear cuando se necesiten y eliminarlas cuando ya no son requeridas.
  • Extensión del Centro de Datos propio hacia la nube Con Windows Azure podemos crear redes virtuales para hacer que las máquinas virtuales en la Nube aparezcan como parte de nuestra propia red corporativa, esto permite que aplicaciones como SharePoint puedan ser utilizadas en nuestra empresa de una manera sencilla y económica sin tener que realizar grandes inversiones en nuestro Centro de Datos
  • Recuperación de Desastres Si nuestro Centro de Datos deja de funcionar por algún desastre podemos crear máquinas virtuales en la Nube para ejecutar aplicaciones esenciales y detenerlas cuando nuestro Centro de Datos vuelva a funcionar.

Ejecutando una aplicación con SQL Server

Ejecutando una Granja de Sharepoint

Ejecutando una Granja de Sharepoint

SharePoint requiere Active Directory, la Organización crea controladores de dominio en la Nube utilizando Imágenes de Windows Server de la Galería o también se puede realizar On-Premise, pero debido a que SharePoint interactúa frecuentemente con el Active Directory es recomendable tener controladores de dominio en la Nube para un buen rendimiento.

Opciones de Almacenamiento

  1. SQL DATABASE

Es una tecnología que nos permite administrar datos relacionales en una Plataforma como Servicio (Paas), proporciona un Sistema de Administración de Base de Datos Relacional DBMS para Windows Azure y esta basado sobre la tecnología SQL Server. Con una instancia SQL Database fácilmente se puede provisionar y desplegar soluciones de Bases de Datos Relacionales en la Nube y tomar ventaja de un Centro de Datos distribuido de Alta Disponibilidad, Escalabilidad, Seguridad y Confiabilidad. No proporciona a cada cliente su propia instancia física de SQL Server, proporciona un servicio de múltiples inquilinos con un Servidor Lógico de Base de Datos SQL para cada cliente, por lo tanto todos los clientes comparten las capacidades de cómputo y almacenamiento que el servicio proporciona. Todos los datos son almacenados en 3 distintos Servidores del Centro de Datos, proporcionando una alta disponibilidad.

SQL DATABASE

SQL Data Sync permite replicar datos entre distintos centros de datos de Windows Azure o entre centros de datos Microsoft Azure y servidores SQL Server on-premises.

SQL Data Sync

Reportes en las Aplicaciones Windows Azure

SQL Reporting

Agregando cuentas de inicio de sesión y de usuario

Add loginuser

Copias de Base de Datos SQL Database

create database newname 
as copy of actualname 

Los cambios que se hagan en nuestra base de datos durante el proceso de copiado se realizan también a la nueva base de datos.

Para Bajar de Windows Azure SQL Database a SQL Server - Copia de Seguridad

  1. Click en Exportar.

  2. Dejar que se cree cuenta de almacenamiento de Blob.

  3. No habilitar replicación geográfica.

  4. En SQL Server, Databases, Click derecho, Import Data-Tier Application.

  5. Obtenemos los Datos de conexión en Administrar Claves del almacenamiento.

  6. Eliminar Blob para no incurrir en costos de consumo.

  7. LOCAL STORAGE Proporciona un área temporal de almacenamiento para una instancia de una aplicación, ejecutándose como un Cloud Service. El área de almacenamiento temporal es un directorio de sistema de archivos de la instancia de la aplicación y sólo es accesible por esa instancia, cuando la instancia reinicia los datos de Local Storage pueden perderse.

  8. WINDOWS AZURE STORAGE Cada una puede contener hasta 100 Terabytes de datos y por defecto se tiene hasta un límite de 5 cuentas de almacenamiento por suscripción (Se pueden pedir más). Es el más alto nivel de espacios de nombres. Proporciona almacenamiento perdurable a través de 3 principios principales:

  • BLOB STORAGE

Proporciona un almacenamiento económico para almacenar grandes cantidades de información binaria, tales como archivos de vídeo, audio e imágenes.

Blob Storage

Componentes del Blob Storage

Block Blob

Page Blob

  • TABLE STORAGE

Ofrece funcionalidad NoSQL a un bajo costo para aplicaciones sin requisitos de acceso a datos de una gran complejidad.

Table Storage

Table Storage Partitions

Bases de datos no relacionales

Tablas

Entidades

Propiedades

Particiones

Una partición es capaz de atender 500 transacciones por segundo. Una Tabla con un buen particionamiento puede procesar miles de peticiones por segundo.

Propiedades de una partición

  • QUEUE STORAGE

Queue Storage

Para los 3 servicios es necesario crear una cuenta de Almacenamiento Storage Account. Los Datos pueden ser accedidos mediante APIs de código administrado o REST.

Grupo de afinidad: es un agrupamiento geográfico para despliegue de Cloud Services y Cuentas de Almacenamiento en Windows Azure. Al estar nuestros Servicios dentro del mismo Centro de Datos se evitan costos de ancho de banda porque no generan tráfico entre distintos Centros de Datos. Puede mejorar el rendimiento del servicio al ubicar las cargas de trabajo de los Servidores en el mismo Centro de Datos o cerca de los clientes que lo requieran.

Windows Azure proporciona redundancia local de almacenamiento, Locally Redundant Storage o LRS la cual permite alta durabilidad y disponibilidad de almacenamiento dentro de una simple ubicación. En la redundancia local los datos son replicados 3 veces dentro del mismo centro de Datos, en Windows Azure todo el almacenamiento es localmente redundante. Para adicionar durabilidad podemos activar la replicación geográfica Geo Redundant Storage o GRS la cual proporciona protección de los datos al replicarlos en una ubicación secundaria de la misma región, esto permite una tolerancia a fallos en caso de que la aplicación primaria tenga algún problema. GRS es implementada mediante una característica llamada Geo-Replication.

Windows Azure Service Bus

Uso de Service Bus

Estilos de Comunicación

Windows Azure Service Bus

Service Bus Development

CACHING

Permite que podamos acercar a los usuarios la información que necesiten proporcionándoles una gran experiencia de respuesta en cualquier parte del mundo. Los servicios de almacenamiento en caché de Windows Azure permiten construir aplicaciones altamente responsivas y escalables mediante el acercamiento de los datos a los usuarios que lo necesitan. Windows Azure también proporciona caché en memoria que permite almacenar los datos de la aplicación en memoria para mejorar el rendimiento, el tiempo de respuesta y la escalabilidad.

Windows Azure Caching

Topologías de Despliegue

Características de Windows Azure Caching

Ventajas de Windows Azure Caching

Ventajas de Windows Azure Caching

Opciones configurables de caché

CDN

CDN

Nodos CDN

Beneficios del uso de CDN

ARQUITECTURAS DE ALTA RESISTENCIA Y ESCALABILIDAD PARA LA NUBE

Objetivos

El diseño de servicios a gran escala de alta resistencia y escalabilidad requiere elegir cuidadosamente su diseño y arquitectura.

PROBLEMAS Y DESAFÍOS

Teorema de CAP (Brewer)

Establece que es imposible para un Sistema de Cómputo distribuido garantizar simultáneamente 3 áreas:

  • La consistencia
  • La disponibilidad
  • La tolerancia a fallos Según el teorema un sistema puede tener no más de 2 de estas características simultáneamente. Lo mismo ocurre con aplicaciones en la nube, pero los pilares son:

Escalabilidad, Conocimiento y Disponibilidad

Objetivos Principales

Diseño de aplicaciones

Diseño con servicios especializados

Time to market y agilismo

Carga de trabajo

DISEÑANDO PARA FALLOS

Descomposición de una E-Commerce

Descomposición por carga de trabajo

Alta disponibilidad

Los 9s

Calculando el ANS (SLA)

SLA para servicios externos

Define tus propios acuerdos de nivel de servicio

Diseño para fallos

Alcance de los Fallos

Manejo de errores temporales y Fallos duraderos

Retry Policy

Web Request Latency

Muestra de normas de reintentos

Patrón: El Disyuntor

Patrón Disyuntor

Circuit Breaker

Circuit Breaker Fallbacks

Redundancia en el despliegue

Failure Points

Failure Modes

Ejemplos de Modos de Falla

DISEÑANDO PARA OPERACIONES

Tener una visibilidad de los sistemas que se están ejecutando, esto mediante la telemetría. Como los Servicios Web, es importante tener monitoreo

Capturando la información sobre el servicio

Capturando la información con C#

Opciones de telemetría

DISEÑANDO PARA ENTENDER LA APP

Diseñando para entender la aplicación

Definir ALM

Actualizando la configuración

Actualizando los servicios

Health model

Flujo de trabajo para la solución de problemas

Arquitectura a prueba de fallos

DISEÑANDO PARA ESCALAR

Escalabilidad

Unidades de Escalabilidad

Workloads

Partición de Datos

Las 3Vs

Capacidad de consulta

Partición horizontal

Partición vertical

Partición hibrida

Windows Azure Caching

CDN

Azure Cache

CONECTIVIDAD

Extender una red local para incluir servicios hospedados en Windows Azure y servidores locales a través de las redes virtuales de Windows Azure. Windows Azure Traffic Manager se emplea para administrar y equilibrar la cantidad de tráfico entrante.

  1. Red Virtual:

Windows Azure Virtual Network proporciona enlaces seguros con una infraestructura local. Los administradores de infraestructura pueden extender redes locales hacia la nube con control sobre la topología de red incluyendo configuración de DNS y rangos de direcciones IP para las máquinas virtuales.

Windows Azure Virtual Network

Principales usos

Características soportadas por Virtual Network

Beneficios

  1. Windows Azure Traffic Manager

Traffic Manager es una solución para balance de carga de trabajo que permite la distribución de tráfico entrante de diferentes Cloud Services en una Suscripción de Windows Azure independientemente de su ubicación física.

Windows Azure Traffic Manager

Métodos de balance de carga

Usos de Traffic Manager

Recursos de Traffic Manager

SQL Server Reporting Services

SQL Azure Reporting

SSRS vs SQL Azure Reporting

Escenarios para usar SQL Azure Reporting

Arquitectura

Modelo de Seguridad

IDENTITY

La administración de acceso e identidad es una tarea importante tanto para administradores de sistema como desarrolladores de aplicaciones. Active Directory permite a los administradores utilizar el conjunto de servicios de Identidad incluyendo el proceso de inicio de sesión, autenticación y federación. Permite también realizar consultas sobre los objetos del directorio tales como usuarios y grupos, así como integrar Windows Azure Active Directory con Windows Server Active Directory ejecutándose On-Premise. Active Directory permite a los desarrolladores implementar un inicio de sesión único para las aplicaciones empresariales y del tipo Software como Servicio.

Windows Azure Active Directory

Windows Azure AD Graph es un innovador gráfico social de empresa que proporciona una sencilla interfaz basada en Rest para obtener acceso a objetos tales como usuarios, grupos y roles con una vista de explorador que permite encontrar fácilmente la información y las relaciones, así como realizar operaciones CRUD. En el mundo On-premise accedemos mediante programación al Windows Server Active Directory utilizando Active Directory Service Interfaces o Bibliotecas ADO .NET, en la nube accedemos con programación al Windows Azure Active Directory utilizando Windows Azure Active Directory Graph.

Principales usos

Windows Azure Active Directory Access Control permite a los usuarios iniciar sesión con diferentes proveedores de identidad. Facebook, Google, Microsoft, etc.

Recursos Active Directory