Blog

  • План запуска блога

    План запуска блога

    Когда сталкиваешься со сложной задачей, начинаешь в первую очередь делать то, что уже умеешь. Я столкнулся с задачей по набору читателей в канал и не могу успокоиться, пока не попробую решить этот вопрос как умею — сделаю сайт! Решил, что хочу себе олдскульный блог.

    У блога по сравнению с каналом куча преимуществ:
    – Посетители смогут найти эти статьи в обычном поиске.
    – Этим же посетителям я предложу подписаться на социальные сети.
    – Можно будет публиковать статьи на сайт и автоматически кросс-постить в разные каналы: Телеграм, ВК, Дзен, E-mail-рассылку.
    – Если какую-то социальную сеть забанят или удалят мой аккаунт, контент останется у меня.
    – Нейросети будут обучаться на моих статьях, внесу вклад в общие знания.
    – На сайте можно будет размещать рекламу.

    Чтобы зафиксировать достижение, поставлю себе измеримую цель:
    – через 1 месяц — запустить блог и начать кросс-постинг
    – через 12 месяцев — получать больше 10 000 читателей на сайте ежемесячно

    Для этого буду использовать самый популярный движок для блога WordPress. В серии постов я пройду весь путь от идеи до первых посетителей. Буду ставить себе задачи в трекере и учитывать время по таймеру. Расскажу про все возникающие препятствия. Хочу сделать из этого сайта самый технологически навороченный WordPress на сегодняшний день.
    Буду писать про это несколько раз в неделю. Покажу и техническую изнанку, и маркетинговую составляющую, и контентную кухню. Все цифры раскрою.

  • Как агентству зарабатывать дополнительные деньги

    Как агентству зарабатывать дополнительные деньги

    Агентство выбирает и подключает в проекты клиента множество сервисов:
    – Хостинг и домены
    – Эквайринг
    – CRM или складские системы
    – Телефонию
    – Колл-трекинг и сквозная аналитика
    – E-mail-рассылки
    – SMS-рассылки
    – Мониторинг сайта
    – Пополнение рекламных кабинетов

    Агентство всё равно будет подключать все эти сервисы во время работы, поэтому стоит найти у сервиса партнёрскую программу и заключить договор. Клиенту нужно прямо и честно сказать о наличии статуса партнёра. Это только укрепит доверие к агентству.

    Клиенту выгодно прислушаться к агентству:
    – именно с этим сервисом сотрудники агентства умеют работать, а значит будет меньше ошибок и быстрее работа
    – партнёрская программа зачастую даст выделенную техническую поддержку, а значит более внимательное отношение и решение проблем
    – возможно, что будут дополнительные бонусы, специальные предложения или особые тарифы
    – партнёрская комиссия уже заложена в бизнес-модели сервиса, а значит цена для клиента не изменится
    – агентство больше любит и ценит клиентов, подключающихся через него к сервисам

    Все станут богаче, если клиенты будут подключать все сервисы через агентство.

  • Как узнать размер рыночной зарплаты?

    Как узнать размер рыночной зарплаты?

    Специализированные сервисы или консультация HR не всегда доступны, а ответить на этот вопрос можно за 5 минут простым исследованием.

    На HH ищу нужную мне специальность Laravel по базе резюме, чтобы понять ожидания кандидатов. Я сравниваю удалёнку, поэтому удаляю из фильтов свой город. Ставлю Полный день в графике работы. В Специализации, выбираю нужную мне: Программист, разработчик.
    Скролю ниже до Уровня дохода и видим гистограмму — самую информативная часть исследования. Тут вижу моду — самое частое значение, самый высокий столбик.
    В моём случае найдено 2849 резюме, из них 2300 активно ищут работу. Самый популярный на гистограмме диапазон 95 000 р. — 185 000 р. с 894 резюме.

    Далее переключаюсь в вакансии, чтобы понять ситуацию со стороны работодателей.
    Также ввожу Laravel и проматываю колонку с фильтрами до Специализации, отмечаю Программист. Включаю тип занятости “Полная занятость”.
    Вижу, что найдено всего 607 вакансий и вот такое распределение по количеству, выполненное в виде неудобного перехлёста диапазонов. Чтобы его проанализировать, нужно перевести числы в проценты от общего числа вакансий.

    Зарплата — Количество вакансий
    ≥ 80,000 ₽ — 312 (51%)
    ≥ 155,000 ₽ — 213 (35%)
    ≥ 235,000 ₽ — 80 (13%)
    ≥ 310,000 ₽ — 27 (4%)
    ≥ 390,000 ₽ — 11 (2%)

    Мои выводы:
    – 607 вакансий на 2300 кандидатов, соотношение примерно 1:4. На одну вакансию 4 кандидата. Выглядит как рынок работодателя, чтобы ни говорили СМИ про состояние всего рынка труда.
    – Грубо, примерно половина вакансий предлагает ЗП выше 80 000 рублей, а половина — меньше.
    – Треть вакансий с ЗП выше 155 000 рублей.
    – Только 4% выше 300 000 рублей.
    – Вычитаю из количества вакансии дороже 80 тысяч вакансии дороже 155, получаю примерно 100 вакансий. Они частично попадают в самый популярный у соискателей диапазон зарплаты. На него же приходится 894 резюме… соотношение 1:9.

    Заключение:
    В зависимости от потребности, можно искать хорошего кандидата немного дешевле 150 000 рублей или нанимать топа не дороже 300 000 рублей. Моё мнение, что джун должен получать при такой конкуренции и ставках не больше половины медианной зарплаты. В данном случае, это немногим больше ­40 000 рублей.

    Соискателю на таком рынке посоветую взять карьерную консультацию, переписать резюме, писать с откликами сопроводительные письма и хорошо готовиться к собеседованиям.

  • Среда для приложения

    Среда для приложения

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

    Дев (dev, development, local, IDE) — тут сидит разработчик, приложение раскрыто и подключено к приборам, лампочки, мониторы, кишки наружу. Хирургическое отделение, идёт операция. По итогу работы приложение будет передано на следующую стадию разработки.

    Тест (test, QA) — тут его всячески проверяют. Заводятся выдуманные пользователи, которые выполняют заготовленные сценарии с синтетическими данными. В роли тестировщиков выступают и люди, и роботы. Их задача — найти ошибки и вернуть приложение разработчикам на исправление или отправить на следующую стадию.

    Демо (Demo, Review) — приём приложения у менеджеров. Смотрят продакт, проджект и аккаунт-менеджеры, представители клиента, стейкхолдеры.
    Часто демонстрацию проводят на стейдже или тесте, не создавая отдельное окружение.

    Стейдж (staging, stage) — тут разворачивают приложение на копии настоящих данных (иногда анонимизированных), проводят финальные тесты на совместимость, интеграцию с другими системами и делают проверки перед выходом в свет. Окружение максимально приближенное к проду.

    Продакшн (прод, prod) — тут с приложением случается релиз — его опубликовали и теперь с ним работают реальные пользователи. Это финальная стадия — эксплуатация. Акцент на надёжность, скорость работы и сохранность данных.

    Чем моложе, меньше и проще у вас приложение, тем меньше окружений будет задействовано в цикле его жизни. В самом начале разработки у вас будет только Дев. По мере усложнения процесса разработки будут появляться дополнительные окружения.

  • Как я перешёл на Линукс

    Как я перешёл на Линукс

    В конце 2000-х я прочитал новость, что Марк Шаттлворт, ментор мафии PayPal и основатель Thawte, основал фонд для финансирования разработки Линукса. Этим Линуксом был дистрибутив Ubuntu, который я и установил. На тот момент почти все российские компьютеры работали на пиратских копиях Windows и все установленные программы тоже были пиратские. Эра SaaS ещё не наступила, купить винду или WinRAR казалось дурацкой идеей. Я захотел провести эксперимент и поработать только на Open Source программах. Так как я занимался веб-разработкой, то у меня получилось и вскоре Ubuntu стал моей основной операционной системой. Дошло до того, что когда у меня был MacBook Pro, на нём тоже был установлен Ubuntu вместо MacOS.

    Первые попытки поставить Линукс начались на десять лет раньше. Они проваливались, потому что все программы были иные, а попытки решить проблемы с железом или драйверами заводили в тупик.

    Сейчас ситуация иная. На Линуксе есть все привычные браузеры и мессенджеры. Драйверы он успешно находит и устанавливает сам. Веб стал платформой для приложений и часть софта стала онлайн-сервисами. Большинство программ, которые есть одновременно на Windows и Mac, скорее всего есть и под Линукс.

    Чего в линуксе до сих пор не хватает:
    – MS Office — для совместной работы я использую Google Docs, для открытия файлов — бесплатный LibreOffice. Совместимость не полная, но мне для работы хватает.
    – Мало программ для работы с музыкой, видео и графикой. Нет приложений Adobe. Для графики использую Gimp и Inkscape. Для обработки аудио есть мультиплатформенный Audacity, для стриминга есть OBS Studio, для просмотра видео — плеер VLC. Думаю, что тем, кто работает с медиа, удобнее работать на MacOS. Хорошо, что теперь интерфейсы для сайтов стали делать в браузерной Figma.
    – Мало игр. Есть Steam, который выручает всю ситуацию, но в нём не все игры совместимы с Линуксом. Я в современные игры на компьютере не играю, поэтому меня этот момент не беспокоит.
    – Нет антивирусов — для домашних пользователей они не нужны. Вирусов просто нет, не сталкиваюсь с заражениями рабочей станции и не слышал про такие случаи много лет. Теоретически это возможно, но хакерам проще взломать массу компьютеров на винде.
    – Поддержка ЭЦП и разного рода электронных ключей. Раньше тут был полный игнор пользователей, поэтому у меня была виртуальная машина с виндой или отдельный компьютер под ключи. Сегодня ситуация меняется из-за развития российского дистрибутива Астра Линукс для замены Windows в госсекторе, так что скоро все ключи будут работать.

    За последние годы видел, как обычные пользователи работают на Линукс без проблем — освоились и работают в нём каждый день, не замечая разницы.

    Скачать Ubuntu бесплатно без регистрации и sms.

    Как думаете, каких программ вам будет не хватать, если вы завтра поменяете операционную систему на новую?

  • Сколько у вас крадёт хостинг?

    Сколько у вас крадёт хостинг?

    Сегодня я заметил, что мощный сервер у клиента ощутимо тормозит. И обнаружил кражу!

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

    Покупателям кажется, что это похоже на места в самолёте: на 100 кресел можно продать 100 билетов. Но хостинг продаёт гораздо больше. В отличие от самолёта, у хостинга кресла могут быть заняты частично — нагрузка изменяется со временем. Поэтому хостинг частенько продаёт 150 “билетов”, на 100 “кресел”.

    Виртуальный сервер любезно отображает украденное процессорное время — показатель CPU Steal Time. Он транслирует, какой процент времени наши приложения ждали своей очереди, пока все процессоры были заняты другими клиентами.

    Если у вас крадут до 5%, в индустрии это считается технически допустимым. В виртуализации заложена конкуренция за ресурсы, можно понять. Но если показатель выше 5% — вы получаете меньше ресурсов, чем вам обещали.

    Как это проверить:
    Через терминал заходим на сервер.
    Вводим команду top или mpstat -P ALL 1.
    Ответ будет например таким:

    %Cpu(s):  1.0 us,  0.5 sy,  0.0 ni, 97.0 id, 0.5 st

    Смотрим за параметром Steal или st, в примере выше он последний. Он меняется со временем, поэтому хорошо бы его мониторить или сделать несколько замеров подряд в разное время.

    Что делать, если steal выше 5%:
    – Писать в службу поддержки хостинга “Выявлен высокий показатель steal CPU, примите меры” и прикладыватьпоказатели с терминала. Скорее всего, ваш проект перенесут на другую ноду с меньшей нагрузкой.
    – Брать тариф Dedicated CPU с гарантированным выделением ресурса. Обычно это в 3 раза дороже — Можно прикинуть, насколько сильно перегружены самолёты серверы на обычных тарифах.
    – Переезжать на выделенный сервер — менее гибко, но будет гарантия доступности всех вычислительных ресурсов. Если у вас нагруженные приложения, то это ещё обойдётся дешевле облака.
    – Если ситуация повторяется регулярно — хостинг жадный, нужно переезжать.

    Моя история закончилась письмом в техподдержку. Показатель Steal time доходил до 40%. Ночью с пятницы на субботу без лишних препирательств нас перенесли на менее загруженную ноду и показатель снизился до 0.5%.

    Надо бы сделать автоматизацию, чтобы такое письмо писал робот 🤖

  • Удобный ssh

    Удобный ssh

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

    Дано:
    Вам нужно через терминал заходить на удалённые серверы. Хостинг дал логин, пароль и IP-адрес сервера. Каждый раз нужно искать и копировать их в консоль. Это неудобно, поэтому ниже инструкция, как перейти на ключи.

    Порядок решения:
    Создаём пару ключей у себя на компьютере. Открываем терминал, вводим команду ssh-keygen и жмём Enter несколько раз.
    После этого в скрытой папке ~/.ssh/ появляется два файла
    id_rsa — приватный ключ, его никуда никогда никому не показываем.
    id_rsa.pub — публичный ключ, его копируем в нужные сервисы.

    Выводим публичный ключ на экран, чтобы можно было его скопировать.
    cat ~/.ssh/id_rsa.pub
    Этот ключ нужно вставить в профиль на Github или Gitlab, скопировать на удалённый сервер или указать при создании VDS на хостинге.

    Копируем ключ на удалённый сервер командой ssh-copy-id. Для выполнения нужно знать логин, IP-адрес или домен сервера. Например
    ssh-copy-id login@example.org
    ssh-copy-id root@10.10.0.121
    При первом соединении нужно будет ввести yes в подтверждение обмена ключами.

    Для быстрого входа на сервер можно записать его реквизиты в текстовый файл ~/.ssh/config

    Host myservername
      Hostname 10.24.24.24  

    Если для доступа нужен другой логин, нестандартный порт или админы выдали приватный ключ для подключения, то указываем это в том же конфиге

    Host myservername
      Hostname 10.24.24.24  
      User root  
      Port 22
      IdentityFile ~/.ssh/id_rsa

    Проверяем:
    Подключаемся к удалённому серверу одной командой ssh myservername. Если в конфиге один пользователь, а нужно зайти под другим — используем ssh sensei@myservername.

    Итог:
    Вы мгновенно попадаете на сервер, используя выбранное вами название. Экономия времени на поиске адреса и пароля.

  • Расходы на хостинг Open Source приложений на опыте веб-студии

    Расходы на хостинг Open Source приложений на опыте веб-студии

    В посте с таблицей Open Source решений не указано, сколько стоит их содержать. Рассказываю о своём опыте.

    Минимальный тариф на VDS будет стоить примерно 300 рублей в месяц. Этого хватит, чтобы развернуть и использовать большинство приложений из таблицы.
    Хостинг для тяжеловесного мониторинга ошибок Sentry стоит мне около 4000 рублей в месяц — это пока рекорд. Gitlab CE на всю команду выходит 1700 рублей.

    Если размещаем много приложений, не обязательно брать под каждое новый VDS. У меня есть сервер с установленным Portainer (удобная альтернатива Kubernetes), который позволяет просто запускать множество приложений. Я плачу за него 1500 рублей, а на нём работают 14 контейнеров с n8n, zammad и чат-ботами. Подозреваю, что там ещё что-то поместится.
    Современные виртуальные серверы позволяют увеличивать мощность и место на сервере постепенно, по мере потребности.

    Open source инфраструктура для современной веб-студии до 50 человек обходится примерно в 10 тысяч рублей в месяц.
    Если у вас свой офис, то можно все эти приложения развернуть на своём сервере и не платить за аренду VDS.

    Чтобы обслуживать серверы и устанавливать приложения, будут нужны услуги системного администратора. Задачи с разворачиванием приложений — базовые и не требуют повышенной квалификации. Можно взять исполнителя на сдельную работу, штатный сисадмин для этого скорее всего не нужен.

  • 🙌🙌🙌🙌 15+ документов для тех, кто в диджитал


    В преддверии новой активности мы собрали в одну папку 18 Telegram-каналов известных профессионалов и попросили их авторов подготовить для вас документы, которые помогут:

    🔴Создать рабочий лид-магнит;
    🔴Подготовить сайт к требованиям РКН;
    🔴Подготовиться к любому выступлению;
    🔴Удержать проект в сроках и рамках бюджета;
    🔴Организовать эффективное участие в тендерах;
    🔴и еще много много всего!

    ✔️ Я делюсь таблицей “Open Source вместо платной подписки: рабочие альтернативы для агентств и стартапов”, используя которую вы сможете найти бесплатные аналоги известных программ и сэкономить на корпоративных подписках десятки тысяч рублей.

    ❗️ Сохранив единожды папку «Документы для тех, кто в диджитал», вы сможете спокойно пройтись по всем каналам и скачать множество авторских документов, которые точно пригодятся в работе.

  • Продублируй важные системы

    Продублируй важные системы

    Все критические системы должны быть продублированы. За последние годы я видел, как останавливаются и ломаются критические системы у очень больших сервисов — отзыв лицензии у Точки и Киви, сбои в эквайринге от Сбера и Юкассы, упавший на две недели СДЭК, почта от Юнисендера…

    Поэтому, напоминаю себе и вам:
    – У бизнеса должно быть открыто два расчетных счёта в разных банках. Резервный счёт может ничего не стоить, но спасти много нервных клеток в случае конфликта с основным банком. А ещё у банков иногда отзывают лицензию.
    – У бизнеса должно быть два юридических лица, например, ИП и ООО одновременно. Если одно из юр лиц имеет спор с налоговой, то второе может подхватить хозяйственную деятельность.
    – В онлайн-сервисе должно быть два эквайринга. Особенно, если это банковский эквайринг, а не агрегатор — агрегатор может переключить шлюз на другой банк.
    – Онлайн-касс тоже должно быть хотя бы две.
    – У интернет-магазина должно быть две службы доставки.
    – Как я вчера выяснил, должно быть две службы для email и sms рассылок, если они для вас критичные. Если не работает отправка сообщений, то покупатели не могут попасть в личный кабинет.
    – Правильно иметь копию инфраструктуры в другом дата-центре. Хотя бы бэкапы хранить отдельно и иметь возможность быстро поднять все сервисы.
    – Домен и DNS лучше держать отдельно от серверов. Потому что, если выключился хостинг, нужно иметь возможность перенаправить трафик в другой дата-центр.
    – Можно заранее купить второй домен и использовать его в рекламе или для корпоративных нужд.
    – Крупные интернет-магазины держат два агентства по трафику, запуская рекламные кампании по очереди. Или даже просто выплачивают второму подрядчику резервную абонентскую плату и держат деньги на балансе рекламного кабинета.
    – Нужно держать бэкапы всего, хранить минимум в двух экземплярах в разных локациях. И проверять, что бэкапы рабочие.

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