Pull to refresh
0
0
Alexzander thunder Shevchenko @thunderspb

DevOps

Send message

REST API на Symfony, FOSRestBundle + GlavwebDatagridBundle

Reading time7 min
Views12K
Всем привет! В прошлой статье я рассказал о нашем опыте в REST API со сборкой на FOSRestBundle + JMSSerializer. Сегодня я поделюсь нашим подходом к разработке REST API на FOSRestBundle + GlavwebDatagridBundle.
Читать дальше →

SaltStack: использование salt-ssh

Reading time13 min
Views26K

salt-sshВ этом посте я хотел бы поделиться своим опытом использования системы управления конфигурациями SaltStack, и, в частности, её применением в Masterless режиме при помощи salt-ssh компонента.


По сути, salt-ssh является аналогом системы Ansible.


salt-ssh '*-ec2.mydomain.com' test.ping

Будут затронуты следующие темы:


  • Почему SaltStack, ключевые особенности
  • Базовые понятия SaltStack
  • Salt-ssh установка и использование
Читать дальше →

Как называть css-классы

Reading time6 min
Views164K
Основываясь на моих любимых статьях по данной теме и личном опыте, вот мои 5 копеек о том, как называть CSS-классы.

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



Если это поле, используйте элемент input

Читать HTML-документ будет гораздо легче.

Пример:

<div class='submit'/> <!-- Чёёё? -->
<input class='submit'/> <!-- Аа, ясно -->


Источник: Рафаэль Гоитер (французская статья)
Читать всю статью

DevOps — автоматизируй всё

Reading time8 min
Views83K
Целью статьи является дать основные представления о DevOps и практиках, используемых при этой методологии. Тут не будет сложных терминов, конкретных продуктов и road map внедрения DevOps, но, надеюсь, будет интересно ознакомиться.


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

Установка и настройка Collectd для сбора и отправки данных в Graphite (Grafana)

Reading time5 min
Views22K

Недавно я писал статью о настройке и установке Graphite+Grafana, теперь я расскажу как установить и настроить Collectd для сбора данных о состоянии сервера, отправки их в Grapfite и отображения в Grafana.


Предисловие


Collectd — система сбора, хранения и отправки метрик о состоянии машины, на которой он запущен.


Он имеет множество плагинов "из коробки" и очень гибок в настройке.


И так, приступим.

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

Готовим простой блог на микросервисах, пишем свой микрофреймворк на php и запускаем все на Docker с примерами

Reading time9 min
Views81K

А что если я скажу вам, что новый продукт можно сразу начинать писать на микросервисной архитектуре, а не заниматься распилом монолита? Это вообще нормально? Удобно? Хотите узнать ответ?


Задача: необходимо написать за выходные (время ограниченно 10-15 часами) сферический блог на микросервисах, на php, не используя никаких фреймворков. Можно пользоваться здравым смыслом. А еще забудем о том что такое фронтенд и вспомним что мы жить не можем без виртуализации. Выберем Docker. Интересно? Вперед под кат.


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

Тестируем проект на SaltStack c помощью KitchenCI

Reading time9 min
Views5.8K

Введение



У меня есть pet project, которым я занимаюсь в свободное время. Этот проект полностью посвящён инфраструктурным экспериментам. Для управления конфигурацией я использую SaltStack. SaltStack — это централизованная система управления инфраструктурой. Это значит, есть мастер-сервер, который настраивает подчинённые серверы.


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

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

Как настроить двухфакторную аутентификацию для логина и sudo

Reading time4 min
Views52K


Безопасность в моде, как это и должно быть. Мы живем в мире, где данные — невероятно ценная валюта, которую вы всегда рискуете потерять. Поэтому вы должны сделать все, чтобы убедиться, что то, что вы держите на серверах и десктопах — в безопасности. Для этого администраторы и пользователи создают невероятно сложные пароли, используют менеджеры паролей и т.д. Но что, если я вам скажу, что вы можете логиниться на ваши серверы и десктопы Linux за два шага, вместо одного? Вы можете это делать благодаря Google Authenticator. Более того, это невероятно легко настроить.

