Red de conocimiento informático - Material del sitio web - Catálogo de trabajos sobre tecnología de desarrollo de servicios web a gran escala.

Catálogo de trabajos sobre tecnología de desarrollo de servicios web a gran escala.

Capítulo 1 Orientación al desarrollo de servicios web a gran escala: dominar el conjunto............2

Lección 0 El origen de este libro —— Alcance de este libro........................ 3

Comprometidos en el desarrollo de servicios web a gran escala: pasantías de Hatena para estudiantes universitarios ... 3

El contenido de este libro...................... ............ ................................................. ... 3

Lo que este libro no cubre................. ............. ................ 5

A aquellos que se dedicarán a servicios web a gran escala en el futuro ............ ................................... 5

Lección 1 A gran escala Servicios y Servicios de Pequeña Escala................................................ .... ....... 6

Escala de servicios de Hatena........................ ........ ........................................ 6

Hatena es una gran escala, Google y Facebook son muy grandes... 8

La diferencia entre servicios a pequeña escala y servicios a gran escala...... .......... ........ 9

Hacer frente a volúmenes de datos a gran escala.. ......................... ........................................ .......... .. 11

Lección 2 Servicios en crecimiento y barreras a la escala............ ............. 13

Dificultades con los servicios web.................... .................... ........................ 13

La experiencia de crecimiento de Hatena................. ......................... ............ 13

Estrategia de crecimiento sistemático— minimizando el inicio, gestionando y diseñando para anticipar el cambio... 17

Lección 3 Sitio de Desarrollo de Servicios........................ ................ .................. 18

Estructura del equipo técnico de Hatena.... ................................................. ................ ... 18

Estilo de comunicación de Hatena.................... .... .................. 19

La situación actual del desarrollo de servicios...... ........ ................................................. ....... ..... 19

>Herramientas utilizadas para el desarrollo................................. ..... ................... 21

Resumen...................... .. ................................................. ................. ........................ 23

Capítulo 2 Introducción al procesamiento de datos a gran escala

——Memoria y discos, aplicaciones web y cargas...24

Lección 4 Hatena Bookmark Escala de datos................................... 25

Tome Hatena Bookmark como un ejemplo para introducir datos a gran escala... ........................ 25

El tamaño de los datos de Hatena Bookmark... ........... ................................ 25

Consultas para datos a gran escala— —La sensación de procesar datos a gran escala... 26

Lección 5 Dificultades en el procesamiento de datos a gran escala: memoria y disco... .......28

¿Por qué es tan difícil procesar datos a gran escala? Porque no se pueden calcular en la memoria

...... ............ ................................................. ... ................................28

La diferencia de velocidad entre la memoria y el disco - la memoria es 105 veces más rápida ~106 veces......28

¿Por qué el disco es tan lento? ——Memoria y disco......................................29

Procesamiento acelerado en la capa del sistema operativo.................................... .. ..........31

La diferencia entre la velocidad de transmisión y la velocidad del autobús............. ........... .......31

Lección 6 Conceptos básicos de la escalabilidad.................. ................................................. ............. 37

Extensiones y escalabilidad........................ ................. .................................37

Puntos clave de escalabilidad: carga de CPU y Carga de E/S................38

Relación entre aplicaciones web y cargas................. .................. .......38

La escalabilidad de la base de datos es difícil de garantizar..... ........ .................39

Lección 7 Conocimientos básicos del procesamiento de datos a gran escala.... ....... ........................44

>Conceptos básicos de datos a gran escala para programadores.................................... . ..44

Tres puntos clave en el procesamiento de datos a gran escala: habilidades para escribir programas......44

Tres conocimientos previos necesarios antes de procesar datos a gran escala: el fundamento fundamento del desarrollo del programa ................................. ................. ................................................ .. ...45

Capítulo 3 Almacenamiento en caché y distribución de sistemas operativos

——Principios del procesamiento eficiente de datos a gran escala... ........... ......50

Lección 8 Mecanismo de almacenamiento en caché de los sistemas operativos............ ................ .................................51

Escribir aplicaciones basadas en la comprensión del almacenamiento en caché del sistema operativo - Página

