Pull to refresh
91
0

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

Send message

Поняв Docker

Reading time14 min
Views221K

Если вы еще никогда не поддерживали чужие приложения, или пусть даже свои, но таких размеров, что уже не помещаются в одной голове, то прошу вас расслабиться, откинуться на спинку кресла и воспринимать прочитанное как поучительную сказку с надуманными проблемами, забавным сюжетом и очевидным счастливым концом. В противном случае, если реальный боевой опыт у вас имеется, добро пожаловать в ад, но с IDDQD и IDKFA.


К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!


UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker'ы» в тексте. Селяви.


Что мы имеем сегодня


  • Зоопарк дубовых VPS-хостингов.
  • Дорогие IaaS и PaaS с гарантированным vendor lock in.
  • Уникальные сервера-снежинки.
  • Ворох устаревших зависимостей на неподдерживаемой операционке.
  • Скрытые связи частей приложения.
  • Незаменимый админ полубог на скейтборде.
  • Радуга окружений: development, testing, integration, staging, production.
  • Генерация конфигов для системы управления конфигами.
  • Feature flagging.
docker run docker
Total votes 92: ↑83 and ↓9+74
Comments245

Немного о сборке мобильного приложения

Reading time23 min
Views28K
image

Я помню то замечательное время, когда сборка релизной версии мобильного приложения сводилась к тому, что нужно было выставить debug = false и запустить экспорт apk-файла. Проходит 2 минуты, пока пыхтит IDE, и все готово. Все усилия сосредотачивались на необходимости указать данные сертификата подписи. Это было совсем недавно. Cейчас процесс сборки того самого приложения разросся настолько, что, если мне, вдруг, потребуется выполнить все операции самостоятельно, и даже если я все вспомню и проделаю безошибочно (во что я не верю), то это займет не час, который сегодня кажется непозволительно долгим, а, скорее всего, сутки, после чего терапевт обязан будет прописать мне больничный по усталости недели на две.

Итак, процесс сборки мобильного приложения. Попробую рассказать, из чего он у нас состоит — не потому, что в последнее время стало модным катать посты о CI той или иной мобильной команды (с покером, русалками и прочими обязательными атрибутами), а потому, что это отличный опыт, который я получил, работая над Почтой Mail.Ru для Android, и потому, что этой возможности, вероятнее всего, не было бы, работай я в другой команде, над другим проектом или в другой компании.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments18

Лоукост хостинг выделенных серверов в России. Возможно ли?

Reading time6 min
Views19K
Айхор

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

Мы решили провести небольшую аналитику и попробовать дать ответ на заголовок поста. Также мы создали лоукост-конфигуратор выделенных серверов на базе имеющегося у нас оборудования. Что из этого вышло – вы сейчас узнаете.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments64

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views121K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3+88
Comments44

Создание VPN туннеля между двумя квартирами на базе роутеров с dd-wrt

Reading time3 min
Views60K

Предыстория:


Собственно, задача — объединить дом 1 и дом 2. На вооружении имеем схемы:

Дом 1: -internet пров. Beeline l2tp; psTV (196.168.2.13); dir615С2 (внут: 192.168.2.1, внеш: 95.24.х.х (будет клиентом VPN))

Дом 2: -internet пров. Interzet с белым ip; PS4 (192.168.1.13); dir615Е4 (внеш st.IP: 188.Х.Х.Х, внут: 192.168.1.1 (будет сервер VPN)
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments8

Консоль 21 века: mosh, tmux, fish

Reading time8 min
Views96K
В своей работе мне приходится проводить чуть ли не все свое время в консоли, как в локальной, так и в удаленной. Нет, что вы, я не жалуюсь, даже наоборот — мне нравятся возможности автоматизации, которые предоставляют консольные инструменты, и работа в консоли вполне продуктивна.

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

Проблемы ssh


При работе с удаленными серверами по ssh есть много вещей, которые могут фрустрировать, но основных проблем две, и первая из них принципиально неразрешима в рамках ssh:

  1. При высоком round-trip latency (>100 ms) пользовательский ввод появляется с ощутимой задержкой, а при использовании мобильного интернета с edge (latency 1000 ms) работа становится подобна пытке
  2. При временных проблемах (несколько минут) с доставкой пакетов, соединение может порваться с write failed: broken pipe, причем узнаете вы об этом только при попытке ввода или при использовании настроек вроде keepaliveinterval


Первая проблема неразрешима потому, что ssh by-design является просто транспортом для байтов, и существующие приложения на это поведение расчитывают. Поскольку ssh не пытается интерпретировать этот поток байтов, он не может осуществлять предиктивный ввод. Лично для меня именно эта проблема наиболее актуальна, поскольку мне приходится работать с серверами в европе и США, и во втором случае задержка составляет около 200 мс и является принципиально неустранимой, по крайней мере до изобретения квантовой коммуникации или чего-нибудь подобного. Вторая же проблема проявляется в наших условиях относительно редко, но всё же неприятно переустанавливать все соединения при сбоях сети (и перезапускать упавшие приложения, если они почему-то не были запущены в screen).

Читать дальше →
Total votes 97: ↑89 and ↓8+81
Comments59

Видео доклада «Пишем #b_ правильно» с WebCamp 2015

Reading time1 min
Views10K
«Пиратское» видео доклада «Пишем #b_ правильно» с конференции «WebCamp 2015: Front-end Developers Day», прошедшей 4 июля в Одессе.

Как сверстать сайт вручную «по-БЭМ» без классов «block__element__element», и на реальном примере со всеми его проблемами, а не меню-пункт_меню-ссылочка, как вы видели раньше. Без BEMJSON, BEM Tools, но с миксованием, модификаторами и разбором ошибок.

Я знаком с БЭМ давно и все эти годы встречался с множеством заблуждений и стереотипов в использовании. В докладе постарался развеять популярные мифы и рассказал о своём трехлетнем опыте внедрения и использования БЭМ и связанным с этим наступании на грабли.

Слайды: delka.github.io/talks/webcamp/2015/bem


Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments19

Основы успешной реализации push-уведомлений для мобильных приложений

Reading time5 min
Views89K
Наши разработчики в Techmas часто сталкиваются с задачами создания уведомлений (push notifications). Несмотря на простоту и популярность технологии, в её реализации есть ряд особенностей, о которых и пойдёт речь в этой статье.




Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments7

По-настоящему адаптивные письма. Часть… снова первая

Reading time9 min
Views27K


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

К чему мы приходим:
— Использование внешних стилей и последующий прогон кода через инлайнер. Из-за усложнения кода это стало целесообразным
— Улучшение семантики через именование классов и сокращение участков кода
— Частичная поддержка the Bat! Хотя Николь на него забила.
— Полная поддержка всех мобильных почтовых клиентов
— Использование ранее опасных конструкций. Благодаря усердному тестированию проблемы решены.
Читать дальше →
Total votes 30: ↑25 and ↓5+20
Comments25

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views114K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →
Total votes 111: ↑96 and ↓15+81
Comments102

Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis

Reading time4 min
Views61K


Не секрет, что каждый интернет-магазин должен помогать пользователям найти то, что им нужно. Особенно, если товаров у вас много (> 10). На помощь приходит каталогизация товаров, но разбить товары по категориям — полдела. Товары внутри категории нужно уметь фильтровать по их свойствам. Особенно, если товары у вас разношёрстные, например, одежда, электроника, ювелирные изделия и т.д. И тут любой разработчик, пишущий свой e-commerce продукт, сталкивается с неприятными реалиями жизни: у товаров могут быть совершенно разные свойства, у некоторых товаров они могут отсутствовать, некоторые товары по одному свойству могут попадать под разные значения (цвет платья то ли синий, то ли голубой, соответственно, неплохо бы его показать и по синему и по голубому цвету). Проще говоря, у вас EAV. Бывает ещё, что EAV вам диагностирует заказчик ближе к концу разработки, а то и просит добавить фильтр по динамическим свойствам уже после релиза.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments75

Docker. Best practices на примере образа Oracle xe 11g

Reading time5 min
Views37K


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

Сегодня можно найти тысячи образов в hub.docker.com. За счет своей простоты в создании образов, буквально за пол часа можно начать вносить свой вклад.

Но многие забывают о best practices, и за счет этого docker hub наполнился огромным количеством не самых лучших образов.

В этой статье я хочу описать на сколько просто и полезно создавать образы используя Best Practices на примере.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments37

Установка OpenStreetMap Nominatim для нахождения широты и долготы по введенному адресу

Reading time6 min
Views58K
image

Хотел бы поведать свою историю об установке геокодера Nominatim на выделенный сервер. Изначально предполагалось, что эта задача займёт у меня около 5-7 часов, но не тут то было… Поэтому было решено написать статью c описанием разворачивания Nominatim на сервер до полной работоспособности сайта. Но обо всём по порядку.
Читать дальше
Total votes 21: ↑19 and ↓2+17
Comments28

Что нужно знать при миграции с MySQL на PostgreSQL?

Reading time8 min
Views36K
В продолжение статьи о теории и практике миграции хранилищ данных на PostgreSQL, мы поговорим о проблемах, с которыми вы можете столкнуться при переезде с распространенной СУБД MySQL. Дабы не утомлять всех лишней риторикой, сегодняшний рассказ будет более тезисный и проблемно-ориентированный.

Все нижепредставленное является перечнем типовых ошибок дизайна и эксплуатации MySQL, которые могут повлиять на процесс адаптации схемы, переработки кода и переноса данных. Наличие всех этих мелочей в разнообразных коварных сочетаниях является одной из причин, по которой существующие “универсальные” инструменты вряд ли справятся конкретно с вашей базой.

Именно поэтому в предыдущей статье я рекомендовал не тратить время на поиск серебряной пули и написать что-нибудь свое “на коленке”, что действительно работает. Данная статья призвана облегчить написание такого инструмента, указывая на потенциальные изъяны, в наличии которых вы может сравнительно быстро убедиться.

Перейдем к делу.
Читать дальше →
Total votes 49: ↑43 and ↓6+37
Comments56

Мобильный трафик: его ультра-много, но он ультра-пассивный. Что с этим делать?

Reading time6 min
Views16K
В начале года ComScore опубликовал интересную статистику. Для того чтобы определить долю мобильного трафика, им была проанализирована аудитория сайтов крупнейших интернет-магазинов Америки. В итоге количество посетителей с мобильных устройств превысило количество посетителей с компьютеров. Более того, примерно 38% всех пользователей сайта Amazon, 44%eBay и 59%Apple заходят на ресурсы ТОЛЬКО со смартфонов.

image

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments10

С чего начать работу на бирже и как купить акции Tesla

Reading time2 min
Views13K


Больше всего вопросов у начинающих инвесторов возникает на этапе знакомства с фондовым рынком — в нашей стране вокруг него сформировалось значительное количество мифов и заблуждений.

В нашем блоге мы уже рассказывали о том, как устроена биржевая торговля в России, сравнивали инвестиции на бирже с финансовыми инструментами сохранения финансов, которые предлагают банки, и изучали возможности покупки акций знаменитых ИТ-компаний.

В продолжение темы мы организуем образовательные семинары и вебинары, посвященных вопросам о старте работы на фондовом рынке и инвестициях в акции международных компаний.
Читать дальше →
Total votes 18: ↑11 and ↓7+4
Comments7

Почему для спорта нужны именно Polar

Reading time5 min
Views77K
Привет, Geektimes!

Думаю, что о пульсометрах финской компании Polar знают практически все, кто ведет спортивный образ жизни.



История финской компании Polar Electro O
В 1975 году идея создания портативных кардиомониторов родилась прямо на лыжном треке. В те времена не существовало способов точного измерения пульса во время тренировки. Всего через год с небольшим была основана компания POLAR неподалеку от финского города Оулу, края, известного своими технологическими исследованиями и окруженного одними из самых сложными условиями в Европе. Специалисты быстро определили, что это место является идеальным плацдармом для испытания предельных возможностей инновационного оборудования компании.

В 1979 году POLAR подала свою первую заявку на патент для беспроводного пульсометра, а в 1982 году представила широкой общественности первый в мире беспроводной кардиомонитор, предназначенный для ношения, тем самым навсегда изменив режим тренировок спортсменов. Теперь, через более чем 30 лет первой волны открытий, компания POLAR предлагает самый обширный ассортимент продукции в данной отрасли. Начиная базовыми моделями, которые мотивируют и информируют новичков и активных спортсменов-любителей, регулярно занимающихся физическими упражнениями, и заканчивая комплексными тренировочными системами, предназначенными для мировых чемпионов в различных видах спорта.

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

Зачем какой-то непонятный Polar (Garmin, Suunto &etc.), когда Samsung Galaxy S5, S6, Gear S, Apple Watch и еще куча разных вещей делает это? Я, без всяких шуток, встречал такие упоминания даже в сравнительных обзорах. То есть человек прямо так и написал: «Garmin проигрывает участникам теста тем, что датчик нужно крепить на груди. Что, согласитесь, не комильфо». Помнится, при чтении того обзора на этой фразе у меня глаз выпал брови на лоб залезли.
Читать дальше →
Total votes 29: ↑16 and ↓13+3
Comments103

А вот про Sphinx 3.0

Reading time6 min
Views37K
Вот вы там все сидите и ничего не знаете, а мы, тем временем, пилим помаленьку мега-релиз поискового движка Sphinx за номером 3.0. Грядет ряд больших переделок. Часть из них, как полагается, ещё даже как следует не начата. Однако большая часть уже скорее готова, чем нет. А отдельно взятые изменения даже протекли в публичную ветку 2.3. Так что, пожалуй, настало время вкратце начинать рассказывать, чего ожидать в светлом будущем: надеюсь, не столь отдалённом. Кому интересно почитать, все под кат; кому послушать, приходите на meetup в эту субботу. Если совсем вкратце, то: прощай, концепция дополняющего основную базу движка; привет, хранилище документов, тотальный RT, репликация, REST и ряд других известных ключевых слов.
Читать дальше →
Total votes 74: ↑72 and ↓2+70
Comments54

Хардбол и камера видеомастер

Reading time3 min
Views12K


Всем привет!

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

Итак, хардбол — это военно-тактическая игра, похожая чем-то на страйкбол и пейнтбол. Основное отличие хардбола от страйкбола и пейнтбола – пневматическое оружие калибром 4,5 мм и мощностью не более разрешенных законодательством 7,5 Дж.
Зачем хардболистам камера?
Total votes 32: ↑26 and ↓6+20
Comments25

Создание изоморфного приложения на React и Flummox

Reading time14 min
Views20K
Сегодня я хочу показать, как используя React, Flummox и Express, создать полноценное изоморфное приложение.

Идея изоморфности давно витала в воздухе, но никто не знал этого слова, поэтому ничего особо не менялось, пока не пришел airbnb.

За полгода до этого появился React, позже появился Flux и множество его реализаций, одна не хуже другой. Но все эти реализации ориентировались только на работу на клиентской стороне, они работали через синглтоны и, зачастую, их нельзя было нормально использовать на сервере. Я успел попробовать несколько, но ни одна мне не понравилась. Пока два месяца назад я не наткнулся на Flummox. Как заявляет разработчик, Flummox создан как раз для изоморфных приложений, он не использует синглтоны, присущие другим реализациям, и максимально прост в использовании.

Ожидается, что вы имеете опыт работы с React и слышали про Flux. Итак, поехали…
Забрать готовый код можно тут.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments25
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity