2017-12-09

Высоко-нагруженная СУБД в Docker? Ты что дебил?

Очередная юмористическая запись
К написанию натолкнул спор разговор с одним человеком из компании noname.

Началось всё в стиле "сколько стоит сделать сайт". Понятно что разговор шёл о использовании Docker и СУБД, Если быть точнее то об использовании PostgreSQL в том самом Docker.
Вопрос собеседника, что лучше Debian или Ubuntu меня заставил напрячься, я заподозрил что где то кроется подвох.
Понятное дело что за стабильность Debian приходится платить версиями пакетов, и наоборот за свежесть Ubuntu платить приходится багами.

Затем разговор перешёл в русло тяжёлых нагрузок PostgreSQL работающего в Docker уже по меньшей мере забавно но да ладно.
В итоге собеседник выдал, что ни я ни 90% "рунета" ничего не понимаем в Docker.
А я то наивно полагал, что бородатые дядьки на HI-Load конференциях знают побольше таких как мой собеседник. Или может всё поменялось за последние пол года и Docker больше не нуждается в драйверах для работы с дисковой подсистемой. Мало того, может Docker работает даже быстрее самой OS на которой развёрнут. Но это наверняка какая то тайна о которой знает только собеседник и оставшиеся 10% "рунета".

2017-06-23

Этикет? - не, не слышала!

Вдруг зазвонил телефон. +79514992094
Кто говорит?
И тут мне в ответ какая то барышня - "Вы что скрываетесь?"
Я отвечаю - "Я же должен знать с кем говорю."
В ответ я услышал следующее - "Я работодатель. Короче до свидания" и бросила трубку.
Самое забавное то, что голос был как будто человеко резко про-слабило

На секундочку - это был HR компании? Тот человек который должен сглаживать углы и шероховатости между сотрудниками, и должен оценивать человека на собеседовании? Это просто верх мастерства.

Как говорится - хорошо хоть на*ер не послали.


2017-06-20

Doker - как не надо делать

В общем пример как не надо делать

FROM perl:5.20

MAINTAINER Xxxxxxx Dmitry

RUN apt-get update
RUN apt-get install -y curl build-essential m4 libncurses5-dev libssh-dev
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN apt-get update

RUN curl -L cpanmin.us | perl - Mojolicious@6.08

2017-06-06

Гнусный Microsift и почему фтопку Skype

Появилось уведомление, что Microsoft начинает блокировать Skype for Linux (который работает по принципу p2p). И на следующий день с моей учётной записи начали просить денег в долг.
Всё бы ничего и можно было бы списать на то, что не там где надо входил в учётную запись. Если бы не история входов. Все входы сделаны с ОС Linux с одних и тех же адресов (рабочий и домашний). Сказать что пароль был простой тоже нельзя. Пароль был больше 15ти символов, верхний и нижний регистр, цифры и спецсимволы!

При всём этом когда я входил в свой аккаунт через Linux клиент - буквально через пару секунд происходил автовыход. В веб версии этого не было.
Вывод я для себя сделал - Microsoft специально спровоцировал утечку паролей Linux клиентов.

В общем я настроил всякие дополнительные методы защиты по смс и тд. И решил отказаться от Skype как основного месседжера.

Отказаться решил в пользу Telegram и Hangouts
У первого интересные моменты с ботами и каналами + недавно реализовали звонки
У второго групповые видео звонки с возможностью "расшаривать" экран

2017-06-05

MySQL мыши и кактус

Есть такое забавное выражение "мыши плакали кололись но продолжили есть кактус".

Цитата одного из сотрудников MailRu Group звучит так - "Кто то как мы, перешёл на PostgreSQL и теперь счастлив, а кто то остался на MySQL и продолжает есть кактус".

Собственно приведу всего один простой наглядный пример почему это так.

Для эксперименты были взяты MariaDB 10.1 и 10.2, последняя соответствует MySQL 5.7

2017-06-02

Oracle переносит выпуск Java 9 на осень

Компания Oracle в третий раз переносит релиз Java 9. В соответствии с новым планом выпуск переносится с 27 июля на 21 сентября из-за разногласий в исполнительном комитете JCP (Java Community Process), касающихся внедрения новой модульной архитектуры Jigsaw, которая, по мнению Red Hat, может привести к нарушению работы уже существующих приложений, расколу экосистемы и фрагментации сообщества. Компания Oracle не отказывается от Jigsaw и надеется за два дополнительных месяца устранить отмеченные комитетом недостатки. 

2017-06-01

Выпуск серверной JavaScript-платформы Node.js 8.0