Almacenamiento en caché.................................... ................................................. ............. 51

Mecanismo de memoria virtual........................ ................. ................................................. ..52

Principios del almacenamiento en caché de páginas de Linux................... ...... .......54

VFS............. .................... ................................................ ...... ......................56

Linux almacena en caché el disco en páginas....... ........ ....................57

Memoria caché cuando está inactiva - confirmar mediante sar............. ...........59

Aumentar la memoria y reducir la carga de E/S.................... ...... .................60

El almacenamiento en caché de páginas es transparente............. ...... ..........................................61

Lección 9 Estrategias para reducir la carga de E/S........................ 67

Una estrategia basada en caché para reducir la carga de E/S...... 67

Extendido a múltiples servidores: situaciones en las que no todos los cachés se pueden almacenar en caché ............68

Simplemente aumentar el número no puede garantizar la escalabilidad.... ... ...............69

Lección 10 Distribución usando localidad.. .................... .

............................. 74

¿Qué es una distribución que explota el modo localidad? ................................................ 74

Partición——X distribuido considerando la localidad........................ 75

Dividido en "islas" según patrones de acceso - distribuido Y considerando la localidad... 78

Reglas básicas de aplicación basadas en el almacenamiento en caché de páginas............. .............. ................... 79

Capítulo 4 Estrategia de escalamiento horizontal de la base de datos

——Aplicación MySQL basada en fórmulas de distribución. ....................82

Lección 11 Aplicación correcta de índices

——La premisa principal de la aplicación MySQL distribuida ...................... 83

MySQL distribuido Tres puntos clave de aplicación............. ........................ 83 Aplicación flexible de la caché de los sistemas operativos.................. ................................. ... 83

El punto clave del índice - B- árbol...................... ........................ 86

Efectos del índice.................... .................... ................................................. ..... ...... 89

Método para confirmar si el índice es válido - comando de explicación............. ...... 92

Lección 12 Distribución MySQL

——Diseño de sistemas basado en expansión........................ 95

Función de replicación de MySQL............. ......................... .... 95

Características de maestro/esclavo—— Ampliar el sistema de referencia y actualizar la clase

No se extiende............. ................ .................................. ................................. 96

Lección 13 Escalado horizontal y particionamiento de MySQL... .................... 99

Estrategia de escalado horizontal de MySQL................. ........................ ........... 99

Información complementaria sobre Particionamiento (particionamiento de tablas) ...................... ................. 99

Diseño basado en Particionado... .......... ........................ 99

Evita UNIRSE - usa donde...en... ……… .....

................................. 102

El costo de la partición....... ... ................................................. ... 103

Resumen de los Capítulos 2 a 4........................ ......... .................... 107

Capítulo 5 Introducción a la “práctica” del procesamiento de datos a gran escala

—— Enfoque del desarrollo de aplicaciones................................................ .....108

Lección 14 Índices de propósito especial: procesamiento de datos a gran escala.................... 109

Índices y arquitectura del sistema: cuando se exceden las capacidades de procesamiento del RDBMS... 109

Índices de propósito especial: utilizando estructuras de datos optimizadas ................. .111

Lección 15: Vincular la teoría con la práctica............. .................... ................................................ ...115

Explorando las condiciones técnicas necesarias....................... ................. ......115

Resumen de los Capítulos 2 a 5............................. ................................................ ... ...117

Capítulo 6 Programación de compresión

—Considerando la relación entre el tamaño de los datos y la aceleración de E/S..... ...118

Lección 16 [Tema] Guardar datos enteros de forma compacta y concisa............119

De forma compacta Guardar datos enteros....... ................................. ...119

Intención de la pregunta - ¿Cuáles son las ¿Beneficios de resolver este problema? ........................119

Contenido de los documentos utilizados en el proyecto.......... . ................................................121

Lección 17 Código de bytes variable y la sensación de velocidad........................ .......122

Código de bytes variable: guardar datos enteros en un formato compacto............. .....122

Pseudocódigo de código de bytes variable...... ......................... ............123

Almacenamiento de números enteros ordenados usando "diferencia "..... ................................................. .126

