Pull to refresh
3
0

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

Send message

Не New Relic’ом одним: взгляд на Datadog и Atatus

Reading time 9 min
Views 18K


В среде SRE-/DevOps-инженеров никого не удивишь, что однажды появляется клиент (или система мониторинга) и сообщает, что «всё пропало»: сайт не работает, оплаты не проходят, жизнь — тлен… Как бы ни хотелось помочь в такой ситуации, сделать это без простого и понятного инструмента бывает очень сложно. Зачастую проблема скрыта в коде самого приложения — нужно лишь локализовать её.

И в горе, и в радости…


Так сложилось, что мы уже весьма давно и сильно полюбили New Relic. Он был и остаётся отличным средством для мониторинга производительности приложения, а также позволяет инструментировать микросервисную архитектуру (с помощью своего агента) и многое-многое другое. И всё могло быть замечательно, если бы не изменения в ценовой политике сервиса: его стоимость с 2013 года выросла в 3+ раза. Вдобавок, с прошлого года для получения trial-аккаунта требуется общение с персональным менеджером, что затрудняет презентацию продукта потенциальному заказчику.
Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Comments 10

Golang глазами PHP-программиста

Level of difficulty Easy
Reading time 5 min
Views 14K

Как-то появилась причина попробовать пописать на Go. На тот момент я знал, что это язык от Google, язык молодой, язык компилируемый, вроде как активноразвивающийся и с зарплатами выше средних. Неплохой набор.

В первой попавшейся статье узнаем, что Go к тому же легкий в изучении. Интересно, сколько PHP-программистов стало PHP-программистами, потому что PHP легкий в изучении? И действительно, за пару вечеров можно уже неплохо ориентироваться в языке.

Итак, ищем какой-нибудь golang roadmap, небольшое количество времени, и вот он, helloworld на Golang. Теперь надо его запустить. Сама установка Go - быстрая и простая, занимает пару минут(скачать, нажать далее несколько раз), так что смотрим пример.

Читать далее
Total votes 21: ↑20 and ↓1 +19
Comments 69

Безопасное использование секретов: шаблон для использования HashiCorp Vault

Reading time 9 min
Views 60K

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

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 3

Clean Architecture, DDD, гексагональная архитектура. Разбираем на практике blog на Symfony

Level of difficulty Medium
Reading time 91 min
Views 58K

Всем привет! Давайте знакомиться ;) Я Аня, и я php разработчик. Основной стек - Magento. С недавних пор начала посматривать налево на Symfony и писать свои Pet Projects на этом фреймворке.

Мне всегда нравилось писать решения которые легко бы расширялись / адаптировались под требования бизнеса (заказчика). И мне всегда хотелось сделать это более 'правильно' и красиво. Так я и познакомилась с понятиями чистой архитектурой.

Мой пост ни в коем случае не претендует на самый правильный. Но позвольте мне здесь донести свои идеи. В комментариях буду рада услышать конструктивную критику к данному посту.

Для нетерпеливых, вот прямая ссылка на гитхаб

Читать далее
Total votes 29: ↑26 and ↓3 +23
Comments 34

PHPStorm + XDebug + Docker

Reading time 3 min
Views 25K

Ещё одна статья на избитую тему? Да! Потому что за два часа поиска не нашёл ни одной, по которой можно было пройтись от и до и получить работающее окружение.

Шагов, на самом деле, немного, все очень простые, нужно лишь...

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

Руководство по CI/CD в GitLab для (почти) абсолютного новичка

Reading time 13 min
Views 320K

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


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


результаты


В статье будет рассмотрена базовая настройка непрерывной интеграции и поставки для проекта библиотеки классов на .Net Core в GitLab, с публикацией документации в GitLab Pages и отправкой собранных пакетов в приватный фид в Azure DevOps.


В качестве среды разработки использовалась VS Code c расширением GitLab Workflow (для валидации файла настроек прямо из среды разработки).

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 9

Автоматизируем все с Github Actions (Никита Соболев)

Reading time 29 min
Views 24K


Никита Соболев покажет множество функций Github Actions, поделится собственными впечатлениями и болями от первых месяцев использования, покажет, как сделать собственные инструменты.

Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 10

Применение автотестов в ежедневных релизах. Установка Cypress и Allure

Reading time 4 min
Views 6.8K

Меня зовут Виталий и я автотестер в компании Утконос ОНЛАЙН. В предыдущей статье я рассказал, почему мы решили использовать фреймворк для автоматизации тестирования, описал существующие варианты, наш выбор в пользу Cypress и его связку с репортом Allure. В этой части обсудим технические вопросы: как установить фреймворк, прикрутить хуки в slack для автоматизации и использовать «на поток».  

Для начала уточню: чтобы уверенно применять Cypress, необходимо владеть азами npm-node package manager, а также знать синтаксис jasmine и иметь общее понимание о JavaScript. В этой статье я грубо  обозначу основные шаги для установки среды, написания тестов и настройки отправки отчетов по их исполнению в канал slack.

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

Насколько круто иметь свой сервер в комнате

Reading time 6 min
Views 110K

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →
Total votes 148: ↑147 and ↓1 +146
Comments 313

Обзор способов и протоколов аутентификации в веб-приложениях

Reading time 18 min
Views 615K


Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
Читать дальше →
Total votes 48: ↑48 and ↓0 +48
Comments 20

