Как стать автором
Обновить
-1
0

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

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

Работа с Kubernetes: поднимаем локальный кластер и деплоим в него приложения

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

Павел Агалецкий, ведущий разработчик юнита Platform as a Service Авито, написал, как поднять кластер Kubernetes на локальном компьютере Mac с помощью подручных инструментов, а потом задеплоить в него простейшие приложения.

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

Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS

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

Привет, меня зовут Иван, и я делаю Авито Доставку. Когда пользователь покупает товар с доставкой, мы показываем ему список отделений служб доставки с ценами. Цена доставки может меняться от отделения к отделению. Мы смотрим на область карты, где покупатель ищет товар и информацию по объявлению, например, координаты продавца, вес и размеры товара. И на выходе показываем человеку список отделений с адресами и ценой доставки в каждое из них.


В ходе разработки калькулятора цены доставки возникла такая задача: есть структура базы данных PostgreSQL и запрос к ней от сервиса на Go. Нужно заставить всё это работать достаточно быстро. В итоге нам удалось поднять пропускную способность сервиса с 50 до 5000 RPS и выявить пару нюансов при общении сервиса с базой. Об этом и пойдёт рассказ.


Читать дальше →
Всего голосов 44: ↑39 и ↓5+42
Комментарии44

Рекомендации при работе с PostgreSQL

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров27K

Доброго времени суток. Основываясь на своём опыте хочу представить некоторые рекомендации при разработке кодовой базы на SQL.

Данные рекомендации получены горьким опытом, так что надеюсь, они Вам помогут :)

Читать подробнее и больше не косячить
Всего голосов 51: ↑48 и ↓3+51
Комментарии53

Сканируем сеть. Собираем информацию об организациях

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

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

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

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

Cloudflare открыла код Rust-фреймворка для программируемых сетевых сервисов — Pingora

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.6K



Мы гордимся тем, что открываем исходный код Pingora — фреймворка на Rust, который мы используем для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare. Pingora выпускается под лицензией Apache 2.0.

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

Шардирование: с нуля до Яндекс Диска

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

Меня зовут Андрей Колнооченко. Я отвечаю за ядро файловой системы Яндекс Диска. Когда мы запускали сервис, то сразу ориентировались на рост и приняли решение шардировать базу метаданных о файлах. Но за 11 лет Яндекс Диск настолько вырос, что нам пришлось трижды менять подход к шардированию. В статье расскажу, с какими проблемами мы сталкивались по мере роста сервиса и как от MongoDB пришли в итоге к PostgreSQL.

Эта статья будет полезна, если вы планируете распределить нагрузку на вашу БД или вам просто интересен опыт развития БД для обработки большого числа запросов.

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

Ansible + Grafana Loki: Настраиваем отправку уведомлений в чат после логина на сервер по SSH

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров11K

Не задумывались ли вы когда-нибудь над тем, чтобы знать о каждом входе на ваши сервера? Меня охватила такая же паранойя: а вдруг, когда я сплю, на мой сервер заходит домовой и творит там ужасы? Хотя логин на наши сервера и запрещен по паролю, а SSH-ключи есть только у меня, в любом случае это вызывает большие опасения.

В этой статье мы развёрнем через Terraform несколько серверов в Yandex.Cloud, а затем при помощи Ansible настроим необходимый софт на каждом сервере. У нас будет основной сервер c Loki (система агрегирования логов) и Grafana (инструмент для визуализации данных), на серверах, которые мы хотим отслеживать, будет установлен Promtail (агент для сбора и отправки логов). Мы разберёмся с тем, как отслеживать входы на сервер, а затем в удобном формате отправлять об этом уведомления в чат с помощью вышеуказанных сервисов.

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

DIY: Ваше собственное облако на базе Kubernetes (часть 1)

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров19K

Мы очень любим Kubernetes и мечтаем чтобы все современные технологии поскорее начали использовать его замечательные паттерны.

А вы когда-нибудь задумывались о том чтобы построить своё собственное облако? Могу поспорить что да. Но можно ли это сделать используя лишь современные технологии и подходы, не покидая уютной экосистемы Kubernetes? Нам по опыту разработки Cozystack пришлось с ним как следует разобраться.

Да, вы могли бы возразить что Kubernetes для этого не предназначен и почему бы не использовать OpenStack для Bare Metal-серверов а внутри него запускать Kubernetes как положено. Но поступив так, вы просто переложите ответственность с ваших рук на руки OpenStack администраторов. Что добавит как-минимум ещё одну сложную и неповоротливую систему в вашу экосистему.

Зачем так всё усложнять? - ведь на данный момент Kubernetes уже имеет всё необходимое для запуска Kubernetes кластеров.

Читать далее
Всего голосов 33: ↑31 и ↓2+39
Комментарии10

Проект юного DevOps Глава 1: Введение и подготовка стенда

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров20K

В данной серии статей описан процесс создания первого pet-проекта для начинающего инженера в DevOps:

Глава 1: Введение и подготовка стенда

Глава 2: Настройка центра сертификации и репозитория

Глава 3: Настройка OpenVPN

Глава 4: Настройка мониторинга

Читать далее
Всего голосов 11: ↑7 и ↓4+3
Комментарии18

Управление памятью в Linux

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров19K

Управление памятью (memory management) является важной подсистемой операционной системы Linux, которая обеспечивает эффективное использование ресурсов физической и виртуальной памяти. В Linux управление памятью в основном подразумевает обработку запросов к памяти от процессов, выделение и освобождение блоков памяти, а также обеспечение ее эффективного использования.

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии12

Настройка отказоустойчивого кластера Kubernetes на серверах с публичной и приватной сетью с помощью Kubeadm

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

