Pull to refresh
-1
0.7
Send message

Prometheus + Loki + Grafana: отслеживаем состояния k8s и запущенных в нём приложении

Level of difficultyMedium
Reading time7 min
Views14K

Мониторинг состояния серверов и приложении является одной из основных задач DevOps-инженера. Логирование помогает обнаружить проблемы, возникающие в запущенных сервисах, а также понять что на самом деле случилось в случае возникновения проблем. Методы и инструменты для мониторинга выбираются исходя из сервера, на котором разворачиваются приложения. Не важно где и как вы развернули свой K8s кластер - PaaS решение от облачного провайдера, на ВМ или даже на своём собственном ПК. В этой статье я бы хотел описать процесс развертвывания системы мониторинга и логирования в Kubernetes, начиная с установки кубера на свой сервер и заканчивая импортом готового дашборда.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments9

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views36K

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

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

Читать далее
Total votes 50: ↑49 and ↓1+70
Comments19

Как работает компьютер: глубокое погружение (на примере Linux)

Level of difficultyHard
Reading time48 min
Views157K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


Наконец, я сломалась и начала это выяснять. Мне пришлось перелопатить тонны ресурсов разного качества и иногда противоречащих друг другу. Несколько недель исследований и почти 40 страниц заметок спустя я решила, что гораздо лучше понимаю, как работают компьютеры от запуска до выполнения программы. Я бы убила за статью, в которой объясняется все, что я узнала, поэтому я решила написать эту статью.


И, как говорится, ты по-настоящему знаешь что-то, только если можешь объяснить это другому.


Более удобный формат статьи.

Читать дальше →
Total votes 151: ↑151 and ↓0+151
Comments36

Пишем логи Python при помощи библиотеки Structlog

Level of difficultyEasy
Reading time8 min
Views6.9K

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

Также мы рассмотрим распространённые сложности логирования и узнаем, как их позволяет решать structlog.

Читать далее
Total votes 28: ↑27 and ↓1+30
Comments2

Чем грозит авария на Запорожской АЭС

Reading time18 min
Views118K
Запорожская АЭС – это крупнейшая АЭС Украины и Европы. Уже почти полгода она находится под контролем российских войск. В последний месяц вокруг нее возникает много тревожных новостей: ее территорию обстреливают, ходят слухи о ее минировании. Россия и Украина обвиняют друг друга в ядерном терроризме, а обстановка вокруг АЭС вызывает все большее беспокойство на уровне мировых лидеров и главы ООН.

За последние дни я дал несколько интервью о ситуации на ЗАЭС. Например, для проекта Редакция. В этой статье я кратко опишу основные возможные аварийные ситуаций, которые могут возникнуть на станции, либо уже возникают. И их потенциальные последствия – что и куда может улететь, чем это грозит и даже как можно к этому подготовиться. В марте я уже писал подобную статью про риски аварий на Чернобыльской АЭС. И мне очень не нравится писать на такие темы, но какие времена — такая и атомная популяризация.


Читать дальше →
Total votes 324: ↑317 and ↓7+389
Comments299

Приложение Getcontact светит вашими персональными данными, даже если вы им никогда не пользовались

Level of difficultyEasy
Reading time5 min
Views161K

Getcontact — мобильное приложение, позиционирующее себя как менеджер звонков и блокировщик спама. Появилось в конце 2017-го и стремительно взлетело на первые места магазинов приложений. Создатели сервиса оценивают свою аудиторию в 400+ миллионов пользователей.

Приложение декларирует, казалось бы, благие намерения: предотвращение нежелательных звонков от спамеров и телефонных мошенников — услуга в современном мире необходимая и востребованная. Однако свою популярность Getcontact приобрёл совсем по другой причине…

Читать далее
Total votes 142: ↑137 and ↓5+162
Comments277

Номер телефона

Reading time1 min
Views284K
Регулярное выражение для валидации номера телефона:

^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$

Ориентировано на российские мобильные + городские с кодом из 3 цифр (например, Москва).

Читать дальше →
Total votes 280: ↑166 and ↓114+52
Comments121

«Я точно пришел по адресу?», или 6 сомнительных стандартов собеседования

Level of difficultyEasy
Reading time12 min
Views53K
image

Тема собеседований давно вошла в обыденность профессионального сообщества. На эту тему создано тысячи различных материалов: книги, статьи, тренинги, курсы. Тысячи психологов и специалистов проводили (и проводят) исследования, делают свои умозаключения и выдают рекомендации HR-специалистам и руководителям. И не удивительно, что некоторые выводы/рекомендации/трактовки (далее я их называю одним словом — “стандарты”) являются спорными и сомнительными. Об этом я и хочу поговорить…

Для начала ответим на вопрос “Что такое “собеседование”?

Открытые источники говорят, что собеседование – это переговоры соискателя с потенциальным работодателем. Цель собеседования — познакомиться лично, понять, насколько работодатель и соискатель подходят друг другу и обсудить детали сотрудничества.

