¿Cuál fue su peor crisis en un entorno de producción y cómo la manejó?

Ha habido mucho a lo largo de los años.

La crisis más cara, no estoy seguro de si fue “producción” como sucedió en las unidades enviadas, no en un centro de datos, fue cuando un cliente envió un teléfono móvil utilizando nuestra base de datos. Se vendió como hotcakes en China y Japón, con más de 40 millones de unidades vendidas finalmente de ese modelo.

Desafortunadamente, comenzamos a recibir informes de corrupción de la base de datos desde el campo. Recuperamos algunos archivos y, después de un análisis rápido, me di cuenta de que las áreas defectuosas tenían exactamente 1024 bytes de longitud o múltiplos exactos de las mismas, y estaban llenas de todos los 0xFF (8 bits iguales a 1 para aquellos que no pueden leer hexadecimal). :).

Dado que no había forma física de que nuestro software escribiera kilobytes exactos de 0xFF (habían configurado nuestro tamaño de página para que fuera más grande que eso), trabajamos con el proveedor y descubrimos que había un error en su controlador Flash que ocasionalmente “olvidaba”. “para escribir bloques en el almacenamiento, dejando los Flash 0xFF en su lugar sin completar las escrituras en situaciones excepcionales, especialmente si el teléfono cambió de contexto en un momento crucial.

Sucedió en aproximadamente el 0.01% de los teléfonos, pero esto fue suficiente para un retiro del producto.

Para ayudar con el retiro, escribí una utilidad para que la base de datos leyera los datos no incorrectos para que pudieran salvarse y guardarse en otro archivo (normalmente, detectaría la corrupción y se cerraría).

En general, pasé unas 40 horas seguidas tratando de descubrir qué demonios estaba pasando, demostrando que no podría ser nuestro material y codificando la utilidad de recuperación de datos. Como el cliente estaba en Japón, el acceso al hardware físico no iba a suceder, así que tuve que hacer mucho de esto por teléfono.

Hace casi una década, uno de sus clientes de prueba me llamó a mi cliente de software de prueba de semiconductores y a mí. Parecía que el software de control de prueba que escribí pasó un lote completo de chips (casi 100,000), que luego se instalaron en los productos del cliente del fabricante de chips … y cada uno de ellos falló en las pruebas funcionales .

No estamos hablando de dinero en efectivo aquí, amigos. Si el fabricante de chips y la casa de pruebas hubieran decidido invocar daños, aún podría estar mimando en este momento en lugar de escribir esta respuesta.

Después de largas horas de depuración e investigación sudorosas [*], resultó que el programa de prueba del fabricante del chip se implementó y ejecutó en una versión más nueva del sistema operativo del probador (TOS) en el que mi código nunca había sido calificado. Una simple extensión de un byte en un campo de lo que pasó para la API de TOS fue la anulación de mi programa.

Afortunadamente, todas las partes involucradas decidieron abandonar el asunto, después de haber arreglado el código a su satisfacción (que incluía verificar la versión de TOS en ejecución … y chocar en voz alta si no era exactamente correcto). En cuanto a mí, fue otra marca dolorosa en mi trasero cada vez más tierno.

[*] Para aquellos que no han tenido la oportunidad de ponerse trajes de conejito de sala limpia, esas cosas pueden ponerse realmente calientes. El rugido constante del sistema de gestión del aire y los pitidos incesantes de los probadores cercanos tampoco ayudaron.

Fui contratista en la implementación empresarial de Lowes para iPhone. Este proyecto comenzó como un despliegue de más de 50 mil teléfonos. Es un perfil de ‘iPhone en el negocio’ de Apple, y para ser sincero, Lowes no se equivoca.

Desde el comienzo de la implementación, comencé a notar un colapso. El tiempo de giro es comprensible, pero cuando no hubo mejora del proceso. Hubo algunos problemas de calidad, pero el equipo fue bastante fuerte y dedicado.

El proceso de configuración fue impedido por el requisito de Lowes de tener una conexión VPN a un par de servidores AirWatch con su grupo de servicios de TI. A veces, AW puede ser peculiar. Si nunca ha parado uno, puede que no sepa qué buscar. Mi equipo se puso en posición de tener cientos de iPhones al día dentro y fuera del laboratorio, haciendo conexiones VPN en todo el país para empujar el perfil de configuración e instalar aplicaciones.

Todos los días hubo problemas de autenticación, tiempos de espera, fallos. La aplicación empuja todo de forma intermitente sin ninguna forma de determinar los problemas. No teníamos cosas interesantes como implementación.apple o configurador. Cada uno de sus teléfonos fue programado y verificado individualmente … como … por personas reales. Correcto. ahora puedo programar un teléfono y tener cientos expulsados ​​al final del desayuno sin desviaciones y sin ayuda.

Hacia la mitad del camino, la producción se había reducido. Nuestro reclamo fue el problema del servidor. Entonces, el vicepresidente de operaciones de Lowes, lo llamaré Martin, vino a inspeccionar el laboratorio y sobre voló una junta.

Si bien era evidente que no teníamos suficiente personal, los problemas con los servidores no eran ficticios. Su respuesta inmediata fue que estábamos usando eso como una excusa. Esa noche estaba en un estacionamiento de Walmart preguntándome si debería ser el tipo al que la gente llama “quién demonios cree este tipo que es”. Entonces, sin pedir permiso, respondí a un correo electrónico ejecutivo que recibí solo con fines informativos, y solicité una reunión informativa con Martin, nuestro CEO y directores para ver si no podía descifrar lo que acababa de suceder. Mis 10 años anteriores los pasé en defensa y tenía algo de experiencia en la realización de informes sobre por qué las cosas estaban tan jodidas. Esa noche preparé un informe que incluía imágenes tomadas con mi iPhone en los últimos 3 meses de problemas.

No solo un breve resumen de los problemas, sino que deslizo la cubierta de cada foto y video que recopilé. No estoy seguro de por qué decidí documentar tanto, pero lo tenía todo en una carpeta en mi cápsula del tiempo, y me llevó hasta la mañana siguiente completarlo y aún no había terminado. Era tan grande que no podía enviarse para su aprobación, así que no me molesté. Documenté lo que podría causar tejidos como los que teníamos, configuración incorrecta de la base de datos, sin equilibrio de carga, etc.

Comencé el resumen y supe lo que se avecinaba, suposiciones de que no podía haber tantos problemas intermitentes para estar tan atrasados ​​… así que revisé diapositiva tras diapositiva, viendo cada video de principio a fin, hasta que él pudo ver más. . Luego procedí a delinear lo que (yo) sospechábamos que eran los problemas. Sin pausa, llama a alguien y le indica que lleve un equipo de AirWatch a sus instalaciones para hacer una visita al grupo.

No solo los servidores no tenían carga equilibrada y no se habían mantenido … sin embargo, algunos de ellos se desconectaron debido a una tormenta eléctrica y nunca se volvieron a conectar.

Mi CEO (de clientes) me dejó leer un poco de tráfico de mensajes en su teléfono que confirmó casi todo lo que había dicho, excepto que nunca predije el problema de la eliminación de electrones.

Los cheques fueron escritos, para aumentar el tiempo extra, se elogiaron … y ese Lowes SVP era un tipo muy bueno para conversar.

Lo peor de lo que fui “responsable” (y por “responsable”, quiero decir que era el extremo puntiagudo del palo en el sitio cuando se fue al sur), fue una interrupción que afectó la administración del servidor (secuencias de comandos, cumplimiento de auditoría, parches de aprovisionamiento de servidores, etc.) para 2 grandes centros de datos debido a un error extraño al pasar de una versión específica de HP Server Automation a otra cuando se ejecuta en un hardware Sun específico en una versión específica de SunOS.

Si estaba actualizando de 6.5.1.x a 7.5 (estábamos), y estaba ejecutando en una máquina de la serie T2000 (la arquitectura de Niagara – estábamos), y estaba en SunOS 10 actualización 3 (sí otra vez), y si usaba Oracle 10.2.0.2 (sí), el actualizador copiaba las primeras 50,000 líneas en una tabla de la base de datos, olvidaba dónde estaba y comenzaba de nuevo. Hasta que se quedó sin espacio en disco.

Lo malo fue que Ingeniería sabía que esto podía suceder, pero no le había contado a nadie en Soporte o Servicios Profesionales (donde trabajaba).

Derribó su infraestructura de administración durante una semana y media en lugar de dos días (la interrupción planificada de la actualización) y retrasó varias semanas las ventanas de mantenimiento para varios miles de máquinas.

More Interesting

¿Cuáles son los 4 componentes más importantes de una aplicación web desde la perspectiva de un desarrollador?

¿Cuándo es apropiada una base de datos sin esquema?

¿Cuál es la mejor manera de desarrollar una aplicación web Java para crear formularios dinámicos y recuperarlos de una base de datos?

¿Qué es una aplicación web en tiempo real?

¿Qué sitios web o empresas son mejores para contratar desarrolladores de PHP?

¿Cuál es el proceso de pensamiento que uno debería tener antes de desarrollar un foro web?

¿Cuál es el mejor entre Laravel y CakePHP en términos de creación de aplicaciones web de bases de datos en línea?

¿Cuál es el mejor sistema de votación de ideas web?

Cómo leer datos de una aplicación web y colocarlos en una aplicación usando Blueprism

Quiero poder crear aplicaciones web / híbridas. Estoy listo para profundizar y aprender. ¿Son las tecnologías que planeo aprender una buena elección? Leer detalles.

¿Cómo crear un álbum de fotos creando una aplicación web como http://milkbooks.com, http://shutterfly.com http://blurb.com? Qué tecnologías se pueden usar para crear esta aplicación

¿Puedo crear una aplicación basada en web usando PHP?

Cómo aprender a implementar mi aplicación web en un entorno de producción y configurar una infraestructura escalable

¿Desarrollar aplicaciones era una mala idea? Llevo tres meses y no he gastado dinero, pero me ha llevado mucho tiempo desarrollarlo y solo han ganado 81 centavos en ingresos publicitarios.

¿Cuál es el mejor reemplazo para Google Moderator?