(¿Suplemento?) Conceptos básicos de compresión................................. ...... ............126

(¿Suplemento?) El caso en el que el objeto comprimido es un número entero: teoría básica... .... .127

Lección 18

Explicaciones detalladas de preguntas y ejemplos de soluciones.................................... ....129

Explicación detallada del tema................................ .... ........................................129

( ¿Referencia?) Función pack() - salida de la estructura de datos interna de Perl en forma binaria

............ ................. ................................131

(¿Referencia?) Lectura/escritura de datos binarios. ......................133

(¿Referencia?)Análisis de rendimiento................. .......................... ............135

Ejemplos de respuestas y ideas.................................................... ............................ 136

Capítulo 7 Implementación práctica de algoritmos

— —Observando la inversión práctica en teoría e investigación a partir de ejemplos que nos rodean....142

Lección 19 Algoritmos y revisiones de algoritmos.................. ...................... .................143

Diferencias en tamaño y complejidad de los datos. ............ ............143

¿Qué es un algoritmo? ................................................. ................. ............144

La importancia de los algoritmos de aprendizaje: recursos informáticos limitados, comunes a los ingenieros

Idioma................................................ .... .................................145

Evaluación del algoritmo— —Complejidad Notación................................................ ......146

¿Cuántas veces se puede doblar una toalla de papel? ——La brecha entre O(logn) y O(n)......148

Algoritmos y estructuras de datos: conexiones inextricablemente vinculadas.... ..........149

Complejidad y términos constantes: la evaluación importa ......................... ........150

Aplicación de algoritmos Situación real: la simplicidad es hermosa............. 151

Aplicación flexible de terceros implementación del partido ——CPAN, etc................................. 153

Profundizar a través ejemplos Sentimientos................................................ ........ .... 155

Lección 20 Cadena de palabras clave del diario Hatena

Recoger................................................ 156

¿Qué? ¿Es un enlace de palabra clave? ................................................. ............... ....... 156

Implementación inicial................. ...... ........................................ 156

¡Fuera Problema! ——El diccionario de palabras clave es cada vez más grande.................... 157

Uso de coincidencia de patrones Problemas al implementar enlaces de palabras clave ................................ 158

De expresión regular a Trie: cambiando la forma de coincidencia está implementado................. 158

Algoritmo Aho-Corasick............ ........... ................................................. .... 160

Reemplazar con Regexp::List................................. ... .................... 162

La implementación, cambios e investigación de enlaces de palabras clave..... ....... ........... 163

Lección 21 Clasificación de artículos de Hatena Bookmark ......................... ...... 164

¿Qué es la clasificación de artículos? ................................................. ............... ........ 164

Aprendizaje automático y datos a gran escala............. ............ ........................ 165

Datos y Web a gran escala servicios—El Camino de la Ciencia de Google .. 166

El principio del filtro bayesiano........................ ... .................... 167

El camino hacia el algoritmo práctico: un ejemplo de Hatena Bookmark...... ... ...... 170

Postura defensiva y postura ofensiva: comenzando desde la función de clasificación de documentos....... 171

Capítulo 8 Implementación del enlace de palabras clave Hatena

——Entendiendo el camino hacia la aplicación................................ .............. ..........176

Lección 22 [Tema] Crear enlace de palabra clave Hatena...... ................. ....... 177

Usando el algoritmo Aho-Corasick para crear enlaces de palabras clave Hatena..... .. 177

Pruebas de escritura....... ................................ ................. ................ 180

Lección 23 Ejemplos e ideas de respuestas.

................................................. ............... ........... 182

Ejemplos de respuestas.............. ......................................... ......... 182

Capítulo 9 Desafíos de la tecnología de búsqueda de texto completo

-Varias experiencias y técnicas para el procesamiento de datos a gran escala...... 184

Lección 24 Alcance de la aplicación de la tecnología de búsqueda de texto completo................. ........ .. 185

Crear un motor de búsqueda utilizando datos de Hatena......................... .... ....... 185

Búsqueda de texto completo de Hatena Diray - búsqueda fuera del servicio de búsqueda