Я собираюсь провести вас через процесс настройки двухфакторной аутентификации для использования ее на логине и sudo. Я продемонстрирую это на десктопной Ubuntu 16.04, но процесс также работает и для сервера. Чтобы справиться с двухфакторной стороной вещей, я буду использовать Google Authenticator.
Читать дальше →

World of Tanks: от чего же зависит винрейт танков?

Reading time8 min
Views57K

Сегодня мы поговорим об использовании Wargaming API, построим много графиков и проанализируем, от чего же зависит винрейт танков. Сразу хочу отметить, что я не гуру World of Tanks, и если я где-то ошибся, то напишите пожалуйста в комментариях. Все графики кликабельны.


image

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

Мониторинг температуры в серверной с помощью Arduino

Reading time3 min
Views12K
Выходные в конце мая в Екатеринбурге ознаменовали начало лета, и понедельник нас поприветствовал 39-и градусной жарой в небольшой комнате с двумя серверными стойками. Причина банальна — отказал один из кондиционеров, от старости. Обошлось малой кровью и почти никто из 250 сотрудников проблем не почувствовал.
Захотелось как-то если не управлять ситуацией, то хотя-бы ее мониторить. Вариант приобретения готового девайса притормозился, а потом и отменился его ценой. Но вспомнилось волшебное слово Arduino, если интересно что получилось прошу под кат.
Читать дальше →

Apple, боль и сертификаты

Reading time6 min
Views38K
Знакомьтесь, Боб — матёрый ios разработчик, Алиса — не менее матёрая тестировщица. Дело было вечером дело было в пятницу. Боб дофиксил багу, вроде бы протестил на своих девайсах. Затем Боб запускает уже отточенные до автоматизма команды:

git checkout develop
git merge bug_fix_#999
git checkout master && git merge develop --no-ff ....
git push ....


На пуш на сервере срабатывает jenkins/teamcity/travis, который запускает билд. В это же самое время наш Боб пишет Алисе, что скоро пойдет домой, и хочет, чтобы аппа ушла сегодня в app store на апрув, дабы выиграть лишние пару дней, так как на носу выходные, если, конечно, приложение пройдет ручное тестирование Алисы.

Приложение Боба довольно обычное: пару сотен компилируемых класс файлов, еще с десяток cocoapods зависимостей ну и кучка сторибордов — Боб ценит своё время и время коллег поэтому не пишет UI в коде. Боб знает, что его приложение с чистого старта на сервере собирается за 4 минуты для develop версии, которое идет на тест Алисе, и столько же или чуть больше для production версии. Боб также знает, что ему нужно около 10 минут, чтобы дождаться окончания полной сборки и затем сообщить Алисе, что она может приступать к тестированию. Боб человек ответственный, поэтому по истечении 10 минут после пуша проверяет статус билда, так как знает, что сервер — это отдельный параллельный мир со своими правилами, законами и странностями.

Пятница, вечер, Боба отделяет от долгожданных выходных только 10 минут, после которых передаст эстафету Алисе. Боб вбивает в сафари bobcompany.ci/dashboard, где видит красную лампочку напротив своего приложения, глаза Боба потускнели, разочарованию не было предела. Боб жмет на show more, где его встречает ошибка:

Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“com.company.bob”) were found.


Тут нервы Боба совсем сдают:



Удастся ли Бобу решить проблему?

Websocket в продакшене

Reading time30 min
Views42K
10 месяцев назад я начал делать браузерную игрушку. Выбор пал на cocos js в качестве графики и websocket в качестве общения с сервером. Технология очень понравилась и я на ней организовал всё общение игры с сервером. Использовал для этого эту статью. Но, к сожалению, тот код, который приведен в той статье, нельзя использовать в продакшене. Как выяснилось, уровень проблемы даже не критический, а блокирующий. Всё настолько плохо, что мне пришлось переписывать всё общение с сервером с вебсокетов на longpooling. В итоге я оставил вариант «если у нас браузер не сафари, то использовать websocket, иначе longpolling» и ещё немного ветвления на эту тему.

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

Cisco learning old school

