Pull to refresh
-3
0
grieverrr @grieverrr

User

Send message

Принудительное введение в системы управления конфигурациями

Reading time9 min
Views36K

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


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


Введение для отшельников, которые не слышали что такое configuration management systems


Уже многие годы (по айтишным меркам — три поколения как) существуют программы, которые позволяют автоматизировать процесс конфигурации серверов. Все эти программы сложные, они вторгаются в святую святых администраторов и заставляют их делать "всё не так, как раньше". Их изучение и интернализация (признание, что "так надо и так правильно") — абсолютный must have в карьере любого системного администратора.


Главная боль любой системы управления конфигурациями


Главная боль состоит в том, что система управления конфигурациями ломает привычную автоматику пальцев. Раньше вы могли поднять веб-сервер за 2 минуты почти не глядя на экран. Теперь вам предлагают потратить на абсолютно те же самые действия минут 15-20 (если вы хорошо знаете систему управления конфигурациями) или даже несколько дней (!!!!!), если вы её изучаете.


Это преступление против личной эффективности. Уменьшить её в десять (0xA) раз — и это они называют прогрессом?

Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments69

Сборка и дeплой приложений в Kubernetes с помощью dapp и GitLab CI

Reading time7 min
Views26K


В предыдущих статьях о dapp было рассказано про сборку приложений и про запуск в Minikube. При этом dapp запускался локально на машине разработчика. Однако инструмент задумывался для поддержки процессов непрерывной интеграции (CI) и сами мы используем его в основном в связке с GitLab. Чем dapp помогает в процессах CI/CD?
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments4

Лучшие практики CI/CD с Kubernetes и GitLab (обзор и видео доклада)

Reading time5 min
Views45K


7 ноября на конференции HighLoad++ 2017, в секции «DevOps и эксплуатация» прозвучал доклад «Лучшие практики CI/CD с Kubernetes и GitLab». В нём мы делимся практическим опытом решения проблем, возникающих при построении эффективного процесса CI/CD на базе указанных Open Source-решений.

По традиции рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде.
Total votes 21: ↑21 and ↓0+21
Comments8

Как быстро спроектировать сайт с помощью CSS Grid

Reading time3 min
Views59K
image

Модуль CSS Grid — это фантастический инструмент для создания макетов веб-сайтов. Он позволяет вам экспериментировать с макетами быстрее, чем любой другой инструмент, которые я пробовал.

В этой статье я научу вас, как это сделать.

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

Если вы совершенно не знакомы с CSS Grid, вам может понадобиться просмотреть мою предыдущую статью Учим CSS Grid за 5 минут.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments68

Где перспективно и адекватно использовать Python

Reading time6 min
Views126K
В прошлой статье мы уже обсудили с вами причины, по которой Python нельзя назвать идеальным языком для новичков, хотя на том же Хабре бытует мнение, что Python – это выбор номер один и вообще топчик.

В этой статье мы с вами обсудим тот перечень направлений Питона, который я выделяю наиболее перспективными для приложения своих сил и времени для молодых специалистов. Данный вывод делается на основе моего анализа – изучение областей и инструментов питона и сравнивать их эффективность с аналогами на других платформах.
image
Читать дальше →
Total votes 71: ↑57 and ↓14+43
Comments255

Асинхронная репликация без цензуры

Reading time12 min
Views23K


Олег Царёв ( zabivator )


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

Иногда бывает необходимо, чтобы приложение могло получать все обновления из базы и желательно в режиме реального времени. Этим занимается оpen source библиотека, которая называется libslave.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments6

Uber — причины перехода с Postgres на MySQL

Reading time19 min
Views102K


В конце июля 2016 года в корпоративном блоге Uber появилась поистине историческая статья о причинах перехода компании с PostgreSQL на MySQL. С тех пор в жарких обсуждениях этого материала было сломано немало копий, аргументы Uber были тщательно препарированы, компанию обвинили в предвзятости, технической неграмотности, неспособности эффективно взаимодействовать с сообществом и других смертных грехах, при этом по горячим следам в Postgres было внесено несколько изменений, призванных решить некоторые из описанных проблем. Список последствий на этом не заканчивается, и его можно продолжать еще очень долго.


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

Читать дальше →
Total votes 112: ↑110 and ↓2+108
Comments58

Доставка обновлений из БД MySQL в приложение при помощи клиента репликации libslave

Reading time17 min
Views20K


При написании любого достаточно крупного проекта всегда встают более-менее похожие проблемы. Одна из них — проблема скорости получения обновлений системы. Относительно легко можно наладить быстрое получение небольших обновлений. Довольно просто изредка получать обновления большого объема. Но что если надо быстро обновлять большой массив данных?

Для Таргета Mail.Ru, как и для всякой рекламной системы, быстрый учет изменений важен по следующим причинам:
• возможность быстрого отключения показа кампании, если рекламодатель остановил ее в интерфейсе или если у него кончились деньги, а значит, мы не будем показывать ее бесплатно;
• удобство для рекламодателя: он может поменять цену баннера в интерфейсе, и уже через несколько секунд его баннеры начнут показываться по новой стоимости;
• быстрое реагирование на изменение ситуации: изменение CTR, поступление новых данных для обучения математических моделей. Все это позволяет корректировать стратегию показа рекламы, чутко реагируя на внешние факторы.

В этой статье я расскажу об обновлении данных, лежащих в больших таблицах в БД MySQL, фокусируясь на скорости и консистентности — ведь не хотелось бы уже получить новый заведенный баннер, но при этом не получить данную рекламную кампанию.
Читать дальше →
Total votes 71: ↑62 and ↓9+53
Comments4

Основы индексирования и возможности EXPLAIN в MySQL

Reading time19 min
Views35K


Темой доклада Василия Лукьянчикова является индексирование в MySQL и расширенные возможности EXPLAIN, т.е. нашей задачей будет ответить на вопросы: что мы можем выяснить с помощью EXPLAIN'а, на что следует обращать внимание?


Многие ограничения EXPLAIN'а связаны с оптимизатором, поэтому мы предварительно посмотрим на архитектуру, чтобы понять, откуда следуют ограничения и что, в принципе, с помощью EXPLAIN'а можно сделать.


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


Доклад, таким образом, состоит из 3х частей:


  • Архитектура;
  • Основы индексирования;
  • EXPLAIN (примеры).

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

Химеры офисной телефонии: говорим о FMC

Reading time11 min
Views14K
Если поискать статьи про FMC по компьютерным изданиям, то можно наткнуться на статью «Что такое FMC?» в PC Week от января 2006 года. Не столь показательная сама статья о прошедшей конференции, сколько комментарий к ней, аж от ноября 2012 года «Статья от 2006 года, а люди ещё не осознают эффективность!». Думаем, что можно оставить точно такой же комментарий, датированный 2016 годом — и это не от того, что что-то не так с технологией, а от того, что она развивалась на фоне бума виртуальных АТС и оставалась в тени.


Услуги, основанные на технологии FMC, можно было найти в портфеле корпоративных услуг сотовых операторов примерно с 2010 года. Однако услуги продвигались сложно — отчасти потому, что самим операторам было выгоднее реализовать другие решения, отчасти потому, что абоненты не получали информации о выгодах и преимуществах FMC, да и вообще не знали, что это за технология. На самом деле, тут есть о чём поговорить, особенно для малого и среднего бизнеса. В общем, как пишут забронзовевшие копирайтеры: «Ваши сотрудники недостаточно мобильны? Тогда мы идём к вам!».
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments0

Ansible с чего начать

Reading time8 min
Views174K
В последние пару лет я все чаще использую Ansible для решения практически любых задач связанных с автоматизацией, будь то конфигурирование, резервное копирование или деплой проектов. Не смотря на то, что система очень хорошо документирована, я думаю смогу добавить немного полезной информации для тех кто еще только начинает пользоваться Ansible. Для начала я хотел бы рассказать об основных вещах, таких как структура проекта в котором будут содержаться плейбуки, роли, переменные, шаблоны и файлы необходимые для автоматизации развертывания серверов, кода и всего другого, что можно сделать с помощью Ansible.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments44

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views681K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments45

Забираем аудиопоток с Twilio по SIP и отправляем на RTMP CDN для дальнейшей раздачи

