Многие сайты измеряют время формирования странички, хотя на самом деле надо измерять время у пользователя. Тут рассказывается как это делать, и почему доставка страничек может занимать 10 секунд, при ping 100ms
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)Ontico
Многим известна проблема исчерпания адресного пространства IPv4, из года в год делаются доклады о том, что адреса кончаются, кончаются, да никак не кончатся. На этом фоне польза от внедрения IPv6 кажется абсолютно неочевидной.
В докладе пойдет речь о причинах неизбежности прихода и массового внедрения IPv6 вне зависимости от судьбы адресного пространства IPv4, с описанием как пользы от использования Dual Stack, так и возникающих рисков.
Собрание сообщества SPb Linux User Group 2017.02.22.
Слегка переработанный доклад с Highload++ 2016
https://spblug.org/
https://vscale.io/
https://selectel.com/
Многие сайты измеряют время формирования странички, хотя на самом деле надо измерять время у пользователя. Тут рассказывается как это делать, и почему доставка страничек может занимать 10 секунд, при ping 100ms
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)Ontico
Многим известна проблема исчерпания адресного пространства IPv4, из года в год делаются доклады о том, что адреса кончаются, кончаются, да никак не кончатся. На этом фоне польза от внедрения IPv6 кажется абсолютно неочевидной.
В докладе пойдет речь о причинах неизбежности прихода и массового внедрения IPv6 вне зависимости от судьбы адресного пространства IPv4, с описанием как пользы от использования Dual Stack, так и возникающих рисков.
Собрание сообщества SPb Linux User Group 2017.02.22.
Слегка переработанный доклад с Highload++ 2016
https://spblug.org/
https://vscale.io/
https://selectel.com/
Apache Kafka and stream processing peculiarities [ru]Vsevolod Solovyov
This is a presentation about our try at an architecture "Turning the database inside out" by Martin Kleppman https://www.youtube.com/watch?v=fU9hR3kiOK0
I think it's more meaningful to watch a talk https://www.youtube.com/watch?v=d5_fbt5x9yc because the slides were created for talk, not for separate viewing
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...Ontico
Чтобы быстро двигаться, надо быстро двигаться :-)
Скоростная разработка продукта невозможна без непрекращающегося выкатывания свежих изменений в боевое окружение. Именно это позволяет Ultimate-Guitar оставаться #1 world's guitar service.
Когда-то давным-давно мы приняли для себя, что "мы движемся очень быстро и иногда из-за этого что-то ломаем. Недоставленный пользователям продукт/непроверенная гипотеза хуже, чем временная неработоспособность части сервиса. Поэтому мы убираем преграды между новым кодом и продакшном: не тратим время ни на тестирование, ни на строгий релиз-менеджмент".
Многие возникающие проблемы касаются только обслуживания (датацентр, OS, каналы) и мониторинг, естественно, необходим. Ну, а раз уж у нас есть мониторинг, то давайте считать систему единым целым, которая может выходить из строя по различным причинам, одной из которых является ошибка в коде. Это привело нас к идее использовать мониторинг вместо тестирования. К чему это привело, почему мы любим Anturis, Graylog, Grafana, что главное в деплое - это быстрый откат и другие прелести управления звездолётом Ultimate-Guitar с дневным населением больше Москвы на скорости 10 деплоев/час - обо всё этом пойдёт речь в этом докладе:
- Про скорость и цену быстрого развития (Innovation Costs).
- Холакратия в бранчах, "сам себе релиз-инженер", ответственность и честность.
- Скорость отката > скорость деплоя.
- Как умер QA или демоны с tail и Graylog.
- Когда не нужны микросервисы: успеть за 30 секунд, медленный Mercurial и шустрое комбо Git + Capistrano + Ansible.
- Бесполезные фичи, бритва Оккама и пользователи, которые на самом деле любят изменения :-)
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузкиtfmailru
Почта@Mail.Ru и главная страница Mail.Ru — очень высоконагруженные сервисы. Суточная аудитория — 20 млн человек, количество хитов в день на динамику — более 500 млн. Я хочу рассказать вам о том, как мы выдерживаем такие нагрузки, посредством каких технологий, как мы к ним пришли и что получили в результате.
In this talk, I will tell you about Vapor and will share our successful experience of moving from regular AWS EC2 servers to AWS Lambda and how everything changed after the appearance of Lambda on our project.
- When serverless architecture is the best choice.
- Overview Vapor - a platform for deploying and managing Laravel applications in AWS Lambda from Laravel.
- Our experience of migrating to Lambda, difficulties, best practices.
- How we predicted the cost and how much we pay in fact.
- Ways to optimize costs.
Мы в Avito не так давно начали использовать Golang, но он уже успел занять важное место в различных частях проекта. В докладе мы расскажем о том, какие задачи нам помогает решать Go, почему выбор пал именно на этот язык, с какими подводными камнями мы столкнулись, и как их обходили. В частности поговорим про:
• Сервисы. Как мы начали использовать Go для разработки микросервисов, как это сказалось на их поддержке, а также отдельно расскажем про “шаблон сервиса”, который мы используем.
• Поиск. Как мы с помощью Go мы реализовали RtIndexer для обновления Sphinx Rt индексов в кластере из множества машин (поиск по активным объявлениям), который устойчиво работает с отставанием не более 10 секунд при нагрузке до 1000 rps.
• Автоматизацию тестирования. Как мы пишем тестовые сервисы и API на Go. Подробней остановимся на использовании общих моделей тел запросов и ответов для отправки и получения, использовании горутин как воркеров для обработки очереди.
How to Successfully Engage Your Event Attendees -
Creating a memorable experience will elevate your event from something two dimensional to a 3D experience.
In this post, we want to drill down on how to successfully engage your event guests- during, before and after an event.
Mylanda Price is seeking long term employment utilizing her skills and abilities. She has over 10 years of experience in healthcare roles including as an EKG Technician, Nursing Assistant, Patient Care Technician, Phlebotomist, and Medical Assistant. Her resume highlights her responsibilities in each role such as performing EKGs, assisting nurses, taking vitals, blood draws, and front office duties. She has certifications in Phlebotomy, Nursing Assistance, and Medical Assisting and expects to complete her Bachelor's degree in Applied Science soon.
La Tierra es el tercer planeta del sistema solar y el mayor de los planetas interiores, se encuentra en la escosfera que rodea al sol y tiene las condiciones necesarias para la vida. Es el único planeta que tiene vida y agua en su superficie.
El documento describe los elementos principales de la interfaz de usuario de Adobe Flash CS3. Explica que la interfaz ha sido renovada y es más fácil de usar. Luego detalla los menús principales como Archivo, Edición, Ver e Insertar y sus funciones clave como crear y abrir archivos, editar objetos, moverse entre fotogramas y agregar nuevos objetos. También cubre otros menús como Modificar, Texto, Control y Ayuda y sus funciones relacionadas con transformar gráficos, editar texto, reproducir la película y acceder a
Apache Kafka and stream processing peculiarities [ru]Vsevolod Solovyov
This is a presentation about our try at an architecture "Turning the database inside out" by Martin Kleppman https://www.youtube.com/watch?v=fU9hR3kiOK0
I think it's more meaningful to watch a talk https://www.youtube.com/watch?v=d5_fbt5x9yc because the slides were created for talk, not for separate viewing
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...Ontico
Чтобы быстро двигаться, надо быстро двигаться :-)
Скоростная разработка продукта невозможна без непрекращающегося выкатывания свежих изменений в боевое окружение. Именно это позволяет Ultimate-Guitar оставаться #1 world's guitar service.
Когда-то давным-давно мы приняли для себя, что "мы движемся очень быстро и иногда из-за этого что-то ломаем. Недоставленный пользователям продукт/непроверенная гипотеза хуже, чем временная неработоспособность части сервиса. Поэтому мы убираем преграды между новым кодом и продакшном: не тратим время ни на тестирование, ни на строгий релиз-менеджмент".
Многие возникающие проблемы касаются только обслуживания (датацентр, OS, каналы) и мониторинг, естественно, необходим. Ну, а раз уж у нас есть мониторинг, то давайте считать систему единым целым, которая может выходить из строя по различным причинам, одной из которых является ошибка в коде. Это привело нас к идее использовать мониторинг вместо тестирования. К чему это привело, почему мы любим Anturis, Graylog, Grafana, что главное в деплое - это быстрый откат и другие прелести управления звездолётом Ultimate-Guitar с дневным населением больше Москвы на скорости 10 деплоев/час - обо всё этом пойдёт речь в этом докладе:
- Про скорость и цену быстрого развития (Innovation Costs).
- Холакратия в бранчах, "сам себе релиз-инженер", ответственность и честность.
- Скорость отката > скорость деплоя.
- Как умер QA или демоны с tail и Graylog.
- Когда не нужны микросервисы: успеть за 30 секунд, медленный Mercurial и шустрое комбо Git + Capistrano + Ansible.
- Бесполезные фичи, бритва Оккама и пользователи, которые на самом деле любят изменения :-)
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузкиtfmailru
Почта@Mail.Ru и главная страница Mail.Ru — очень высоконагруженные сервисы. Суточная аудитория — 20 млн человек, количество хитов в день на динамику — более 500 млн. Я хочу рассказать вам о том, как мы выдерживаем такие нагрузки, посредством каких технологий, как мы к ним пришли и что получили в результате.
In this talk, I will tell you about Vapor and will share our successful experience of moving from regular AWS EC2 servers to AWS Lambda and how everything changed after the appearance of Lambda on our project.
- When serverless architecture is the best choice.
- Overview Vapor - a platform for deploying and managing Laravel applications in AWS Lambda from Laravel.
- Our experience of migrating to Lambda, difficulties, best practices.
- How we predicted the cost and how much we pay in fact.
- Ways to optimize costs.
Мы в Avito не так давно начали использовать Golang, но он уже успел занять важное место в различных частях проекта. В докладе мы расскажем о том, какие задачи нам помогает решать Go, почему выбор пал именно на этот язык, с какими подводными камнями мы столкнулись, и как их обходили. В частности поговорим про:
• Сервисы. Как мы начали использовать Go для разработки микросервисов, как это сказалось на их поддержке, а также отдельно расскажем про “шаблон сервиса”, который мы используем.
• Поиск. Как мы с помощью Go мы реализовали RtIndexer для обновления Sphinx Rt индексов в кластере из множества машин (поиск по активным объявлениям), который устойчиво работает с отставанием не более 10 секунд при нагрузке до 1000 rps.
• Автоматизацию тестирования. Как мы пишем тестовые сервисы и API на Go. Подробней остановимся на использовании общих моделей тел запросов и ответов для отправки и получения, использовании горутин как воркеров для обработки очереди.
How to Successfully Engage Your Event Attendees -
Creating a memorable experience will elevate your event from something two dimensional to a 3D experience.
In this post, we want to drill down on how to successfully engage your event guests- during, before and after an event.
Mylanda Price is seeking long term employment utilizing her skills and abilities. She has over 10 years of experience in healthcare roles including as an EKG Technician, Nursing Assistant, Patient Care Technician, Phlebotomist, and Medical Assistant. Her resume highlights her responsibilities in each role such as performing EKGs, assisting nurses, taking vitals, blood draws, and front office duties. She has certifications in Phlebotomy, Nursing Assistance, and Medical Assisting and expects to complete her Bachelor's degree in Applied Science soon.
La Tierra es el tercer planeta del sistema solar y el mayor de los planetas interiores, se encuentra en la escosfera que rodea al sol y tiene las condiciones necesarias para la vida. Es el único planeta que tiene vida y agua en su superficie.
El documento describe los elementos principales de la interfaz de usuario de Adobe Flash CS3. Explica que la interfaz ha sido renovada y es más fácil de usar. Luego detalla los menús principales como Archivo, Edición, Ver e Insertar y sus funciones clave como crear y abrir archivos, editar objetos, moverse entre fotogramas y agregar nuevos objetos. También cubre otros menús como Modificar, Texto, Control y Ayuda y sus funciones relacionadas con transformar gráficos, editar texto, reproducir la película y acceder a
El documento describe la importancia de proteger los suelos fértiles del Ecuador y las técnicas clave para prevenir su degradación, como sembrar árboles en laderas, cercos vivos, drenar campos de riego, evitar tala y quema de árboles, rotar cultivos, y evitar productos tóxicos y desechos sólidos.
Larysa Likk has worked as a chemical lab manager for 10 years but her dream was to create art. She has now pursued her dream of being an artist and shares information about her digital artworks on her blog at Larysa11.blogspot.com.
El documento describe las actividades diarias y lugares importantes en la vida de una niña llamada Catalina en la ciudad de Cuenca, incluyendo donde vive, estudia, come, juega, aprende, duerme y más. También menciona a un amigo llamado Kevin con quien juega y practica karate, y los diferentes temas de los libros que le gusta leer.
El documento describe los principales problemas ambientales en Ecuador, incluyendo la contaminación de aguas por desechos humanos, la contaminación y empobrecimiento del suelo debido a la deforestación y malas prácticas agrícolas, y la contaminación del aire por emisiones industriales y de transporte. Propone soluciones como educar a la población, optimizar recursos a través del reciclaje, y evitar el uso de plaguicidas y sustancias tóxicas que contaminan el agua y producen enfermedades.
Ponencia para Universidad de Leon año 2012: Dowshifitng o Reducción de marcha es un comportamiento social o tendencia en la que los individuos viven vidas más simples para escapar de la carrera de ratas del materialismo obsesivo y reducir la tensión, stress y los trastornos psicológicos que la acompañan. Se hace hincapié en encontrar un equilibrio mejor entre el ocio y el trabajo, y centra los objetivos de la vida en la realización personal y la construcción de relaciones en lugar del consumismo y el éxito económico. (Fuente Wikipedia)
“Hay espacio para una nueva fórmula empresarial donde se prime la independencia de los colaboradores. Un movimiento colectivo revolucionario que empieza con una revolución interior e individual de las personas. Un lugar donde el cliente y el proyecto asuman el protagonismo dejando de lado el concepto ya poco realista de la marca. Un espacio de convivencia donde los colaboradores puedan creer en unos valores consensuados y puedan optar para ser ellos mismos los agentes del cambio. Este espacio es la “no-empresa”, un lugar donde diferentes profesionales trabajan de forma trasversal en proyectos, unos “artesanos” que se dedican en aportar un valor concreto y no solo intangible a los clientes. Un lugar de confianza, un lugar de transparencia, un lugar de consenso y sobre todo un lugar de aprendizaje.... No existe una formula univoca para salir de situaciones laborales complicadas, donde mucha gente vive en una dictadura. La dictadura de la nómina, donde nos medimos con el parámetro más vulgar posible: el dinero.
This memo was written as part of an assignment for my technical writing course. Our objective was to write a memo to our boss, asking for tuition reimbursement for the course and show them how the course would help their business.
Growing Veterans is requesting a $44,000 grant to support their main farm, peer-mentoring program, outposts and expansion projects, and provide health coverage for full-time employees. Their mission is to empower veterans through sustainable agriculture, peer support, and community involvement to combat homelessness, isolation, depression, and suicide. Funding would cover operational costs, supplies, equipment, and healthcare to further their mission of successfully reintegrating veterans into their communities.
Competencias Conversacionales para el Marketing: Liderando las relaciones y ...Synergo!
Ponencia para Universidad de Valencia del 15 de Mayo 2012: En un entorno de crisis, altamente inestable es fundamental
hacerse preguntas y buscar respuestas. Estamos en un mundo “impermanente”, luchando en un campo de batalla inmenso con pocos recursos, sin ninguna regla… esto le llaman Crisis. Indice Ponencia: Enfoque sistémico
La impermanencia
El líder observador
La escucha
El proyecto ilusionante
Los arquetipos del ser
Conversaciones Eficientes
Dinámica de Grupo
Este documento presenta un programa superior de coaching y desarrollo directivo de 50 horas. El programa busca desarrollar competencias de coaching en los participantes para aplicarlas en su labor directiva, desarrollar modelos de intervención para la resolución de problemas de gestión, y multiplicar la efectividad y resultados de los participantes en sus funciones como coach directivo. El programa cubre diversos temas relacionados con el coaching, liderazgo, gestión del tiempo, comunicación, y trabajo en equipo.
Este documento ofrece consejos sobre cómo buscar empleo después de completar los estudios. Recomienda explorar diferentes fuentes de empleo, preparar un resumen y carta de presentación, y conocer detalles sobre entrevistas. Explica que solo el 20% de los empleos se anuncian públicamente, mientras que el 80% restante se encuentra a través de contactos y agencias. Enfatiza la importancia de la presentación personal, perseverancia y mantener una actitud positiva durante el proceso de búsqueda de empleo.
El auge de la psicología humanista puso sobre la mesa las tareas pendientes en la gestión del capital humano, las organizaciones se dieron cuenta que los trabajadores eran mucho más que mano de obra y que la productividad tenía que ver justamente con potenciar las capacidades intelectuales y emocionales de cada uno de los individuos que conforman las organizaciones
Oicon Perú ofrece servicios de consultoría empresarial orientados a la gestión humana y de procesos para mejorar resultados. Ofrecen coaching ejecutivo, selección de personal, capacitación y verificaciones, con enfoque en aumentar productividad mediante el desarrollo del talento humano.
Este documento proporciona recomendaciones para configurar el espacio de trabajo y la postura corporal para trabajar de forma saludable con una computadora. Recomienda ajustar la altura de la silla y el escritorio para mantener una postura natural, colocar el teclado, ratón y monitor a la altura de los ojos para evitar estiramientos, y tomar descansos periódicos para prevenir lesiones musculoesqueléticas.
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Ontico
1. Многие коллективы разработчиков пытаются измерять скорость отклика сайта и пишут, например, “эта страничка сформирована за 300 ms”.
2. Проблема в том, что 300 ms — это "у нас на сервере". Пользователю, на самом деле, все равно, сколько это "у вас на сервере”, ему надо “сколько у меня в браузере”. В среднем по больнице, 300 ms на сервере с размером странички в 60-70 Кб, могут быть 2.5 секунды на клиенте.
3. Перед тем, как это лечить, надо это измерить. Есть 2 способа:
а. Navigation timing api, поддерживается сейчас много где, но не везде поддерживается одинаково, есть места, сложные для понимания и осмысления (тут много слайдов).
б. Можно взять tcpdump, в нем есть ACK ответов от клиентов, и измерять по ним. Есть Open Source soft (софт нап Насретдинов исан мной в Яндексе, есть договоренность его выпустить), который это делает. В tcpdump большой бонус в том, что можно понять, что происходит.
4. Что происходит в соединении, что такое rtt, как это влияет на latency. Как на это влияет cdn и вынесение всяких фронтендов ближе к пользователю.
5. Почему, вообще, бывает медленно, почему у пользователя может медленно работать wi-fi даже на широком и хорошем канале, уже не говоря про мобильный интернет.
6. Как влияют на скорость антивирусы и еще некоторая неведомая DPI херня (tm), которая делает так, что в советской России (а, возможно, во всем мире) https часто быстрее, чем http (и с чем, собственно, связано то, что на него куча компаний переходят).
Борьба с DDoS в хостинге - по обе стороны баррикад / Константин Новаковский (...Ontico
Доклад будет полезен тем, кто планирует организовывать защиту от DDoS-атак собственными силами. Отдельный акцент будет сделан на использовании open-source продуктов для обнаружения и блокирования внешних сетевых атак. Кроме этого, я поделюсь опытом организации автоматического обнаружения и предотвращения атак изнутри инфраструктуры (взломанные клиентские серверы, недобросовестные клиенты).
Сетевые аномалии – рано или поздно с ними сталкиваются все, кто так или иначе связан с созданием и эксплуатацией сетевых сервисов.
Природа сетевых аномалий и их проявления могут значительно варьироваться: потери пакетов, увеличение задержек, разрывы TCP-соединений. Но вне зависимости от своей природы сетевые аномалии требуют корректной и зачастую крайне оперативной диагностики.
В рамках доклада будут рассмотрены стандартные утилиты, такие как ping, traceroute, mtr, hping, а также области их применения. Самым значительным ограничением при использовании данных утилит является невозможность определения обратного пути пакета, что может значительно усложнить диагностику.
Также в докладе будут рассмотрены активные методы диагностики сетевых аномалий (Looking glass, RIPE Atlas, NLNOG RING, PlanetLab) и разработанный командой Qrator механизм определения обратного маршрута от любой заданной сети с использованием математического моделирования.
Сетевая диагностика: новый взгляд сквозь старые щели / Евгений Усков (Qrator ...Ontico
Сетевые аномалии – рано или поздно с ними сталкиваются все, кто так или иначе связан с созданием и эксплуатацией сетевых сервисов.
Природа сетевых аномалий и их проявления могут значительно варьироваться: потери пакетов, увеличение задержек, разрывы TCP-соединений. Но вне зависимости от своей природы сетевые аномалии требуют корректной и зачастую крайне оперативной диагностики.
В рамках доклада будут рассмотрены стандартные утилиты, такие как ping, traceroute, mtr, hping, а также области их применения. Самым значительным ограничением при использовании данных утилит является невозможность определения обратного пути пакета, что может значительно усложнить диагностику.
Также в докладе будут рассмотрены активные методы диагностики сетевых аномалий (Looking glass, RIPE Atlas, NLNOG RING, PlanetLab) и разработанный командой Qrator механизм определения обратного маршрута от любой заданной сети с использованием математического моделирования.
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Ontico
Технологии NFV идут вперед и никого уже нельзя удивить тем, что сетевые сервисы вместо специализированного оборудования запускают на обычных серверах с хорошей пропускной способностью. Мир уже привык к тому, что на сервере можно обрабатывать 100 Гбит сетевого трафика. Однако эти числа характерны только тогда, когда запускают единственный сервис на сервере, например, только коммутацию пакетов (vSwitch), только NAT, только балансировку нагрузки и т.п. Сейчас же появляется потребность в запуске нескольких сервисов на одной машине, выстраивать сложные pipeline, которые учитывают различные сетевые функции, ACL, L2, L3, QoS, интегрированных с виртуальными машинами и контейнерами.
Для этого в сообществах разрабатываются более сложные фреймворки по обработке сетевых сервисов, которые позволяют разбивать задачи на этапы (stage) — каждый со своей сложностью и временем обработки, автоматически распределять такие этапы по вычислительным мощностям, планировать обработку пакетов так, чтобы увеличить суммарную пропускную способность.
В докладе будет представлен сравнительный обзор таких фреймворков: Intel DPDK Packet Framework, FD.io, Open Dataplane, Open Virtual Network (от проекта Open vSwtich). Будут представлены числовые характеристики и рекомендованные сценарии применения. Также будет освещена интеграция с системами виртуализации.
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
Поговорим о том, почему это далеко не самая простая задача, и как следует разбираться с возникающими трудностями. Рассмотрим и покритикуем существующие решения. Научимся создавать свой собственный велосипед.
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...Mad Devs
Доклад с Highload ++ 2016 о том, как экономить трафик, собирая gps данные в службе такси
Slides from Highload++ 2016 on how to save the traffic on collection of GPS tracks in the taxi company
Автор: Андрей Минкин / Andrew Minkin
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Ontico
Когда Uber или Lyft потихоньку захватывают мир, все службы такси хотят себе такое же приложение.
Мы задумались о том, чтобы сделать у себя несколько вещей:
- Сделать карту, которая работает как в приложении Uber (показывать водителей рядом, которые катаются по городу, плавно заанимированные).
- Хранить маршрут, по которому ехал водитель во время заказа.
В этом докладе я хотел бы поделиться с вами о том, как мы реализовали список выше со стороны бэкенда и мобильных приложений. В качестве языка для реализации был выбран Go.
Поговорим о следующем:
- Как собираем треки с водительских приложений и как мы бережем интернет трафик у водителя.
- Реализация легковесного сетевого взаимодействия между приложением и бэкендом.
- Какие решения были использованы для того, чтобы добиться высокой производительности на бэкенде.
- Как обрабатываем и храним GPS-данные для истории.
- Как обрабатываем и в каком виде выдаем в клиентские приложения.
- Как работает анимация машинки в клиентских приложениях.
- Почему для реализации был выбран Go.
- Как мониторить и быть уверенным в том, что сервис работает.
«Сетевые протоколы для веб разработчика — выжимаем максимум» Гузель Рахимова
Автор: Александр Сербул, руководитель направления контроля качества и внедрений компании "1С-Битрикс".
Pасскажет об эффективной работе с сетевыми технологиями (tcp/ip, dns, tls, spdy, websockets, long polling, http 2.0) при разработке
Работа с геоданными в Go GDGNSK / Work with Geodata in GoMad Devs
Слайды с GDG DevFest Новосибирск про го, геоданные, ненависть к нод.жс и UDP.
Slides from GDG DevFest Novosibirsk about Go, geodata and hatred to Nod.js and UDP.
Автор: Андрей Минкин / Andrew Minkin
Similar to 2015-12-05 Анатолий Орлов - Скорость с доставкой до пользователя (20)
2015 12-05 Александр Шиповалов - Инструмент для тестирования Sikuli scriptHappyDev
This document provides an overview of SikuliX, an automation tool that uses image recognition to control and interact with graphical user interfaces. It describes the main classes in SikuliX including App, Region, Screen, Offset, Math, Similarity, and Pattern. Methods for these classes are also outlined for performing actions like opening applications, finding regions on the screen, mouse and keyboard input, and image matching.
2015-12-06 Артем Зиненко - Что делать, если браузеры клиентов действуют проти...HappyDev
This document discusses common browser vulnerabilities that can allow hackers to access user data. It covers topics like cross-site scripting (XSS), cross-site request forgery (CSRF), unvalidated redirects, clickjacking, and cross-origin resource sharing (CORS) configuration issues. The document provides examples of how these vulnerabilities can be exploited, such as hijacking user sessions after login or changing user account details without consent. Proper validation of user input and access controls are necessary to prevent unauthorized access to user data and accounts.
7. Первый байт быстрого* сервера
-500 500 1500 2500 3500
Новосибирск
Владивосток
Алматы
Киев
Астана
Екб
Стамбул
Минск
Анкара
Спб
Москва
50%
70%
90%
95%
8. Посл. байт быстрого* сервера (60kb)
0 500 1000 1500 2000 2500 3000 3500
Новосибирск
Киев
Алматы
Владивосток
Астана
Екб
Москва
Спб
Стамбул
Минск
Анкара
50%
70%
90%
95%
9. … наглая ложь, и статистика
• Не все браузеры поддерживают
– На мобилках только Chrome
• Считают разное
– firstPaintTime/msFirstPaint*
• Подвержено bias
10. До первого байта
0 200 400 600 800 1000 1200 1400
Chrome/Windows
Firefox/Windows
MSIE/Windows
Opera/Windows
Safari/Macintosh
YaBrowser/Windows
11. Особенности HTTPS
• Должно быть медленней
– время на handshake
• Первый байт быстрее
– aртефакт?
• Становится быстрее*
– What?!
*без НДС
23. TCP за 1 слайд
• rtt – время туда и обратно. ping ~ rtt.
• ACK – подтверждение доставки
• cwnd – сколько можно отослать без
подтверждения
24. Скорость доставки
• На каждые CWND пакетов нам
нужно rtt времени.
• cwnd = 10, rtt=100, 145kb/s
• cwnd = 100, rtt=50, 2900kb/s
• cwnd медленно растет, пока все
хорошо, сильно падает, когда
пакет теряется.
25. TCP - Summary
• Новейшие технологии 70-х
• Для деления канала, не для latency
• Для проводов
• Потеря -> congestion
33. Безумный пример
• Игнорируем cwnd, шлем все 40 пакетов каждую
1ms следующий.
• Получаем selective ack, досылаем то, что
потерялось.
• Страница на хорошем канале придет за 1-2 rtt, на
плохом будет хуже.
• Сейчас такое сделать нельзя* в QUIC можно
* внутри CDN примерно так все и ходит, cwnd
учитывается, но он запредельного размера.
34. Итоги
• Задержку доставки сервер делает сам
из-за ограничений протоколов
• Серебряной пули нет, но место для
оптимизаций есть.
• Делая оптимизации следите за
метриками Timing API и tcpdump
38. Пару слов о HTTP
• Новейший протокол 90-х
• Второй запрос в соединении = лишний rtt.
• Количество соединений ограничено.
• Фиксится SPDY/HTTP2
39. GPRS/Edge/LTE
• Первые два просто медленные с большим RTT
• сами разбираются ретрансмитами
(см. HARQ), может страдать Latency
• Ретрансмит внутри LTE выглядит для TCP как
самопроизвольное временное возрастание rtt.
Будет ли лишний ретрансмит от TCP?
• Мелкий декларируемый application window у
мобильников
40. QUIC
• Сейчас революционного ничего нет.
• Вытаскивает в user-space то, что сейчас
зашито в ядре
– Можно сделать разную политику передачи в
зависимости от user agent.
• Если вы пишите приложение под
iPhone/Android, то играться с протоколами
можно прямо сейчас.
Editor's Notes
Многие компании следят за скоростью формирования страниц.Многие ей гордятся и пишут на видном месте.Что же они измеряют?
По данным броузера 625ms != 430 ms
На предыдущей страничке написано серверное время которое пользователя на самом деле волнует мало.
Серверное время пригодно только для того, чтобы программисты выясняли кто круче.
Вопрос что мерять, неожиданно сложный на него нет однозначного ответа. Загрузка не атомарное событие, а очень даже сложный процесс. Одну циферку получить сложно.
Например когда вы загружаете войну и мир, у вас часто она загружается несколько минут, но читать вы можете сразу. Т.е. страничка юзабельна до полной загрузки.
На многих сайтах сразу грузится навигация, т.к. она в кэше, а контент грузится позже.
Для каждого конкретного сайта тем не менее можно найти консенсус, например для выдачи яндекса это прорисовка первого сниппета. Только это нельзя измерить.
Если из ваших инструментов только молоток все ваши проблемы похожи на гвозди.
На самом деле весь developer tools в JS не доступен.
Доступно то, что на экране.
Есть предложение мерять скорость java script на клиенте, загружать результаты обратно, и уже строить клиентские метрики.
Очевидно у клиентов, а не на вашем тестовом комьютере
Очень упрощено, много событий выкинуто, dns, tcp handshake.
Совсем не рассмотрено время загрузки ресурсов
Что из этого выбрать KPI для нашего сайта? Хотим одну цифру.
Одну цифру выбрать нельзя.
Доставка первого байта моментально отвечающего сервера
Доставка последнего байта моментально отвечающего сервера.
Чтобы не делать тестовый стенд, мы взяли какую-то не быструю страничку яндекса и вычли серверное время из результата.
Есть ложь, наглая ложь и статистика. То что вы получаете будет статистикой.
Нужно понимать что у вас смещенная выборка не со всех броузеров.
У вас два разных события отрисовки, которые конечно означают разное.
Смотрите какой охрененно быстрый броузер Safari. Разве мы не за это любим Apple?
Голосование:
Кто согласен что Apple делает самые крутые компы и софт?
А кто считает, что тут херня нарисована?
(правы люди проголосовавшие за второй пункт, Safari в основном находится в москве, и у интернет специалистов, у которых интернет быстрый)
handshake скорее всего считается за первый байт.
Тут понятная анимация т.к. все уже забыли что здесь нарисовано.
График требует осознания. По вертикали две точки, зеленая это время до первого байта, черная это время передачи.
По горизонтали номер запроса. Запросы сортированы по времени передачи.Из-за этого черные точки выстроились в линию.У 30% запросов время первого байта искусственно завышено. Зато потом документ приходит сразу.Ответ тут такой это разные системы DPI, вот такой явный эффект это антивирусы.
(но почему-то https все равно быстрее даже по последнему байту).Антивирусы (подтверждено),
DPI (не подтверждено, не будет заметно так явно как антивирусы т.к. время загрузки не нулевое). Теория про 443 порт вне фильтров. Ссылка про парсинг DPI на карте.
Сервер знает о доставке всех пакетов.
Ему приходит ACK с этой информацией.
Даже для тех у кого нет Timing API
Тулза разбирающая tcpdump-ы в статистику. open source версия многое отломано.
В яндексе работала в mapreduce environment, поддержка https недоделана, отчеты временно выкинуты.
Не совсем законченный продукт
(картинка)Есть nginx, с одной стороны от него пользователь, с дугой стороны какой-то backend.
Снимем на nginx tcpdump, с обоих интерфейсов внешнего и внутреннего, у нас есть request_id и мы умеем приклеивать внешний запрос к внутреннему.
Попробуем понять измерить “время до последнего байта” по tcpdump, а потом понять, что происходит все это время.
Основная задержка которая происходит при доставке происходит на вашем сервере и заключается в том что сервер придерживает пакеты.
Серьезно. Вы оптимизируете ваш серверный код на 100ms и это круто, а Ваш сервер сервер задерживает пакеты на 500ms. Нахрена он это делает?
Для того чтобы понять почему именно надо маленько знать как tcp устроен.
Наверное сложно в 1 слайде рассказать как работает TCP, по хорошему наверное нужно 10 слайдов, рассказывать не хочется т.к. будет скучно тем кто знает.
Поэтому расскажу 3 термина которые нужны для понимания.
1) Rtt время туда и обратно. Ограниченно скоростью света и тормозами девайсов.
1) Другая сторона шлет нам пакетики в ответ на получение наших пакетиков. Не на каждый пакет. Если бы мы ждали подтверждение предыдущего пакета перед посылом следующего то мы могли бы посылать 1000/rtt пакетов в секунду. Пакет примерно 1450 байт. Т.е. При ping=100 мы бы могли протолкнуть максимум 14.5кб в секунду. Поэтому мы ждем подтверждения не каждого пакета.
2) Cwnd сколько пакетов можно послать без подтверждения. Если мы на широком канале(например мы сервер) то на каждые CWND пакетов мы тратим один rtt.
Протокол старый сделан в 70-х.
Он универсальный = потрясающе хреновый для всего
Вообще он сделан для того чтобы поровну поделить канал в не очень быстрой сети
Т.е. он пихает пакетики увеличивая скорость и считает что если пакетик потерялся значит скорость превышена. Про ситуации, что пакетик потерялся просто так, а не из-за скорости данный протокол не верит. Ну т.е. правда, в медных проводах такого почти не происходит.
Оптимизирован для thruput(притом группового) не для latency ни разу.
Вот так работат wifi кто не знал, многие люди считают, что он ходит сквозь стены. Да ходит но только где нет металла, а там либо арматура либо сетка.
Тут постановка проблемы, когда мы складываем проводную сеть на rtt100 с потерей 0% и wifi c rtt1 с потерей 5% мы получаем канал с потерей 5% и rtt=100
В первую очередь блокирующий размер, неблокирующий можно не уменьшать.
CDN полезны даже для динамики, т.к. Рвут канал на два независимых.
Идея для стартапа – wifi роутер с прозрачным proxy, на обычный роутер такую прошивку поставить нельзя, там памяти столько что хватит на одну картинку.
Если кто будет делать сначала почитайте про Bufferbloat чтобы понять что проблема не такая простая.
Т.е. когда к вам кто-то пришел можно ему послать 10 пакетов = 14.5кб, потом надо ждать подтверждение.
Откуда взялось число 10? Оно какое-то подозрительно круглое для того, чтобы быть научно обоснованным.
Ну и наврядли мы мы серьезно думаем, что оно одинаково хорошо для человека на gprs, и на 1Gb оптике, в соседней комнате и на другом материке?
Краткая история возникновения, там сначала было 2, потом было 4, а потом решили сделать 10. Экспоненциальный прогресс на лицо.
Все это приводит к тому, что отдавая морду в 60кб нам нужно ждать 3-4 rtt, т.е. 300-500ms
Результаты экспериментов initial cwnd=20. Вообще для морды это помогло, для поиска результаты были странные что-то перетряхнуло, где-то стало быстрее где-то медленней.
Замечу что это initial cwnd, т.е. Если его указать неправильно TCP все равно его приведет в нужное состояние.
Прямого контроля над cwnd у нас нет, если только вы не готовы в ядро залезть. Учитывая что cwnd надо скорее всего контролировать по разному в зависимости от user agent
Например сайт с 60 ресурсами типа картинок и css при ограничении в 6 соединений влетает на 10rtt (проверить правда ли про 6 в хроме).
Правда это уже не очень важно т.к. страничка скорее всего отобразится и так, но на старте с css и прочим все равно будет веселуха.
Вот почему много, кто предпочитает все инлайнить, например google, даже для SPDY почему-то.
Про LTE я на самом деле мало знаю, но в отличие от wifi там есть встроенные ретрансмиты для данных уровнем ниже чем TCP.
Мне кажется что когда протокол под TCP делает ретрансмиты то для TCP это выглядит как рандомное изменение Latency
От чего “современный протокол TCP(tm)” должен херачить тоннуб лишних ретрансмитов, которые засирают и так неширокий мобильный канал.
Я слышал об оборудовании которое TCP пересобирает для мобильщиков но точно не знаю.
Тут вполне нормально реализовать какой-нибудь machine learning который в зависимости от типа клиента по разному ему выплевывает пакетики.
Идеальная ситуация что мы например посылаем всю страницу сразу, но с перерывами в 2-5 ms между пакетиками, чтобы они успевали пролезать в повод.
Важное замечание что если вы пишите мобильное приложение, то вы контролируете клиентскую сторону тоже, можете прямо сейчас пользоваться.