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

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

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

Безопасность в Docker: от правильной настройки хоста до демона

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

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

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

Сегодня сложно представить современное приложение без технологий контейнеризации. Поэтому я решила подробно изучить вопросы безопасности в этом направлении и собрала рекомендации, как лучше подойти к работе с Docker-платформой. Подробности под катом!
Читать дальше →
Всего голосов 53: ↑57 и ↓-4+61
Комментарии2

Как быстро написать API на FastAPI с валидацией и базой данных

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

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии39

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

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

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

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

Профилирование Python — почему и где тормозит ваш код

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

Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.

Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?

Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии10

Монтаж видео в Linux — обзор свободных редакторов

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

Когда я впервые столкнулась с Linux, я и не представляла, что буду делать видеоролики в этой системе. И вот сейчас я использую различные инструменты работы с видео в операционной системе «Альт». В этой статье поделюсь личным опытом.

Изучив основной набор программ дистрибутива, я решила дополнить список интересующими меня инструментами. В ОС «Альт» программные пакеты управляются утилитой APT (Advanced Packaging Tool). С помощью неё (#apt-get install) я установила открытые инструменты из хранилища Сизиф. Для записи звука выбрала Audacity, для подготовки видеоматериала - OBS Studio. Монтаж и сведение, на мой взгляд, удобно выполнить в Kdenlive. Программы для создания видео в Linux разной сложности: хорошо сразу определить, что больше подходит.

Читать далее
Всего голосов 30: ↑26 и ↓4+22
Комментарии51

Учебное пособие: Файл Jenkins Pipeline с Apache Groovy

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

Этот учебник по Groovy для Jenkins покажет вам, как использовать скрипт Apache Groovy для построения пайплайна Jenkins. Groovy подойдет для начинающих и является хорошим выбором при объединении командных скриптов.

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

Написание скриптов для tmux

Время на прочтение3 мин
Количество просмотров12K
Мне, когда я пользуюсь tmux, часто надо открывать похожие рабочие пространства. Например, мне всегда нужно выводить последние строки пары файлов журналов в панели, или мне нужно открывать и vim, и mysql. Бывает, что мне нужно и что-то другое.



Если вы попробуете найти сведения об открытии рабочих пространств tmux, то почти гарантированно обнаружите советы по использованию программы-обёртки вроде tmuxinator, tmux-resurrect или tmux-continuum. Эти программы, возможно, хороши, но я предпочитаю что-нибудь попроще.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии9

Основные инструменты Kubernetes в 2021 году

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

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

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

Мой MikroTik – моя цифровая крепость (часть 1)

Время на прочтение10 мин
Количество просмотров115K
В статье рассмотрены различные подходы к организации практической безопасности сетей, построенных на оборудовании MikroTik, в том числе при помощи дополнительного открытого программного обеспечения, расширяющего имеющиеся штатные возможности, что в комплексе позволяет качественно администрировать сетевые средства, а также своевременно реагировать на различные угрозы информационной безопасности.
Читать дальше →
Всего голосов 91: ↑88 и ↓3+85
Комментарии101

Настройка собственного почтового сервера

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

Зачем нужен собственный почтовый сервер можно почитать в оригинальной статье. А поскольку на "habr" обретает надежду всяк сюда входящий, то далее пошаговая инструкция как сделать все настройки, чтобы почтовый сервер функционировал правильно: мог достучаться до любого адресата и сообщения не помечались как спам.

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

Создаем схему базы данных на SQLAlchemy

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

Много уже говорилось о том, что SQLAlchemy - одна из самых популярных библиотек для создания схем баз данных. Сегодня рассмотрим несложный пример по созданию небольшой схемы данных для приложения по поиску цитат. В качестве СУБД будем использовать PostgreSQL.

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

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

Как научиться проектировать реляционные базы данных за полчаса

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


Автоматизация сопровождает нас повсюду и является спутником и признаком прогресса, снимая с человека необходимость выполнения рутинных действий и принятия рутинных решений. Но для принятия решений о будущем необходима информация о прошлом, поэтому автоматизация неизбежно связана с необходимостью накапливать, хранить и обрабатывать данные, чем и занимаются базы данных и системы управления базами данных. Объём данных не уменьшается, а только увеличивается, поэтому я всегда говорю своим студентам: я научу вас хаскелю, но это сломает вам жизнь и не поможет найти работу базы данных – это хлеб программиста, у разработчика баз данных работа будет всегда, учитесь ораклу базам данных – и хлеб с маслом и икрой вам обеспечен. Это я так, как обычно, полемически заостряюсь для мотивации, но совсем чуть-чуть.
Читать дальше на свой страх и риск
Всего голосов 26: ↑26 и ↓0+26
Комментарии27

DevOps Roadmap или пора бы автоматизироваться?

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

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

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

Особенности работы Postfix

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

Добрый день, сообщество. В этой статье хочу поговорить о Postfix – о том, каковы принципы его работы, и о возможностях диагностики проблем. В силу специфики работы приходится с ним сталкиваться — либо для решения своих задач, либо для понимания того, как работает чужая инфраструктура. В интернете о Postfix много информации, однако в основной массе это готовые конфиги для развертывания почтового сервера с нуля. Здесь же я постараюсь охватить основные аспекты администрирования Postfix.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии9

Пишем веб сервис на Python с помощью FastAPI

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

Знаю, знаю, наверное вы сейчас думаете «что, опять?!».

Да, на Хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами, аутентификацией, миграциями и асинхронной работой с БД.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии27

Kubernetes tips & tricks: удобные заготовки для kubectl

Время на прочтение5 мин
Количество просмотров15K
Внутри компании мы активно делимся между собой полученными знаниями: не только в виде формальных wiki-инструкций, но и сообщениями в Slack (а чтобы ничего не терялось, предусмотрена умная система поиска, но это уже отдельная история…). У нас накопилось уже большое количество разнообразных заготовок для консольных операций в Kubernetes с kubectl. Про них и пойдет речь в этой статье.



Какие-то команды могут оказаться повседневной обыденностью для некоторых читателей, но если найдутся и те, кто откроет для себя новое, улучшив тем самым свою эффективность, — цель статьи будет достигнута.
Читать дальше →
Всего голосов 50: ↑50 и ↓0+50
Комментарии5

Использование таймеров systemd вместо заданий cron

Время на прочтение20 мин
Количество просмотров68K
Сейчас я занимаюсь заменой моих cron-заданий на таймеры systemd. Я пользовался таймерами несколько лет, но обычно в тонкости их применения особо не углублялся, разбираясь лишь с тем, что нужно было для выполнения интересующей меня задачи. Недавно я работал над серией материалов про systemd и узнал о том, что systemd-таймеры обладают некоторыми очень интересными возможностями.



Эти таймеры, как и задания cron, могут, в заданное время, вызывать выполнение различных действий в системе. Например — запуск скриптов командной оболочки или программ. Таймеры могут срабатывать, например, раз в день, причём — только по понедельникам. Ещё один пример — срабатывание таймера каждые 15 минут в рабочее время (с 8 утра до 6 вечера). Но таймеры systemd могут кое-что такое, что недоступно заданиям cron. Например, таймер может вызвать скрипт или программу через заданное время после некоего события. Таким событием может быть загрузка системы или запуск systemd, завершение предыдущей задачи или даже завершение работы сервиса, вызванного ранее по таймеру.
Читать дальше →
Всего голосов 67: ↑67 и ↓0+67
Комментарии16

Изоляция сред разработки с помощью контейнеров LXD

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

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


  • для разных языков нужны разные IDE и тулчейны;
  • в разных проектах могут использоваться разные версии тулчейнов и библиотек.

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


Конфигурация на примере Ubuntu 20.04.


Размышления о вариантах и причинах приведены в конце статьи.

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

Thanos — масштабируемый Prometheus

Время на прочтение10 мин
Количество просмотров14K
Перевод статьи подготовлен специально для студентов курса «DevOps практики и инструменты».




Фабиан Рейнарц (Fabian Reinartz) — разработчик программного обеспечения, фанат Go и любитель решать сложные задачи. Также он мэйнтейнер Prometheus и соучредитель Kubernetes SIG instrumentation. В прошлом он был production-инженером в SoundCloud и возглавлял группу мониторинга в CoreOS. В настоящее время работает в Google.

Бартек Плотка (Bartek Plotka) — инфраструктурный инженер в Improbable. Увлекается новыми технологиями и проблемами распределенных систем. Имеет опыт низкоуровневого программирования в Intel, опыт контрибьютора в Mesos и production-опыт SRE мирового масштаба в Improbable. Занимается улучшением мира микросервисов. Три его любви: Golang, open source и волейбол.


Глядя на наш флагманский продукт SpatialOS, вы можете догадаться, что для Improbable нужна высокодинамичная облачная инфраструктура глобального масштаба с десятками кластеров Kubernetes. Мы были одними из первых, кто начал использовать систему мониторинга Prometheus. Prometheus способен отслеживать миллионы метрик в реальном времени и поставляется с мощным языком запросов, позволяющим извлекать необходимую информацию.

Простота и надежность Prometheus является одним из основных его преимуществ. Однако, пройдя определенный масштаб, мы столкнулись с несколькими недостатками. Для решения этих проблем мы разработали Thanos — проект с открытым исходным кодом, созданный компанией Improbable, для бесшовной трансформации существующих кластеров Prometheus в единую систему мониторинга с неограниченным хранилищем исторических данных. Thanos доступен на Github здесь.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии1

Практическое руководство по разработке бэкенд-сервиса на Python

Время на прочтение57 мин
Количество просмотров173K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Всего голосов 70: ↑68 и ↓2+66
Комментарии48
1
23 ...

Информация

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