У меня возникла задача настроить отказоустойчивый Bare Metal кластер для комплексного приложения, в связи с чем и возникла данная статья. Сразу хочу сказать, что не являюсь экспертом в K8S, однако имею опыт развертывания продуктовых кластеров DC/OS (экосистемы, основанной на Apache Mesos).

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

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

Простые советы для изучения языка на примере испанского

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров18K

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

Моя история в изучении испанского очень проста: мы переехали в Испанию и за 1,5 года я выучила язык до В1. Однако для меня эта история имеет пошлое, которое появилось после просмотра сериала «Дикий ангел». Песню Cambio dolor  Натальи Орейро я пою с 6 лет и помню слова до сих пор, хотя мне уже 30+  Но нет, любовь к испанским сериалам и песням не заставила меня учить испанский. Мое признание творчества Альмодовара тоже не заставило, мои поездки к морю тоже. И только жизненный приговор в виде релокации это сделал.

Так была бы моя жизнь лучше, начни я учить испанский раньше и живя в России? Сейчас я уже знаю, что да! Испанский учить оказалось легко, применять его можно практически сразу после первых 3х месяцев Duolinguo, и он открывает мир к новой культуре, новым сериалам, новой музыке, новым знакомствам сразу на 3х континентах.

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

И вот мой замотивированный мозг решил, что учить испанский дорого. Вон уж как долго я учила английский. Начала с 4х лет и только в 20 заговорила свободно, а это ж и репетиторы, и кружки, и книги сколько ж стоили моим родителям. Моя скромная зарплата такую трату не вместит. И даже если я потрачусь, то потом все забуду, ведь мне негде будет применить знания. В отпуск не скоро, да и то 1 раз в N лет. На работе не требуется…. В общем, деньги на ветер, сделал подсчеты мой ленивый мозг и успокоился.

Дальше еще 4 совета и полезные ссылки
Всего голосов 6: ↑5 и ↓1+7
Комментарии17

«Once you go Rust, you never go back»: создаем игру для программистов на Bevy

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

Привет, Хабр! В прошлой статье я рассказал о своем переходе в геймдев и моей концепции «хакерской» игры. Здесь же сосредоточился именно на разработке, а также на инструментах Bevy и Rust, которые использовал для игрового движка. Интересно узнать из первых уст, как создаются отечественные инди-игры? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+43
Комментарии21

RabbitMQ как способ масштабирования ML проекта

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6K

Данная статья будет полезна тем кто хочет расширить свой учебный (или даже рабочий) ML пет-проект добавлением новой технологии.

Весь код в статье написан для OpenSource проекта по детекции синтетического текста raisontext в рамках курса ML System Design от ODS.

Показать больше
Всего голосов 6: ↑4 и ↓2+4
Комментарии4

Крупномасштабный стриминг видео с использованием Kubernetes и RabbitMQ

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров13K
Давайте поговорим о тех проблемах, с которыми приходится сталкиваться на сайтах для стримингового видео, и как организовать архитектуру такого сайта, чтобы было проще справляться с нагрузками.

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

Правильная работа с базой данных на Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров30K

Эта статья рассчитана в большинстве своём на новичков. Тут мы поговорим о том, как не упереться в лимиты подключений к базе, и чтобы приложение в продакшн не упало.

Читать далее
Всего голосов 12: ↑8 и ↓4+6
Комментарии24

Оптимизация хранения данных в Greenplum

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

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

Данная статья в первую очередь для тех, кто только начинает знакомство с оптимизацией в Greenplum и хочет разобраться на что стоит обратить внимание в первую очередь. Будут рассмотрены три ключевых аспекта: компрессию данных, распределение и партиционирование. Узнаем – как правильно применять эти стратегии, чтобы улучшить производительность запросов, снизить потребление ресурсов и повысить эффективность работы базы данных.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии7

Как я из телефона сделал сервер для своего бота в телеграме

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров40K

Как я из телефона сделал сервер для своего бота в телеграме

Все началось с того что я написал своего бота и решил его выложить в открытый доступ, а точнее чтобы он работал круглосуточно, но платить деньги, за хостинг мне не хотелось. И тогда я вспомнил, что у меня как раз в ящиках залежались старые 2 телефона, можно сказать только один, потому что второй я превратил в кирпич (Неправильно перепрошил). Мой путь поиска программы для установки линукса начался с Termux, но к сожелению он работает только с Android 7+. А телефон на Android 5. Поэтому действенным решением я выбрал UserLAnd.

Читать далее
Всего голосов 27: ↑26 и ↓1+29
Комментарии59

Тестирование Backend с помощью Charles Proxy

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

Charles proxy – это инструмент мониторинга HTTP и HTTPS трафика. Он выступает в роли прокси-сервера (промежуточного звена) между тестируемым приложением и сервером на бэкенде, позволяя не только видеть, но также перехватывать и редактировать запросы.

Для просмотра запросов/ответов при тестировании WEB приложений достаточно взаимодействия с Postman через API, либо просмотра в DevTools. Но для отслеживания трафика при тестировании мобильного приложения могут возникнуть сложности.
Взаимодействие происходит по локальной сети, к которой подключены ПК и мобильное устройство.

Установка

Для начала необходимо скачать Charles на ПК по ссылке https://www.charlesproxy.com/download/ . Далее установить и открыть программу.

При открытии нас встречает окно, которое сообщает о том, что это пробная версия. Во время использования окно также будет появляться на некоторое время.

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

Разработка real-time приложений с Python и WebSocket

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров43K

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

Читать далее
Всего голосов 28: ↑23 и ↓5+26
Комментарии17

Информация

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