Está en la página 1de 6

Cloud Computing

¿Qué es?

La definición de cloud computing es ofrecer servicios a través de la conectividad y gran


escala de Internet.

La computación en la nube democratiza el acceso a recursos de software de nivel


internacional, pues es una aplicación de software que atiende a diversos clientes. La
multilocación es lo que diferencia la computación en la nube de la simple tercerización y de
modelos de proveedores de servicios de aplicaciones más antiguos. Ahora, las pequeñas
empresas tienen la capacidad de dominar el poder de la tecnología avanzada de manera
escalable.

Ofrece a los individuos y a las empresas de todos los tamaños la capacidad de un pool
de recursos de computación con buen mantenimiento, seguro, de fácil acceso y bajo demanda,
como servidores, almacenamiento de datos y solución de aplicaciones.

Eso proporciona a las empresas mayor flexibilidad en relación con sus datos e
informaciones, que se pueden acceder en cualquier lugar y hora. Con un mínimo de gestión,
todos los elementos de software de la computación en la nube pueden ser dimensionados bajo
demanda, usted solo necesita conexión a Internet.

Funcionamiento, tipos y servicios

Existen dos términos esenciales relacionados con el Cloud Computing:

- Frontend (capa de presentación de los datos) es la interfaz que ve el usuario e incluye


tanto su equipo o su red local como la aplicación que necesita para tener acceso a la
nube.
- Backend (capa de acceso a los datos) es donde se ubican todos los servidores, sistemas
de almacenamiento y ordenadores que crean la nube.

La computación en la nube utiliza una capa de red para conectar los dispositivos de
punto periférico de los usuarios, como computadoras, smartphones y accesorios portátiles, a
recursos centralizados en el data center.

Un servidor central es el responsable de gestionar las demandas que hace el usuario


desde el frontend hacia la nube a través de un software llamado middleware, que es el que
permite que los ordenadores de red puedan comunicarse entre ellos sin inconvenientes.

Para evitar la pérdida de información en caso de que uno de los ordenadores de red
falle, se realizan copias en varios lugares de tal manera que siempre se pueda tener acceso a
una copia de la información. Toda lo que se almacena en la nube está cifrado, brindando
seguridad e impidiendo la acción de hackers.
Existen varias nubes diferentes, listadas a continuación, que se dividen según la
propiedad de la infraestructura y según el nivel en el que opera la misma:

- Nube Privada: Constituida de una sola organización con su propia nube de servidores y
software para la utilización sin un punto de acceso público.

- Nube Pública: Diversas empresas pueden usar de manera simultánea, pero


separadamente. El proveedor de la nube es responsable por el mantenimiento y
seguridad.

- Nube Hibrida: Compuesta por dos o más infraestructuras de nubes distintas que
permanecen como entidades únicas, pero que están unidas por una tecnología
estandarizada o propietaria.

- Nube Comunitaria: Diferentes empresas u organizaciones reúnen en pool sus recursos


en la nube para resolver un problema común.

En relación con los servicios que puede ofrecer la computación en la nube, destacan
las 3 siguientes:

- SAAS (Software As A Service): Las aplicaciones basadas en cloud, o software como


servicio, se ejecutan en sistemas distantes en la nube, que pertenecen y son
administrados por otros y que están conectados a los sistemas de usuario a través de
Internet y, por lo general, de un navegador web.

- PAAS (Platform As A Service): La plataforma como servicio proporciona un entorno


basado en cloud con todos los requisitos necesarios para dar soporte a todo el ciclo de
vida de creación y puesta en marcha de aplicaciones basadas en web (cloud), sin el
coste y la complejidad de comprar y gestionar el hardware, software,
aprovisionamiento y alojamiento necesario.

- IAAS (Infraestructure As A Service): La infraestructura como servicio proporciona a las


empresas recursos informáticos, incluyendo servidores, redes, almacenamiento y
espacio en centro de datos con pago en función del uso.
Full Stack Developer

Un desarrollador Full Stack es el encargado de manejar cada uno de los aspectos


relacionados con la creación y el mantenimiento de una aplicación web. Para ello es
fundamental que el desarrollador Full Stack tenga conocimientos en desarrollo Front-End y
Back-End.

Este desarrollador será capaz de establecer estrategias para cada parte del proceso de
desarrollo web. Esto lo convierte en una figura imprescindible en las empresas con una fuerte
base tecnológica. Como he comentado anteriormente, el full stack developer tendrá que
dominar los siguientes dos conceptos:

- Front-end: Trabaja del lado Cliente, en el navegador, en el lado de lo que se ve.


Principalmente se ocupa de los componentes externos del sitio web o de la aplicación
web. Deberá dominar lenguajes como HTML, CSS, JavaScript, …

- Back-end: El desarrollador back-end trabaja del lado Servidor, detrás del escenario,
permitiendo con su trabajo que el usuario disfrute de su experiencia. Sin él, el
desarrollo llevado a cabo por su anterior compañero no se sostendría. Por su parte,
deberá dominar algunos lenguajes y frameworks como PHP, Ruby, Node.js, Java, etc.
Sin embargo, no es suficiente con dominar un lenguaje y un framework. Toda
aplicación web debe almacenar datos de alguna manera. Por lo tanto, un desarrollador
back-end también debe estar familiarizado con las bases de datos, tales como SQL
Server, MongoDB, Oracle, …