Reading time8 min
Views6.9K
image

Как известно, в природе существуют CDN-сети, которые используются для доставки потокового видео конечным пользователям. Взять к примеру онлайн-трансляцию футбольного матча. Исторически сложилось, что протокол RTMP, разработанный Adobe, в определенное время стал очень популярен для доставки Live-видеоконтента, и поддержка этого протокола есть в каждом уважающем себя Encoder–устройстве или программе, которая захватывает видеопоток с камеры и отправляет на сервер или CDN для последующей раздачи. В статье описывается как сделать SIP источником потока для CDN.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Не мамонт ли Вы? (пятничный тест; который ложь, да в ней намек)

Reading time4 min
Views72K
PHP развивается стремительно. И сам язык, и его реализация, и, особенно, сообщество. PHP перестаёт быть языком для быстрого клепания сайтиков и всё больше движется в сторону языка общего назначения, хотя путь этот будет долог — слишком много врожденных недостатков тянется с доисторических времён.

Как грибы растут стандарты, фреймворки, развивается и становится всё слаще синтаксис, растут разнообразные инструменты.

И это здорово!

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

image

Попробуйте пройти несложный тест и определить — не мамонт ли Вы в мире PHP? Не грозит ли Вам, как специалисту, вымирание в ближайшее время?

Тест, разумеется, пятничный и шуточный. Но в нём всё-таки есть доля истины.
Проверить степень своего оволосения и размер бивней
Total votes 119: ↑80 and ↓39+41
Comments245

Фрактальное пламя — алгоритм построения

Reading time4 min
Views25K


Фрактальное пламя (или фрактальные искры, англ. fractal flame) – алгоритм, предложенный Скоттом Дрейвсом (Scott Draves) и использующий для построения изображений системы итерируемых функций (СИФ). Благодаря разным значениям seed для генератора псевдослучайных чисел можно получить множество разнообразных «картин». Хотя фрактальность в них просматривается далеко не всегда, результаты получаются очень интересными.

Под катом – краткое описание основных моментов реализации алгоритма.
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments16

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

NASA подтверждает работоспособность «невозможного» волнового двигателя, не использующего реактивную массу — EmDrive

Reading time4 min
Views220K
Дисклеймер: данная статья написана неспециалистом в данной области. Коррективровки, замечания и развёрнутые комментарии всячески приветствуются.

Суть новости


30 июля на 50th AIAA/ASME/SAE/ASEE Joint Propulsion Conference — пятидесятой совместной конференции Американского Института Аэронавтики и Астронавтики, Американского Сообщества Инженеров-Механиков, Сообщества Автомобильных Инженеров и Американского Сообщества Инженерного Образования, посвященной двигательным системам, если кому интересно значение сокращений, представители лаборатории NASA предоставили отчёт, согласно которому EmDrive, двигатель, создающий тягу без выброса реактивной массы, работает.
Читать дальше →
Total votes 128: ↑115 and ↓13+102
Comments260

Разоренные гарпиями. История возникновения высокоскоростного трейдинга

Reading time12 min
Views46K
image

28 января 1790 года представитель штата Джорджия Джеймс Джексон выступал в довольно молодой на тот момент Палате Представителей на заседании в Нью-Йорке. Его целью было разоблачение высокоскоростных трейдеров.

«Три судна, сэр», – прокричал конгрессмен Джексон, – «отплыли в течение двух недель из этого порта с намерением спекулировать; они собираются приобрести весь Штат и другие ценные бумаги несведущих…»

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

Какое же ужасное преступление совершили эти люди? Убийство? Измену?
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments16

Создание окружения для веб-разработки на основе Docker

Reading time5 min
Views61K
Под катом расскажу как я усовершенствовал автоматическое создание и разворачивание окружения для веб-разработки на основе Docker, Fig, DNSMasq и nsenter. По сути, это разворачивание LAMP сервера и запись о нем в DNSMasq, но приоритетами являются незасоренность хост-машины ненужным софтом типа web-, db-серверов на хост машине и минимальное количество команд для запуска
Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments59

Information

Rating
Does not participate
Date of birth
Registered
Activity