Sistema.......... .. ................................................. ................. .................. 185

Búsqueda de texto completo de Hatena Bookmark - un sistema que cumple con los requisitos detallados... 187

Lección 25 Arquitectura del sistema de búsqueda.................... ............. .............190

Pasos necesarios para buscar en el sistema.......... .. ........................................190

Varios motores de búsqueda................................................ ....... ......191

Tipos de búsqueda de texto completo........................ ...... .................................193

Lección 26 Estructura interna del buscador. ................................................. .......198

La estructura del índice inverso——Publicaciones del diccionario................................. ...198

Método de creación de diccionario: método de creación de índice inverso 1 .........200

Resumen...... ................. ................................................. ............................210

Cómo crear Publicaciones - Cómo crear un índice inverso 2... .........211

Información complementaria sobre la puntuación........................ ..... ........................213

Referencias... ................ ................................................. ............214

Capítulo 10 Creación de un motor de búsqueda de texto completo

—Parte básica, mejora, velocidad.

y requisitos de precisión...216

Lección 27 [Tema] Crear búsqueda de texto completo en Hatena Bookmark...217

Desarrollar un motor de búsqueda de texto completo... ........................................ ............ 217

Contenido principal........................ ................ ................................................. ...217

Ejemplo de formato y tamaño de datos........................ ......... ....218

Composición del diccionario——Diccionario, Publicaciones ............ ............219

Interfaz........................ ........................ ........................................ .......220

Mejoras básicas........................ .................. ...............220

Con velocidad y precisión es un enfrentamiento................. ......... ......221

Ejemplos e ideas de respuestas de la Lección 28.................. ..................223

Ejemplos de respuestas........................ ................................................. ....... ............223

Implementación del indexador pl............. ..... ................................................223

Implementación del buscador pl....................................... ...... .......225

Áreas que se pueden mejorar............. ................. ................................................ .227

Capítulo 11 Introducción a servidores/infraestructura para soportar el procesamiento de datos a gran escala

——Backend de los servicios web.... ........................230

Lección 29 Software empresarial versus servicios web....... ........................................ ..231

Software empresarial versus servicios web: diferencias en el alcance de la aplicación......231

Infraestructura de servicios web: tres puntos clave..... ......233

Capítulo 30 Lecciones La nube frente a la construcción de su propia infraestructura.............

............................235

Computación en la nube...... ..... ................................................. .......... ............235

Ventajas y desventajas de la nube............ .. ................................................. ............. ........ 235

Servicios en la nube de aplicaciones Hatena................. ....... .................. 236

Ventajas de construir tu propia infraestructura..... ...... ........................................ 237

Construye tu propia infraestructura y modelo de integración vertical...................... 239

Escala de servicios de Hatena............. ........................... ............. 240

Marcapáginas Hatena Diagrama de arquitectura del sistema.................... 240

Capítulo 12 Ideas necesarias para garantizar la escalabilidad

——Expansión de escala y expansión del sistema................................242

Lección 31 Capas y Escalabilidad.................................... . ........................ 243

Requisitos de escalabilidad: el límite de tráfico que puede manejar un servidor. 243

Escalabilidad de cada capa........................ .............. .... 244

Lección 32: Domina la carga y afinala....................... .......................................... .... 245

Domina la carga - interfaz de gestión visual........................ ........... 245

Indicadores para medir la carga: carga promedio, memoria e información relacionada con la CPU.... 247

Ajuste según el propósito: para servidores de usuario y servidores orientados a rastreadores ............ ................. ................................. ....... 247

Estrategias de ajuste y número de servidores

para servidores de aplicaciones y servidores de bases de datos................. ........................................................ ......................... ..... 249

Escalado y ajuste del servicio.......... ................................................25

0

Escalabilidad garantizada................................ ........ .......... 251

Capítulo 13 Garantizar la redundancia y la estabilidad del sistema

——El principio de lograr una tasa de 100 en línea... ............. 252

Lección 33 Garantizar la redundancia........................ . ............................ 253

Garantizar la redundancia: servidor del programa de aplicaciones... ................ 253

Redundancia garantizada Redundancia - Servidor de base de datos.................... .... 254

