Сегодня мы поговорим про Kubernetes, про грабли, которые можно собрать при его практическом использовании, и про наработки, которые помогли автору и которые должны помочь и вам. Постараемся доказать, что без k8s в современном мире никуда. Противникам k8s также предоставим отличные причины, почему не стоит на него переходить. То есть в рассказе мы будем не только защищать Kubernetes, но и ругать его. Отсюда в названии появилось это [не].
Эта статья основана на докладе Ивана Глушкова (gli) на конференции DevOops 2017. Последние два места работы Ивана так или иначе были связаны с Kubernetes: и в Postmates, и в Machine Zone он работал в инфракомандах, и Kubernetes они затрагивают очень плотно. Плюс, Иван ведет подкаст DevZen. Дальнейшее изложение будет вестись от лица Ивана.
Итак, вы собираете метрики. Как и мы. Мы тоже собираем метрики. Конечно же, нужные для бизнеса. Сегодня мы расскажем о самом первом звене системы нашего мониторинга — statsd-совместимом сервере агрегации bioyino, зачем мы его написали и почему отказались от brubeck.
Хочу вынести на обсуждение несколько тем, касающихся современного школьного образования. Всё будет представлено на примере урока по физике.
Как должна быть поставлена школьная задачка? Какова должна быть сложность? Что должны представлять из себя лабораторные работы?
Интернет — образование. Возможно ли в России создание аналога онлайн архива лекций (и не только) khanacademy.org? Именно нормальных уроков и лекций, связанных в один программный курс, а не пособий по дрессировке к ЕГЭ. Как советская система образования может выглядеть в современных медиа (видео-лекции, интерактивные приложения)? Кто будет это делать?
???
Здесь представлена первая часть, остальные будут позже.
С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:
0. Зачем вообще что-то оптимизировать?
1. Оптимизация ОС (FreeBSD)
1.1 Переход на 7.х
1.2 Переход на 7.2
1.3 Переход на amd64
1.4 Разгрузка сетевой подсистемы
1.5 FreeBSD и большое кол-во файлов
1.6 Softupdates, gjournal и mount options
2. Оптимизация фронтенда (nginx)
2.1 Accept Filters
2.2 Кеширование
2.3 AIO
3. Оптимизация бэкенда
3.1 APC
3.1.1 APC locking
3.1.2 APC hints
3.1.3 APC fragmentation
3.2 PHP 5.3
4. Оптимизация базы данных
4.1 MySQL
4.1.1 Переход на 5.1
4.1.2 Переход на InnoDB
4.1.3 Встроеный кеш MySQL - Query Cache
4.1.4 Индексы
4.2 PostgreSQL
4.2.1 Индексы
4.2.2 pgBouncer и другие.
4.2.3 pgFouine
4.3 Разгрузка базы данных
4.3.1 SphinxQL
4.3.2 Не-RDBMS хранилище
4.4 Кодировки
4.5 Асинхронность
Приложение. Мелочи.
1. SSHGuard или альтернатива.
2. xtrabackup
3. Перенос почты на другой хост
4. Интеграция со сторонним ПО
5. Мониторинг
6. Минусы оптимизации
Условия, которые питают креативных программистов, убивают менеджеров и маркетологов — и наоборот. Программирование — Великая Игра. Оно поглощает игрока полностью, включая и душу и тело. Если ты попался — то ты попался, и ничего уже больше не имеет значения. Когда ты в следующий раз вылезешь из своей берлоги, вполне могут обнаружиться лишние десять киллограммов, борода до колен и такое количество пустых коробок из-под пиццы вокруг, что уже, наверное, наступила весна? Но для тебя это всё не важно. Потому, что твоя программа работает, а код быстр и элегантен. Ты победил.
Мой сервер, который и будет героем последующего повествования — это обычный арендованный у FirstDedic сервер среднего класса с процессором DualCore Xeon E3110 3.00Ghz. Оперативной памяти было установлено 4 Гб, жесткий диск 500 Гб. На сервере был установлен nginx 1.01 в качестве frontend, и apache 2 в качестве backend, с запуском скриптов в режиме CGI.
История приключилась с сайтом, который был размещен на моем сервере, собственно, не сайт, а чужой личный блог. Ранее на блоге наблюдались пики трафика до 10000 в сутки, но с подобной нагрузкой сервер справлялся на ура абсолютно без оптимизации на стандартных файлах конфигурации.
Продолжаем серию статей о виртуализации на базе KVM. В предыдущих статьях было рассказано об инструментарии, о настройке хост-машины и создании виртуальной машины. Сегодня мы поговорим о создании образа виртуальной машины и его клонировании.
Эта неделя богата на статьи о ботах для бразуерных игр.
Во всех статьях для управления ботом использовался AutoIT. Это простой и хороший способ чтобы начать делать бота «в лоб», он не требует никаких знаний об игре, кроме как знания правил и графического интерфейса. Для серверной части игры такой бот вообще будет выглядеть как обычный пользователь, если не брать во внимание невероятную усидчивость и производительность такого игрока.
Но этот способ требует распознавания мира, что добавляет много ошибок, а иногда определить необходимое значение вообще не представляется возможным.
В первой статье я наткнулся на комментарий со ссылкой на пост Adobe Profiler Fail, что побудило меня исследовать эту возможность в целях автоматизации действий в Flash-играх.
Злой троянец увел у меня аккаунт на хабр, после чего под моим аккаунтом начали публиковаться какие-то тупые мультики. К сожалению узнал я об этом только когда НЛО перевело меня в read-only, а рейтинг ушел в отрицательное значение. Не беда: повод наконец написать пост, который давно собирался.
Веб-разработчику консоль нужна, но не на столько что бы бросив все дела начинать читать толстенные книжки по линуксу. Именно поэтому я учился консольным хитростям от случая к случаю и, судя по моим сотрудникам, многие поступают точно так же. Раскрою пару удобных секретов, без которых я уже не могу жить.