SlideShare a Scribd company logo
1 of 16
Download to read offline
Erlang/OTP: чтобы не падало
Курышев Петр, p.kurishev@itmozg.ru
2
Erlang
2
• Функциональный язык
программирования (не чистый)
• Писать для распределенности и
отказоустойчивости - легко
• Писать логику - сложно
3
Erlang и другие
3
• У каждой технологии - своя ниша
• Не противопоставлять!
• Использовать вместе для
достижения целей
4
Все привыкли к ООП
4
• Процесс - как экземпляр класса
• Состояние - внутри модуля
• Модуль - как декларация класса
5
Open Telecom Platform
5
• Можно все писать самому, но
зачем?
• Общий путь для всех
spawn -> init -> loop calls -> ... -> exit
6
Gen server
6
• gen_server:start_link
• gen_server:call и genserver:cast
• синхронно и асинхронно,
соответственно
7
Горячая замена кода
7
code_change(_OldVsn, State, _Extra) ->
%% No change planned. The function is there for the behaviour,
%% but will not be used. Only a version on the next
{ok, State}.
code_change({down, _Vsn}, {Chs, N}, _Extra) ->
{ok, Chs};
code_change(_Vsn, Chs, _Extra) ->
{ok, {Chs, 0}}.
8
Супервизор
8
• Наблюдающий и наблюдаемый
• Спецификация «ребенка»:
• Супервизоры супервизоров или кто
следит за следящими
{ChildId, StartFunc, Restart, Shutdown, Type, Modules}.
99
child_spec() = {Id,StartFunc,Restart,Shutdown,Type,Modules}
Id = term()
StartFunc = {M,F,A}
M = F = atom()
A = [term()]
Restart = permanent | transient | temporary
Shutdown = brutal_kill | int()>0 | infinity
Type = worker | supervisor
Modules = [Module] | dynamic
Module = atom()
Какой должен быть ребенок
10
Наеродные воркеры
10
• Python/Django
• Ruby on Rails
• Node.js
11
Слежка за чужими детьми
11
• Порты Erlang
• Port против Lined Port
• Другие способы
12
Способ взаимодействия
12
• Вызываем внешние процессы
• NIFы
• ErlPort
(http://hlabs.org/development/erlang/po
rts.html)
13
Что бывает когда падает
13
1414
• Быстро поднятое не считается
упавшим
• Уронить до конца и поднять с самого
начала
15
Храните состояние вовне
15
• Очереди сообщений
• Быстрые key/value хранилища
• Всегда можно что-то потерять пока
оно не записано в постоянное
хранилище
16
Вопросы!
16
• Пообщаемся сейчас
• ...но можно задать и потом:
p.kurishev@itmozg.ru

More Related Content

Similar to Петр Курышев, ITmozg

Петр Леменков: Golang и Fedora
Петр Леменков: Golang и FedoraПетр Леменков: Golang и Fedora
Петр Леменков: Golang и FedoraYandex
 
Erlang: прагматичный рассказ про прагматичный язык
Erlang: прагматичный рассказ про прагматичный язык Erlang: прагматичный рассказ про прагматичный язык
Erlang: прагматичный рассказ про прагматичный язык Vasil Remeniuk
 
Erlang мгновенное просветление
Erlang  мгновенное просветлениеErlang  мгновенное просветление
Erlang мгновенное просветлениеMaxim Sokhatsky
 
Erlang and OCaml Experience at Echo
Erlang and OCaml Experience at EchoErlang and OCaml Experience at Echo
Erlang and OCaml Experience at EchoLev Walkin
 
Лев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangЛев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangYury Yurevich
 
Краткое введение в Erlang/OTP
Краткое введение в Erlang/OTPКраткое введение в Erlang/OTP
Краткое введение в Erlang/OTP_ymn
 
Краткое введение в Erlang/OTP
Краткое введение в Erlang/OTPКраткое введение в Erlang/OTP
Краткое введение в Erlang/OTPAlexander Byndyu
 
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)Ontico
 
Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?Minsk Linux User Group
 
Максим Лапшин — введение в Erlang
Максим Лапшин — введение в ErlangМаксим Лапшин — введение в Erlang
Максим Лапшин — введение в ErlangАлександр Ежов
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang productionAlina Dolgikh
 
Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015Andrey Tokarchuk
 

Similar to Петр Курышев, ITmozg (12)

Петр Леменков: Golang и Fedora
Петр Леменков: Golang и FedoraПетр Леменков: Golang и Fedora
Петр Леменков: Golang и Fedora
 
Erlang: прагматичный рассказ про прагматичный язык
Erlang: прагматичный рассказ про прагматичный язык Erlang: прагматичный рассказ про прагматичный язык
Erlang: прагматичный рассказ про прагматичный язык
 
Erlang мгновенное просветление
Erlang  мгновенное просветлениеErlang  мгновенное просветление
Erlang мгновенное просветление
 