PHPCleanArchitecture — Что нового?

Reading time 6 min
Views 6.9K

Этот пост является дополнением предыдущего. В нём расскажу о новых возможностях инструмента (с блэкджеком и шлюпками с примерами и картинками).

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 1

Чем заменить New Relic: 11 альтернатив и наш выбор

Reading time 8 min
Views 9.2K

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

Мы используем New Relic в каждом из наших 250 PHP-сервисов. С его помощью отслеживаем взаимосвязи между сервисами, их зависимости, смотрим нагруженные транзакции, анализируем полный трейс запроса пользователя. Наши основные функциональные требования: связи, оценка по времени отклика и параметру APDEX (собирательное значение удовлетворенности пользователя).

Отказаться от New Relic хотели давно. Главная причина — он стал дорогой. Весной добавилась вторая причина — мы из России. Запереживали, что нас могут отключить. А мы в команде инфраструктуры стараемся все сервисы держать на своей стороне.

В августе закончился договор с New Relic, так что заранее стали искать ему замену. И вот, как оно было.

Читать далее
Total votes 26: ↑26 and ↓0 +26
Comments 15

PHPUnit. Часть 03 Написание тестов для PHPUnit

Reading time 9 min
Views 50K
Предисловие переводчика
Эта статья продолжает серию переводов официальной документации по PHPUnit на русский язык.
Часть 1, Часть 2

Пример 4.1 демонстрирует как с помощью PHPUnit можно выполнить тестирование операций с массивами PHP. В этом примере показаны базовые соглашения и шаги, свойственные тестам PHPUnit:
Читать дальше →
Total votes 31: ↑23 and ↓8 +15
Comments 12

Я год шпионил за собой — что из этого вышло. Простой секрет личной эффективности

Reading time 5 min
Views 120K

На стенах храма Аполлона было написано "Познай самого себя", но там нигде не было сказано как это сделать. Предлагаю исправить такое положение дел, да и к тому же разобраться как это поможет стать более продуктивным.

Читать далее
Total votes 97: ↑90 and ↓7 +83
Comments 145

Создание зашифрованного диска с «двойным» дном с помощью Veracrypt

Reading time 4 min
Views 78K


VeraCrypt — свободный форк TrueCrypt используемый для сквозного шифрования в Windows, Mac OSX и Linux, и позволяет шифровать системный диск, отдельный внутренний или внешний диск или создавать виртуальные диски с использованием файлов-контейнеров.

В этой статье мы рассмотрим интересную возможность VeraCrypt для создания зашифрованного диска со скрытым разделом, этот метод, также называемый методом «двусмысленного шифрования», обеспечивает возможность правдоподобного отрицания наличия второго тома, т.к. не обладая нужным паролем, доказать существование скрытого тома не представляется возможным.
Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Comments 62

Радикальная искренность: как тимлиду общаться с разработчиками, чтобы не развалить отдел

Reading time 7 min
Views 11K

Радикальная искренность — набор принципов, которые помогают командам выстроить диалог и найти баланс между замалчиванием проблем и позитивным лицемерием. О том, что лежит в основе концепции и как использовать ее во благо, рассказывает директор по облачной разработке Selectel Андрей Болгов. Под катом — принципы радикальной искренности, которыми он руководствуется при общении с командой.‎
Читать дальше →
Total votes 46: ↑44 and ↓2 +42
Comments 9

Экстремальное делегирование

Reading time 9 min
Views 4.2K

Или немного о шизофрении здорового человека...

Люди — довольно смышленые зверьки. Мы можем обитать где угодно, питаться чем угодно, мы можем приспосабливаться к любым внешним условиям, мы смогли завоевать всю нашу планету и уже пытаемся осваивать другие. Но что же так отличает человека от других животных? Что дает нам такое колоссальное преимущество перед ними? Может быть тот факт, что люди, в отличие от других животных, освоили огонь? Или стали использовать орудия труда? Или научились добывать энергию? А может быть все дело в том, что люди лучше остальных зверей научились делегировать полномочия?

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 5

Разворачиваем автоматизацию за пару часов: PHPUnit, Selenium, Composer

Reading time 8 min
Views 28K
Привет, Хабр! Меня зовут Виталий Котов, я работаю в Badoo, в отделе QA. Большую часть времени занимаюсь автоматизацией тестирования. Недавно я столкнулся с задачей максимально быстро развернуть Selenium-тесты для одного из наших проектов. Условие было простое: код должен лежать в отдельном репозитории и не использовать наработки предыдущих автотестов. Ах, да, и нужно было обойтись без CI. При этом тесты должны были запускаться сразу после изменения кода проекта. Отчёт должен был приходить на почту.

Собственно, опытом такого развёртывания я и решил поделиться. Получился своего рода гайд «Как запустить тесты за пару часов».

Поехали!


Читать дальше →
Total votes 55: ↑55 and ↓0 +55
Comments 15

Docker: собираем веб сервер

Reading time 10 min
Views 51K

Так сложилось, что мне приходится работать над большим количеством сайтов, задачи решать так же разные - от настроек сервера до "сверстать форму". И вот на одном из проектов возникла задача - обновиться до актуальной версии php (8.1 на момент написания), обновить до актуальной версии CMS (1C Bitrix), ну и в целом, "довести до ума".

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

Читать далее
Total votes 19: ↑9 and ↓10 -1
Comments 21

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer, Web Developer