Pull to refresh
0
0
Fill Q @drfill

Сетевой администратор, программист Python

Send message

Выбор инструмента для анализа безопасности кода Terraform

Reading time7 min
Views3.5K

Если вы озадачены выбором инструмента для статического анализа кода Terraform, то мы поможем вам с этим. Мы изучили несколько решений по анализу безопасности и конфигурации для AWS и GCP. А мотивом для этого исследования послужило желание унифицировать различные подходы инженеров Revolgy и предоставлять нашим клиентам лучшие и безопасные сервисы.

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

Читать далее

Основы распределённого мониторинга: четыре золотых сигнала

Reading time8 min
Views11K
image

Мы в ForePaaS уже какое-то время экспериментируем с DevOps — сначала в одной команде, а теперь и по всей компании. Причина проста: организация растет. Раньше у нас была всего одна команда на все случаи жизни. Она занималась архитектурой, проектированием и безопасностью продукта и быстро реагировала на любые проблемы. Сейчас мы разделились на несколько команд по специализации: фронтенд, бэкенд, разработка, эксплуатация…

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

Раньше девопсами мы называли команду, которая, по сути, делала Ops, а еще отвечала за разработки на бэкенде. Раз в неделю другие разработчики говорили команде DevOps, какие новые сервисы надо задеплоить в продакшене. Иногда это приводило к проблемам. С одной стороны, команда DevOps не очень понимала, что происходит у разработчиков, с другой — разработчики не чувствовали ответственность за свои сервисы.

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

В этой статье мы поговорим о том, что такое мониторинг и с чем его едят, узнаем о так называемых четырех золотых сигналах и обсудим, как использовать метрики и детализацию drill-down, чтобы изучить текущие проблемы.
 
Читать дальше →

Kubernetes — это как океанариум

Reading time4 min
Views17K

Прим. перев.: в конце прошлого года Anne LoVerso — инженер из VMware Pivotal Labs — опубликовала развернутое сравнение Kubernetes с… океанариумом. Эта небольшая статья с наглядными иллюстрациями и аналогиями ориентирована на тех, кто впервые знакомится с K8s, и призвана упростить их самое первое погружение в дебри океана… оркестратора.

Читать далее

Вертикальное автомасштабирование pod'ов в Kubernetes: полное руководство

Reading time22 min
Views31K

Прим перев.: месяц назад Povilas Versockas, CNCF Ambassador и software engineer из Литвы, написал очень подробную статью о том, как работает и как использовать VPA в Kubernetes. Рады поделиться её переводом для русскоязычной аудитории!

Это полное руководство по вертикальному автомасштабированию pod'ов (Vertical Pod Autoscaling, VPA) в Kubernetes. Из него можно узнать, что такое вертикальное автомасштабирование pod'ов, зачем оно нужно и как работает, как устроена модель ресурсных требований Kubernetes, когда использовать VPA и какие существуют ограничения.

Читать далее

Собираем логи с Loki

Reading time13 min
Views160K


Мы в Badoo постоянно мониторим свежие технологии и оцениваем, стоит ли использовать их в нашей системе. Одним из таких исследований и хотим поделиться с сообществом. Оно посвящено Loki — системе агрегирования логов.


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

Network diagram as code / Схема сети как код

Reading time6 min
Views15K
В последние пару лет стал больше заниматься документацией. Написать поясняющий текст о том, как работает та или иная система — в целом, это достаточно просто. Нарисовать схему, на которой будут отображены все ключевые объекты, связи между этими объектами, тоже вполне легко.

Но самый проблемный момент — это поддерживать эту документацию в актуальном состоянии. И ладно бы текст, но схемы… Т.к. вся документация онлайн, т.е. в формате html, то к тексту прилагаются картинки gif/jpeg/png, на которых собственно изображены схемы. А схемы рисуются в различных программах типа Visio или онлайн-сервисах а-ля draw.io. Затем экспортируешь схему в графический формат и прилагаешь к html. Все просто.

В чем проблема?
Читать дальше →

Kafka на Kubernetes — это хорошо?

Reading time7 min
Views23K
Приветствуем вас, Хабр!

В свое время мы первыми вывели на российский рынок тему Kafka и продолжаем следить за ее развитием. В частности, нам показалась интересной тема взаимодействия Kafka и Kubernetes. Обзорная (и довольно осторожная) статья на эту тему выходила в блоге компании Confluent еще в октябре прошлого года под авторством Гвен Шапиры. Сегодня же мы хотим обратить ваше внимание на более свежую, апрельскую статью Йоханна Гайгера (Johann Gyger), который, хотя и не обошелся без вопросительного знака в названии, рассматривает тему в более предметном ключе, сопровождая текст интересными ссылками. Простите нам пожалуйста вольный перевод «chaos monkey», если сможете!