Reading time3 min
Views16K
Всем привет! Сегодняшний пост посвящается моей неопубликованной методичке. Дело в том, что когда-то давно я был преподавателем сетевых технологий, был очень амбициозен, мне хотелось всем рассказать, а самое главное, научить всех ремеслу сетевого инженера. Именно в то время я задумал написать методичку и опубликовать ее. Теперь я нашел время и решил опубликовать свою методичку в виде сайта. Да, я знаю, что сейчас очень много сайтов, которые предлагают обучить работе с Cisco, и, несомненно, они заслуживают внимания и уважения. Но исходя из своего опыта и опыта обучения, лучший способ познать Cisco — практика! Как я могу судить по себе и по своим бывшим студентам, практиковаться всегда лень. Поэтому моя методичка была направлена на подачу материала с уже подготовленными лабами, студенту остается только открыть лабу и начать практику согласно плану в методичке.

gurkin33.ru_logo

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

Ручная установка Windows 7/8/8.1/10 в систему с загрузчиком GRUB2

Reading time9 min
Views128K
Наверняка почти у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого, в силу ряда причин, установлены обе системы, время от времени возникал вопрос: «А нельзя ли, черт возьми, придумать способ, с помощью которого можно было бы устанавливать эти системы в произвольном порядке? Без порчи настроек загрузчика?» Ведь если ставим сначала Windows а потом Linux всё хорошо — линуксовый загрузчик (например GRUB) обычно подхватывает bootmgr. Если ставить в обратном порядке то увы. Даже с использованием GPT + EFI. В случае с EFI нет опасности перезаписи MBR, зато таки есть один нюанс, который лично мне не нравится — установщик Windows в режиме EFI хоть и не перезаписывает сектора диска своим кодом, но зато переопределяет NVRAM, подсовывая туда путь к своему загрузчику. Так что функционал GBUB всё равно приходится восстанавливать. В настройках штатного установщика нет опций для кастомизации процесса установки загрузчика. А что если… не использовать стандартный установщик?! Ну, или почти не использовать…



И такой способ есть. И основан он на технологии установки Windows, которую мы имеем в её дистрибутивах начиная с «семерки». Способ работает для случая Windows версий 7/8/8.1/10, как в случае с MBR + BIOS системы, так в случае с EFI + GPT. Установить систему можно как в раздел HDD, так и на VHD. При этом функционал установщика нужен нам в общем-то для запуска программы настройки BCD-хранилища конфигурации загрузчика. Вместо установочного диска можно использовать загрузочный носитель на основе WinPE. Если бы утилитам bcdedit.exe и BootICE была *nix альтернатива, весь процесс развертывания системы можно было бы вообще выполнить в среде Linux.

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

WiFi-чайник в домашних условиях, или как сделать обычный чайник по-настоящему умным

Reading time8 min
Views59K
image

Предисловие



Если вы читали мою предыдущую статью (Бегущая строка на Arduino), то наверняка уже знаете, что у нас в университете есть возможность делать аппаратные курсовые проекты. И я, вдохновлённый предыдущей своей работой, решил ещё раз попробовать сделать что-нибудь своими руками. Только теперь тема должна была быть посерьёзнее. Кстати, думать о том, что сделать, я начал ещё на зимних каникулах, то есть до начала семестра. Хотелось сделать что-нибудь интересное и полезное одновременно.

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

ELK на Docker

Reading time4 min
Views100K
Многие я думаю читали о применении Elasticsearch, Logstash и Kibana для сбора и анализа логов, но часто статьи начинаются с длинного мануала как поднять сервисы ELK и заставить работать их совместно.
Здесь я хочу рассказать о быстром старте с помощью Docker.
Читать дальше →

Laravel TestTools — запись тестов для Laravel прямо из браузера Chrome

Reading time1 min
Views12K
Вчера Marcel Pociot представил новое расширение для браузера Chrome «Laravel TestTools», которое позволяет «записывать» действия пользователя при создании тестов для Laravel.

Вот как это выглядит:

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

Deploy Django приложений с использованием Ansible для чайников

Reading time8 min
Views22K
Доброго времени суток!

Совсем недавно мой коллега познакомил меня с замечательным инструментом автоматизации ручного труда под названием Ansbile. После чего моментально родилась идея написать что-то своё, что упрощает тот самый ручной труд. Что чаще всего приходится делать руками? Правильно, деплоиться.

В этой статье я расскажу о том, как с использованием ansible раскатать django-проект на чистом удаленном сервере ubuntu 14.04, создав при этом для проекта отдельного пользователя.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity