Forwarded from Библиотека Go-разработчика | Golang
Основы Golang в одной статье: https://proglib.io/w/a3840387
Medium
The Only Introduction to Golang You Need
Learn the basics of Go with 30 useful cheat sheets
Forwarded from Человек и машина
#машины_aws
Ваше выходное чтиво - третья глава по DynamoDB.
В этой части: что такое консистентность, почему ее так тяжело достичь и как воспроизвести в DynamoDB, как отлавливать изменения данных, а также особенности кеширования с использованием DAX и построение гео-распределенных таблиц.
Ваше выходное чтиво - третья глава по DynamoDB.
В этой части: что такое консистентность, почему ее так тяжело достичь и как воспроизвести в DynamoDB, как отлавливать изменения данных, а также особенности кеширования с использованием DAX и построение гео-распределенных таблиц.
Medium
Amazon DynamoDB Deep Dive. Chapter 3: Consistency, DynamoDB streams, TTL, Global tables, DAX
The story of one of the world’s fastest database in a human-friendly format
Forwarded from emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Rambler делится опытом перехода от Python к Rust:
- https://m.habr.com/ru/company/rambler_group/blog/533268/
- https://m.habr.com/ru/company/rambler_group/blog/535234/
#FunctionalProgramming
- https://m.habr.com/ru/company/rambler_group/blog/533268/
- https://m.habr.com/ru/company/rambler_group/blog/535234/
#FunctionalProgramming
Хабр
Rust глазами Python-разработчика
Привет! Мы – часть команды разработки «Рамблер/Медиа» (портал «Рамблер»). На протяжении трех лет мы поддерживаем и развиваем несколько больших python-приложений. Чуть больше года назад перед нами...
Forwarded from Sysadmin Tools 🇺🇦
Building On-Call Culture at GitHub
https://github.blog/2021-01-06-building-on-call-culture-at-github/
#github
https://github.blog/2021-01-06-building-on-call-culture-at-github/
#github
Forwarded from Библиотека Go-разработчика | Golang
Практика работы с картами в Golang:
- Карты Go: объявление и инициализация
- Типы карт в Go
- Хранение и получение значений карты
- Определение наличия ключа карты
- Итерация по карте
- map[string]interface{} в Go
- Часто задаваемые вопросы о картах Go
- Карты Go: объявление и инициализация
- Типы карт в Go
- Хранение и получение значений карты
- Определение наличия ключа карты
- Итерация по карте
- map[string]interface{} в Go
- Часто задаваемые вопросы о картах Go
Bitfield Consulting
Go maps: declaring and initializing — Bitfield Consulting
What is a Golang map? Why is it useful? How does it compare to a slice? How do you declare a map? How do you initialize a map in Go? Fear not, all these questions are answered in this friendly introduction to one of Go’s most powerful features.
Forwarded from Уютный IT адочек
🤝 Обмен знаниями в инженерных командах
Наш читатель @terrifilch прислал интересную ссылку на интервью с Balázs Balázs, который работал в Facebook: https://codingsans.com/blog/knowledge-sharing
В статье описываются те приёмы обмена знаниями (и это не только документация!), с которыми он сталкивался и самые базовые вещи, касательно подходов и приёмов. Всегда интересно посмотреть, как процессы устроены у коллег по цеху, вот она — возможность 🙂
Наш читатель @terrifilch прислал интересную ссылку на интервью с Balázs Balázs, который работал в Facebook: https://codingsans.com/blog/knowledge-sharing
В статье описываются те приёмы обмена знаниями (и это не только документация!), с которыми он сталкивался и самые базовые вещи, касательно подходов и приёмов. Всегда интересно посмотреть, как процессы устроены у коллег по цеху, вот она — возможность 🙂
Forwarded from запуск завтра
Cloudflare готовится перевернуть рынок хостинга веб-приложений. Длинный пост, но технологии на самом деле поразительные.
Исторически, Cloudflare — крупный и агрессивный игрок на рынке CDN, то есть они умеют с минимальной задержкой и максимальной скоростью отдавать статический контент: картинки или страницы, которые одинаковые для всех пользователей. Они забирают их с ваших серверов, копируют (кешируют) на сотни своих серверов и отдают пользователю. Прикол в том, что у Cloudflare есть свои серверы в 200 главных точках обмена трафиком, 99% пользователей интернета живут ближе, чем в сотне километров от сервера Cloudflare. Это называется edge-network, пограничная сеть, в смысле та, которая граничит с пользователями. Небольшое расстояние и оптимизированные серверы означают, что статический контент будет грузиться мгновенно.
Проблема в том, что большинство страниц — динамические. Например, гугл-документ или мою ленту фейсбука кешировать на edge смысла нет — никому кроме меня она не нужна, да и мне интересна только самая последняя версия документа, и я его только что отредактировал. Исторически это означает, что нам нужно вести все эти вычисления новых страниц где-то на центральном сервере. У крупных компаний вроде гугла или фейсбука обычно есть несколько крупных серверных ферм на каждом континенте, поближе к пользователям, так что пользователи из России кучкуются на европейских серверах, а американцы — на штатовских. Это всё требует довольно сложную инфраструктуру, маленьким компаниям недоступную. Облака Амазона и другие конкуренты пытаются решить эту проблему, но без поллитра во всех их рычажках не разберешься.
Кажется, у Cloudflare получилось придумать элегантное, красивое решение для динамических страниц, которое работает прямо на edge-серверах! Встречайте Cloudflare Workers и Durable Objects.
Cloudflare Workers — облачные функции, в Амазоне они называются лямбды (lambda@edge). То есть вы пишете программу, которая обрабатывает запросы пользователей, загружаете её в облако и она запускается по необходимости на серверах облака, прозрачно, незаметно для вас и для пользователя. Придет один пользователь — запустится одна копия, придет тысяча — запустится тысяча копий. Обычно есть время на так называемый cold start, то есть после некоторого ожидания облачная функция тушится и нужно время, чтобы она проснулась и начала отвечать на запросы. Тут этой задержки нет. Обычно вам нужно выбрать регион работы функции (помните про близость к пользователю?), тут выбирать не нужно, код запустится из самого ближнего к пользователю edge (!) сервера. Обычно эта штука стоит недешево, здесь она примерно в 3-10 раз дешевле, чем у конкурентов. Весь этот банкет за счет того, что наш код работает не контейнерах, а v8-изолятах, то есть частично — на движке гугл-хрома! (тут рассказано, как их выбрали). Но это всё закуска, кайф — дальше.
У облачных функций есть слабое место — координация пользователей. Например, мы хотим сделать копию сервиса Гугл-документов или сервис чатов — то есть несколько людей подключаются к одной программе, могут в неё писать и читать общие данные. Решений два — либо запускаем программу по-старинке, один экземпляр на сервере и храним данные в памяти (быстро!), либо запускаем в функциях, но тогда нужна будет очень быстрая общая база данных и то скорость будет ниже, потому что функциям нужно будет ходить в центральную базу данных.
Cloudflare эту проблему решили с помощью Durable Objects — это такие воркеры, которые а) уникальны, то есть гарантированно запускается только один экземпляр б) имеют доступ к надежному и быстрому хранилищу в) запускаются там, где большинство пользователей и могут самостоятельно мигрировать между серверами. Получается, что большинство операций происходят в памяти, но при этом самостоятельная серверная программа не нужна. Красиво! В статье примеры каунтера и чата, простота кода впечатляет.
Отдельно подчеркну достойную документацию и хороший инструментарий разработчика.
Перечисленное выше — базовые технологии, на которых можно строить впечатляющие бизнес-решения.
Исторически, Cloudflare — крупный и агрессивный игрок на рынке CDN, то есть они умеют с минимальной задержкой и максимальной скоростью отдавать статический контент: картинки или страницы, которые одинаковые для всех пользователей. Они забирают их с ваших серверов, копируют (кешируют) на сотни своих серверов и отдают пользователю. Прикол в том, что у Cloudflare есть свои серверы в 200 главных точках обмена трафиком, 99% пользователей интернета живут ближе, чем в сотне километров от сервера Cloudflare. Это называется edge-network, пограничная сеть, в смысле та, которая граничит с пользователями. Небольшое расстояние и оптимизированные серверы означают, что статический контент будет грузиться мгновенно.
Проблема в том, что большинство страниц — динамические. Например, гугл-документ или мою ленту фейсбука кешировать на edge смысла нет — никому кроме меня она не нужна, да и мне интересна только самая последняя версия документа, и я его только что отредактировал. Исторически это означает, что нам нужно вести все эти вычисления новых страниц где-то на центральном сервере. У крупных компаний вроде гугла или фейсбука обычно есть несколько крупных серверных ферм на каждом континенте, поближе к пользователям, так что пользователи из России кучкуются на европейских серверах, а американцы — на штатовских. Это всё требует довольно сложную инфраструктуру, маленьким компаниям недоступную. Облака Амазона и другие конкуренты пытаются решить эту проблему, но без поллитра во всех их рычажках не разберешься.
Кажется, у Cloudflare получилось придумать элегантное, красивое решение для динамических страниц, которое работает прямо на edge-серверах! Встречайте Cloudflare Workers и Durable Objects.
Cloudflare Workers — облачные функции, в Амазоне они называются лямбды (lambda@edge). То есть вы пишете программу, которая обрабатывает запросы пользователей, загружаете её в облако и она запускается по необходимости на серверах облака, прозрачно, незаметно для вас и для пользователя. Придет один пользователь — запустится одна копия, придет тысяча — запустится тысяча копий. Обычно есть время на так называемый cold start, то есть после некоторого ожидания облачная функция тушится и нужно время, чтобы она проснулась и начала отвечать на запросы. Тут этой задержки нет. Обычно вам нужно выбрать регион работы функции (помните про близость к пользователю?), тут выбирать не нужно, код запустится из самого ближнего к пользователю edge (!) сервера. Обычно эта штука стоит недешево, здесь она примерно в 3-10 раз дешевле, чем у конкурентов. Весь этот банкет за счет того, что наш код работает не контейнерах, а v8-изолятах, то есть частично — на движке гугл-хрома! (тут рассказано, как их выбрали). Но это всё закуска, кайф — дальше.
У облачных функций есть слабое место — координация пользователей. Например, мы хотим сделать копию сервиса Гугл-документов или сервис чатов — то есть несколько людей подключаются к одной программе, могут в неё писать и читать общие данные. Решений два — либо запускаем программу по-старинке, один экземпляр на сервере и храним данные в памяти (быстро!), либо запускаем в функциях, но тогда нужна будет очень быстрая общая база данных и то скорость будет ниже, потому что функциям нужно будет ходить в центральную базу данных.
Cloudflare эту проблему решили с помощью Durable Objects — это такие воркеры, которые а) уникальны, то есть гарантированно запускается только один экземпляр б) имеют доступ к надежному и быстрому хранилищу в) запускаются там, где большинство пользователей и могут самостоятельно мигрировать между серверами. Получается, что большинство операций происходят в памяти, но при этом самостоятельная серверная программа не нужна. Красиво! В статье примеры каунтера и чата, простота кода впечатляет.
Отдельно подчеркну достойную документацию и хороший инструментарий разработчика.
Перечисленное выше — базовые технологии, на которых можно строить впечатляющие бизнес-решения.
Forwarded from Tech Cheat Sheet (Oleg Kovalov)
Forwarded from Sysadmin Tools 🇺🇦
sreCon20 Americas Playlist
https://www.youtube.com/watch?v=2C2F5USR6N4&list=PLbRoZ5Rrl5lfLXUjFjS0mP1XzNzNZMhYN
https://www.youtube.com/watch?v=2C2F5USR6N4&list=PLbRoZ5Rrl5lfLXUjFjS0mP1XzNzNZMhYN
YouTube
SREcon20 Americas - The Secret Lives of SREs - Controlling the Costs of Coordination across Remote
The Secret Lives of SREs - Controlling the Costs of Coordination across Remote Teams
Laura Maguire, PhD
If you ask a group of engineers how they resolved a particularly difficult outage they typically talk about the dashboards that got pulled up, the logs…
Laura Maguire, PhD
If you ask a group of engineers how they resolved a particularly difficult outage they typically talk about the dashboards that got pulled up, the logs…
Всего 2 месяца отделяют вас от должности архитектора ПО!
Если у вас достаточно опыта в IT и вы настроены двигаться дальше по карьерной лестнице, онлайн-курс «Архитектор ПО» в этом поможет!
Программа обучения разработана специально для middle- и senior- разработчиков, тимлидов и системных администраторов, готовых освоить лучшие практики по разработке архитектуры программного обеспечения и сложных распределенных отказоустойчивых систем.
Вас ждут:
— 2 месяца насыщенной программы;
— 11 модулей и 40 онлайн-уроков;
— готовый toolkit для входа в профессию;
— задания, основанные на реальных кейсах;
— дипломный проект, который дополнит портфолио.
Для первых студентов действует скидка до 60%, а также рассрочка на 12 месяцев. Переходите: https://clc.am/hY9pAg и записывайтесь!
Если у вас достаточно опыта в IT и вы настроены двигаться дальше по карьерной лестнице, онлайн-курс «Архитектор ПО» в этом поможет!
Программа обучения разработана специально для middle- и senior- разработчиков, тимлидов и системных администраторов, готовых освоить лучшие практики по разработке архитектуры программного обеспечения и сложных распределенных отказоустойчивых систем.
Вас ждут:
— 2 месяца насыщенной программы;
— 11 модулей и 40 онлайн-уроков;
— готовый toolkit для входа в профессию;
— задания, основанные на реальных кейсах;
— дипломный проект, который дополнит портфолио.
Для первых студентов действует скидка до 60%, а также рассрочка на 12 месяцев. Переходите: https://clc.am/hY9pAg и записывайтесь!
Forwarded from Записки админа
📺 Наткнулся на занятный Youtube канал (с учётом возраста канала и количества подписчиков, странно, что я не видел его раньше), где автор весьма подробно, буквально на пальцах объясняет различные линуксово-секурити-ctf темы. Из того что уже посмотрел, после чего решил сюда его принести:
• Kernel Root Exploit via a ptrace() and execve() Race Condition.
• Syscalls, Kernel vs. User Mode and Linux Kernel Source Code.
#видео #linux #security
• Kernel Root Exploit via a ptrace() and execve() Race Condition.
• Syscalls, Kernel vs. User Mode and Linux Kernel Source Code.
#видео #linux #security
Forwarded from Технологический Болт Генона
Diving into /proc/[pid]/mem
https://blog.cloudflare.com/diving-into-proc-pid-mem/
https://blog.cloudflare.com/diving-into-proc-pid-mem/
The Cloudflare Blog
Diving into /proc/[pid]/mem
A few months ago, after reading about Cloudflare doubling its intern class, I quickly dusted off my CV and applied for an internship. Long story short: now, a couple of months later, I found myself staring at Linux kernel code and adding a pretty cool feature…
Forwarded from I hate overtime
#data
Отличный курс лекций про данные от Ростелека и вендоров: https://www.youtube.com/playlist?list=PLlCP3a0hjY50I5mumo_YCu7IEDjiUpEWO
З.Ы. лекции 1.1-1.3 вводные, их можно пропустить
Отличный курс лекций про данные от Ростелека и вендоров: https://www.youtube.com/playlist?list=PLlCP3a0hjY50I5mumo_YCu7IEDjiUpEWO
З.Ы. лекции 1.1-1.3 вводные, их можно пропустить
YouTube
Лекции DataTalks
Share your videos with friends, family, and the world
Forwarded from Человек и машина
#машины_разное
Во время своего выступления Дор Лаор, СЕО Scylla анонсировал новый проект Cerci, который в корне меняет структуру консенсуса ScyllaDB.
Взамен Paxos в ядро этого немалоизвестного конкурента Cassandra и DynamoDB будет использоваться Raft, что по словам Дора сделано в угоду консистентности и позволяет быстрее синхронизировать новые узлы в кластере.
Интересно попробовать собрать POSIX FS over Scylla... когда-нибудь.
Во время своего выступления Дор Лаор, СЕО Scylla анонсировал новый проект Cerci, который в корне меняет структуру консенсуса ScyllaDB.
Взамен Paxos в ядро этого немалоизвестного конкурента Cassandra и DynamoDB будет использоваться Raft, что по словам Дора сделано в угоду консистентности и позволяет быстрее синхронизировать новые узлы в кластере.
Интересно попробовать собрать POSIX FS over Scylla... когда-нибудь.
ScyllaDB
Making ScyllaDB a Monstrous Database: Introducing Project Circe - ScyllaDB
Project Circe is a year-long initiative to make ScyllaDB even more of a monstrous database, improving performance, scalability and elasticity.
Forwarded from Sysadmin Tools 🇺🇦
Juicefs - a distributed POSIX file system built on top of Redis and S3.
#redis #s3 #posix #hdfs #golang #filesystem
#redis #s3 #posix #hdfs #golang #filesystem
GitHub
GitHub - juicedata/juicefs: JuiceFS is a distributed POSIX file system built on top of Redis and S3.
JuiceFS is a distributed POSIX file system built on top of Redis and S3. - juicedata/juicefs
Forwarded from Как мы делаем Яндекс
👨🏻🎓
«В Яндексе десятки тысяч машин, которые постоянно нагружены под завязку разными вычислительными задачами. Бо́льшая часть этих вычислений относится к так называемой batch-нагрузке — как правило, оформленной в виде операций в парадигме MapReduce. Мы используем собственную систему YT, которая предоставляет распределённый storage и интерфейс запуска распределённых вычислений с произвольным пользовательским кодом. В докладе я расскажу о задачах, возникающих при попытке написать софт, который будет что-то планировать на кластерах из большого количества машин.»
Архитектура отказоустойчивого планировщика задач. Доклад Яндекса
«В Яндексе десятки тысяч машин, которые постоянно нагружены под завязку разными вычислительными задачами. Бо́льшая часть этих вычислений относится к так называемой batch-нагрузке — как правило, оформленной в виде операций в парадигме MapReduce. Мы используем собственную систему YT, которая предоставляет распределённый storage и интерфейс запуска распределённых вычислений с произвольным пользовательским кодом. В докладе я расскажу о задачах, возникающих при попытке написать софт, который будет что-то планировать на кластерах из большого количества машин.»
Архитектура отказоустойчивого планировщика задач. Доклад Яндекса
Forwarded from PythonDigest
Используем аналог s3 на localhost - MinIO для хранения файлов
https://rogs.me/2021/01/using-minio-to-upload-to-a-local-s3-bucket-in-django/
https://rogs.me/2021/01/using-minio-to-upload-to-a-local-s3-bucket-in-django/
Forwarded from Технологический Болт Генона
Lessons learned in incident management
https://dropbox.tech/infrastructure/lessons-learned-in-incident-management
https://dropbox.tech/infrastructure/lessons-learned-in-incident-management
Forwarded from Yandex for Developers
Фаерволы, файрволы, фаэрволы 🔐 Подкаст с участием Бориса Лыточкина — эксперта по сетям в Яндексе
Боря Лыточкин, он же Злой NOC — cетевой прораб Яндекса с 12-летним стажем, обладатель ачивки «сломал Яндекс». Отвечает за сеть в офисах компании и служебные сети дата-центров.
Первая часть подкаста на всех платформах: https://linkmeup.ru/blog/603.html. Темы:
Разбираемся в различиях:
— Роутеров и фаерволов
— Аппаратных фаерволов от тазиков (программных на -nix)
— NAT от фаерволов
Области, где требуется фильтрация (сегментация) пакетов:
— Граница Автономной Системы (border) — много полосы, потенциальная асимметрия
— ACL со стороны апстрима — зачем это может быть нужно?
— Групп сетей availability zone, проект, серверный/пользовательский
— На конечных устройствах серверах, ноутбуках, ПК, мобильники — зачем вообще, от кого защищаемся
— AntiDDoS, bypass (on wire/programmable)
Address planing — взаимосвязь количества правил фильтрации и количества маршрутов на сети.
Типы файрволов:
— L3/L4 пакетные фильтры — stateless TCAM-based
— Full-software processing L3/L4/dumb DPI — iptables/nftables/ipfw/pf/etc
— DPI (snort/suricata): RST generation vs filtering
— DPI + TCAM-based acceleration
— DPI и IPS, почему это не одно и то же
Режим работы файрвола — stateless vs stateful: что хранится в state, как используется.
-------------
Вторая часть будет в это воскресенье, 17 января, в 15:00 мск. Темы:
— Сколько надо поставить NAT, вебкамер и винбоксов, чтобы не попасть на Хабр
— Режим работы фаервола — stateless vs stateful
— NAT или нет NAT, вот в чём вопрос
— High availability как у сына маминой подруги
Почитать подробные тезисы, добавить в календарь и задать вопросы можно здесь: https://linkmeup.ru/blog/606.html
Боря Лыточкин, он же Злой NOC — cетевой прораб Яндекса с 12-летним стажем, обладатель ачивки «сломал Яндекс». Отвечает за сеть в офисах компании и служебные сети дата-центров.
Первая часть подкаста на всех платформах: https://linkmeup.ru/blog/603.html. Темы:
Разбираемся в различиях:
— Роутеров и фаерволов
— Аппаратных фаерволов от тазиков (программных на -nix)
— NAT от фаерволов
Области, где требуется фильтрация (сегментация) пакетов:
— Граница Автономной Системы (border) — много полосы, потенциальная асимметрия
— ACL со стороны апстрима — зачем это может быть нужно?
— Групп сетей availability zone, проект, серверный/пользовательский
— На конечных устройствах серверах, ноутбуках, ПК, мобильники — зачем вообще, от кого защищаемся
— AntiDDoS, bypass (on wire/programmable)
Address planing — взаимосвязь количества правил фильтрации и количества маршрутов на сети.
Типы файрволов:
— L3/L4 пакетные фильтры — stateless TCAM-based
— Full-software processing L3/L4/dumb DPI — iptables/nftables/ipfw/pf/etc
— DPI (snort/suricata): RST generation vs filtering
— DPI + TCAM-based acceleration
— DPI и IPS, почему это не одно и то же
Режим работы файрвола — stateless vs stateful: что хранится в state, как используется.
-------------
Вторая часть будет в это воскресенье, 17 января, в 15:00 мск. Темы:
— Сколько надо поставить NAT, вебкамер и винбоксов, чтобы не попасть на Хабр
— Режим работы фаервола — stateless vs stateful
— NAT или нет NAT, вот в чём вопрос
— High availability как у сына маминой подруги
Почитать подробные тезисы, добавить в календарь и задать вопросы можно здесь: https://linkmeup.ru/blog/606.html
Forwarded from Записки админа
Forwarded from DevOps&SRE Library
How to Prepare for a Site Reliability Engineer Interview
https://victorops.com/blog/preparing-for-a-site-reliability-engineer-interview
https://victorops.com/blog/preparing-for-a-site-reliability-engineer-interview