image

Читать дальше →

Работа с кластером Proxmox: установка, настройка сети, ZFS, решение распространенных проблем

Reading time13 min
Views152K
За последние несколько лет я очень тесно работаю с кластерами Proxmox: многим клиентам требуется своя собственная инфраструктура, где они могут развивать свой проект. Именно поэтому я могу рассказать про самые распространенные ошибки и проблемы, с которыми также можете столкнуться и вы. Помимо этого мы конечно же настроим кластер из трех нод с нуля.

Читать дальше →

Поваренная книга разработчика: DDD-рецепты (5-я часть, Процессы)

Reading time19 min
Views17K

Введение


В рамках предыдущих статей мы описали: область применения, методологические основы, пример архитектуры и структуры. В данной статье, я хотел бы рассказать как описывать процессы, о принципах сбора требований, чем отличаются бизнес требования от функциональных, как перейти от требований — к коду. Рассказать о принципах применения Вариантов Использования (Use Case) и как они нам могут помочь. Разобрать на примерах варианты реализации шаблонов проектирования Interactor и Service Layer.


likeyourgrandmom


Примеры приведенные в статье даны с использованием нашего решения LunaPark, оно поможет вам с первыми шагами в описанных подходах.


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


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


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


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

Готовим пирог с капустой

Сериал «Чернобыль»: смотреть и думать

Reading time9 min
Views200K
Горький опыт сериалов, которые хорошо начинаются и разочаровывающе заканчиваются, удерживал меня от написания восторженного обзора на сериал «Чернобыль» до этой недели. И сейчас, когда вышла последняя, пятая серия, к сожалению, я вынужден сказать, что это отличный сериал, это прекрасный повод узнать больше о чернобыльской катастрофе, его обязательно стоит посмотреть, если вы еще не, но, если первые три серии, на мой взгляд, поднимаются до уровня моего самого любимого фильма «Аполлон-13», то две последние, опять же, по моему мнению, оказываются заметно похуже.


Кадр из сериала

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

JSON API – работаем по спецификации

Reading time23 min
Views178K
В последнее время веб-разработка разделилась. Теперь мы все не full-stack программисты — мы фронтендеры и бэкендеры. А самое сложное в этом, как и везде, это проблема взаимодействия и интеграции.

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

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


Как управлять конфликтами в команде

Reading time6 min
Views18K
Мы разные, и у нас часто возникают конфликты – маленькие и серьезные. Плохая новость: избежать конфликтов на работе не получится. Хорошая: конфликтами можно управлять. Умение договариваться и доносить свои мысли людям на их языке – очень полезный навык. Он помогает экономить силы и достигать своих целей.

Какие конфликты бывают в компаниях? Как распознавать конфликты и управлять ими? Разбираемся вместе со Светланой Гончар, консультантом по организационному развитию бизнеса с опытом работы в IT больше 16 лет.


Читать дальше →

Чтобы вести разработку быстрее, необходимо замедлиться

Reading time11 min
Views29K


От переводчика:
Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than Ever in Software Development, которую написал Lemi Orhan Ergin. А ее перевод мы публикуем ниже.
Читать дальше →

Несколько подводных камней статической типизации в Python

Reading time5 min
Views39K


Думаю, мы все потихоньку уже привыкаем, что у Python есть аннотации типов: их завезли два релиза назад (3.5) в аннотации функций и методов (PEP 484), и в прошлом релизе (3.6) к переменным (PEP 526).


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


Disclamer: я не поднимаю вопрос о необходимости или вредности статической типизациии в Python. Просто рассказываю о подводных камнях, на которые натолкнулся в процессе работы в статически-типизированном контексте.
Читать дальше →

Интеграция проверок пароля в KeePass по базе данных утечек

Reading time2 min
Views15K
Данная статья по шагам описывает процесс интеграции проверок пароля на безопасность в менеджере паролей KeePass. Проверки используют последнюю базу данных Have I Been Pwned, где хранятся утекшие пароли, и всё это работает локально, поэтому вам не надо беспокоиться о возможности утечек хэшей паролей в интернет.

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

Have I Been Pwned – онлайн-сервис для проверки того, не скомпрометирован ли один из ваших онлайн-аккаунтов во время какой-либо утечки паролей.

Некоторые менеджеры паролей, например, 1Password, предлагают возможность проверки пароля в этой базе данных.
Читать дальше →

Nomad: проблемы и решения

Reading time9 min
Views37K

Первый сервис в Nomad я запустил в сентябре 2016 года. На данный момент пользуюсь как программист и занимаюсь поддержкой как администратор двух Nomad кластеров — один "домашний" для своих личных проектов (6 микро-виртуалок в Hetzner Cloud и ArubaCloud в 5 разных датацентрах Европы) и второй рабочий (порядка 40 приватных виртуальных и физических серверов в двух датацентрах).


За прошедшее время накопился довольно большой опыт работы с Nomad окружением, в статье опишу встреченные проблемы Nomad и как с ними можно справиться.



Ямальский кочевник делает Continous Delivery инстанса вашего ПО © National Geographic Россия

Читать дальше →

Дайджест новостей из мира PostgreSQL. Выпуск №12

Reading time7 min
Views6K


Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.

Релизы


PostgreSQL 11.1
Вместе с этой версией вышли также 10.6, 9.6.11, 9.5.15, 9.4.20 и 9.3.25 (это последний релиз 9.3). В этой версии есть изменения, связанные с безопасностью. Исправили выявленные ошибки. Прочитать о релизах можно здесь, а скачать здесь.


Postgres Pro Standard 11.1.1, 10.6.1, 9.6.11.1, 9.5.15.1, Postgres Pro Enterprise 10.6.1, 9.6.11.1

Эти релизы основаны на соответствующих ванильных версиях PostgreSQL и на предыдущих версиях Standard и Enterprise. В разделе «Замечания к выпуску» в соответствующей версии документации можно прочитать об отличиях от предыдущей версии семейства. Например, в Enterprise 10.6.1 и 9.6.11.1 добавлена поддержка операционной системы Astra Linux «Смоленск» 1.6 и улучшена стабильность автономных транзакций.

pgAdmin 4 version 3.5.

В этом релизе не только исправлены баги (11 штук), но и добавлены новые возможности. Среди них:
  • Миграция с Bootstrap 3 на Bootstrap 4
  • Можно останавливать сервисные процессы (Backup/Restore/Maintenance...)

Бинарники для Windows и macOS, а также для Python Wheel, Docker-контейнеры и тарболы с исходниками можно скачать отсюда. RPMы и DEBы должны появиться в репозиториях postgresql.org в ближайшие дни.

TimescaleDB 1.0

В анонсе говорится, что это версия годится для использования в промышленном режиме. Эта СУБД, ориентированная на работу с временнЫми рядами, выполнена как расширение для PostgreSQL. Можно запускать разные версии TimescaleDB с одним и тем же экземпляром PostgreSQL Ядро команды разработчиков — выпускники Принстонского Университета.
Читать дальше →

Замыкания в JavaScript для начинающих

Reading time8 min
Views105K
Замыкания — это одна из фундаментальных концепций JavaScript, вызывающая сложности у многих новичков, знать и понимать которую должен каждый JS-программист. Хорошо разобравшись с замыканиями, вы сможете писать более качественный, эффективный и чистый код. А это, в свою очередь, будет способствовать вашему профессиональному росту.

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

Читать дальше →

Релиз стабильной версии Dart 2.0 и Dart Web Platform

Reading time7 min
Views11K
Примечание: присоединяйтесь к русскоязычному сообществу Dart в Telegram, Slack и Google+. А в конце статьи вас ждёт небольшой анонс.


Возрождение Dart как популярного языка программирования для мобильной и веб-разработки


Сегодня мы объявляем о релизе стабильной версии языка программирования Dart — 2.0, а также веб-платформы Dart, которая предлагает уникальное сочетание продуктивности, производительности и масштабируемости.



Читать дальше →

Порхающие* велосипеды. Что делать с сохранением состояния во Flutter?

Reading time9 min
Views11K

(*одно из значений слова flutter — порхать)


Разбираемся, есть ли жизнь сохранение состояния во Flutter-приложении. Что будет, если ОС решит его перезапустить. Куда денется пользовательский ввод и навигация, и как с этим справляться.


Дисклеймеры:


  • для понимания нужно иметь стартовые знания о Flutter;
  • рассуждаю с точки зрения Android, про iOS — это не ко мне;
  • не являюсь специалистом по Flutter/Dart, подхожу с позиции новичка;
  • в некоторых местах опускаю второстепенные моменты (например, реализации вспомогательных функций), найти недостающее можно в полном коде проекта.
Читать дальше →

Information

Rating
Does not participate
Location
Рига, Латвия, Латвия
Date of birth
Registered
Activity