Как стать автором
Обновить
0
@ArtemZdorread⁠-⁠only

Пользователь

Отправить сообщение

Асинхронность в программировании

Время на прочтение26 мин
Количество просмотров97K

В области разработки высоконагруженных многопоточных или распределенных приложений часто возникают дискуссии об асинхронном программировании. Сегодня мы подробно погрузимся в асинхронность и изучим, что это такое, когда она возникает, как влияет на код и язык программирования, которым мы пользуемся. Разберемся, зачем нужны Futures и Promises и затронем корутины и операционные системы. Это сделает компромиссы, возникающие во время разработки ПО, более явными.


В основе материала — расшифровка доклада Ивана Пузыревского, преподавателя школы анализа данных Яндекса.


Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии70

Пробую .NET Core + Kubernetes + appmetrics + prometheus + grafana + jobs + health checks

Время на прочтение14 мин
Количество просмотров26K
Краткое знакомство с kubernetes для разработчиков на примере разворачивания простого шаблонного сайта, с постановкой его на мониторинг, выполнением джобов по расписанию и health checks (все исходники прилагаются)

Установка Kubernetes
Установка UI
Запуск своего приложения в кластере
Добавление кастомных метрик в приложение
Сбор метрик через Prometheus
Отображение метрик в Grafana
Выполнение задач по расписанию
Отказоустойчивость
Выводы
Заметки
Список литературы
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии4

Сервер в облаках 2.0. Запускаем сервер в стратосферу

Время на прочтение3 мин
Количество просмотров12K
Друзья, мы придумали новую движуху. Многие из вас помнят наш прошлогодний фановый гик-проект «Сервер в облаках»: мы сделали маленький сервачок на основе Raspberry Pi и запустили его на воздушном шаре.



Теперь мы решили пойти ещё дальше, то есть выше — нас ждёт стратосфера!
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии25

Переквалификация в DevOps – к чему себя готовить

Время на прочтение5 мин
Количество просмотров13K
В этом материале Александра Романенко, которая сотрудничает с компанией EPAM в качестве Lead Software Engineer, делится своим взглядом на переквалификацию и рассказывает, на что обращать внимание, если вы хотите стать DevOps-специалистом.

image
Читать дальше →
Всего голосов 21: ↑12 и ↓9+3
Комментарии12

Игра для любителей и знатоков Linux

Время на прочтение2 мин
Количество просмотров21K


Сегодня открылась регистрация на участие в Linux Quest — игре для любителей и знатоков операционной системы Linux.

У нас в компании есть уже довольно большой отдел Site Reliability Engineering (SRE), инженеров по доступности сервисов. Мы отвечаем за непрерывную и бесперебойную работу сервисов компании и решаем много других интересных и важных задач:
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии21

Terraform-провайдер Selectel

Время на прочтение10 мин
Количество просмотров9.3K


Мы запустили официальный Terraform-провайдер для работы с Selectel. Этот продукт позволяет пользователям полностью реализовать управление ресурсами через методологию Infrastructure-as-code (инфраструктура как код).
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии6

Kubernetes 1.14: обзор основных новшеств

Время на прочтение7 мин
Количество просмотров12K


Этой ночью состоится очередной релиз Kubernetes — 1.14. По сложившейся для нашего блога традиции, рассказываем о ключевых изменениях в новой версии этого замечательного Open Source-продукта.

Информация, использованная для подготовки этого материала, взята из таблицы Kubernetes enhancements tracking, CHANGELOG-1.14 и сооветствующих issues, pull requests, Kubernetes Enhancement Proposals (KEP). UPDATE (26 марта): в блоге K8s появился и официальный анонс релиза.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии9

GraphQL и Golang

Время на прочтение16 мин
Количество просмотров34K
Технология GraphQL за последние несколько лет, после того, как компания Facebook перевела её в разряд опенсорсных, стала весьма популярной. Автор материала, перевод которого мы сегодня публикуем, говорит, что попробовал работать с GraphQL в среде Node.js и на собственном опыте убедился в том, что эта технология, благодаря её замечательным возможностям и простоте, неслучайно привлекает к себе столько внимания. Недавно он, занимаясь новым проектом, перешёл с Node.js на Golang. Тогда он и решил испытать совместную работу Golang и GraphQL.


Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии12

Изучаем Go: подборка видеозаписей докладов

Время на прочтение2 мин
Количество просмотров11K


Сегодня язык Go широко используется для разработки распределённых и высоконагруженных приложений. Мы собрали для вас подборку видео, в основном с наших митапов, в которых разбираются преимущества и недостатки языка, и рассказывается об особенностях его применения на примерах реальных проектов.

Список видеозаписей:

  1. Go в production.
  2. Профилирование Go-приложений.
  3. Медиасервер трансляций на Go.
  4. Pipeline поиска по Почте на Go.
  5. Синхронизация данных в Go с помощью mysql binlog.
  6. Как мы начали использовать Go в Ответах Mail.ru.
  7. Pub/Sub и 1 миллион WebSocket’ов.
  8. Программирование на Go (курс).
  9. Кому нужен язык Go и микросервисы.
Всего голосов 31: ↑31 и ↓0+31
Комментарии3

Новый фонд для DevOps-проектов от Linux Foundation начался с Jenkins и Spinnaker

Время на прочтение6 мин
Количество просмотров10K


На прошлой неделе организация The Linux Foundation во время своего мероприятия Open Source Leadership Summit объявила о создании нового фонда для Open Source-проектов. Очередной независимый институт по развитию открытых [и востребованных в индустрии] технологий призван объединить в себе инструменты для DevOps-инженеров, а если быть точнее — для организации и реализации процессов непрерывной доставки, пайплайнов CI/CD. Организацию так и назвали: The Continuous Delivery Foundation (CDF).
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии3

Разработан метод шумоизоляции, гасящий до 94% шумов — рассказываем, как он работает

Время на прочтение4 мин
Количество просмотров94K
Американские инженеры предложили способ шумоизоляции. Он отличается от привычных звукопоглощающих панелей. Это — напечатанное на 3D-принтере пластиковое кольцо.

Всего голосов 49: ↑40 и ↓9+31
Комментарии177

Стратегическая архитектура OpenSSL

Время на прочтение7 мин
Количество просмотров8.8K
В этом документе OpenSSL Management Committee излагает основные принципы стратегической архитектуры OpenSSL. Начиная с 3.0.0, потребуется несколько версий, чтобы перейти от текущей архитектуры (версия 1.1.1) к будущей.

В архитектуре ожидаются многочисленные изменения. Мы предлагаем путь возможной миграции. Выпуск OpenSSL 3.0.0 минимально повлияет на подавляющее большинство существующих приложений, почти все грамотные приложения просто нужно будет перекомпилировать.

Текущую функциональность, предоставляемую интерфейсом движка, со временем заменит программный интерфейс. OpenSSL 3.0.0 сохранит поддержку движков. Будущая архитектура может быть полностью реализована не ранее OpenSSL 4.0.0.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии0

Ни минуты оффлайн — Выбираем промышленный LTE-роутер

Время на прочтение22 мин
Количество просмотров70K
промышленный LTE роутер Termit CR41P, с антеннами Триада MA-2697

Во многих системах связь с интернетом критически важна, и даже несколько минут простоя могут дорого стоить, например, в банкоматах, сигнализациях, системах мониторинга и контроля доступа.
В таких системах обычно используется несколько подключений к интернету и автоматическое переключение между разными каналами в случае недоступности основного канала.

Мне надоело самостоятельно изобретать failover на USB модемах, и захотелось делегировать это отдельной умной железке. Я решил сравнить несколько промышленных роутеров, чтобы выяснить, оправдывают ли они свое название, и насколько они лучше моих костылей. В статье будут сравниваться роутеры производителей iRZ, Termit, Robustel.

Основные требования к роутерам:

  • 2 SIM-карты и автоматическое переключение между операторами — роутер должен автоматически определять потерю связи на одном операторе и переключаться на резервного. Это особенно важно для подвижных систем, когда покрытие сотовой сети не идеально.
  • Подключение по Ethernet — основная система должна видеть только шлюз по умолчанию, и не должна знать о модемной подсистеме на стороне роутера и переключениях каналов, поэтому никаких USB.
  • Поддержка современных протоколов VPN: IKEv2 и OpenVPN — для удобства администрирования, и чтобы не зависеть от реальных IP-адресов, роутеры должны уметь VPN. При этом поддерживать не только устаревшие PPTP и L2TP, но и современные протоколы.
  • (Опционально) поддержка GPS, наличие GPIO, serial интерфейсов RS-232/485 — эти функции не обязательны для наших задач, но мы рассмотрим их тоже, как бонус, который, возможно, будет кому-то полезен.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии114

Микросервисы (Microservices)

Время на прочтение22 мин
Количество просмотров695K
От переводчика: некоторые скорее всего уже читали этот титанический труд от Мартина Фаулера и его коллеги Джеймса Льюиса, но я все же решил сделать перевод этой статьи. Тренд микросервисов набирает обороты в мире enterprise разработки, и эта статья является ценнейшим источником знаний, по сути выжимкой существующего опыта работы с ними.

Термин «Microservice Architecture» получил распространение в последние несколько лет как описание способа дизайна приложений в виде набора независимо развертываемых сервисов. В то время как нет точного описания этого архитектурного стиля, существует некий общий набор характеристик: организация сервисов вокруг бизнес-потребностей, автоматическое развертывание, перенос логики от шины сообщений к приемникам (endpoints) и децентрализованный контроль над языками и данными.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии45

Как делегировать простые отчеты роботу. Пишем бота на Python и Google BigQuery

Время на прочтение5 мин
Количество просмотров15K


Есть ли у вас задачи, которые повторяются изо дня в день, из недели в неделю? Например, написание отчетов. Вы запрашиваете данные, проводите анализ, визуализируете (делаете графики, диаграммы), а затем отправляете начальнику. Но что, если все это автоматизировать?

В этом туториале мы создадим бота для Telegram, который поможет автоматизировать отчетность. А самое классное — вся программа будет состоять всего из 50 строк кода! Если вы создаете бота для Telegram впервые, то стоит прочитать еще вот этот пост.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования

Время на прочтение9 мин
Количество просмотров47K

(Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился).


Я объясню вам доступным языком, что происходит при шифровании данных. Надеюсь, что без мистики и сложных штук, которые были придуманы криптографами.


Итак, симметричное шифрование — это именно то, что мы используем в большинстве случаев, когда хотим зашифровать кучу данных. Ваш браузер отправляет и получает данные, используя симметричное шифрование. Если вы шифруете файлы или диск, в этом случае тоже работает симметричное шифрование. iMessage, Signal, WhatsApp — все они используют симметричное шифрование для безопасности вашей переписки.


Если вы думаете, что при шифровании данные перемешиваются так, что их никто не может прочитать без ключа, так оно и происходит на самом деле.


Вот простой пример. Допустим, у меня есть строка "Ovaltine" и я хочу её зашифровать. Я мог бы воспользоваться rot13 — очень простым олдскульным шифром Цезаря, который делает хоровод из букв, где a и z держатся за ручки, и заменяет каждую букву другой буквой алфавита, которая находится от заменяемой буквы на расстоянии 13 символов. Таким образом "O" превращается в "B", а "v" становится "i", в итоге "Ovaltine" превращается в "Binygvar". Конечно, это не очень безопасно. Это наивный пример, который очень легко взломать, так как атакующий может выяснить, какая буква встречается чаще всего (обычно в оригинальном тексте это "e") и найти оставшиеся буквы подобным образом.

Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии24

Следим за качественными цифровыми релизами фильмов без суеты

Время на прочтение8 мин
Количество просмотров87K


В большинстве случаев качественные нелегальные раздачи какого-то фильма начинают появляться только после цифрового релиза (не путайте цифровые релизы с премьерами в кинотеатрах), т.е. в VOD-сервисах или на Blu-ray. Под качественными подразумеваются BDRip 1080p, BDRemux и UHD BDRemux, самый минимум — это WEB-DL 1080p (чаще всего из iTunes), с русскоязычными звуковыми дорожками от лицензионного издания Blu-ray или из iTunes. А до этого с раздачами фильма творится чехарда с комбинацией мха и опилок, которая может ввести в заблуждение зрителя, желающего смотреть новинки с хорошим качеством.
Читать дальше →
Всего голосов 89: ↑82 и ↓7+75
Комментарии161

Гибкая схема хранения данных в MySQL (JSON)

Время на прочтение16 мин
Количество просмотров40K
Александр Рубин работает в компании Percona и не единожды выступал на HighLoad++, знаком участникам как эксперт в MySQL. Логично предположить, что и сегодня речь пойдет про что-то, связанное с MySQL. Это так, но лишь отчасти, потому что еще мы поговорим про интернет вещей. Рассказ будет наполовину развлекательный, особенно первая его часть, в которой посмотрим на девайс, который Александр создал, чтобы собрать урожай абрикосов. Такова уж натура настоящего инженера — хочешь фруктов, а покупаешь плату.



Предыстория


Началось все с простого желания посадить фруктовое дерево на своем участке. Сделать это, казалось бы, очень просто — приходишь в магазин и покупаешь саженец. Но в Америке первый вопрос, который задают продавцы, это сколько дерево получит солнечного света. Для Александра это оказалось гигантской загадкой — совершенно неизвестно, сколько солнечного света на участке.

Чтобы это узнать, школьник мог бы каждый день выходить во двор, смотреть, сколько солнечного света, и записывать это в блокнотик. Но это не дело — надо все оснастить оборудованием и автоматизировать.
Всего голосов 56: ↑50 и ↓6+44
Комментарии35

Мониторинг ping'ов между узлами Kubernetes — наш рецепт

Время на прочтение7 мин
Количество просмотров9.2K


Нередко при диагностике проблем в кластере Kubernetes мы замечаем, что иногда моросит* один из узлов кластера и, конечно же, происходит это редко и странно. Так мы пришли к необходимости в инструменте, который бы делал ping с каждого узла на каждый узел и отдавал результаты своей работы в виде метрик Prometheus. Нам бы оставалось лишь нарисовать графики в Grafana и быстро локализовать сбойный узел (и при необходимости убрать с него все pod'ы, после чего произвести соответствующие работы**)…
Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии19

Как сделать мобильную игру командой из 2 человек с нулевым бюджетом и получить фичеринг в Google Play

Время на прочтение6 мин
Количество просмотров12K


Мы с мужем давно хотели делать игры вместе, но времени на это никогда не хватало. Мы оба работали: он — UI-программистом в геймдеве, я — продакт-менеджером в social media, затем в финтехе, и сил на собственную игру не оставалось.

Год назад мы переехали в Канаду и решили, что это хороший шанс попробовать себя в качестве инди-разработчиков. Муж, правда, быстро нашёл работу в AAA игре, но мне это не удалось, и времени вдруг появилось очень много.

Как мы придумывали


Хотя у нас было множество идей (и даже прототипов) интересных и сложных игр, мы решили начать с чего-то очень простого, чтобы потратить как можно меньше времени на разработку и как можно быстрее получить бесценный опыт релиза и продвижения инди-игры. Поэтому после некоторых раздумий мы остановились на мобильном пазле с честной физикой.

Мы сами довольно много играем и всегда отмечаем то, что нам нравится, и что — не очень. Основной момент, который нас раздражает в современных мобильных казуалках — это однообразие их механик, обилие попапов с предложениями что-нибудь купить и длинными описаниями, а также перенасыщенный UI с кучей каких-то плашек, бабблов и объёмных шрифтов. Поэтому в нашей игре мы постарались сделать всё наоборот.
Всего голосов 38: ↑24 и ↓14+10
Комментарии40

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность