For one of our projects, we needed to improve the current content delivery system for terminals. In this talk, I will share our experience in building an efficient data replication system for thousands of terminals. We will touch on architecture decisions and tradeoffs, technologies that we used, and a bit of load testing.
Spoiler: We didn't use Kafka.
Peter Zaitsev "18 ways to fix MySQL bottlenecks"Fwdays
The presentation will be focused on dealing with an unexpected high traffic event as it is happening. We will address the impact a traffic spike can have on your database – from poor query response time to replication lag issues – and provide actionable tips and tricks. We will talk about how to bring your database under control, earn performance gains, and delight your customers.
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Ontico
Запускаем сервер (БД, Web-сервер или что-то свое собственное) и не получаем желаемый RPS. Запускаем top и видим, что 100% выедается CPU. Что дальше, на что расходуется процессорное время? Можно ли подкрутить какие-то ручки, чтобы улучшить производительность? А если параметр CPU не высокий, то куда смотреть дальше?
Мы рассмотрим несколько сценариев проблем производительности, рассмотрим доступные инструменты анализа производительности и разберемся в методологии оптимизации производительности Linux, ответим на вопрос за какие ручки и как крутить.
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...Ontico
The new PL profiler allows you to easily get through the dark barrier, PL/pgSQL puts between tools like pgbadger and the queries, you are looking for.
Query and schema tuning is tough enough by itself. But queries, buried many call levels deep in PL/pgSQL functions, make it torture. The reason is that the default monitoring tools like logs, pg_stat_activity and pg_stat_statements cannot penetrate into PL/pgSQL. All they report is that your query calling function X is slow. That is useful if function X has 20 lines of simple code. Not so useful if it calls other functions and the actual problem query is many call levels down in a dungeon of 100,000 lines of PL code.
Learn from the original author of PL/pgSQL and current maintainer of the plprofiler extension how you can easily analyze, what is going on inside your PL code.
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)Ontico
Как грамотная архитектура и правильное планирование запросов позволяет небольшим количеством серверов достичь высокой производительности при раздаче видеоконтента.
В докладе будет рассказано об опыте развития проекта видеоплатформы, о проблемах, которые возникли на пути, и как нам удается раздавать 200 Гбит меньше чем 10 серверами.
Тезисы - http://www.highload.ru/2015/abstracts/1872.html
Troubleshooting common oslo.messaging and RabbitMQ issuesMichael Klishin
This talk focuses on troubleshooting of common oslo.messaging and RabbitMQ issues in OpenStack environments. Co-presented at the OpenStack Summit Austin in April 2016.
Peter Zaitsev "18 ways to fix MySQL bottlenecks"Fwdays
The presentation will be focused on dealing with an unexpected high traffic event as it is happening. We will address the impact a traffic spike can have on your database – from poor query response time to replication lag issues – and provide actionable tips and tricks. We will talk about how to bring your database under control, earn performance gains, and delight your customers.
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...Ontico
Запускаем сервер (БД, Web-сервер или что-то свое собственное) и не получаем желаемый RPS. Запускаем top и видим, что 100% выедается CPU. Что дальше, на что расходуется процессорное время? Можно ли подкрутить какие-то ручки, чтобы улучшить производительность? А если параметр CPU не высокий, то куда смотреть дальше?
Мы рассмотрим несколько сценариев проблем производительности, рассмотрим доступные инструменты анализа производительности и разберемся в методологии оптимизации производительности Linux, ответим на вопрос за какие ручки и как крутить.
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...Ontico
The new PL profiler allows you to easily get through the dark barrier, PL/pgSQL puts between tools like pgbadger and the queries, you are looking for.
Query and schema tuning is tough enough by itself. But queries, buried many call levels deep in PL/pgSQL functions, make it torture. The reason is that the default monitoring tools like logs, pg_stat_activity and pg_stat_statements cannot penetrate into PL/pgSQL. All they report is that your query calling function X is slow. That is useful if function X has 20 lines of simple code. Not so useful if it calls other functions and the actual problem query is many call levels down in a dungeon of 100,000 lines of PL code.
Learn from the original author of PL/pgSQL and current maintainer of the plprofiler extension how you can easily analyze, what is going on inside your PL code.
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)Ontico
Как грамотная архитектура и правильное планирование запросов позволяет небольшим количеством серверов достичь высокой производительности при раздаче видеоконтента.
В докладе будет рассказано об опыте развития проекта видеоплатформы, о проблемах, которые возникли на пути, и как нам удается раздавать 200 Гбит меньше чем 10 серверами.
Тезисы - http://www.highload.ru/2015/abstracts/1872.html
Troubleshooting common oslo.messaging and RabbitMQ issuesMichael Klishin
This talk focuses on troubleshooting of common oslo.messaging and RabbitMQ issues in OpenStack environments. Co-presented at the OpenStack Summit Austin in April 2016.
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»Tanya Denisyuk
"World of Tanks — MMOG с зарегистрированным пиковым онлайном превышающем 1 миллион пользователей. Авторитарная архитектура сервера (весь расчет физического мира происходит на стороне сервера и затем транслируется подклчюенным клиентам) позволяет эффективно защититься от нечестной игры, но вместе с тем создает значительную дополнительную нагрузку на серверную инфраструктуру.
В докладе рассказывается об инженерных решениях, принятых на разных стадиях разработки игры, их последствиях, и о том, как в конечном итоге организован географически распределенный «кластер кластеров» World of Tanks."
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...Ontico
NoSQL key-value — популярное решение, но какие преимущества и какой ценой оно даёт?
Скорость? Возможно, но ценой урезанного, по сравнению с реляционными базами данных, функционала. Но данные и приложение всё еще разделены сетевым стеком, а иногда и десятками километров оптоволокна. В крупном проекте, работающем на десятках или сотнях серверов нельзя обеспечить высокую скорость доступа к данным с каждой машины. Если хранилище достаточно быстро, то время обработки запроса окажется значительно меньше затрат на работу с сетью, а производительность приложения будут определять сетевые задержки и частота запросов к БД.
В проекте Облако@Mail.Ru мы ушли от использования чистых key-value хранилищ в пользу микросервисов на Tarantool, что позволило свести общение с хранилищем данных к минимуму.
Да, Tarantool — это еще одна NoSQL база данных, но еще это полноценный сервер приложений. Приложений, расположенных рядом с данными!
Я расскажу, как мы пришли к использованию микросервисов на основе Tarantool. Приведу несколько сценариев использования, которые работают в Облаке и могут быть легко адаптированы для другого web-проекта. Вы узнаете о компонентах, которые разработаны и опубликованы нами уже сейчас, и о дальнейших планах развития.
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Ontico
В этом докладе я собираюсь поделиться нашим опытом обхода испанского интернета. Мы поставили перед собой задачу обойти около 600 тысяч веб-сайтов в зоне .es с целью сбора статистики об узлах и их размерах. Я расскажу об архитектуре робота, хранилища, проблемах, с которыми мы столкнулись при обходе, и их решении.
Наше решение доступно в форме open source фреймворка Frontera. Фреймворк позволяет построить распределенного робота для скачивания страниц из Интернета в больших объемах в реальном времени. Также он может быть использован для построения сфокусированных роботов для выкачивания подмножества заранее известных веб-сайтов.
Фреймворк предлагает: настраиваемое хранилище URL документов (RDBMS или Key Value), управление стратегиями обхода, абстракцию транспортного уровня, абстракцию модуля загрузки.
Доклад построен в увлекательной форме: описание проблемы, решение и проблемы, которые возникли в ходе разработки решения.
[Open Infrastructure & Cloud Native Days Korea 2019]
커뮤니티 버전의 OpenStack 과 Ceph를 활용하여 대고객서비스를 구축한 사례를 공유합니다. 유연성을 확보한 기업용 클라우드 서비스 구축 사례와 높은 수준의 보안을 요구하는 거래소 서비스를 구축, 운영한 사례를 소개합니다. 또한 이 프로젝트에 사용된 기술 스택 및 장애 해결사례와 최적화 방안을 소개합니다. 오픈스택은 역시 오픈소스컨설팅입니다.
#openstack #ceph #openinfraday #cloudnative #opensourceconsulting
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...Ontico
PHP 7.0 вышел год назад и уже используется многими крупными компаниями. Почти все они отмечают, что переход с PHP 5 дал приблизительно двукратное увеличение производительности на своих реальных задачах, позволив сократить количество серверов.
Я расскажу о том, как мы пришли к идеям, легшим в основу PHP 7; о внутреннем устройстве PHP, изменениях в базовых структурах данных и алгоритмах, определивших успех; новых идеях, реализуемых в еще не вышедших версиях.
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/3096.html
PostgreSQL is the world’s most advanced open source database. Indeed! With around 270 configuration parameters in postgresql.conf, plus all the knobs in pg_hba.conf, it is definitely ADVANCED!
How many parameters do you tune? 1? 8? 32? Anyone ever tuned more than 64?
No tuning means below par performance. But how to start? Which parameters to tune? What are the appropriate values? Is there a tool --not just an editor like vim or emacs-- to help users manage the 700-line postgresql.conf file?
Join this talk to understand the performance advantages of appropriately tuning your postgresql.conf file, showcase a new free tool to make PostgreSQL configuration possible for HUMANS, and learn the best practices for tuning several relevant postgresql.conf parameters.
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...Ontico
В докладе я расскажу, что такое Web-акселератор, он же reverse proxy и он же - фронтенд. Как следует из названия, он ускоряет сайт. Но за счет чего он это делает? Какие они, вообще, бывают? Что они умеют, а что нет? В чем особенности каждого из решений? И, вообще, постараюсь рассказать о них вглубь и вширь.
Еще я расскажу про еще один Open Source Web-акселератор - Tempesta FW. Уникальность проекта в том, что это гибрид Web-акселератора и файервола, разрабатываемый специально для обработки и фильтрации больших объемов HTTP трафика. Основные сценарии использования системы — это защита от DDoS прикладного уровня и просто доставка больших объемов HTTP трафика малыми затратами на оборудование.
- Что такое Web-акселератор, зачем он был придуман и как понять когда он нужен;
- Типичный функционал reverse proxy, его отличия от Web-сервера;
- Упомянем про SSL акселераторы;
- Заглянем вглубь HTTP, и как он управляет кэшированием и проксированием, что может быть закэшированно, а что - нет;
- Мы сравним наиболее популярные акселераторы (Nginx, Varnish, Apache Traffic Server, Apache HTTPD, Squid) по фичам и внутренностям;
- Зачем нужен еще один Web-акселератор Tempesta FW, и в чем его отличие от других акселераторов.
Our Sr. Web Operations Engineer, Justin Lintz, goes over some parameters we tuned in TCP and NGINX to improve the performance and stability of our systems. These slides are a complement to a two part blog post found over on our engineering blog.
http://engineering.chartbeat.com/2014/01/02/part-1-lessons-learned-tuning-tcp-and-nginx-in-ec2/
http://engineering.chartbeat.com/2014/02/12/part-2-lessons-learned-tuning-tcp-and-nginx-in-ec2/
Performance optimization 101 - Erlang Factory SF 2014lpgauth
In order to scale AdGear's real-time bidding (RTB) platform, we've been optimizing system and application performance. In this talk, I'll share all my findings, from basic tips to advanced topics. I'll cover coding patterns, metric collection, tracing and much more!
Talk objectives:
- Share basic tips, common pitfalls, efficient coding patterns
- Introduce tooling for metric collection (statsderl, vmstats, system-stats, riak_sysmon)
- Highlight erlang trace (fprof, flame graphs)
- Expose advanced topics (VM tuning, lock-counter, systemtap, cpuset)
Target audience:
- Anyone looking to improve the performance of their Erlang application.
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014Amazon Web Services
Tuning your EC2 web server will help you to improve application server throughput and cost-efficiency as well as reduce request latency. In this session we will walk through tactics to identify bottlenecks using tools such as CloudWatch in order to drive the appropriate allocation of EC2 and EBS resources. In addition, we will also be reviewing some performance optimizations and best practices for popular web servers such as Nginx and Apache in order to take advantage of the latest EC2 capabilities.
EFK Stack이란 ElasticSearch, Fluentd, Kibana라는 오픈소스의 조합으로, 방대한 양의 데이터를 신속하고 실시간으로 수집/저장/분석/시각화 할 수 있는 솔루션입니다. 특히 컨테이너 환경에서 로그 수집을 위해 주로 사용되는 기술 스택입니다.
Elasitc Stack에 대한 소개와 EFK Stack 설치 방법에 대해 설명합니다.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
Build a Complex, Realtime Data Management App with Postgres 14!Jonathan Katz
Congratulations: you've been selected to build an application that will manage reservations for rooms!
On the surface, this sounds simple, but you are building a system for managing a high traffic reservation web page, so we know that a lot of people will be accessing the system. Therefore, we need to ensure that the system can handle all of the eager users that will be flooding the website checking to see what availability each room has.
Fortunately, PostgreSQL is prepared for this! And even better, we will be using Postgres 14 to make the problem even easier!
We will explore the following PostgreSQL features:
* Data types and their functionality, such as:
* Data/Time types
* Ranges / Multirnages
Indexes such as:
* GiST
* Common Table Expressions and Recursion (though multiranges will make things easier!)
* Set generating functions and LATERAL queries
* Functions and the PL/PGSQL
* Triggers
* Logical decoding and streaming
We will be writing our application primary with SQL, though we will sneak in a little bit of Python and using Kafka to demonstrate the power of logical decoding.
At the end of the presentation, we will have a working application, and you will be happy knowing that you provided a wonderful user experience for all users made possible by the innovation of PostgreSQL!
The advantages of Arista/OVH configurations, and the technologies behind buil...OVHcloud
Arista will put an emphasis on the technologies behind building and operating datacentres, and the reasons they give the results expected from them (varied traffic spike management, increasing bandwidth, end points and security), including very large-scale production environments.
Максим Барышиков-«WoT: Geographically distributed cluster of clusters»Tanya Denisyuk
"World of Tanks — MMOG с зарегистрированным пиковым онлайном превышающем 1 миллион пользователей. Авторитарная архитектура сервера (весь расчет физического мира происходит на стороне сервера и затем транслируется подклчюенным клиентам) позволяет эффективно защититься от нечестной игры, но вместе с тем создает значительную дополнительную нагрузку на серверную инфраструктуру.
В докладе рассказывается об инженерных решениях, принятых на разных стадиях разработки игры, их последствиях, и о том, как в конечном итоге организован географически распределенный «кластер кластеров» World of Tanks."
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...Ontico
NoSQL key-value — популярное решение, но какие преимущества и какой ценой оно даёт?
Скорость? Возможно, но ценой урезанного, по сравнению с реляционными базами данных, функционала. Но данные и приложение всё еще разделены сетевым стеком, а иногда и десятками километров оптоволокна. В крупном проекте, работающем на десятках или сотнях серверов нельзя обеспечить высокую скорость доступа к данным с каждой машины. Если хранилище достаточно быстро, то время обработки запроса окажется значительно меньше затрат на работу с сетью, а производительность приложения будут определять сетевые задержки и частота запросов к БД.
В проекте Облако@Mail.Ru мы ушли от использования чистых key-value хранилищ в пользу микросервисов на Tarantool, что позволило свести общение с хранилищем данных к минимуму.
Да, Tarantool — это еще одна NoSQL база данных, но еще это полноценный сервер приложений. Приложений, расположенных рядом с данными!
Я расскажу, как мы пришли к использованию микросервисов на основе Tarantool. Приведу несколько сценариев использования, которые работают в Облаке и могут быть легко адаптированы для другого web-проекта. Вы узнаете о компонентах, которые разработаны и опубликованы нами уже сейчас, и о дальнейших планах развития.
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Ontico
В этом докладе я собираюсь поделиться нашим опытом обхода испанского интернета. Мы поставили перед собой задачу обойти около 600 тысяч веб-сайтов в зоне .es с целью сбора статистики об узлах и их размерах. Я расскажу об архитектуре робота, хранилища, проблемах, с которыми мы столкнулись при обходе, и их решении.
Наше решение доступно в форме open source фреймворка Frontera. Фреймворк позволяет построить распределенного робота для скачивания страниц из Интернета в больших объемах в реальном времени. Также он может быть использован для построения сфокусированных роботов для выкачивания подмножества заранее известных веб-сайтов.
Фреймворк предлагает: настраиваемое хранилище URL документов (RDBMS или Key Value), управление стратегиями обхода, абстракцию транспортного уровня, абстракцию модуля загрузки.
Доклад построен в увлекательной форме: описание проблемы, решение и проблемы, которые возникли в ходе разработки решения.
[Open Infrastructure & Cloud Native Days Korea 2019]
커뮤니티 버전의 OpenStack 과 Ceph를 활용하여 대고객서비스를 구축한 사례를 공유합니다. 유연성을 확보한 기업용 클라우드 서비스 구축 사례와 높은 수준의 보안을 요구하는 거래소 서비스를 구축, 운영한 사례를 소개합니다. 또한 이 프로젝트에 사용된 기술 스택 및 장애 해결사례와 최적화 방안을 소개합니다. 오픈스택은 역시 오픈소스컨설팅입니다.
#openstack #ceph #openinfraday #cloudnative #opensourceconsulting
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...Ontico
PHP 7.0 вышел год назад и уже используется многими крупными компаниями. Почти все они отмечают, что переход с PHP 5 дал приблизительно двукратное увеличение производительности на своих реальных задачах, позволив сократить количество серверов.
Я расскажу о том, как мы пришли к идеям, легшим в основу PHP 7; о внутреннем устройстве PHP, изменениях в базовых структурах данных и алгоритмах, определивших успех; новых идеях, реализуемых в еще не вышедших версиях.
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/3096.html
PostgreSQL is the world’s most advanced open source database. Indeed! With around 270 configuration parameters in postgresql.conf, plus all the knobs in pg_hba.conf, it is definitely ADVANCED!
How many parameters do you tune? 1? 8? 32? Anyone ever tuned more than 64?
No tuning means below par performance. But how to start? Which parameters to tune? What are the appropriate values? Is there a tool --not just an editor like vim or emacs-- to help users manage the 700-line postgresql.conf file?
Join this talk to understand the performance advantages of appropriately tuning your postgresql.conf file, showcase a new free tool to make PostgreSQL configuration possible for HUMANS, and learn the best practices for tuning several relevant postgresql.conf parameters.
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...Ontico
В докладе я расскажу, что такое Web-акселератор, он же reverse proxy и он же - фронтенд. Как следует из названия, он ускоряет сайт. Но за счет чего он это делает? Какие они, вообще, бывают? Что они умеют, а что нет? В чем особенности каждого из решений? И, вообще, постараюсь рассказать о них вглубь и вширь.
Еще я расскажу про еще один Open Source Web-акселератор - Tempesta FW. Уникальность проекта в том, что это гибрид Web-акселератора и файервола, разрабатываемый специально для обработки и фильтрации больших объемов HTTP трафика. Основные сценарии использования системы — это защита от DDoS прикладного уровня и просто доставка больших объемов HTTP трафика малыми затратами на оборудование.
- Что такое Web-акселератор, зачем он был придуман и как понять когда он нужен;
- Типичный функционал reverse proxy, его отличия от Web-сервера;
- Упомянем про SSL акселераторы;
- Заглянем вглубь HTTP, и как он управляет кэшированием и проксированием, что может быть закэшированно, а что - нет;
- Мы сравним наиболее популярные акселераторы (Nginx, Varnish, Apache Traffic Server, Apache HTTPD, Squid) по фичам и внутренностям;
- Зачем нужен еще один Web-акселератор Tempesta FW, и в чем его отличие от других акселераторов.
Our Sr. Web Operations Engineer, Justin Lintz, goes over some parameters we tuned in TCP and NGINX to improve the performance and stability of our systems. These slides are a complement to a two part blog post found over on our engineering blog.
http://engineering.chartbeat.com/2014/01/02/part-1-lessons-learned-tuning-tcp-and-nginx-in-ec2/
http://engineering.chartbeat.com/2014/02/12/part-2-lessons-learned-tuning-tcp-and-nginx-in-ec2/
Performance optimization 101 - Erlang Factory SF 2014lpgauth
In order to scale AdGear's real-time bidding (RTB) platform, we've been optimizing system and application performance. In this talk, I'll share all my findings, from basic tips to advanced topics. I'll cover coding patterns, metric collection, tracing and much more!
Talk objectives:
- Share basic tips, common pitfalls, efficient coding patterns
- Introduce tooling for metric collection (statsderl, vmstats, system-stats, riak_sysmon)
- Highlight erlang trace (fprof, flame graphs)
- Expose advanced topics (VM tuning, lock-counter, systemtap, cpuset)
Target audience:
- Anyone looking to improve the performance of their Erlang application.
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014Amazon Web Services
Tuning your EC2 web server will help you to improve application server throughput and cost-efficiency as well as reduce request latency. In this session we will walk through tactics to identify bottlenecks using tools such as CloudWatch in order to drive the appropriate allocation of EC2 and EBS resources. In addition, we will also be reviewing some performance optimizations and best practices for popular web servers such as Nginx and Apache in order to take advantage of the latest EC2 capabilities.
EFK Stack이란 ElasticSearch, Fluentd, Kibana라는 오픈소스의 조합으로, 방대한 양의 데이터를 신속하고 실시간으로 수집/저장/분석/시각화 할 수 있는 솔루션입니다. 특히 컨테이너 환경에서 로그 수집을 위해 주로 사용되는 기술 스택입니다.
Elasitc Stack에 대한 소개와 EFK Stack 설치 방법에 대해 설명합니다.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
Build a Complex, Realtime Data Management App with Postgres 14!Jonathan Katz
Congratulations: you've been selected to build an application that will manage reservations for rooms!
On the surface, this sounds simple, but you are building a system for managing a high traffic reservation web page, so we know that a lot of people will be accessing the system. Therefore, we need to ensure that the system can handle all of the eager users that will be flooding the website checking to see what availability each room has.
Fortunately, PostgreSQL is prepared for this! And even better, we will be using Postgres 14 to make the problem even easier!
We will explore the following PostgreSQL features:
* Data types and their functionality, such as:
* Data/Time types
* Ranges / Multirnages
Indexes such as:
* GiST
* Common Table Expressions and Recursion (though multiranges will make things easier!)
* Set generating functions and LATERAL queries
* Functions and the PL/PGSQL
* Triggers
* Logical decoding and streaming
We will be writing our application primary with SQL, though we will sneak in a little bit of Python and using Kafka to demonstrate the power of logical decoding.
At the end of the presentation, we will have a working application, and you will be happy knowing that you provided a wonderful user experience for all users made possible by the innovation of PostgreSQL!
The advantages of Arista/OVH configurations, and the technologies behind buil...OVHcloud
Arista will put an emphasis on the technologies behind building and operating datacentres, and the reasons they give the results expected from them (varied traffic spike management, increasing bandwidth, end points and security), including very large-scale production environments.
Have you heard that all in-memory databases are equally fast but unreliable, inconsistent and expensive? This session highlights in-memory technology that busts all those myths.
Redis, the fastest database on the planet, is not a simply in-memory key-value data-store; but rather a rich in-memory data-structure engine that serves the world’s most popular apps. Redis Labs’ unique clustering technology enables Redis to be highly reliable, keeping every data byte intact despite hundreds of cloud instance failures and dozens of complete data-center outages. It delivers full CP system characteristics at high performance. And with the latest Redis on Flash technology, Redis Labs achieves close to in-memory performance at 70% lower operational costs. Learn about the best uses of in-memory computing to accelerate everyday applications such as high volume transactions, real time analytics, IoT data ingestion and more.
Quantifying Container Runtime Performance: OSCON 2017 Open Container DayPhil Estes
A talk given at Open Container Day at O'Reilly's OSCON convention in Austin, Texas on May 9th, 2017. This talk describes an open source project, bucketbench, which can be used to compare performance, stability, and throughput of various container engines. Bucketbench currently supports docker, containerd, and runc, but can be extended to support any container runtime. This work was done in response to performance investigations by the Apache OpenWhisk team in using containers as the execution vehicle for functions in their "Functions-as-a-Service" runtime. Find out more about bucketbench here: https://github.com/estesp/bucketbench
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...Виталий Стародубцев
##Что такое Storage Replica
##Архитектура и сценарии
##Синхронная и асинхронная репликация
##Междисковая, межсерверная, внутрикластерная и межкластерная репликация
##Дизайн и проектирование Storage Replica
##Нововведения в Windows Server 2016 TP5
##Графический интерфейс управления, и другие возможности - демонстрация и планы развития
##Интеграция Storage Replica с Storage Spaces Direct
ScyllaDB Open Source 5.0 is the latest evolution of our monstrously fast and scalable NoSQL database – powering instantaneous experiences with massive distributed datasets.
Join us to learn about ScyllaDB Open Source 5.0, which represents the first milestone in ScyllaDB V. ScyllaDB 5.0 introduces a host of functional, performance and stability improvements that resolve longstanding challenges of legacy NoSQL databases.
We’ll cover:
- New capabilities including a new IO model and scheduler, Raft-based schema updates, automated tombstone garbage collection, optimized reverse queries, and support for the latest AWS EC2 instances
- How ScyllaDB 5.0 fits into the evolution of ScyllaDB – and what to expect next
- The first look at benchmarks that quantify the impact of ScyllaDB 5.0's numerous optimizations
This will be an interactive session with ample time for Q & A – bring us your questions and feedback!
IBM SAN Volume Controller Performance Analysisbrettallison
Introduction
Storage Problems and Limitations with Native Storage
SVC Overview
SVC Physical and Logical Overview
Performance and Scalability Implications
Types of Problems
Performance Analysis Techniques
Performance Analysis Tools for SVC
Performance Analysis Metrics for SVC
Online Banking Example
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Nagios
Marcelo Perazolo, Lead Software Architect, IBM Corporation - In this session, Marcelo will describe how Nagios can be
integrated and extended for the monitoring of a typical
power-based converged infrastructure, and how it interfaces with existing element managers to provide a single point of integration for passive and active monitoring purposes.
Building Hopsworks, a cloud-native managed feature store for machine learning Jim Dowling
Cloud Native London talk about the control layer of Hopsworks.ai and our choice of cloud native services. We built our own multi-tenant services as cloud native services, for the most part.
Summit 16: How to Compose a New OPNFV Solution Stack?OPNFV
This session showcases how a new OPNFV solution stack (a.k.a. ""scenario"") is composed and stood up. We'll use a new solution stack framed around a new software forwarder (""VPP"") provided by the FD.io project as example for this session. The session discusses how an evolution/change of upstream components from OpenStack, OpenDaylight and FFD.io are put in place for the scenario, how installers and tests need to be evolved to allow for integration into OPNFV's continuous integration, deployment and test pipeline.
Fighting Against Chaotically Separated Values with EmbulkSadayuki Furuhashi
We created a plugin-based data collection tool that can read any chaotically formatted files called "CSV" by guessing its schema automatically
Talked at csv,conf,v2 in Berlin
http://csvconf.com/
OpenSource API Server based on Node.js API framework built on supported Node.js platform with Tooling and DevOps. Use cases are Omni-channel API Server, Mobile Backend as a Service (mBaaS) or Next Generation Enterprise Service Bus. Key functionality include built in enterprise connectors, ORM, Offline Sync, Mobile and JS SDKs, Isomorphic JavaScript and Graphical API creation tool.
Implementing an IPv6 Enabled Environment for a Public Cloud TenantShixiong Shang
"Implementing an IPv6 Enabled Environment for a Public Cloud Tenant" case study I delivered in OpenStack Vancouver Summit (May, 2015) jointly with Anik and Sharmin from Cisco System.
OS for AI: Elastic Microservices & the Next Gen of MLNordic APIs
AI has been a hot topic lately, with advances being made constantly in what is possible, there has not been as much discussion of the infrastructure and scaling challenges that come with it. How do you support dozens of different languages and frameworks, and make them interoperate invisibly? How do you scale to run abstract code from thousands of different developers, simultaneously and elastically, while maintaining less than 15ms of overhead?
At Algorithmia, we’ve built, deployed, and scaled thousands of algorithms and machine learning models, using every kind of framework (from scikit-learn to tensorflow). We’ve seen many of the challenges faced in this area, and in this talk I’ll share some insights into the problems you’re likely to face, and how to approach solving them.
In brief, we’ll examine the need for, and implementations of, a complete “Operating System for AI” – a common interface for different algorithms to be used and combined, and a general architecture for serverless machine learning which is discoverable, versioned, scalable and sharable.
Similar to Anton Moldovan "Building an efficient replication system for thousands of terminals" (20)
"What I learned through reverse engineering", Yuri ArtiukhFwdays
In recent years, I have gained most of my knowledge through reverse engineering, how I did it and what I learned during this period, I decided to share. All this concerns graphic programming, performance, best practices in the frontend.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
"Micro frontends: Unbelievably true life story", Dmytro PavlovFwdays
A real life story about the experience of using Micro frontends in an existing Enterprise product. Problems and their solutions on the way from the integration of a separate component to an extensible No-code platform.
"Objects validation and comparison using runtime types (io-ts)", Oleksandr SuhakFwdays
A common task in modern JS is parsing, validating and then comparing JSON objects. In this talk I will quickly go through most common ways to parse/validate and compare objects we use today and then focus more on how runtime types (based on io-ts) can help make such tasks easier and quicker to implement.
"JavaScript. Standard evolution, when nobody cares", Roman SavitskyiFwdays
Should we take a look at JavaScript when everyone is writing in TypeScript? What happens to the standard? What did we get last year? What new features can we expect this and next year? And most importantly, when will Observer be standardized?
Let's try to answer all these questions and even a little more, dream about the future, and enjoy that Observer is alive (or not).
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...Fwdays
Case study of how small team in Preply started with inheriting an existing ranking model to being able to produce a model per day. In this talk we'll cover steps to take if you find yourself in a similar situation: what kind of technology and processes can you introduce in order to achieve a great speedup in a development speed.
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil TopchiiFwdays
In my talk, I will tell about the world of GenAI services beyond GPT-wrappers and how we developed and scaled GenAI-centric applications. I'll share personal experiences about the obstacles, lessons, and strategic tools and methodologies that were key in taking GenAI applications from 0 to 1. I'll talk about the challenges we faced when launching LLM-based and image generative applications and delivering them to end users, and what conclusions and solutions were made.
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
Python engineers are introduced to the transformative potential of Large Language Models (LLMs) in the realm of advanced data analysis and the application of Semantic Kernel techniques. We will talk about how LLMs like ChatGPT can be integrated into Python environments to automate data processing, enhance predictive modeling, and unlock deeper insights from complex datasets. The session will delve into practical strategies for embedding Semantic Kernel methods within Python projects, illustrating how these advanced techniques can refine the accuracy of machine learning models by embedding domain-specific knowledge directly into the analysis process. Attendees will leave with a clear roadmap for leveraging the combined power of LLMs and Semantic Kernels, equipped with actionable knowledge to drive innovation in their data analysis projects and beyond, marking a significant leap forward in the evolution of Python engineering practices.
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
Federated learning. Algorithmic solution to the problem of privacy preserving ML. Pieces involved to support the training with NVIDIA Flare as example. How newest legislation affects federated learning.
"What is a RAG system and how to build it",Dmytro SpodaretsFwdays
Today, large language models are becoming an integral part of almost every IT solution. However, their use is often accompanied by certain limitations, such as the relevance of information or its depth and specificity. One of the ways to overcome these limitations is the method of working with LLMs - RAG (Retrieval Augmented Generation).
In an ideal world, you would write Python code and then it would work perfectly. But unfortunately, it doesn't work in this manner. In my talk, I'll cover how to efficiently debug your programs, especially in cloud environments or inside Kubernetes.
MLOps (Machine Learning Operations) is a recent buzzword, that trends a lot. Let's figure out together how maintaining applications with machine learning components is significantly different from maintaining applications without them.
We will look into MLOps best practices and typical problems and their implementations/solutions in real world production.
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
Ever seen a code base where understanding a simple method meant jumping through tangled class hierarchies? We all have! And while "Favor composition over inheritance!" is almost as old as object-oriented programming, strictly avoiding all types of subclassing leads to verbose, un-Pythonic code. So, what to do?
The discussion on composition vs. inheritance is so frustrating because far-reaching design decisions like this can only be made with the ecosystem in mind – and because there's more than one type of subclassing!
Let's take a dogma-free stroll through the types of subclassing through a Pythonic lens and untangle some patterns and trade-offs together. By the end, you'll be more confident in deciding when subclassing will make your code more Pythonic and when composition will improve its clarity.
"Distributed graphs and microservices in Prom.ua", Maksym KindritskyiFwdays
The current architecture of Prom.ua is built on microservices and GraphQL API, but it was not always like that. In this talk, I'll tell you how far we've come and how we've made using graphs in a microservice architecture convenient and simple. I will talk about the problems we faced and how we overcame them, made our development process more accessible, deployments faster, and the remains of the monolith less loaded.
"Rethinking the existing data loading and processing process as an ETL exampl...Fwdays
ETL stands for extract, transform, load. It's a process that combines data from different sources into a single repository for further processing, analysis, and utilization.
This talk provides an example of how pandas can be used to solve ETL tasks as a stage in the evolution of the data intake component. This involves preliminary validation, filtering, and conversion of data according to a set of business rules and internal representation, with intermediate combination with other sources.
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...Fwdays
I’m confident that many IT professionals are currently facing the same situation I was in a few months ago. Mobilization, uncertainty. How can I be maximally beneficial to the country with my experience and continue professional development in such circumstances? Since the onset of the full-scale invasion, I've been actively volunteering and assisting the army. Mobilization became the next logical step.
I want to share:
My journey in IT, volunteering, and the beginning of my service in the Armed Forces
Impressions from the first few months
Which Soft Skills are helpful in this context
I aim to dispel myths about the mobilization process and projects of the Armed Forces. Address your questions
And yes, military personnel can travel abroad during their leave.
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...Fwdays
The leader must be strong all the time. The leader cannot afford to make mistakes, let alone fail in front of their team. Is that really true? Nick Gicinto, a cybersecurity leader with over 25 years of experience, who has worked for the CIA and has built security systems from scratch at Tesla and Uber, fully hiring teams for these projects, will talk about the importance of being vulnerable to build trust within a team.
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...Fwdays
Sharing open feedback can be difficult because it equals much work on yourself. However, feedback needs attention and a special place in the corporate culture. It helps to grow dynamically, build a team of like-minded people and achieve powerful results.
In the presentation, I will talk about:
The ability to work with feedback as a soft, solid skill in developing technical specialists.
A list of difficulties that prevent quality work with feedback.
The 4A Framework is a tool for successful giving and receiving feedback.
I will also help specialists learn the following:
Form constructive feedback and understand how and when to give it.
Work analytically with the received feedback.
Feel free to share your thoughts and be heard.
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...Fwdays
Will discuss:
Current communication challenges, including mishaps and toxic versus productive interactions.
Ever wondered about PDP? It’s likely because its relevance to career planning, even outside your current company, hasn’t been fully spotlighted.
Exploring how PDP functions within career planning, applicable even if you’re eyeing an exit.
“Who do I aspire to become?”
Summarizing key points with a reference to a practical form you can download to use.
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...Fwdays
This talk will reveal four destructive communication patterns that can undermine team spirit, reduce productivity and cause conflict, and offer effective strategies for neutralizing them.
Let's start with exciting storytelling about a fictional team of developers working on Scrum. You will learn about situations that their team member noticed during team meetings.
Next, we will analyze "The Gottman Four Horsemen" model, which describes the four "horsemen of the apocalypse" of work relationships: criticism, defensiveness, contempt, and stonewalling. For each of these patterns, specific "antidotes" will be offered that allow you to build healthier and more productive relationships in the team.
Finally, we'll look at why this topic is critical to team productivity, drawing on Google's "Project Aristotle" research. Special attention will be paid to the concept of psychological safety, which is a key factor in the success of high-performance teams.
This talk will not only provide valuable insights and tools for improving communication and management in Tech teams, but will also help each member better understand their own contribution to the overall success of the team.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
2. About me
Software Architect at DraftKings:
- F#
- Distributed Systems
- Databases
OSS:
- Author of NBomber (https://nbomber.com)
Community:
- Organizer of Kyiv F# user group
- Organizer of F# Ukraine conference
Twitter: @antyadev
Github: @antyadev
16. Our hardware limitations
- Slow terminal machines (1-2 CPU, x86, 600MB RAM,
Windows/Linux/Android OS)
- Some customers have a slow internet (5 Mbps)
- Some customers have limited internet bandwidth
17. Data
- At pick we send 2MB per min of compressed data
- At pick we can get about 1-2K updates per sec
22. - hard to achieve near real-time
- very inefficient communication (extra traffic,
extra connections)
- no offline
- bad UX experience (slow)
- noticeable desynchronization between
terminals displays, TV
PERIODIC PULL
32. Network spikes
Usually, all bet shops open at the same time, which means that all terminals start to pull
an initial snapshot simultaneously
GET initial data (snapshot)Backend
33. let’s imagine that
1 terminal snapshot = 100MB
Local db
Network spikes
Usually, all bet shops open at the same time, which means that all terminals start to pull
an initial snapshot simultaneously
34. let’s imagine that
1 terminal snapshot = 100MB
1K terminals = 1GB
Local db
Local db
Local db
Network spikes
Usually, all bet shops open at the same time, which means that all terminals start to pull
an initial snapshot simultaneously
35. let’s imagine that
1 terminal snapshot = 100MB
1K terminals = 1GB
10K terminals = 10GB
for > 10K terminals
Network spikes
Usually, all bet shops open at the same time, which means that all terminals start to pull
an initial snapshot simultaneously
39. - Kafka is designed for internal network communication (not external):
very tricky to expose to a public network
very tricky to apply any rate limit or concurrent clients limit
- Kafka client is not lightweight: it eats 1 thread and quite expensive to run on a slow machine (1-2
CPU, 600MB RAM, Windows/Linux/Android OS)
- We need a cache: it’s not designed as elastic cache layer to handle spikes:
all messages persisted
no fast point lookup to fetch missed updates
Why not?
40. And it’s only blockers!
There are other minor drawbacks:
elastic/independent scaling, messaging
optimizations, topic routing flexibility,
P2P channel support, etc.
Why not?
44. for > 10K db replicas
REPLICATION
SYNC data
Network spikes
45. for > 10K db replicas
REPLICATION
LOG
+
PUSH
SYNC data
Network spikes
46. for > 10K db replicas
REPLICATION
Network spikes
SYNC data
Cache
LOG
+
PUSH
IMPORTANT: with the ability to resume
the downloading process from the last
read message
56. Message
Broker
streamer
> 10K terminals
Cache
An independently scalable component that
represents only persistent connections (sockets)
Computations are separated from sockets
and scales independently
An independently scalable component that
represents only data
61. producer consumer
groups
conceptually very similar to Kafka but:
- all data in memory (very fast access, range lookup)
- fixed size stream (autoclean by FIFO)
- you can read data from several topics in one RTT
68. EMQ X Broker
- massively scalable, highly extensible distributed MQTT message
broker written in Erlang/OTP
(masterless, low latency, high concurrency)
- open sourced
- TCP/SSL, WebSockets (SSL), MQTT v3.1/5.0
- one instance (16 vCPUs, 64 GB RAM) can handle 1 million connections
(we didn’t check it)
69. MQTT Protocol
- very lightweight PUB/SUB protocol designed for IoT
(binary and header requires 2 bytes)
- supports hierarchical flexible topic structure (+, #)
- supports standard levels of message delivery
guarantee
- good support on all popular platforms/runtimes
75. Basically, every message has
a monotonically increasing number
(aka Kafka’s offset)
type UpdateBulkMessage = {
StreamerId: string
Updates: UpdateMessage[]
BulkNumber: uint
}
76. What can we do regards
network traffic within one
betshop?
81. RAFT
(2014)
[<Property>]
let ``handleRequest should handle heartbeat correctly`` (nodeTerm: int, requestTerm: int) =
let requestNodeId = TestInfra.createNodeId(port = 50)
let request = HeartBeat({ NodeId = requestNodeId; Term = requestTerm |> UMX.tag })
let node = Follower <| TestInfra.createFollower(port = 2, currentTerm = UMX.tag nodeTerm)
match LeaderElection.handleRequest(node, request) with
| LeaderAccepted (response, newState) ->
test <@ nodeTerm <= requestTerm @>
test <@ newState.LeaderId.Value = requestNodeId @>
test <@ (int)newState.State.CurrentTerm = requestTerm @>
test <@ response.VoteGranted = true @>
| LeaderRejected response ->
test <@ nodeTerm > requestTerm @>
test <@ (int)response.CurrentTerm = nodeTerm @>
test <@ response.VoteGranted = false @>
82. RAFT
(2014)
[<Fact>]
let ``Leader may be only one among all nodes`` () =
let nodes = TestInfra.startNodes(nodeCount = 3, ipMinPort = 10_010, udpPort = 9001)
try
Task.Delay(3_000).Wait() // wait on leader election
let leader = nodes |> Seq.find(fun x -> x.IsLeader)
let leaderCount = nodes |> Seq.filter(fun x -> x.IsLeader) |> Seq.length
let sameLeaderForAllMembers =
nodes
|> Seq.filter(fun x -> not x.IsLeader)
|> Seq.map(fun x -> x.GetCurrentLeader())
|> Seq.forall(fun x -> leader.GetCurrentLeader() = x)
test <@ leaderCount = 1 @>
test <@ sameLeaderForAllMembers = true @>
finally
nodes |> Seq.iter(fun x -> x.Stop())
85. - In-memory KV-store with ability to persist on disk and
configure memory footprint
- ACID (per single node),
limited SQL,
secondary indexes (in-memory)
- Cluster:
- zero configuration (service discovery via UDP broadcast)
- auto failover
- async replication
NoSQLite
96. NBomber - your drugs for
load testing
https://nbomber.com/
https://nbomber.com/docs/
https://github.com/pragmaticflow
97. Why we build NBomber and what you
can do with it?
01. The main reason behind NBomber is to provide a lightweight framework for
writing load tests which you can use to test literally any system and simulate
any production workload. We wanted to provide only a few abstractions so
that we could describe any type of load and still have a simple, intuitive API.
02. Another goal is to provide building blocks to validate your POC (proof of
concept) projects by applying any complex load distribution.
03. With NBomber you can test any PULL or PUSH system (HTTP, WebSockets,
GraphQl, gRPC, SQL Databse, MongoDb, Redis etc).
04. With NBomber you can convert some of your integration tests to load tests
easily.
98. NBomber as a modern framework
provides:
- Zero dependencies on protocol (HTTP/WebSockets/AMQP/SQL)
- Zero dependencies on semantic model (Pull/Push)
- Very flexible configuration and dead simple API (F#/C#/JSON)
- Cluster support
- Realtime Reporting
- Plugins support
- CI/CD integration
- Data feed support
100. Hello World
var step = Step.Create("step", async context =>
{
// you can define and execute any logic here,
// for example: send http request, SQL query etc
// NBomber will measure how much time it takes to execute your logic
await Task.Delay(TimeSpan.FromSeconds(1));
return Response.Ok();
});
// second, we add our step to the scenario
var scenario = ScenarioBuilder.CreateScenario("hello_world", step);
NBomberRunner
.RegisterScenarios(scenario)
.Run();
101. Hello World
var step = Step.Create("step", async context =>
{
// you can define and execute any logic here,
// for example: send http request, SQL query etc
// NBomber will measure how much time it takes to execute your logic
await Task.Delay(TimeSpan.FromSeconds(1));
return Response.Ok();
});
// second, we add our step to the scenario
var scenario = ScenarioBuilder.CreateScenario("hello_world", step);
NBomberRunner
.RegisterScenarios(scenario)
.Run();
102. var httpClient = new HttpClient();
var step = Step.Create("step", async context =>
{
var response = await httpClient.GetAsync("https://nbomber.com",
context.CancellationToken);
return response.IsSuccessStatusCode
? Response.Ok()
: Response.Fail();
});
var scenario = ScenarioBuilder.CreateScenario("hello_world", step);
NBomberRunner
.RegisterScenarios(scenario)
.Run();
HTTP load test
(raw)
103. var httpClient = new HttpClient();
var step = Step.Create("step", async context =>
{
var response = await httpClient.GetAsync("https://nbomber.com",
context.CancellationToken);
return response.IsSuccessStatusCode
? Response.Ok()
: Response.Fail();
});
var scenario = ScenarioBuilder.CreateScenario("hello_world", step);
NBomberRunner
.RegisterScenarios(scenario)
.Run();
HTTP load test
(raw)
104. var step = HttpStep.Create("fetch_html_page", fun context ->
Http.CreateRequest("GET", "https://nbomber.com")
.WithHeader("GET", "GET")
);
var scenario = ScenarioBuilder.CreateScenario("hello_world", step);
NBomberRunner
.RegisterScenarios(scenario)
.Run();
HTTP load test with HTTP plugin
(production-ready)
106. Redis v6.0.3
1 master and 2 slaves with async replication, without sharding, without persistence (ONLY
in-memory)
test: 1 writer is publishing to the stream 32KB per 500ms and many readers are reading
random items
20K readers (open system)
RPS 50% 75% 95% StdDev data transfer
20K 303 390 476 121 32 KB
30K readers (open system)
RPS 50% 75% 95% StdDev data transfer
30K 414 520 627 158 32 KB
10K readers (open system)
RPS 50% 75% 95% StdDev data transfer
10K 120 160 216 66 32 KB
110. EMQX v4.0.7
3 services without persistence (k8 limits: 1CPU, memory: 512MB)
test: 1 writer is publishing to the topic 32KB per 500ms and many subscribers are
consuming messages and verifying order of messages
10K subscribers (closed system)
RPS 50% 75% 95% StdDev data transfer
20K 177 260 400 42 32 KB
5K subscribers (closed system)
RPS 50% 75% 95% StdDev data transfer
10K 121 190 240 22 32 KB
112. NBomber plugins & extensions
Http plugin - a simple DSL for working with HTTP.
Ping plugin - a plugin that executes ping logic to gather networking metrics.
InfluxDb sink - a data sink for InfluxDb.
Prometheus sink - a data sink for Prometheus.
Db Benchmark - a plugin that helps you to simulate popular database workloads
(OLTP, OLAP).
K8 Metrics - a plugin that allows you to fetch and render metrics from K8 and apply
assertions.
K8 Chaos Monkey - a plugin that helps you to inject faults into your target system
and render stats.