Asegurar la redundancia - servidor de almacenamiento................................. .......... 257

Lección 34 Estabilización del sistema........................ .... ................................... 261

Compensaciones para mantener el sistema estable................................................ ........ .... 261

Factores de inestabilidad del sistema................................ .... ................................. 262

Lección 35 Contramedidas para la estabilidad del sistema.... ................................ ............ 267

Contramedidas reales para la estabilidad del sistema: mantener márgenes adecuados y eliminar factores inestables

................................. ................................. ................ .... 267

Capítulo 14 Mejorar la eficiencia

——Mejorar la utilización de los recursos de hardware....... .....270

Lección 36 Tecnología de virtualización................................. .................271

Introducción de la tecnología de virtualización....... ................ ................................................. ......271

El efecto de la tecnología de virtualización........................ ....... ......................272

Estrategias de construcción para servidores virtuales ................. ................................................. . ...273

Resumen de las ventajas de la virtualización............................. ... ..........................

.275

Virtualización y operaciones: aprovechar las ventajas de la virtualización en las operaciones a través de herramientas de administración de servidores................................ ................................................. ....276

Puntos a tener en cuenta sobre la virtualización........................ ........ ........................277

Lección 37 Hardware y mejora de la eficiencia

p>

——Clave tecnologías para lograr un bajo costo................... ...280

Mejorar el rendimiento del procesador......... ............... .................280

Los costos de memoria y disco duro caen... ... ................................................. ................. ..281

Uso efectivo de hardware barato - aplicaciones de hardware basadas en virtualización.......282

SSD..... ........................................ ......................... ......................... ...284

Capítulo 15 Redes y servicios web

—— Vea el crecimiento de los servicios a través de Internet.................. ..............288

Lección 38 El punto divisorio de la red.................... .................... ..................289

El punto divisorio entre crecimiento de servicios y networking......................................289

El límite de 1 Gbps——El límite del enrutador de PC......................289

El límite de 500 hosts - el límite de subredes y tablas ARP......290

Las capas de la arquitectura de red... ........................ ........................................ .......291

Globalización.................... ................... ................................................ ..292

Lección 39 Desafiando los límites superiores........................ ................. ...295

Un mundo más allá de los 10Gbps...................................... .................................... 295

La infraestructura de Hatena—Resumen de capítulos 11 a 15.............296

Capítulo 16 Capítulo especial: Las tecnologías prácticas actuales necesarias para construir servicios web

——Instrucciones para tratar con servicios Web a gran escala...

.............298

Lección especial 1 Sistema de cola de tareas TheSchwartz, Gearman................299

Servicios Web y Solicitudes................................................ ..... ........299

Introducción al sistema de cola de trabajos.................... .. ............299

Sistema de cola de trabajos de Hatena...... ................. .300

Análisis mediante logs..... ................................. ............ 302

Lección especial 2: Elección del método de almacenamiento: RDBMS o

Almacenamiento clave-valor....... ............ ........................ 303

Cómo ahorrar aumentando datos... ........................ 303

Requisitos previos para seleccionar un sistema de almacenamiento....................... 304

Tipos de sistemas de almacenamiento...... ................................................ 305

RDBMS................................... ...... ........................ 305

Almacenamiento distribuido de valores-clave....... ...... ................. 308

Sistema de archivos distribuido..... .......... ......................................... 310

Otro almacenamiento. ......................................... ........... ............. 312

Estrategia de selección del sistema de almacenamiento............ ............. .................. 314

Lección especial 3 Sistema de almacenamiento en caché— —Calamares, barniz........ ............. 315

Cargas de aplicaciones web y sistemas proxy/caching.... ............. 315

Calamar——Estructura básica........................ ................. ............ 317

Barniz............ ................. ................................................ .. ...... 321

Lección especial 4 Clúster de computación - Hadoop........................ ..... ....... 323

Procesamiento paralelo de grandes cantidades de datos de registro.............

.................. 323

Modelo informático MapReduce............. ........ ................ 323

Hadoop ............. ............ ................................................. ... ...... 325

Índice........................ ........ ................................................. ....... ................327