Суперкомпьютер на Pi Zero
https://geektimes.ru/post/269850/
- Суперкомпьютер на Pi Zero. 16 малинок на одной плате,
- 2 micro-usb для каждой малинки, 1 - питание, 1 - данные
- 16 ethernet разъемов
- Есть только одна малинка!!! Больше не нашли! Как так можно?
Миграция 500М записей без downtime
https://medium.com/twitch-engineering/how-we-migrated-over-half-a-billion-records-without-downtime-d91e58f39cad#.bj8ypgrho
- Сделали новую базу, перетащили данные, актуализировали дифом, который накопился пока перетаскивали
- Потом поставили модуль сравнения с новым результатом, добились, что ответы не отличаются
- Переключили. Profit
Книга у Manning “Nim in Action”
https://manning.com/books/nim-in-action
- Nim: Компилируется в C, C++, ObjC, JS. Поддерживается ABI с С, libc.
- Книга раскапывает о Nim, а также “native software applications and libraries, web applications, embedded device software, and programs that communicate over the internet.”
- hans-on examples how to debug, test, package your document
- interface with C/C++
- примеры - написание Chat server, twitter clone, etc.
- Manning Early Access Program (MEAP)
Unikernels are unfit for production
https://www.joyent.com/blog/unikernels-are-unfit-for-production
- unikernel - приложение, работающее в привилегированном режиме микропроцессора. (x86 - Ring 0)
- приложения нет, вся функциональность, фактически, засунута в ОС
- Причины использования:
- производительность. Переключение контекста при переходе между user space и kernel space - дорогое. Обманчиво. Не все приложения проигрывают от unix-kernel переключение контекстов. unikernel часто полагается на какую-то hardware virtualization.
- более безопасные. Меньше приложений, меньше возможностей для атаки. Однако гипервизорские уязвимости остаются. Приложение работает как root, любая проблема - доступ рута.
- маленькие. Но память используется вся (гипервизор не знает, где что не используется)
- Недостатки:
- Нет интерфейса. Его надо либо реализовать, либо использовать готовый. Часто Posix-like. Приложения могут даже заработать сразу. Но могут позже сломаться в рантами. Нужно портировать. Нет процессов. Есть готовые решения. OCaml (MirageOS), Erlang (erlangonxen.org), Haskell(HaLVM)
- Undebuggable. Нет процессов, поэтому нет ps, top, strace, netstat, tcpdump, ping, Dtrace, MDB. Много интуиции, выводов на основе поведения. Рестарт приложения, если оно “ведет себя не так”.
- Все равно есть плюсы: революция контейнеров требует более легкого run-time, чем Linux guest OS поверх виртуального hardware.