Представлен релиз Node.js 8.0.0, платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript. Node.js 8.0 относится к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Время выпуска обновлений для LTS-веток составляет 4 года. Поддержка прошлой LTS-ветки Node.js 6.0 продлится до 2020 года, а позапрошлой LTS-ветки 4.x до апреля 2018 года. Поддержка промежуточной ветки Node.js 7.0 будет прекращена в июле 2017 года.
Из улучшений в Node.js 8.0 отмечается обновление движка V8 до версии 5.8, в которой реализована новая схема компиляции, основанная на применении интерпретатора Ignition и JIT-компилятора Turbofan. Новая схема примечательна повышением производительности выполнения JavaScript-приложений и снижением расхода памяти. В V8 5.8 также представлен новый подход к стабилизации - ABI данной версии будет совместим с V8 5.9 и 6.0, что позволит реализовать обновление движка V8 до новых выпусков в рамках жизненного цикла ветки Node.js 8.x.
.....

.....
По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере. При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения "var result = db.query("select..");" с ожиданием завершения работы и последующей обработкой результатов, в Node.js использует принцип асинхронного выполнения, т.е. код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных. Ни одна функция в Node.js не должна напрямую выполнять операции ввода/вывода - для получения данных с диска, от другого процесса или из сети требуется установка callback-обработчика.

Менеджер пакетов и обезьяны космонавты - часть 1

В первой части - попробую рассказать для чего это надо и какие бывают пакетные менеджеры у разных ЯП.
Во второй части - расскажу про обезьян (monkeydev) и почему я занялся  вопросом пакетов.

И так, часть первая - про пакетные менеджеры.
Хочу сразу сказать, что цель статьи не раскрыть все тонкости пакетных менеджеров - а дать краткий обзор их и область их применения. Чуть позже напишу как настроить Jenkins + Ansible + Docker + пакетные менеджеры.
Пакетные менеджеры - используются для автоматизации установки пакетов/модулей и попутно для автоматизации некоторых задач.
Очень помогает при внедрении CI/CD да и в целом упрощает всем жизнь!

2017-05-23

Не взлетел Skype Ubuntu 16.04

После установки Skype не взлетает

Выдаёт вот такой матюк:
error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Лечится достаточно просто, надо отредактировать стартовый ярлык
sudo vim /usr/share/applications/skype.desktop

И привести строку к такому виду
Exec=env PULSE_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype %U

Готово

Когда Opera не воспроизводит видео h264 в html5

После установки Opera в браузере не работает видео
Выяснил что надо кодек h264

Волшебные приседания что бы заработало видео (делается из под ROOTа)

apt install chromium-codecs-ffmpeg-extra
cd /usr/lib/chromium-browser
cp libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/

Запускаем Opera и радуемся

2017-05-17

СУБД MapD Core, для создания хранилища в оперативной памяти и обработки данных использующей GPU

Компания MapD Technologies объявила об открытии исходных текстов СУБД MapD Core, обеспечивающей создание хранилища в оперативной памяти (IMDB - in-memory database). СУБД поддерживает SQL и оптимизирована для решения задач по анализу и визуализации данных. Код написан на языках C++ и Go, и распространяется под лицензией Apache 2.0.
Особенностью MapD Core является задействование GPU (поддерживается NVIDIA CUDA) для ускорения анализа данных. Отмечается, что обработка данных на стороне GPU позволяет за миллисекунды выполнять запросы, охватывающие миллиарды строк, что на порядок быстрее, чем можно добиться от самых быстрых решений на основе CPU. Например, на системе с несколькими современными видеокартами можно добиться пропускной способности при работе с видеопамятью на уровне 6 TB/sec, что более чем в 40 раз быстрее, чем при работе с памятью на обычном сервере.

2017-04-23

Мысли в слух

Петька и Василий Иванович решили опыты поставить.

  • Взяли таракана, бросили его на пол и хлопают в ладоши - таракан убегает.
  • Оторвали таракану лапы, бросили его на пол и хлопают в ладоши - таракан не убегает.
  • Вывод: Таракан без ног не слышит.


2017-04-19

Mastodon - новая платформа для создания децентрализованных социальных сетей

Представлен новый выпуск свободной платформы для развёртывания децентрализованных социальных сетей - Mastodon 1.2. В отличие от централизованных социальных сетей, создаваемые при помощи Mastodon сервисы не подконтрольны отдельным поставщикам и могут создаваться на собственных мощностях пользователей. Если пользователь не имеет возможности запустить собственный узел, то он может выбрать заслуживающий доверия публичный сервис для подключения. Mastodon относится к категории объединённых (federated) сетей, для образования единой структуры связей в которых применяется набор протоколов OStatus, совместимый с решениями на базе платформы GNU Social.

2017-04-17

Критическая уязвимость в Magento - опять 25

Обратил внимания на новость "Критическая уязвимость в Magento ставит под угрозу 200 тыс. интернет-магазинов" и сразу вспомнил волка из мультика с фразой "Шо?, Опять?"

Для пользователей Magento:
Отправь смс на короткий платный номер 900 с текстом "я не лох". Чем больше смс - тем больше ты "не лох"!

2017-04-14

Блог на octobercms или как получить боль в нижней части спины

Коротенькая история как изобрести свой велосипед, но с квадратными колёсами
Хотя всё получилось достаточно красиво, но колёса квадратные.
Если вам нужен блог - то используйте WordPress или Drupal и не морочьте голову!

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

2017-03-14

Наглядно результат работы DevOps отдела - Deploy трёх ракет


Почему ни в коем случае нельзя пускать программистов на сервера

Конечно существуют программисты которые отлично разбираются в сетевом стеке и в ОС в целом. Но я за время своей работы ещё ни одно такого не встречал!

Программисты в большинстве своём лентяи наивысшей категории.

Сисадмины не особо отличаются в этом плане но всё же отличие есть. Главное в том, что сисадмин благодаря лени не хочет возвращаться к той работе, что проделал - и как следствие изучает документацию, нюансы работы и т.д. Когда же программист "залетает" на сервер и что то не получается, то выпучив глаза он находит первое решение на stack overflow применяет на боевых серверах. Не смотря на то что это может влиять на безопасность а за частую и на работоспособность того что пытаются настроить.

Что мне не понятно - так это почему не спросить если ты не знаешь?
Может корона давит на голову?

2017-02-17

i2pd 2.12

Релиз i2pd 2.12 (I2P Daemon), полнофункциональной реализации клиента I2P на языке C++. Исходный код проекта под модифицированной лицензией BSD, бинарные сборки подготовлены для Debian, Ubuntu, macOS, FreeBSD, Android и Windows. Также создан PPA-репозиторий и Docker-образ.

FreeBSD - Undefined symbol "openat"

В один момент когда хотел установить какой то пакет (не помню какой)
Вылезло сообщение с ошибкой

После чего любые манипуляции с pkg стали выдавать такую ошибку

/usr/local/lib/libpkg.so.3: Undefined symbol "openat"

В общем у коллеги синьора DevOps инженера, синьора инженера по информационной безопасности и просто хорошего человека - случилась такая же ситуация

2017-02-16

Ajax или не ajax - вот в чём вопрос

Если у кого возникнет такая же ситуация вдруг пригодится вариант решения (а может и нет)
Продолжение цикла забавные истории (прошлая тема многопотомность)

Опишу примерную ситуацию

Есть например урл на котором отображаются товары с ценами
Но цены берутся из кеш базы и это неактуальные цены с задержкой сутки (отдаётся страница за 1 секунду)
Когда начинаешь брать цены из базы то страница генерируется 5 секунд (это долго)

Допустим ускорить запрос нельзя (в реальности можно но затраты на это большие)

Я предложил решение - асинхронно отдавать данные по ценам и основную страницу

2017-02-06

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

Запустил я один проект в Docker и получил забавный результат.
Забавный не в смысле работы Docker_а.
Далее инструкция которую пришлось набросать.

Эта инструкция появилась потому, что выяснилось - программисты не умеют пользоваться докером !

Докер это контейнер с программным окружением.

Всё, что работает на боевом сервере можно тестировать в своей копии контейнера
Если, что то заработало локально то это 100% будет работать на боевом.
Но если локально ошибка то и на боевом тоже будет ошибка

История одного маркета ...

2017-01-30

Не работайте с муд@ками

Очень понравился доклад "Не работайте с муд@ками"
Есть одноимённая книга в которой интересное высказывание:
Бушнелл рассказал мне следующее: когда он ищет специалистов по маркетингу, обращает внимание на умение убеждать и на красноречие; когда же речь заходит о технарях, он просто смотрит на их работу, поскольку "лучшие инженерные умы часто заключены в тела, не способные разговаривать"
Я полностью согласен с этим - чем технарь "красивее" рассказывает тем он меньше технарь!


Есть момент из видео который мне сразу, что то напомнил ;-)

2017-01-26

А почему бы и Go ?

То, что с php рекомендуются всем сваливать (по понятным причинам) это и так все знают. В том числе с точки зрения безопасности - подтверждением служит интернет банкинг, везде это Java., по крайней мере другого я не встречал.

Пример - "вконтакте", которым любят хвалится "phpшники" уже давно не php!

Но главный вопрос куда? (Java иногда сложно и не оправдывает затрат)

И тут мне попалось на глаза видео в котором Даниил Подольский
CTO компании inCaller рассказывает о Go-lang
Полное видео доступно тут
Позабавила фраза "прибегут phpшники и начнут писать свой php на нашем Go"
Ну и интересный кусок видео (на мой взгляд) который стоит посмотреть
Какие сервисы будут теперь на Go а какие нет и почему