PDF de programación - 1. Construyendo las bases

Imágen de pdf 1. Construyendo las bases

1. Construyendo las basesgráfica de visualizaciones

Publicado el 25 de Agosto del 2020
441 visualizaciones desde el 25 de Agosto del 2020
44,2 KB
5 paginas
Creado hace 6a (31/10/2017)
1. Construyendo las bases

1.1. Servidores web y aplicaciones

Linux es un popular sistema operativo para servidores web, y el rey de la aplicación

de servidores Linux es el servidor Apache HTTP (usualmente llamado simplemente
«Apache»). Otro servidor del que escucharás a menudo es Tomcat (también un proyecto

Apache), el cual provee soporte para aplicaciones basadas en Java.

Por si mismos, los servidores web no hacen mucho—pueden servir ficheros, pero sobre
ellos. El objetivo final de la mayoría de servidores web como Apache es proveer una pla-
taforma subyacente para servir aplicaciones web. Por ejemplo, Wikipedia está construida

en el paquete MediaWiki, el cual puedes usar para configurar tu propia wiki. Los siste-
mas de gestión de contenido como Wordpress y Drupal le permiten construir sus propios

blogs y sitios multimedia. Todas estas aplicaciones están construidas en lenguajes de
programación que se ejecutan especialmente bien en Linux. Por ejemplo, MediaWiki,
Wordpress, y Drupal están todos construidos en PHP.

Los bloques de construcción hacen que las aplicaciones web sean altamente modulares,

así que es fácil agregar sus propias extensiones y crear aplicaciones con marcos de refe-
rencia como Django, Flask, y Rails, las cuales ofrecen facilidades para infraestructuras

y características web comunes, como plantillas, múltiples usuarios, y soporte a base de
datos.

El buen funcionamiento de un servidor web depende de un sólido sistema operativo en
la base. Su configuración de red debe ser perfecta, pero quizás lo más importante, usted

debe entender la gestión de recursos. Tamaño adecuado, memoria eficiente y disco con
críticos, especialmente si planea usar una base de datos en su aplicación.

1.2. Bases de datos

Las bases de datos son servicios especializados para almacenar y recuperar datos, y en
linux se ejecutan varios servidores de bases de datos. Dos características hacen atrac-

tivas a las bases de datos: Ofrecen métodos sencillos y uniformes para gestionar piezas
individuales y grupos de datos, desempeño de acceso superior.

1

Las bases de datos facilitan a las aplicaciones examinar y alterar datos, especialmente

cuando se comparan con analizar y cambiar ficheros de texto. Por ejemplo, los ficheros
/etc/passwd y /etc/shadow en un sistema Linux pueden ser difíciles de mantener sobre
una red de máquinas. En su lugar, usted puede configurar una base de datos que ofrezca

información de usuario LDAP(Lightweight Directory Access Protocol) para alimentar
esta información dentro del sistema de autenticación Linux. La configuración en el lado

del cliente Linux es fácil; todo lo que necesitas hacer es editar el fichero /etc/nsswitch.conf
y agregar una pequeña configuración extra.

La razón primordial por la que las bases de datos ofrecen generalmente un desempeño
superior cuando recuperan información es que usan indexación para mantener la ruta de
la localización de los datos. Por ejemplo, digamos que tenemos un conjunto de datos re-

presentando un directorio que contiene nombres, apellidos y teléfonos. Usted puede usar
una base de datos para poner un índice en cualquiera de estos atributos, como el apelli-

do. Después, cuando busque a una persona por apellido, la base de datos simplemente
consulta el índice del apellido en lugar de buscar en el directorio entero.

1.2.1. Tipos de bases de datos

Las bases de datos vienen en dos formas básicas: relacionales y no-relacionales. Bases
de datos relacionales (también llamadas sistemas de gestión de bases de datos relacio-
nales, o RDBMS ), como MySQL, PostgreSQL, Oracle, y MariaDB, son bases de datos

de propósito general que sobresalen y unen diferentes conjuntos de datos juntos. Por
ejemplo, digamos que tiene dos conjuntos de datos, uno con códigos postales (ZIP) y

nombres, y otros con códigos postales y sus correspondientes estados. Una base de datos
relacional le permite recuperar rápidamente todos los nombres localizados en un estado
particular. Normalmente se habla a las bases de datos relacionales usando un lenguaje

de programación llamado SQL (Structured Query Languaje).

Las bases de datos no relacionales, también conocidas como bases de datos NoSQL,

intentan resolver problemas particulares que las bases de datos relacionales no manejan
con facilidad. Por ejemplo, bases de datos de documentos guardados, como MongoDB,

intentan guardar e indexar documentos enteros fácilmente. Las bases de datos clave-
valor, como redis, tienden a enfocarse en el desempeño. Las bases de datos NoSQL no
tienen un lenguaje de consulta como SQL para su acceso. En su lugar, usted usará una

variedad de interfaces y comandos.

2

Los problemas de desempeño de disco y memoria son extremadamente importantes en

la mayoría de implementaciones de bases de datos porque hay una compensación entre
cuánto se puede guardar en memoria RAM (que es rápida) y cuanto en disco. Los
sistemas de bases de datos más grandes también implican una red significativa porque

porque están distribuidos sobre varios servidores. Lo más común como configuración de
red se llama replicación, donde una base de datos es básicamente copiada a un número

de servidores de bases de datos para incrementar el número de clientes que se conectan
a los servidores.

1.3. Virtualización

En las organizaciones más grandes, es ineficiente dedicar hardware a tareas de un servidor
específico porque instalar un sistema operativo adaptado a una tarea en un servidor

significa que está limitado a esa tarea a menos que lo reinstale. La tecnología de máquina
virtual posibilidad la instalación simultánea de uno o más sistemas operativos (a menudo
llamados huéspedes) en una sola pieza de hardware, y después activar o desactivar los

sistemas. También puede mover y copiar las máquinas virtuales a otras máquinas.

Hay varios sistemas de virtualización para Linux, como los núcleos KVM (Kernel Virtual
Machine) y Xen. Las máquinas virtuales son especialmente útiles para servidores web y

de bases de datos. Aunque es posible configurar un único servidor Apache para varias
páginas, esto tiene un costo de flexibilidad y mantenimiento. Si estos sitios están siendo
ejecutados por diferentes usuarios, hay que gestionar los servidores y los usuarios juntos.

En vez de eso, usualmente es preferible configurar máquinas virtuales en un servidor
físico con su propio soporte a usuarios, de modo que no interfieran entre ellos y sea

posible mover y alterar.

El software que opera máquinas virtuales se llama hypervisor. El hypervisor manipula
varias piezas de bajo nivel en un sistema Linux, de modo que si instala un huésped Linux

en una máquina virtual, se comportará como otro sistema Linux instalado.

1.4. Computación distribuida y por demanda

Para facilitar la gestión de recursos locales, puede construir herramientas sofisticadas

en tecnologías de máquina virtual. El término cloud computing lo engloba todo y a

3

menudo se usa como una etiqueta para esta área. Más específicamente, Infraestructura

como servicio (IaaS) se refiere a sistemas que permiten proporcionar y controlar recursos
de computación básicos como CPU, memoria, almacenamiento, y redes en un servidor
remoto. El proyecto OpenStack es una API y plataforma que incluye IaaS.

Yendo más allá de la infraestructura, también se proveen recursos de plataforma como

el sistema operativo, los servidores de bases de datos, y los servidores web. Los sistemas
que ofrecen recursos en este nivel se llaman plataforma como servicio (PaaS ).

Linux es central para varios de estos servicios de computación, y es a menudo el sistema

operativo subyacente detrás de todo.

1.5. Sistemas embebidos

Un sistema embebido es cualquiera diseñado para servir a un propósito específico, como
un reproductor de música, video streamer, o un termostato. Compare esto a un escritorio
o sistema servidor que puede manejar varios tipos de tareas (pero quizás no hacen una

cosa específica muy bien).

Puede pensar en los sistemas embebidos en su mayoría como los opuesto a la computación
distribuida; en lugar de expandir la escala del sistema operativo, un sistema embebido

usualmente (aunque no siempre) la encoge, a menudo dentro de un pequeño dispositivo.
Android es quizás la versión embebida de Linux mas extendida que se usa hoy en día.

Los sistemas embebidos a menudo combinan hardware especializado con software. Por
ejemplo, puede configurar una PC para hacer todo lo que hace un router inalámbrico

agregando suficiente hardware de red y configurando apropiadamente la instalación de
Linux. Pero usualmente es preferible comprar un dispositivo pequeño y dedicado que

tiene el hardware necesario y elimina lo que no sea necesario. Por ejemplo, un router
necesita más puertos de red que la mayoría de computadores pero no necesita hardware
de video o sonido. Y una vez que ha personalizado el hardware, debe adaptar el software

del sistema, tal como las opciones del sistema operativo y la interfaz de usuario.

El interés por los sistemas embebidos ha aumentado ha medida que se ha introducido
mayor capacidad a pequeño hardware, los diseños SoC que pueden tener un procesador,
memoria e interfaces periféricas en un pequeño espacio. Por ejemplo, los computadores

4

Raspberry Pi y BeagleBone tienen un diseño tal que, permite elegir algunas variantes de

Linux como sistema operativo. Estos dispositivos tienen una salida accesible y sensores
de entrada que conectan a lenguajes de interfaz como Python, haciéndolos populares
para prototipado y pequeños artilugios.

Las versiones embebidas de Linux varían en cómo se proporcionan varias características

para la versión servidor/escritorio. Dispositivos pequeños y muy limitados pueden ex-
ceptuar todo excepto lo esencial debido a falta de espacio, esto a menudo significa que

utilidades básicas vienen en la forma de un ejecutable. Estos sistemas tienden a exhibir
más diferencias entre la instalación de un sistema Linux completo, y lo que ha menudo
encontrará con el software antiguo, como Syste
  • Links de descarga
http://lwp-l.com/pdf18114

Comentarios de: 1. Construyendo las bases (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad