Как стать автором
Обновить
-8
0
Павел @ivymike

Программатор

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

Типовое использование RabbitMQ

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

Алексей Барабанов, IT-директор «Хлебница» и спикер курса «RabbitMQ для админов и разработчиков», подготовил конспект о типовых архитектурных паттернах RabbitMQ. Из него вы узнаете, как настроить пайплайны обработки и реализовать очереди повторных попыток (в том числе, через механизм dead letter exchange). 

Читать далее
Всего голосов 41: ↑39 и ↓2+37
Комментарии4

Распознавание образов с помощью искусственного интеллекта

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

Пожалуй, самая популярная и перспективная задача нейросетей – технологии распознавания образов. Они либо по отдельности, либо в интегрированном виде используются в таких сферах, как безопасность и наблюдение, сканирование и создание изображений, маркетинг и реклама, дополненная реальность и поиск изображений.

Сегодня создаются и уже используются сети, в которых машины способны распознавать символы на бумаге и банковских картах, подписи на официальных документах, детектировать объекты и т.д. Эти функции облегчают труд человека и повышают точность и надежность различных рабочих процессов благодаря исключению из задачи человеческого фактора. Но научить компьютер распознавать объекты не так уж и просто. Одна из сложностей заключается в том, что компьютер видит не так же, как люди. У компьютера нет жизненного опыта и способности так же, как человеческий мозг идентифицировать объекты на изображения и видео. Изначально он не способен отличить дом от дерева, не имея каких‑то исходных данных. Чтобы научить компьютер видеть и понимать, что находится на изображении, люди используют технологии машинного обучения.

Для этого собирают большие базы данных, из которых формируют дата‑сеты. Выделив признаки и их комбинации для идентификации похожих объектов, можно натренировать модель машинного обучения распознавать нужные типы закономерностей. Конечно, даже после загрузки нескольких дата‑сетов модели могут неверно распознавать некоторые объекты. Если такое случается, модели «дообучают» на новых наборах данных.

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии8

Методы обеспечения безопасности контейнеров Docker

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

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

В этой статье будут рассмотрены методы, которые помогут повысить уровень безопасности контейнеров Docker.

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии13

Оптимизация Dockerfile для уменьшения размера и быстрой сборки образов

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

У каждого образа Docker есть свой размер, который он занимает на жёстком диске. Порой бывает так, что контейнер с запущенным приложением на языке программирования Go, который содержит в себе всего лишь одну строчку с выводом фразы «Hello, world!» может занимать сотни Мб, в то время как существуют образы содержащие легковесные ОС весом всего лишь 5 Мб (alpine).

В этой статье будут подробно рассмотрены способы оптимизации файла Dockerfile с целью уменьшения размера готового образа и ускорения его сборки.

Читать далее
Всего голосов 31: ↑27 и ↓4+23
Комментарии27

Автоматизируем перевод с деплоя bash-скриптами на helmfile при помощи Python: инструкция по применению

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

Выпускник курса Python для инженеров Максим Дубакин рассказал о рабочем проекте собственного производства, который заавтоматизировал повторяющиеся задачи по переводу с деплоя bash-скриптами на helmfile при помощи Python и уменьшил затраты времени на ~ 2 часа.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии3

Географические координаты всех городов на Земле

Время на прочтение1 мин
Количество просмотров18K
В поисках базы данных городов мира для своего погодного сайта, наткнулся на интересный ресурс. На нем просто выложен список всех населенных пунктов, упорядоченный по странам и областям.

Информация, предоставляемая для каждого населенного пункта:
— географические координаты
— высота над уровнем моря
— часовой пояс
— используется ли летнее/декретное время
— ориентировочное количество жителей (обычно, сильно заниженное)

Также отображается небольшая карта, метеорологическая информация и список ближайших аэродромов.

Теперь сижу и думаю, как заполучить эту базу данных. Никакой контактной информации на сайте не нашел, ссылка «Credits» ведет вникуда. Просто стащить всю эту базу через http, видимо, не представляется возможным: только по России там больше 200000 точек. Это несколько суток непрерывного парсинга.

Update:
На сайте geonames.org найдена готовая к скачиванию база данных с подробной информацией по населенным пунктам всего мира. Только по России там 249 516 объектов.
Огромное спасибо, sapl!
Всего голосов 30: ↑29 и ↓1+28
Комментарии57

Apache Spark на Kubernetes: какие уроки можно извлечь из запуска миллионов исполнителей Spark

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


Команда VK Cloud перевела конспект доклада с конференции Data+AI Summit 2022. В своём выступлении Чжоу Цзян и Ааруна Годти из Apple описывают, как построили централизованный кластер Apache Spark на базе Kubernetes, который обрабатывает свыше 380 тыс. заданий Spark в день. Такой объем заданий поддерживает аналитические процессы и эксперименты дата-сайентистов компании Apple. Доклад целиком можно посмотреть здесь.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Чем различаются Kafka и RabbitMQ: простыми словами

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

Программные брокеры сообщения уже стали стандартом при построении больших и сложных систем. Однако до сих пор не все ИТ-специалисты понимают, как работают эти инструменты. Главный системный аналитик «Иннотех» Павел Малыгин помогает разобраться в брокерах сообщениях и их работе.

Читать далее
Всего голосов 61: ↑58 и ↓3+55
Комментарии33

Настраиваем память JVM-приложения в Kubernetes

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

Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на  использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.

 

Читать далее
Всего голосов 42: ↑40 и ↓2+38
Комментарии9

Отказоустойчивая архитектура контентной платформы на 4 Тбит/с — опыт VK Видео

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

Представьте идеальный мир с бесконечными ресурсами, в котором можно сколько угодно линейно масштабироваться под нагрузку: просто доставлять серверы, диски, видеокарты, как только потребуется больше мощностей. Звучит хорошо? Только оказывается, что когда серверов 5 000 и дисков 100 000, то несколько из них обязательно находятся в состоянии maintenance или repair, куда их привели обстоятельства непреодолимой силы. И главная задача здесь — обеспечить доступность сервиса в условиях постоянных сбоев. 

В статье разберём, как построить отказоустойчивую платформу, с какими неочевидными corner cases может столкнуться сервис с UGC-контентом, а ещё — как жить в реальном, а не идеальном мире и оптимизировать железо. Чтобы раздавать 4 Тбит/с можно, конечно, использовать 400 серверов по 10 Гбит/с, но гораздо интереснее грамотно всё потюнить и выжать 100 Гбит/с с Java-сервера.  

Читать далее
Всего голосов 59: ↑58 и ↓1+57
Комментарии15

Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных

Время на прочтение14 мин
Количество просмотров85K
Первые 70% курса по SQL кажутся довольно простыми. Сложности начинаются на остальных 30%.

С 2015 по 2019 годы я прошёл четыре цикла собеседований на должность аналитика данных и специалиста по анализу данных в более чем десятке компаний. После очередного неудачного интервью в 2017 году — когда я запутался в сложных вопросах по SQL — я начал составлять задачник с вопросами по SQL средней и высокой сложности, чтобы лучше готовиться к собеседованиям. Этот справочник очень пригодился в последнем цикле собеседований 2019 года. За последний год я поделился этим руководством с парой друзей, а благодаря дополнительному свободному времени из-за пандемии отшлифовал его — и составил этот документ.

Есть множество отличных руководств по SQL для начинающих. Мои любимые — это интерактивные курсы Codecademy по SQL и Select Star SQL от Цзы Чон Као. Но в реальности первые 70% из курса SQL довольно просты, а настоящие сложности начинаются в остальных 30%, которые не освещаются в руководствах для начинающих. Так вот, на собеседованиях для аналитиков данных и специалистов по анализу данных в технологических компаниях часто задают вопросы именно по этим 30%.

Удивительно, но я не нашёл исчерпывающего источника по таким вопросам среднего уровня сложности, поэтому составил данное руководство.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии17

Практические рекомендации по работе с Docker для Python-разработчиков

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

Прим. Wunder Fund: в этой длииинной статье вы найдете ряд полезных советов по работе с Docker, как общего характера, так и Python-специфичных. Хоть мы и давно используем Docker в работе, про некоторые советы мы подумали "а что, так можно было?". Советуем вначале пролистать статью, и отметить штуки, которые покажутся актуальными для вашей текущей ситуации.

Читать далее
Всего голосов 67: ↑66 и ↓1+65
Комментарии8

Обзор Lens — IDE для Kubernetes

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

В прошлый раз я писал о том, как можно улучшить утилиту kubectl, дополнив и расширив ее функционал, а сегодня зайду с другой стороны: познакомимся с решением, которое позволит забыть о консольных командах и управлять Kubernetes-кластером в графическом интерфейсе. Речь пойдёт про Lens — бесплатное приложение с открытым кодом, которое позиционируется как полноценная Kubernetes IDE. Мы уже кратко рассматривали Lens в сравнительном обзоре GUI для K8s, а теперь попробуем это решение в деталях. Что ж, поехали!

Читать далее
Всего голосов 55: ↑55 и ↓0+55
Комментарии9

Рабочие узлы Kubernetes: много маленьких или несколько больших?

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

При создании кластера Kubernetes могут возникать вопросы: сколько настроить рабочих узлов и какого типа? Что лучше для кластера on-premise: купить несколько мощных серверов или задействовать десяток старых машин в вашем дата-центре? А в облаке лучше взять восемь одноядерных или два четырехъядерных инстанса?

Ответы на эти вопросы — в статье Даниэля Вайбеля, инженера-программиста и преподавателя обучающего проекта Learnk8s в переводе команды Kubernetes aaS от Mail.ru.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии19

Лучшие практики для деплоя высокодоступных приложений в Kubernetes. Часть 2

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

В прошлой части были рассмотрены рекомендации по множеству механизмов Kubernetes для оптимального деплоя высокодоступных приложений включая особенности работы планировщика, стратегии обновления, приоритеты, пробы и т.п. Во втором и заключительном материале поговорим о трёх важных оставшихся темах: PodDisruptionBudget, HorizontalPodAutoscaler, VerticalPodAutoscaler, — продолжив нумерацию из первой части.

Читать далее
Всего голосов 39: ↑38 и ↓1+37
Комментарии4

CPU-лимиты и агрессивный троттлинг в Kubernetes

Время на прочтение8 мин
Количество просмотров38K
Прим. перев.: эта поучительная история Omio — европейского агрегатора путешествий — проводит читателей от базовой теории до увлекательных практических тонкостей в конфигурации Kubernetes. Знакомство с такими случаями помогает не только расширять кругозор, но и предотвращать нетривиальные проблемы.



Доводилось ли вам сталкиваться с тем, что приложение «застревало» на месте, переставало отвечать на запросы о проверке состояния (health check'и) и вы не могли понять причину такого поведения? Одно из возможных объяснений связано с лимитом квот на ресурсы CPU. О нем и пойдет речь в этой статье.

TL;DR:
Мы настоятельно рекомендуем отказаться от CPU limit'ов в Kubernetes (или отключить квоты CFS в Kubelet), если используется версия ядра Linux с ошибкой CFS-квот. В ядре имеется серьезный и хорошо известный баг, который приводит к избыточному троттлингу и задержкам
.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии3

Продолжение. Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

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

Ранее Cloud4Y рассказал про уязвимости веб-серверов Nginx, балансировщиков нагрузки и прокси-серверов. Что-то из этого вы могли знать, а что-то, надеемся, стало полезной информацией.

Но история не закончилась. Многочисленные программы bug bounties позволяют проводить широкомасштабные исследования, благодаря которым удаётся найти реально действующие уязвимости. Проект Gixy помог найти множество неправильных конфигураций промежуточного ПО, но далеко не все. Что ещё удалось обнаружить:

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии1

Форматы файлов в больших данных: краткий ликбез

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

Weather Deity by Remarin

Команда Mail.ru Cloud Solutions предлагает перевод статьи инженера Рахула Бхатии из компании Clairvoyant о том, какие есть форматы файлов в больших данных, какие самые распространенные функции форматов Hadoop и какой формат лучше использовать.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии3

Лучшие практики для деплоя высокодоступных приложений в Kubernetes. Часть 1

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

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

Функциональность, которая не доступна в Kubernetes «из коробки», здесь почти не будет затрагиваться. Также мы не будем привязываться к конкретным CD-решениям и опустим вопросы шаблонизации/генерации Kubernetes-манифестов. Рассмотрены только общие правила, касающиеся того, как Kubernetes-манифесты могут выглядеть в конечном итоге при деплое в кластер.

Читать далее
Всего голосов 68: ↑67 и ↓1+66
Комментарии19

Python не запрещает вызов private/protected методов потому, что любит тебя :-)

Время на прочтение3 мин
Количество просмотров13K
Много копий сломано в обсуждениях того, почему питон эдакий бяка — не запрещает вызывать непубличные методы. И конечно, не раз звучали объяснения в духе «мы все тут взрослые люди», но похоже их было недостаточно, мне кажется, я наконец понял, как это объяснить более понятно, надеюсь, что это действительно так.

Напомню, что для private методов питон всего-лишь динамически изменяет имя и никак не ограничивает доступ к нему, а для protected не делает и этого, это просто соглашение об именовании методов, для тех кто не очень в курсе, есть дополнительные материалы тут и тут.
Читать дальше →
Всего голосов 40: ↑30 и ↓10+20
Комментарии106

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность