Rust for Web
https://medium.com/@eugeniyoz/restful-api-in-rust-impressions-63250d611d15#.8p6pzohow
- Разработчик переходил на Rust с PHP, опыта в Rust было 0
- Кратко про ownership, говорит, что очень, очень помогает.
- Компилятор: враг -> союзник; debugging более дорогой, чем написание кода
- cargo - супер штука
- IDE: IntelliJ IDEA
- syntax: недоволен, но готов мириться ради функциональности
- JSON: pain
Paper “Time is illusion”
http://queue.acm.org/detail.cfm?ref=rss&id=2878574
- Мало кто читал “Time, Clocks и порядок событий в распределенной системе”
- чуть больше воспринимает всерьез эту проблему.
- Любое обсуждение: synchronisation and syntonization
- Синхронизация: когда два компьютера “одновременно”, что время, скажем, 22:30. min/sec/ms/qs
- Syntonization - это качество единицы измерения. При нагреве - кварц увеличивает частоту.
- Более дорогие кристаллы - точнее, поэтому полно плохих кристаллов. За часы - на минуты может уйти.
- В ОС есть набор программ для регуляции этих изменений (как??). Но изнутри системы это сложно сделать.
- Покупать более дорогие машины - не вариант
- $1k за PCI-внешний генератор.
- API:
- tradeoff: speed vs accuracy
- gettimeofday()
- BSD: clock_gettime + clock_getres(): PRECISE, FAST
- Linux: clock_gettime()
- CPU: rdtsc - single instruction to get On-Chip Time Stamp Counter: to measure function call
- Network Time Protocol(NTP)
- stratum0 - caesium or rubidium
- stratum1 - connected to stratum0 via direct cable
- …
- stratum15
- Datacenter Time
- PTP: Precision Time Protocol - (submicrosecond) от заводов, станков и сотовой связи приходит в наши сети.
- Используется в HFT (High Frequency Trading)
- Многие сетевухи научились воспринимать PTP пакеты.
- Мультикаст, PTP мастер и сейвы. Нет роутеров.
- Delay_request/delay_response - для определения one-way-delay.
- Предполагается, что нет Jitter (дрожания) времени передачи
- Future
- Переключение на 10Gbps, 25-, 40, 100-Gbps сети потребует наносекунд, чтобы определять очередность прихода пакетов на разные хосты.
- 10Гб сеть - пакеты могут приходить 67 нс задержкой.,
Docker-1.10
https://blog.docker.com/2016/02/docker-1-10/
- Upgrade to docker-engine 1.10 takes time, to prevent downtime, read the upgrade doc
- https://docs.docker.com/engine/migration/
- DNS in container:
- https://github.com/docker/libnetwork/issues/767
- Content addressable image IDs
- Live update container resource constraints
- Temporary filesystems: “—tmpfs” flag to “docker run”
- Constraints on disk I/O read/write bps/iops
- Swarm-1.1
- reschedule containers when a node fails
- Better node management: If Swarm fails to connect to a node, it will now retry instead of just giving up.
- Docker-machine-0.6
- new provision command
- Registry-2.3
- Performance + security
- layers are shared between different images (improve push performance)
rkt-1.0
https://coreos.com/blog/rkt-hits-1.0.html
- 15 months, 3000 commits, >100 contributors
- stable interface and on-disk format
- advanced security capabilities (KVM-based container isolation, image signature validation, privilege separation)
- image discovery and retrieval - without root. Execution - with root
- cgroups by default, Intel Clear Containers (KVM-based), and rkt fly
- run existing Docker images and standards-based App Container Images
- community: Arch, CoreOS, Ubuntu,Fedora, NixOS, etc
- open container initiative