То есть, исходя из определения, собеседование должно выглядеть, как встреча двух равноправных партнеров, которые обсуждают детали сотрудничества. Правильно? Я уверен, что так и есть. Но, к сожалению, чаще всего доминирующая позиция на собеседовании отдается именно работодателю. И хорошо, если бы это происходило добровольно (соискатель решил отдать это право), но нет. Большинство работодателей считают себя “вершителями судеб”, в связи с чем и рождаются неправильные стандарты. Давайте же их рассмотрим…

Читать дальше →
Total votes 59: ↑49 and ↓10+52
Comments115

OAuth 2.0 простым и понятным языком

Reading time7 min
Views834K
Логотип OAuth 2.0

На хабре уже писали про OAuth 1.0, но понятного объяснения того, что такое OAuth 2.0 не было. Ниже я расскажу, в чем отличия и преимущества OAuth 2.0 и, как его лучше использовать на сайтах, в мобильных и desktop-приложениях.

Что такое OAuth 2.0


OAuth 2.0 — протокол авторизации, позволяющий выдать одному сервису (приложению) права на доступ к ресурсам пользователя на другом сервисе. Протокол избавляет от необходимости доверять приложению логин и пароль, а также позволяет выдавать ограниченный набор прав, а не все сразу.

Читать дальше →
Total votes 168: ↑153 and ↓15+138
Comments44

ClickHouse: как устроен MergeTree

Reading time8 min
Views35K

Моя команда использует ClickHouse как хранилище для 100 млрд записей с трафиком по 300 млн в сутки и поиском по таблице. Я расскажу об устройстве движка таблиц MergeTree. Рассказ буду вести, показывая физические данные, а не абстрактные схемы.


image

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments1

Резюме для Middle разработчика

Reading time4 min
Views17K

Недавно поставил цель устроиться на Middle позицию. В статье я расскажу как я улучшил свое резюме (+ конечно много готовился к собесам, но в этот раз это опустим) и повысил з/п в 5 раз!

Прокачку резюме я решил доверить профессионалу с большим опытом в найме и развитии сотрудников - Маше Давыдовой - карьерным консультантом в Эйч.

Машу я попросил рассказать

а) как смотрит на резюме мидла рекрутер?

б) как показать в резюме, что я уже вырос из джуна?

в) что в моем резюме хорошо, а что плохо?

Мы рассматривали каждый блок резюме, поэтому в таком же порядке я опишу ответы Маши на мои вопросы. Свое резюме в pdf я делал, конечно, на своем сайте :)

Читать далее
Total votes 19: ↑3 and ↓16-9
Comments23

50 оттенков Celery

Reading time18 min
Views58K
Вам сюда, если хотите знать, как приручить широкоизвестный в кругах Python-разработчиков фреймворк под названием Сelery. И даже, если в вашем проекте Celery уверенно выполняет базовые команды, то финтех опыт может открыть вам неизведанные стороны. Потому что финтех — это всегда Big Data, а с ней и необходимость фоновых задач, пакетной обработки, асинхронного API и т.д.


Прелесть рассказа Олега Чуркина про Celery на Moscow Python Conf ++ помимо подробных инструкций, как настроить Celery под нагрузку и как его мониторить, в том, что можно позаимствовать полезные наработки.


О спикере и проекте: Олег Чуркин (Bahusss) 8 лет разрабатывает Python-проекты разной сложности, работал в многих известных компаниях: Яндексе, Рамблере, РБК, Лаборатории Касперского. Сейчас техлид в финтех-старапе StatusMoney.
Total votes 36: ↑35 and ↓1+34
Comments7

Почему работать в консоли настолько приятно? Так задумано отцами-основателями Unix

Reading time8 min
Views58K

Кен Томпсон и Деннис Ритчи

Unix. Легендарная операционная система оказала огромное влияние на разработку программного обеспечения и всю информатику в целом. Из неё выросли целые семейства Unix-подобных ОС, которыми все мы пользуемся.

Язык программирования Си, Ричард Столлман и GNU, движение Open Source, Линус Торвальдс с ядром Linux, маки, айфоны и Android. Почти всё в системном программировании 21 века можно отследить до истоков — до Unix.

Unix — это фундаментальная база. Но что же в ней такого особенного? Есть один секрет. Точнее, два.
Читать дальше →
Total votes 86: ↑73 and ↓13+90
Comments434

Вход в любительскую астрономию

Reading time5 min
Views15K

После начала работы космической обсерватории «Джеймса Уэбба» астрофотографии вошли в тренды. Самое крутое что сейчас можно запечатлеть находится в космосе. История помнит только два случая, когда умные парни становились популярными. Первый - изобретение кубика Рубика в 1973 году сделало королями дискотеки знатоков теории групп. Второй - астрономы любители покоряют социальные сети прямо сейчас.

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

Читать далее
Total votes 32: ↑30 and ↓2+37
Comments64

За границей Hello World: полный гайд по разработке Telegram ботов на Python + Aiogram 3. Часть 2: Меню и OpenAI API

Level of difficultyMedium
Reading time12 min
Views98K

Привет, Хабр! Продолжаю серию статей про разработку telegram-ботов на библиотеке aiogram и языке программирования Python. Хочется отметить, что статья не является документацией или учебником. Я просто рассказываю пошагово как разработать полнофункционального бота, стараясь затронуть как можно больше тем.

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

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments20

Я написал книгу

Level of difficultyEasy
Reading time2 min
Views29K

Я написал книгу и назвал ее "Электрообереги". Она рассказывает про те замечательные устройства в электрощитке, что спасают нас от погибели. Начиная от предохранителей, которые существуют более века, заканчивая новейшими устройствами защиты от дугового пробоя. (Включая АВ, АВДТ, ВДТ, УЗО, РН, УЗИП, СГД и т.д.) Рассказ построен так, чтобы даже блондинке стало ясно как эти устройства устроены и зачем они нужны. Кто давно на меня подписан подобные посты уже видел - книжка представляет собой собранные воедино и причесанные публикации за последние два года. Еще я перерисовал все сторонние иллюстрации и теперь книжка лицензионно чиста - ни один мерзкий копираст не подкопается.

А еще сегодня у меня день рождения. И это хороший повод сделать подарок миру - книжка публикуется под открытой лицензией CC BY-NC-SA, тоесть ее можно распространять совершенно свободно.

Читать далее
Total votes 166: ↑165 and ↓1+218
Comments51

Перевод первой части учебника Patterns.dev

Reading time11 min
Views15K

Привет! Меня зовут Айнур, и я frontend-разработчик SimbirSoft. Более 6 лет я работаю над коммерческими проектами, создаю и улучшаю интерфейсы, поэтому в работе достаточно часто использую паттерны проектирования. Неоднократно я обращался за идеями и лайфхаками к книге Patterns.dev, которая содержит очень современный взгляд на шаблоны проектирования, рендеринга и производительности JavaScript.

Авторы Patterns.dev:

Лидия Холли — штатный консультант и преподаватель по разработке программного обеспечения, которая в основном работает с JavaScript, React, Node, GraphQL. Она также занимается наставничеством и проводит личные тренинги.

Эдди Османи — технический менеджер, работающий над Google Chrome. Его команды работают над такими проектами, как Lighthouse, PageSpeed ​​Insights, Chrome User Experience Report и другими.

Материал книги будет полезен не только React-разработчикам, но и всем, кто так или иначе интересуется или сталкивается с frontend-разработкой.

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

Источник: https://www.patterns.dev/
Данный адаптированный материал распространяется на условиях лицензии Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

Читать далее
Total votes 5: ↑4 and ↓1+5
Comments5

Пишем простой ML веб-сервис на FastAPI

Level of difficultyEasy
Reading time9 min
Views17K

Данный туториал пошагово разбирает процесс создания веб-приложения для определения тональности текста на основе NLP-модели.

Мы будем использовать модель из библиотеки Hugging Face Hub, но описанный подход подойдет для любой задачи машинного обучения.

План:

1. Загрузка и подготовка модели машинного обучения для использования в веб-сервисе.

2. Создание веб-сервиса с помощью FastAPI.

3. Изучение пользовательского интерфейса FastAPI для удобного ручного тестирования и демонстрации работы приложения.

4. Написание автоматических тестов с помощью библиотеки pytest.

5. Запуск приложения в Docker-контейнере.

Код доступен на GitHub.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments3

Вводная по сложным запросам в SQLAlchemy

Reading time7 min
Views93K

Во время посещения PyConRu 2014 я, с удивлением, узнал, что достаточно большая аудитория python-разработчиков не использует SQLAlchemy в качестве основного инструмента для работы с базой данных. Порассуждав на данную тему после Light Talks с коллегами было принято решение — во чтобы то ни стало написать статью о том, что же можно делать со всей мощью SQLAlchemy.


Обычно в написании сайтов не требуется чего-нибудь этакого от штатного ORM. А если и требуется, то хватает замены на нештатный или прочтения основной части документации. И, как правило, голову ломать над сложными запросами не приходится. Достаточно много различных ORM предлагают классические схемы One-2-Many, One-2-One, Many-2-Many, и т.д. Для обычных запросов и связей этого вполне достаточно. К сожалению, в больших проектах не обходится без частных случаев и программисты при сложных запросах пишут либо raw sql, либо полагаются на то, что им предлагает базовый функционал ORM. Это выглядит не совсем красиво или создает достаточно большую нагрузку на базу данных.

Понятно, что в погоне за скоростью выполнения сценариев, можно пожертвовать красотой кода, но что если скоростью можно пренебречь, а вот кроссплатформенностью — нет? Да и не хочется в python коде видеть что-то кроме python кода. А что если хочется на полную катушку использовать любимый ORM (для меня SQLAlchemy) и не писать raw sql запросы?
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments10

Материализованные представления и ReplacingMergeTree в ClickHouse

Reading time8 min
Views18K

В этой статье будут описаны подводные камни, на которые я натыкался при использовании одновременно материализованных представлений и движка ReplacingMergeTree в ClickHouse (далее CH). Для опытных пользователей CH эта информация возможно будет уже не новой, но надеюсь, что смогу сэкономить много времени тем, кто недавно начал свое знакомство или только готовится начать.

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments3

Information

Rating
1,741-st
Registered
Activity