SlideShare a Scribd company logo
1 of 39
Software Craftsmanship
meetup #5
Кэши и микросервисы
Павел Вейник
CTO @ Splitmetrics
CEO @ Hard & Soft Skills
Зачем митапы?
Поделиться с разработчиками Splitmetrics
Поделиться со всеми разработчиками
Обкатать новый курс для техлидов
Пообщаться
Для кого митапы?
Для разработчиков
Для тестировщиков
Для сочувствующих и интересующихся
Знание нескольких принципов освобождает от
знания многих фактов
Мы на новом месте
Зарегистрировались 157 человек
После митапа идем в Simple общаться
Кто проводит митапы
Компания Splitmetrics
37 человек, все в офисе в Минске
2 продукта в области рекламы, 5 лет
Продажи SaaS из РБ на запад
Python, PostgreSQL, MongoDB, Redis, Kafka,
RabbitMq, Celery, Angular, React, Redux…
План митапов
1. Software Craftsmanship & Agile.
Как не делать говно?
2. Принципы хранения данных
3. Обзор баз данных
4. Очереди сообщений
5. Кэши и файловые хранилища
План митапов
6. Как Software Craftsmanship фиксит проблемы
Agile
7.
8.
9.
10.
Software Craftsmanship
 Working software over
comprehensive documentation
 Responding to change over
following a plan
 Individuals and interactions
over processes and tools
 Customer collaboration over
contract negotiation
 Not only working software, but
also well-crafted software
 Not only responding to change,
but also steadily adding value
 Not only individuals and
interactions, but also a
community of professionals
 Not only customer collaboration,
but also productive
partnerships
План этого митапа
1. Кэши
2. Кэши в микросервисах
3. Несколько задач на архитектуру
There are only two hard things in Computer
Science: cache invalidation and naming things
Phil Karlton
Что такое кэш?
Компонент, который хранит ответы на будущие
запросы
Кэш заменяет собой хранилище данных,
доступ к которым дорогой, или вычисление
которых дорого
Что дает кэш?
Временно хранит объекты, которые нужны
чаще чем другие
Уменьшает время отдачи объектов, которые
нужны чаще чем другие
Уменьшает время отклика всей системы,
снижает нагрузку
Кэш или буфер?
Буфер уменьшает количество передач данных,
делая несколько больших передач вместо
многих маленьких
Кэш использует концепцию буфера
Read и Write кэши
Read cache
Заполняем кэш заранее, отдаем по запросу
Write cache
Сохраняем в кэше, скидываем в хранилище
порциями
Увеличивает throughput
Типы по размещению
В текущем процессе
В памяти текущей машины
Распределенные
Реплицированные
Типы по свежести
Горячие
Холодные
Теплые
Статистика по кэшам
Обращения
Ненайденные объекты
Загруженные объектов
Ошибки загрузки
Время загрузки
Выгруженные объекты
Критерии выбора
Легковесность или полнота функций?
Open-source, коммерческий или часть
фреймворка?
Внутри процесса или распределенный?
Критерии выбора
Баланс между целостностью и скоростью
ответа
Транзакционность
Репликации
Производительность, надежность,
масштабируемость
Кэши и микросервисы
Кэш для каждого микросервиса или общий для
всех?
Кэши и микросервисы
Lazy load или
предварительная
загрузка?
Распределенный или
в текущем процессе?
Preloaded in-process
Потребители сразу
видят низкое время
ответа
Новые инстансы уже
с кэшем и отвечают
быстро
Долгая
инициализация кэша
Толстые инстансы
Preloaded distributed
Потребители сразу
видят низкое время
ответа
Новые инстансы уже
с кэшем и отвечают
быстро
Часто трудно
заполнять
распределенный
кэш, нужен
инструмент
Lazy in-process
Время запуска
инстанса меньше
Первые запросы
отнимают больше
времени
Тяжело
масштабировать без
потери производит.
Lazy distributed
Запуск инстанса
быстрее
Сразу после запуска
есть доступ к распр.
кэшу
Падение распр. кэша
увеличивает время
ответа всего
микросервиса или
валит его
Критерии выгрузки объектов
FIFO
LIFO
LRU
TLRU
MRU
PLRU
RR
SLRU
LFU
LFUDA
LIRS
ARC
CAR
MQ
Least time between
access
Где используется кэши
DNS
CDN
CPU
HDD
Java ;)
Везде
Ответы
Отчеты
Вычисления
Браузер
Веб приложения
Бэкенды
Производительность кэша
Чем мерять?
Мерять ускорением системы
Хочется максимально ускорить и разгрузить
систему с помощью минимального железа
Кэш страниц сайта
Есть наиболее популярные страницы
LFU
Все популярные страницы влазят в кэш – цель
выполнена
Какой формальный критерий популярности
страницы?
Кэш предагрегированных отчетов в
бд
Есть куски наиболее популярных отчетов
Подготовить отчет легко
В бд все отчеты, иначе их расчет отнимет
большое время
Кэш в PostgreSQL
Кэш кусков таблиц, индексов, метаинформации
Эффективность – минимизация обращений к
диску
Используется ML для увеличения
эффективности
Кэш в жадных алгоритмах
Кэш вычисленных значений
Нужно хранить все полученные значения
Алгоритм конструируется так, чтобы сделать
объем кэша реалистичным
Какие есть кэши
https://stackshare.io/search/q=cache#
40 шт
На stackshare интересно
Соображения при проектировании
Загрузка/обновление объектов
Производительность/память
Правила выгрузки
Многопоточность
Отслеживание статистики
Какой eviction выбрать?
Locality of reference
Время устаревания
Размер кэша
Количество объектов всего
Особенности предметной области
Случайный eviction – если сложно
Задача 1
Давайте придумаем, как сделать ВК )
Пост, лента
Сообщения
Реклама
Задача
Предложите свои задачи
Не менять постановку после озвучивания
Только уточнять
Постановка – 5 предложений
Ссылки
 https://stackshare.io/search/q=cache#
 https://walkingtree.tech/cache-management-microservices/
 https://www.slideshare.net/Pivotal/caching-for-microservices-architectures-session-i
 https://www.slideshare.net/Pivotal/caching-for-microservices-architectures-session-ii-caching-patterns
 https://en.wikipedia.org/wiki/Cache_(computing)#Buffer_vs._cache
 https://en.wikipedia.org/wiki/Cache_replacement_policies
 http://tutorials.jenkov.com/software-architecture/caching-techniques.html
 https://danluu.com/2choices-eviction/
 http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html
 https://blogs.dropbox.com/tech/2012/10/caching-in-theory-and-practice/
Задайте мне вопрос

More Related Content

What's hot

Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеPavel Veinik
 
Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Pavel Veinik
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияAlexander Byndyu
 
Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellencePavel Veinik
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps_Fest
 
рентабельный код
рентабельный кодрентабельный код
рентабельный кодMax Arshinov
 
вебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинавебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинаАндрей Степенко
 
Бизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруБизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруAlexander Byndyu
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?CEE-SEC(R)
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
Практика DevOps в крупных организациях
Практика DevOps в крупных организацияхПрактика DevOps в крупных организациях
Практика DevOps в крупных организацияхSoftmart
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорAlexander Byndyu
 
Шаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решенияШаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решенияAlexander Byndyu
 
Управление Big data платформой Почты России
Управление Big data платформой Почты РоссииУправление Big data платформой Почты России
Управление Big data платформой Почты РоссииAndrey Bashchenko
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HRIT-HR Club
 
Методологии разработки ПО
Методологии разработки ПОМетодологии разработки ПО
Методологии разработки ПОVadim Lyakhovets
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойAlexander Byndyu
 

What's hot (20)

Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
 
Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
 
Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellence
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
 
вебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинавебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазина
 
Бизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруБизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуру
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
презентация.1
презентация.1презентация.1
презентация.1
 
Практика DevOps в крупных организациях
Практика DevOps в крупных организацияхПрактика DevOps в крупных организациях
Практика DevOps в крупных организациях
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафор
 
Шаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решенияШаблоны интеграции - актуальные инструменты и решения
Шаблоны интеграции - актуальные инструменты и решения
 
Управление Big data платформой Почты России
Управление Big data платформой Почты РоссииУправление Big data платформой Почты России
Управление Big data платформой Почты России
 
20070414 Toc Pm
20070414 Toc Pm20070414 Toc Pm
20070414 Toc Pm
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HR
 
Методологии разработки ПО
Методологии разработки ПОМетодологии разработки ПО
Методологии разработки ПО
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределенной
 

Similar to Software craftsmanship #5 кэши и микросервисы

Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsPavel Veinik
 
Резервное копирование и оптимизация хранения данных
Резервное копирование и оптимизация хранения данныхРезервное копирование и оптимизация хранения данных
Резервное копирование и оптимизация хранения данныхAndrey Karpov
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Andrey Akulov
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_haElena Ometova
 
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...SQALab
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Ontico
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Fwdays
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.jsTimur Shemsedinov
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusOntico
 
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...Inhacking
 
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Аліна Шепшелей
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПОDmitry Lazarenko
 
Девять проектов в параллель. Живинка в деле (SQA Days)
Девять проектов в параллель. Живинка в деле (SQA Days)Девять проектов в параллель. Живинка в деле (SQA Days)
Девять проектов в параллель. Живинка в деле (SQA Days)2ГИС Технологии
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneMax Klymyshyn
 

Similar to Software craftsmanship #5 кэши и микросервисы (20)

Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systems
 
Резервное копирование и оптимизация хранения данных
Резервное копирование и оптимизация хранения данныхРезервное копирование и оптимизация хранения данных
Резервное копирование и оптимизация хранения данных
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
 
Sivko
SivkoSivko
Sivko
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.js
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
 
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
 
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Девять проектов в параллель. Живинка в деле (SQA Days)
Девять проектов в параллель. Живинка в деле (SQA Days)Девять проектов в параллель. Живинка в деле (SQA Days)
Девять проектов в параллель. Живинка в деле (SQA Days)
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get Done
 

More from Pavel Veinik

Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Pavel Veinik
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering WebinarPavel Veinik
 
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Pavel Veinik
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionPavel Veinik
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencyPavel Veinik
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithPavel Veinik
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаPavel Veinik
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3Pavel Veinik
 
Women in technology_week-women_leadership
Women in technology_week-women_leadershipWomen in technology_week-women_leadership
Women in technology_week-women_leadershipPavel Veinik
 
Программирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовПрограммирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовPavel Veinik
 
Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Pavel Veinik
 

More from Pavel Veinik (12)

Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering Webinar
 
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interaction
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and Resiliency
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the Monolith
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3
 
Women in technology_week-women_leadership
Women in technology_week-women_leadershipWomen in technology_week-women_leadership
Women in technology_week-women_leadership
 
Career day 2019
Career day 2019Career day 2019
Career day 2019
 
Программирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовПрограммирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстов
 
Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.
 

Software craftsmanship #5 кэши и микросервисы