Erlang and OCaml Experience at Echo
Erlang and OCaml Experience at EchoErlang and OCaml Experience at Echo
Erlang and OCaml Experience at Echo
 
Лев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangЛев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про Erlang
 
Краткое введение в Erlang/OTP
Краткое введение в Erlang/OTPКраткое введение в Erlang/OTP
Краткое введение в Erlang/OTP
 
Краткое введение в Erlang/OTP
Краткое введение в Erlang/OTPКраткое введение в Erlang/OTP
Краткое введение в Erlang/OTP
 
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo) Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
Отладка производительности приложения на Erlang / Максим Лапшин (Erlyvideo)
 
Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?
 
Максим Лапшин — введение в Erlang
Максим Лапшин — введение в ErlangМаксим Лапшин — введение в Erlang
Максим Лапшин — введение в Erlang
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang production
 
Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015
 

More from Diana Dymolazova

Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудниковОнлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудниковDiana Dymolazova
 
Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2Diana Dymolazova
 
Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1Diana Dymolazova
 
В какие игры играют команды
В какие игры играют командыВ какие игры играют команды
В какие игры играют командыDiana Dymolazova
 
Проектирование мобильного приложения
Проектирование мобильного приложенияПроектирование мобильного приложения
Проектирование мобильного приложенияDiana Dymolazova
 
Как быть счастливым в работе
Как быть счастливым в работеКак быть счастливым в работе
Как быть счастливым в работеDiana Dymolazova
 
SCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часаSCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часаDiana Dymolazova
 
Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?Diana Dymolazova
 
Стартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релизаСтартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релизаDiana Dymolazova
 
Импотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должнымИмпотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должнымDiana Dymolazova
 
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...Diana Dymolazova
 
Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?Diana Dymolazova
 
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...Diana Dymolazova
 
Android и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применениюAndroid и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применениюDiana Dymolazova
 
Современные технологии в R&D проектах
Современные технологии в R&D проектахСовременные технологии в R&D проектах
Современные технологии в R&D проектахDiana Dymolazova
 
Мобильный Free-to-Play: руководство по выживанию
Мобильный Free-to-Play: руководство по выживаниюМобильный Free-to-Play: руководство по выживанию
Мобильный Free-to-Play: руководство по выживаниюDiana Dymolazova
 
Hack-driven development для cable TV или история одного проекта
Hack-driven development для cable TV или история одного проектаHack-driven development для cable TV или история одного проекта
Hack-driven development для cable TV или история одного проектаDiana Dymolazova
 
Артем Кумпель, ITmozg.ru
Артем Кумпель, ITmozg.ruАртем Кумпель, ITmozg.ru
Артем Кумпель, ITmozg.ruDiana Dymolazova
 
Ярослав Городецкий, CDNvideo
Ярослав Городецкий, CDNvideoЯрослав Городецкий, CDNvideo
Ярослав Городецкий, CDNvideoDiana Dymolazova
 
Станислав Сажин, Доктор на работе
Станислав Сажин, Доктор на работеСтанислав Сажин, Доктор на работе
Станислав Сажин, Доктор на работеDiana Dymolazova
 

More from Diana Dymolazova (20)

Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудниковОнлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
 
Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2
 
Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1
 
В какие игры играют команды
В какие игры играют командыВ какие игры играют команды
В какие игры играют команды
 
Проектирование мобильного приложения
Проектирование мобильного приложенияПроектирование мобильного приложения
Проектирование мобильного приложения
 
Как быть счастливым в работе
Как быть счастливым в работеКак быть счастливым в работе
Как быть счастливым в работе
 
SCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часаSCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часа
 
Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?
 
Стартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релизаСтартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релиза
 
Импотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должнымИмпотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должным
 
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
 
Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?
 
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
 
Android и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применениюAndroid и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применению
 
Современные технологии в R&D проектах
Современные технологии в R&D проектахСовременные технологии в R&D проектах
Современные технологии в R&D проектах
 
Мобильный Free-to-Play: руководство по выживанию
Мобильный Free-to-Play: руководство по выживаниюМобильный Free-to-Play: руководство по выживанию
Мобильный Free-to-Play: руководство по выживанию
 
Hack-driven development для cable TV или история одного проекта
Hack-driven development для cable TV или история одного проектаHack-driven development для cable TV или история одного проекта
Hack-driven development для cable TV или история одного проекта
 
Артем Кумпель, ITmozg.ru
Артем Кумпель, ITmozg.ruАртем Кумпель, ITmozg.ru
Артем Кумпель, ITmozg.ru
 
Ярослав Городецкий, CDNvideo
Ярослав Городецкий, CDNvideoЯрослав Городецкий, CDNvideo
Ярослав Городецкий, CDNvideo
 
Станислав Сажин, Доктор на работе
Станислав Сажин, Доктор на работеСтанислав Сажин, Доктор на работе
Станислав Сажин, Доктор на работе
 

Петр Курышев, ITmozg