Cómo sonar como un experto en la nube
Publicado: 2022-03-10Su código está escrito y el diseño se ve muy bien. El nuevo proyecto está casi listo cuando el cliente pregunta: "¿Debería ejecutarse en la nube?"
Comienzas a sudar frío. La pregunta es masiva. Regiones y zonas , alta disponibilidad , equilibrio de carga : la nube tiene su propio idioma.
No te preocupes; tienes esto Este artículo le enseñará cómo tomar decisiones inteligentes sobre la nube y responderá las preguntas sobre la nube de su cliente.
Cuatro grandes preguntas
Antes de que usted y su cliente puedan saber qué tipo de nube desean, deben discutir cuatro preguntas:
- ¿Qué tan complejo es el software que necesita ejecutar?
- ¿Cuánto necesita para escalar?
- ¿Qué tan importante es que nunca se caiga?
- ¿Qué tan rápido debe ejecutarse para los usuarios de todo el mundo?
Este artículo le brinda los antecedentes y la información que necesita para responder estas preguntas y parecer un experto en la nube.
Vamos a empezar.
- ¿Qué es una nube?
- Por qué su cliente se preocupa por la nube
- ¿En qué se diferencia una nube de un servicio de alojamiento?
- Por qué las máquinas virtuales son tan importantes
- Hablemos un poco sobre redes
- Los diferentes tipos de nubes
- Las piezas básicas de una nube
- Preguntas que es probable que hagan sus clientes
¿Qué es una nube?
Cuando hablamos de computación en la nube , en realidad nos referimos a la capacidad de alquilar una parte de una computadora de otra persona. Eso es todo al respecto.
Empresas como Amazon y Google tienen muchas computadoras y están dispuestas a alquilarte partes de ellas. Alquilar computadoras de ellos es rentable porque no tiene que construir sus propios centros de datos o contratar a su propio personal de expertos para operarlos.
Cuando alquila una parte de una computadora, necesita que se vea como una computadora completa para que pueda ejecutar cualquier software que desee. Es por eso que los proveedores le brindan una máquina virtual (VM), un software que hace que parezca que lo está ejecutando en su propia computadora separada.
Por qué su cliente se preocupa por la nube
Antes de aprender más sobre la nube, es importante comprender por qué le importa a su cliente. No descartemos el encanto de las palabras de moda; la nube está muy de moda ahora mismo. Es posible que su cliente solo pregunte porque todos los chicos geniales lo hacen, pero hay razones por las que los chicos geniales lo hacen.
Empecemos con lo básico. Alojar su propio centro de datos sería un dolor de cabeza. Tendrías que preocuparte por el consumo de energía, mantener tu hardware actualizado, contratar un equipo de expertos para ejecutarlo y mil problemas más que nada tienen que ver con tu negocio. ¿Qué pasaría si se fuera la luz, si hubiera una inundación o si el techo se derrumbara? Todas estas son razones para no alojar su sitio web en un servidor que se ejecuta en su sala de estar.
No solo puede pasar todos los dolores de cabeza a otra persona, sino que hacer que ellos manejen el centro de datos le brinda tres grandes ventajas:
- Las nubes son globales .
Existen en centros de datos de todo el mundo, incluido uno cerca de su cliente. Eso significa velocidad . No desea que los clientes en China esperen que se carguen los datos desde los Estados Unidos. Cuando voy a Google.com, obtengo un centro de datos diferente en Boston que en Chicago o Los Ángeles, y eso es solo en los EE. UU. Eso es una gran parte de lo que hace posible la velocidad de Google. - Las nubes crecen y se encogen .
Si compro un servidor, tengo un servidor; incluso si mi aplicación no necesita toda la computadora, igual debo pagar por ese servidor. Cuando mi aplicación se vuelve muy popular, necesito comprar más servidores rápidamente. La nube no funciona así. Alquilar acciones de servidores significa que puedo cambiar la cantidad que estoy alquilando: puedo ampliar el pedido cuando estoy ocupado y reducirlo cuando no necesito tanto. - Las nubes nunca bajan .
Nunca digas nunca… pero casi nunca. Los proveedores de la nube hablan de "cinco nueves", lo que significa estar activo el 99,999 % del tiempo (con solo 5,26 minutos de tiempo de inactividad al año). Puede reducirlo aún más con servicios como equilibrio de carga y conmutación por error.
Esas son todas las razones por las que las nubes pueden ser geniales, pero puede obtener algunas de ellas desde un simple servicio de alojamiento. Si su cliente está preguntando acerca de la nube, necesita saber la diferencia.
¿En qué se diferencia una nube de un servicio de alojamiento?
Tengo un sitio web personal en un servicio de alojamiento llamado Media Temple. Mi sitio ejecuta WordPress, por lo que necesita algunas cosas:
- Un directorio para poner mis archivos
- Un servidor HTTP
- una base de datos
- PHP
Mi directorio se ejecuta en Linux, mi servidor HTTP es Apache, mi base de datos es MySQL y todo se ejecuta en PHP; por eso lo llaman pila LAMP (Linux-Apache-MySQL-PHP). Eso puede sonar como muchas piezas, pero son limitadas. Por ejemplo, no puedo instalar software nuevo. Si quiero ejecutar mi base de datos en PostgreSQL, no tengo suerte. No puedo ejecutar otros lenguajes como Python o Go; No puedo escribir mis propios programas separados. Solo obtengo un conjunto muy limitado y preconfigurado de cosas que puedo hacer.
Mi sitio web también solo se ejecuta en un servidor en un solo lugar. ¿Dónde está ese servidor? No tengo ni idea. Creo que está en algún lugar de los Estados Unidos, pero aparte de eso, no lo sé, y realmente no me importa. El proveedor de alojamiento me da un solo servidor, escribo una URL y aparece mi sitio (la mayoría de las veces).
Los proveedores de alojamiento lo mantienen simple. Algunos de ellos alojan otras pilas y algunos permiten un poco más de configuración, pero siempre es un paquete fijo.
La diferencia fundamental entre un servicio de alojamiento y una nube es la máquina virtual. Un servicio de alojamiento solo me da parte de un sistema operativo existente. Una máquina virtual me da un sistema operativo completo para mí solo.
Por qué las máquinas virtuales son tan importantes
Una máquina virtual actúa como una máquina real. Puede ejecutar Linux o Windows y puede hacer cualquier cosa que pueda hacer una computadora normal. Apple no le permite ejecutar OS X en una máquina virtual (aunque algunas personas lo han hecho funcionar, creando un "Hackintosh").
Cuando tienes una máquina virtual tienes el control total. Puede ejecutar lo que quiera allí: bases de datos, servidores de correo electrónico, encriptación, incluso búsquedas de extraterrestres. La máquina virtual te permite hacer lo que quieras.
Tener un sistema operativo completo para usted solo es realmente poderoso, pero antes de que pueda hacer algo útil, debe acceder a la máquina virtual.
Hablemos un poco sobre redes
Las máquinas virtuales son inútiles si no puede acceder a ellas. Necesita redes, aunque las redes pueden volverse un poco complejas.
Pero estos conceptos básicos le darán lo que necesita para comenzar. Comencemos con un ejemplo con el que estarás familiarizado. Probablemente esté funcionando en tu casa ahora mismo.
Tengo Comcast en casa. Comcast me da un módem por cable con una dirección IP como 10.0.0.89
. Si bien solo me da una IP, tengo dos computadoras portátiles, un iPad y un teléfono; mi esposa y mi hija tienen aún más dispositivos. Para que eso funcione, tengo un enrutador inalámbrico que se conecta a mi cable módem. Mi enrutador inalámbrico le da a cada dispositivo que tengo una dirección IP como 192.168.0.100
, 192.168.0.101
, etc., pero esas direcciones son privadas para mi red.
El término técnico para esas direcciones privadas es no enrutable . Hay algunas direcciones que están configuradas para uso privado; la mayoría comienza con 10.
o 192.168
, como una señal para los enrutadores de Internet de que estas direcciones no están permitidas en la naturaleza. Estoy usando estas direcciones especiales porque son reutilizables.
Cada dirección IP debe ser única en una red determinada; de lo contrario, el enrutador no sabría a qué computadora quería conectarme. Hay 4.294.967.296 direcciones IP posibles. Aunque los diseñadores de redes pensaron que eso era mucho cuando todo esto comenzó en la década de 1970, ahora se nos está acabando. Hay algunos otros protocolos, como IPv6, que pueden resolver este problema en el futuro, pero hoy solucionamos este problema con la traducción de direcciones de red (NAT). Dejame mostrarte como funciona.
Los dispositivos de mi casa tienen direcciones que son únicas en mi casa, pero no en todo el mundo. Cuando quiero salir a Internet, necesito que el enrutador inalámbrico me los traduzca. Cada vez que hago clic en un enlace, mi computadora portátil se comunica con mi enrutador inalámbrico para realizar la solicitud por mí; a su vez, el enrutador inalámbrico habla con el mundo en mi nombre, pero usando su propia dirección. Luego, mi módem por cable hace lo mismo cuando se comunica con Comcast, y Comcast vuelve a hacer lo mismo en una escala mucho mayor cuando envía mi solicitud a Internet en general. Cada enrutador está traduciendo la dirección IP del anterior. Todo esto significa que muchas computadoras pueden reutilizar una dirección IP como 192.168.0.101
y todo funciona sin conflictos.
Entonces, ¿cuál es mi dirección IP real en Internet real? En este momento, mi dirección IP real es 66.30.118.150
y mi dirección IP privada es 192.168.0.103
.
¿De dónde viene la dirección 66.30.118.150
? Es una dirección IP propiedad de Comcast. Queda claro que estoy en Cambridge, Massachusetts, en el noreste de los Estados Unidos. No necesito los detalles; todo lo que necesito saber es que es una dirección pública real que Comcast administra para mí. Comcast probablemente usa la misma dirección para cientos o miles de otras personas.
Toda esta traducción de direcciones hace otra cosa muy importante. Me da un único punto de acceso que controla todo lo que entra en mi red doméstica. Nadie externo puede acceder a 192.168.0.103
; para ellos, es una dirección diferente. Obtengo mucha seguridad al controlar qué tráfico puede entrar y salir. Mi enrutador inalámbrico es un punto de acceso donde puedo controlar lo que sucede.
La mayoría de las nubes funcionan como mi red doméstica. Las computadoras son virtuales, las redes se llaman subredes y el enrutador inalámbrico se llama puerta de enlace, pero todo es lo mismo. Tienen máquinas virtuales con direcciones privadas y puertas de enlace que las traducen a direcciones públicas. También tienen un espacio de direcciones que pueden usar como mi enrutador inalámbrico en casa. Me gusta esto:
Puede sonar complicado, pero no es demasiado difícil. Una nube es una forma de alquilar computadoras de otra persona y configurarlas para que se parezcan a mi red doméstica.
Las cosas más importantes a recordar son:
- Las IP privadas solo están disponibles en su red privada;
- Las direcciones IP públicas están disponibles en Internet;
- NAT permite que las direcciones IP privadas parezcan direcciones IP públicas.
Eso no es todo lo que sucede con las redes en la nube, pero es más que suficiente para ponerse en marcha y acceder a su nube. Ahora debe decidir qué tipo de nube desea.
Los diferentes tipos de nubes
Nube es un término amorfo: la gente lo usa para referirse a muchas cosas diferentes. En realidad, hay tres categorías diferentes de nubes.
Nubes de infraestructura
La máquina virtual y la red son los componentes básicos de una nube de infraestructura , también conocida como infraestructura como servicio ( IaaS ). Proporcionan la infraestructura virtualizada, sobre la cual tiene control total. Usted decide el sistema operativo y todo lo demás que se ejecuta sobre él.
Obtiene flexibilidad y control, pero es responsable de administrar y respaldar todo lo que instala.
Las nubes de infraestructura son estáticas o elásticas . Una nube estática funciona como mi red doméstica: tengo un conjunto de máquinas virtuales que ejecutan todo lo que necesito. Viven en una red privada, con una puerta de enlace pública que les otorga acceso a Internet. Las nubes estáticas son excelentes para procesar datos, tener algo de potencia informática adicional o alojar un sitio más complejo de lo que puede manejar un proveedor de alojamiento. También puede replicar su nube estática en otros centros de datos de todo el mundo.
Las nubes elásticas funcionan como nubes estáticas, pero son dinámicas. En lugar de un conjunto fijo de servidores virtuales, tiene un conjunto que puede crecer o reducirse según sus necesidades. Su nube se expande cuando tiene una gran demanda de su sitio o servicio y se reduce a su tamaño normal cuando no la tiene. Toda la expansión y contracción le ahorra dinero. Usted devuelve el poder de cómputo que no necesita cuando no lo necesita.
Netflix usa IaaS. Amazon Web Services proporciona la infraestructura y Netflix implementa todo su sistema en la parte superior; escribió su propio software para brindar soporte altamente personalizado para la transmisión de contenido de alta definición. The Weather Company es otro ejemplo: se ejecuta sobre IBM Cloud.
Nubes de plataforma
Una nube de plataforma , también conocida como plataforma como servicio ( PaaS ), es una nube especializada que proporciona componentes básicos de software para su aplicación, mientras que el proveedor de la nube administra la infraestructura y la pila de software por usted.
Por ejemplo, si necesita una aplicación web, PaaS podría proporcionarle Vanilla WordPress o Drupal para su uso. Si necesita una base de datos, puede elegir MySQL o PostgreSQL. Si necesita herramientas de desarrollo, puede elegir entre Node, Java o PHP. No necesita preocuparse por qué sistema operativo se está ejecutando o si se debe aplicar un parche de seguridad de MySQL; el proveedor de la nube se encarga de eso por usted.
Heroku es una nube PaaS. Proporciona el software debajo, y usted simplemente escribe lo que quiere encima de eso. Le brinda cierta flexibilidad, pero hace mucha más administración que una nube de IaaS.
Nubes de software
Una nube de software , también conocida como software como servicio ( SaaS ), es un tipo de nube muy especializado que le brinda un servicio en línea bien definido. Los proveedores de alojamiento son un tipo especial de nube SaaS bajo las sábanas; funcionan de una manera muy limitada.
Wix es otro ejemplo de SaaS. Le brinda un servicio completo de alojamiento de aplicaciones web con un excelente editor, soporte para inicio de sesión y pago de usuarios, y una amplia variedad de plantillas para elegir. Wix se enfoca en un solo trabajo. Tiene una funcionalidad muy limitada, pero también es más fácil de usar.
Las piezas básicas de una nube
Hemos hablado sobre los diferentes tipos de nubes y por qué las necesita. Antes de que realmente pueda sonar como un experto en la nube, debe conocer los diferentes componentes que componen una nube.
Maquinas virtuales
Una máquina virtual es un software que se ejecuta como hardware, actuando como una máquina real sin necesidad de un servidor separado en ninguna parte. Puede hacer lo que quiera con la VM, y pasará la prueba del pato: camina y grazna como un servidor real. Su software nunca notará la diferencia.
Esta flexibilidad tiene un precio. Usted es responsable del mantenimiento de su máquina virtual. El proveedor de la nube se asegurará de que el hardware esté en las mejores condiciones, pero tendrá que seleccionar su sistema operativo y todo lo demás que se ejecuta sobre él: parches de seguridad, actualizaciones de software, configuración. Todo depende de ti.
Y si no está en una nube elástica, será mejor que recuerde liberar cualquier máquina virtual que ya no necesite. El proveedor le cobrará si la máquina virtual funciona o no.
Subredes
Ya cubrimos las redes en la nube. Las subredes son redes que se ejecutan en la nube.
IP privadas e IP públicas
La red en la nube asignará una dirección IP no enrutable a las máquinas virtuales en la subred. Esas se conocen como direcciones IP privadas porque son privadas para mi red. Cuando una máquina virtual envía solicitudes a Internet, la puerta de enlace pública traducirá esas solicitudes. Los proveedores de la nube lo llaman tráfico de salida .
Así como no puedo acceder a la impresora de mi casa desde una cafetería, en la nube necesito una IP pública para acceder a una máquina virtual.
Las direcciones IP públicas se pueden asignar a máquinas virtuales para permitir el tráfico de entrada (tráfico proveniente de Internet enrutado a máquinas virtuales). Eso es importante porque los proveedores de la nube le cobrarán de manera diferente por el tráfico de entrada y salida.
Claves SSH
Una clave SSH es una pieza de información privada que le permite acceder a su nube. Está compuesto por dos archivos. Hay una clave pública que se ve así:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5b8xmtjUd1taP4svy9FM/WZc/n5gkqKVkhIsqW27hw2WuhfTVNLA6IBBOs9+br+HlqGYwgYB3DSh0Zm/3Bok1uQhinH77FmKsrPGDpvtJv16weIvGiTMVp+Mct8DVKl48KZxvQKa0Hp6MxEc7cQ9WPvzWn9BPLHERSkSNwXSUobqpFBgIPy9UBWr5DsI2Li5HeMgMgTcbuVVdO/8I/rhKoIyTqkhY4CZcyssmWhMvPmk6+9IcOr0O4SyW9TL+CZgDH1mW2dUypT+1j6HgFjr9H8NfJ4EKnWnFkQXo8HZ4oh6lSTaIfDQfnbrjVUO14N7FW9ZgXbL9cJVx5FLw3ny9 [email protected]
Y hay una clave privada que se ve así:
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAuW/MZrY1HdbWj+LL8vRTP1mXP5+YJKilZISLKltu4cNlroX0 1TSwOiAQTrPfm6/h5ahmMIGAdw0odGZv9waJNbkIYpx++xZirKzxg6b7Sb9esHiL xokzFafjHLfA1SpePCmcb0CmtB6ejMRHO3EPVj781p/QTyxxEUpEjcF0lKG6qRQY CD8vVAVq+Q7CNi4uR3jIDIE3G7lVXTv/CP64SqCMk6pIWOAmXMrLJloTLz5pOvvS HDq9DuEslvUy/gmYAx9ZltnVMqU/tY+h4BY6/R/DXyeBCp1pxZEF6PB2eKIepUk2 iHw0H52641VDteDexVvWYF2y/XCVceRS8N58vQIDAQABAoIBAHU7UKW+m2X55Dui zf0SqW5rXUtDwhOq6qTZhoGIvFjOBwKGfXosjRyyGJ0o6jyqvM1L4Q7ZUDXzg5fT CwXIhAYKrFprRXvHcypnS2hHsKW27k3yZ6tkIX+XW+VT5fzdhCXUyKks3jcRBHtJ ux7BI0kLGR02e6MSHYkowp47p1Auukx1saRkFTwvy+znABgqVETvtHBxAiElXndL JfQntaQacgWWDjl2qUj+06IB/Qzd9/Mo1Vtdb8SUZxv/Qc2raSi3LL0N4aSJGLGU pq395ggv9NdhUQf+DN9uGaOC4hYeGdO8gm27yysZ4rTT5iln5wOaCAcMTMrGL4+k GoU/nKECgYEA7AP/Mh9sUi9AX/17a3A/zxNAO1ZrvM+Caj/X/t/pt3HEOhqLz7o5 z3g8/Z+H0CJLZNiP9XbMak2wvOiqRj0y+FihX/ESll6XgIEPTBUcFSirWMe4f9og FltrnelUjHG9MTDW0P4jmmp1E5V8RgnCCv2VjN40ulP5zHPXXdU2FP8CgYEAySNs /qlFL7DTB/A851y6cUzQC5kiKlr/T8aUtOHeBo626jlnHDy/VY9vIJ0ttsYyHCdM OSdqZh5wRwvshr94tpOBQNnDTI4Xv7t2couHl7q2xTOYeWViwGyZaatNYlWWFh/u YSCTd2jn6cvBZOZP3BAiWoF9nzLcsjfpNLdzAkMCgYAx8TaTOKsHSRBqP41aUspt 2zkAVW0+6vpB2Xivalpegyhu0yc6scGB8YOWd6eZl2g00s7DtnvTEtWPY/yEGHcs rjSXxL+WKjYM70J5aw4iPBTmGH0mMNYRZQ8Ev1cw0PCj9B3A48ZM6rITjtJZT79L 7BU1Vd/6fcKiTPEJ3hAvqQKBgBKOQBnmR8m0iGNtGFFHzrNxIKhRQkOiDXewnDtr su3r8Jf/H7INMKGWD+x0U6lO84SBY5jKOBifqkADq5hqxZoiVYREEq5XVX2Mr8q1 cJbg1MewkNpyLgAOhMCo2wS9XJFB9N3lAXW8qdh5waerT6a/nku3Mn2jVZTjb5I7 clK9AoGAZLuvLAJpFOf/mweajULV+oFMGzIArvbk1c+cGySeI5uZwfQ9lv2MOb0N DuFTXZt6QpKV9Nix/8KgBIP2Vac6gSAeF6kIXk2+nV6gXm5tojYrf6gG1jY8ceRD IFSeGlnBhYVrFcQ79fYwJtSQgGde4PtNF1yq9ipluAyLuy1cLUc= -----END RSA PRIVATE KEY-----
Utiliza estos dos archivos juntos en lugar de una contraseña.
La autenticación de clave pública SSH es una forma robusta de iniciar sesión en un sistema remoto, más segura que el nombre de usuario y la contraseña estándar. (SSH significa "shell seguro"). Probablemente haya visto claves SSH antes en la forma de su clave Github.
Las claves SSH se basan en la criptografía de clave pública y la autenticación de desafío y respuesta para evitar ataques de fuerza bruta y otras amenazas.
Estas claves garantizan que solo usted tenga acceso a sus máquinas virtuales y funcionan muy bien con scripts y otras tareas automatizadas.
Centros de datos
Un centro de datos es un gran edificio lleno de computadoras. Los proveedores de la nube te alquilan partes de ellos.
Las computadoras son servidores poderosos que pueden albergar muchas máquinas virtuales al mismo tiempo. Estos servidores consumen mucha energía y generan mucho calor, y deben estar físicamente juntos para que la conexión en red sea rápida. Entonces, un centro de datos es la instalación en la que un proveedor de la nube aloja todo el hardware físico que ejecuta una parte de su nube. El centro de datos requiere refrigeración adecuada, fuente de alimentación redundante, ancho de banda de red masivo, acceso controlado y personal calificado para mantener todas las máquinas en funcionamiento.
Un centro de datos puede manejar mucha carga, pero está en un solo lugar. Un proveedor de nube global necesita distribuir centros de datos en todo el mundo para garantizar que los clientes de todas partes tengan una latencia de acceso a la red aceptable para sus servidores.
Regiones Y Zonas
Un proveedor de nube necesita organizar sus centros de datos para garantizar que pueda seguir cumpliendo con las solicitudes durante cortes de energía, inundaciones, huracanes y otros desastres. Los proveedores llaman a esto Calidad de servicio , y todo es parte de asegurarse de que la nube nunca se caiga.
Una región es un área geográfica con una latencia de red de ida y vuelta específica (¿de dónde a dónde?). Las regiones tienen nombres como Dallas, Tokio o Frankfurt. Tiene la garantía de obtener la latencia de red que está pagando dentro de esa área.
Una región se compone de una o más zonas. Las zonas son un centro de datos aislado en una región con infraestructura eléctrica, mecánica y de red independiente diseñada para garantizar que no haya un punto único de falla compartido entre otras zonas. Eso le permite crear aplicaciones tolerantes a fallas de alta disponibilidad mediante la implementación en varias zonas de una región. La región puede continuar si una zona falla, pero es realmente malo cuando todas las zonas fallan.
Un centro de datos alberga una zona. Varios centros de datos se agrupan para crear una región multizona. Las zonas tienen nombres como us-sur-1, us-sur-2 y us-sur-3. Una región pequeña puede ser atendida por un solo centro de datos robusto, mientras que una región poblada puede requerir múltiples centros de datos para hacer frente a la red y la demanda informática.
Recuperación ante desastres, alta disponibilidad y tolerancia a fallas
Estos conceptos hacen sudar incluso a los arquitectos de TI más expertos. Se quedan despiertos por la noche preguntándose cómo se asegurarán de que la nube nunca baje.
¡Pero tienes esto! La nube (casi) nunca se cae, y es fácil asegurarse de estar cubierto si lo hace. Repasemos estos conceptos uno por uno:
La recuperación ante desastres (DR) es un conjunto de políticas y procedimientos que detallan qué hacer durante y después de un incidente importante. Diseñe su sistema para que falle correctamente (lo que significa que sus usuarios entenderán que algo anda mal, pero usted lo tiene cubierto) y, después de un incidente, sabrá cómo recuperarlo lo más rápido posible. Necesita DR cuando una región completa deja de funcionar, su servicio está bajo ataque cibernético o es vulnerable y necesita eliminarlo.
La alta disponibilidad (HA) no es más que un objetivo: los "cinco nueves" de los que hablamos anteriormente. Quiere que su aplicación sea resistente a fallas. Esto es casi imposible si ejecuta un servidor en su sala de estar, pero es factible con la nube. Alcanza el objetivo de alta disponibilidad confiando en la infraestructura tolerante a fallas de la nube: todo se soluciona por usted.
Una infraestructura tolerante a fallas es un diseño que garantiza que una copia de seguridad se haga cargo si algo falla. La nube es un sistema tolerante a fallas. Si falla una zona dentro de una región, las otras zonas garantizarán la continuidad del servicio. Debe aprovechar esa tolerancia a fallas mediante el uso de componentes como balanceadores de carga.
Equilibradores de carga
La alta disponibilidad proviene de la ejecución de varias instancias de su aplicación al mismo tiempo. Un balanceador de carga es una pieza de equipo que enrutará el tráfico de sus usuarios a una de sus instancias que está activa y en buen estado; toma solicitudes y las envía al siguiente servidor en buen estado.
El equilibrador de carga supervisa el estado de sus máquinas virtuales y puede tener en cuenta diferentes parámetros. Puede detectar si su máquina virtual o aplicación falla, pero también puede verificar la latencia de la red, datos específicos en los encabezados de solicitud y mucho más.
Preguntas que es probable que hagan sus clientes
Su aplicación funciona muy bien, pero su cliente está pensando en adoptar la nube. ¿Estás listo para ello? Estas son preguntas comunes que debería poder responder para sonar como un experto en la nube.
¿Cuándo quiero algo más que un proveedor de hosting?
Es posible que su cliente esté comprometido a toda velocidad con la migración de todos los servicios a la nube. Con una mayor flexibilidad, resiliencia y una presencia distribuida geográficamente, la nube hace que sea fácil emocionarse.
Pero aunque la nube es más rápida, flexible y confiable, también es más costosa; incluso podría requerir soporte de TI adicional para mantener el sistema de su cliente en funcionamiento. La nube no es para todos.
Si el sistema de su cliente se ejecuta actualmente en un proveedor de alojamiento, ¿debería pasarse a la nube?
Considere las necesidades presentes y futuras: si su cliente busca alta disponibilidad para cumplir con las regulaciones, entonces muévase a la nube. Si su cliente se dirige a una audiencia global, muévase a la nube. Si se esperan aumentos drásticos en la demanda a lo largo del año, muévase a la nube.
Si el sistema será accedido principalmente por usuarios locales dentro de una geografía específica, o si no es de misión crítica para su cliente, entonces no se mueva a la nube.
La conclusión importante: si el sistema de su cliente funciona bien en un proveedor de alojamiento, debe considerar las ofertas de SaaS existentes que brindarían la resiliencia y el rendimiento de la nube, mientras aíslan a su cliente de gastos de TI innecesarios. Hay proveedores de alojamiento tradicionales como Bluehost que ofrecen servicios basados en la nube, y hay proveedores de nube que ofrecen servicios de alojamiento.
¿Qué tipo de nube debo usar?
Encontrar el tipo de nube adecuado puede ser abrumador, ya que cada proveedor ofrece una amplia gama de servicios y opciones. Lo primero que debe considerar es la complejidad de la pila de software de su cliente y el hardware en el que se ejecuta actualmente.
Si toda la pila está altamente personalizada con bibliotecas de código abierto recompiladas, kernels de Linux personalizados u optimizaciones de almacenamiento especiales, primero debe considerar IaaS. Algunos proveedores permitirán que su cliente mezcle y combine, utilizando IaaS para componentes altamente personalizados mientras elige PaaS para otras partes.
Sin embargo, si las necesidades de su cliente se basan principalmente en bibliotecas estándar, PaaS probablemente sea un mejor punto de partida; el proveedor de la nube se asegurará de que el código de su cliente siempre se ejecute sobre las dependencias actualizadas.
Una vez que se identifica el modelo de nube adecuado, los requisitos y los criterios de evaluación serán exclusivos de su cliente. Pero siempre vale la pena prestar atención a los requisitos no funcionales: ¿Su cliente debe cumplir con las normas, certificaciones o normas específicas del dominio? ¿Tienen alguna dependencia o asociación con proveedores específicos?
Finalmente, piense en el soporte de migración del proveedor de la nube y el bloqueo del proveedor: lo difícil que es para su cliente migrar a un competidor una vez que el sistema está funcionando. Considere un plan de salida incluso si su cliente no planea mudarse.
¿Cómo me aseguro de que mi sitio nunca se caiga?
Supongamos que su cliente trabaja en la industria de la salud de EE. UU. HIPAA requiere que cada organización tenga algún tipo de plan de recuperación ante desastres, y eso incluye su sitio web. El negocio de su cliente fracasará si el sitio deja de funcionar, por lo que necesita la capacidad de recuperación de la nube.
La nube le brinda las herramientas que necesita para asegurarse de que su sitio nunca se caiga. Necesitará varias instancias de su aplicación ejecutándose al mismo tiempo y una forma de controlar el tráfico para que sus usuarios nunca accedan a una mala instancia.
Si su cliente está implementando su sitio en una nube de IaaS, necesitará varias instancias de su aplicación y un balanceador de carga para controlar el tráfico. Si su cliente tiene una nube PaaS, solo asegúrese de tener varias instancias en ejecución, ya que la nube proporcionará la parte de enrutamiento automáticamente.
Si su sitio utiliza una base de datos, asegúrese de que la nube de su cliente esté configurada para admitir la afinidad de sesiones (también denominadas sesiones persistentes ), una forma de garantizar que todo el tráfico de usuarios se enruta a la misma máquina virtual.
¿Cómo hago que mi sitio sea rápido para todos en el mundo?
Si su cliente se está globalizando y requiere que su aplicación brinde un servicio rápido a los usuarios finales de todo el mundo, entonces necesita la flexibilidad y el alcance geográfico de la nube.
Aunque la nube es global, necesita que las instancias de su aplicación se ejecuten cerca de donde están sus usuarios.
Trabaje con su cliente para identificar qué regiones de la nube servirían mejor a su base de usuarios y dónde aloja su cliente las API que respaldan su sitio; sus instancias deben estar cerca de ambas. También puede discutir la configuración de un proxy global que enruta el tráfico a diferentes áreas geográficas según la ubicación del usuario.
Conclusión
Proporcionar un servicio escalable y resistente a una base de clientes en crecimiento a través de Internet es muy complejo; apenas hemos arañado la superficie aquí. Es por eso que queremos dejar los detalles a Amazon, Google y los demás proveedores de la nube. Su trabajo es tomar buenas decisiones sobre cómo usar sus servicios.
Recuerde, cuando su cliente le pregunte si algo debería ejecutarse en la nube, debe hacer cuatro preguntas:
- ¿Qué tan complejo es el software que necesita ejecutar?
- ¿Cuánto necesita para escalar?
- ¿Qué tan importante es que nunca se caiga?
- ¿Qué tan rápido debe ejecutarse para los usuarios de todo el mundo?
Comience con estas cuatro preguntas sencillas y sonará como un experto en la nube. Trabaje con sus clientes para comprender qué significan para ellos las respuestas a estas preguntas, teniendo en cuenta los diferentes tipos de nube, y será una gran parte de la solución de sus necesidades.