Un full-stack developer es un programador con un perfil técnico muy completo. Es


alguien que conoce todas las capas del desarrollo de software y también debe conocer la
manera de conectar cada capa con las otras. De esta manera, debe ser capaz de levantar una
aplicación desde cero. Por ello, para cumplir con este perfil, debes sentirte cómodo trabajando
tanto con las tecnologías del front-end (client-side) como con las del back-end (server-side).

Para llegar a ser un full-stack developer no solo basta con aprender las tecnologías del
front-end y back-end, sino que también debes saber la forma de como conectar estos dos
mundos de la manera más elegante y transparente posible.
Agile Development

Es un marco de trabajo conceptual de la ingeniería de software que promueve


iteraciones en el desarrollo a lo largo de todo el ciclo de vida del proyecto. Existen muchos
métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en cortos
lapsos de tiempo. Esto fue creado a los mediados de los años 1990 por Kent Beck.

Es una alternativa en la gestión tradicional de proyectos TI, donde se hace hincapié en


el empoderamiento de las personas para colaborar y tomar decisiones en equipo, además
potencia la planificación continua, pruebas permanentes y la integración conjunta del código y
los despliegues.

Las técnicas ágiles varían en prácticas y énfasis, pero comparten características


comunes, incluyendo el desarrollo iterativo y un enfoque en la interacción, la comunicación y
la reducción de artefactos intermedios que consumen muchos recursos. Desarrollar en
iteraciones permite al equipo adaptarse rápidamente a las necesidades cambiantes.
Trabajando en instalaciones cercanas y centrándose en la comunicación, permite que los
equipos puedan tomar decisiones y actuar sobre ellas de inmediato, en lugar de esperar
respuestas de otras instancias posteriores.

Actualmente se conocen diferentes metodologías relacionadas con el agilismo, como


una respuesta a la creciente necesidad de la industria por entregar productos de calidad en el
menor tiempo y costo posible. Entre ellas, destacan las siguientes:

- Extreme Programing: La programación extrema se diferencia de las metodologías


tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la
previsibilidad. Se puede considerar la programación extrema como la adopción de las
mejores metodologías de desarrollo de acuerdo con lo que se pretende llevar a cabo
con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.

- Scrum: En Scrum se realizan entregas parciales y regulares del producto final,


priorizadas por el beneficio que aportan al solicitante del proyecto. Por ello, Scrum
está especialmente pensado para proyectos en entornos complejos, donde se necesita
obtener resultados pronto, donde los requisitos son cambiantes o poco definidos,
donde la innovación, la competitividad, la flexibilidad y la productividad son
fundamentales.

- Kanban: Método para gestionar el trabajo intelectual, con énfasis en la entrega justo a
tiempo, mientras no se sobrecarguen los miembros del equipo. En este enfoque, el
proceso, desde la definición de una tarea hasta su entrega al cliente, se muestra para
que los participantes lo vean y los miembros del equipo tomen el trabajo de una cola.
Como resumen, se puede decir que el objetivo principal de las metodologías ágiles
es maximizar el valor entregado al cliente de la manera más rápida posible. Para ello, se
apoyan en las directrices establecidas en el manifiesto ágil. Ofrecen una manera diferente de
abordar el modo en el que se realizan los desarrollos de software, priorizando aspectos tales
como la colaboración, la calidad y la flexibilidad antes los cambios que surgen durante el ciclo
de vida de cualquier proyecto.
MERN Stack

MERN es un stack en el que se usa JavaScript tanto en el cliente como en el servidor. Es


un programa de desarrollo de aplicaciones web con el uso de MongoDB ExpressJS React y
NodeJS.

- MongoDB: Es una base de datos NoSQL, que se utiliza para crear nuevos tipos de
aplicaciones, mejorar la experiencia del cliente, acelerar el tiempo de
comercialización y reducir costes. MongoDB ha sido creado para brindar
escalabilidad, rendimiento y gran disponibilidad, escalando de una implantación de
servidor único a grandes arquitecturas complejas de centros multidatos. MongoDB
brinda un elevado rendimiento, tanto para lectura como para escritura, potenciando
la computación en memoria (in-memory).

- ExpressJS: Es una infraestructura de aplicaciones web Node.js mínima y flexible que


proporciona un conjunto sólido de características para las aplicaciones web y
móviles. Está dotado de miles de métodos de programa de utilidad HTTP y
middleware a su disposición. Proporciona una delgada capa de características de
aplicación web básicas, que no ocultan las características de NodeJS.

- REACT: React es una librería Javascript focalizada en el desarrollo de interfaces de


usuario. Sirve para desarrollar aplicaciones web de una manera más ordenada y con
menos código que si usas Javascript puro o librerías como jQuery centradas en la
manipulación del DOM. Permite que las vistas se asocien con los datos, de modo que,
si cambian los datos, también cambian las vistas.

- NodeJS: Es un entorno en tiempo de ejecución multiplataforma, de código abierto,


para la capa del servidor. Está diseñado para construir aplicaciones en red escalables,
como un entorno de ejecución de JavaScript orientado a eventos asíncronos.

También podría gustarte