Рубрика: Uncategorized

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

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

    В конце 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 лучше держать отдельно от серверов. Потому что, если выключился хостинг, нужно иметь возможность перенаправить трафик в другой дата-центр.
    – Можно заранее купить второй домен и использовать его в рекламе или для корпоративных нужд.
    – Крупные интернет-магазины держат два агентства по трафику, запуская рекламные кампании по очереди. Или даже просто выплачивают второму подрядчику резервную абонентскую плату и держат деньги на балансе рекламного кабинета.
    – Нужно держать бэкапы всего, хранить минимум в двух экземплярах в разных локациях. И проверять, что бэкапы рабочие.

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

  • Как плохая поддержка убивает хороший сервис

    Как плохая поддержка убивает хороший сервис

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

    Провожу расследование:
    – Сервер добросовестно отправляет почту через API, ошибок в логах нет.
    – Проверяю блеклисты — с репутацией всё в порядке.
    – На почтовом сервисе по отправке почты Unisender увеличивается счетчик отправленных писем.
    – Письма не доходят на все домены и тестовые почты: gmail, yandex, mail и т.д.
    – На сервисе postmaster у мейла количество писем не меняется. То есть, мейл наши письма не получает. Очень подозрительно.

    Делаю вывод, что проблема на стороне Unisender Go. Мы к ним отправляем, они письма фиксируют, а дальше них письма не уходят.

    Пишу в чат поддержки. Молчание в течение часа.
    Звоню на телефоны поддержки на сайте — там автоответчик говорит “Сейчас поддержка по телефону не работает — пишите в чат на сайте”.
    Пишу емейл в поддержку. Тоже нет ответа.

    У нас оплачен тариф, куплен дополнительный IP-адрес для отправки.
    Доставка почты — сервис инфраструктурный. На нём держится вся автоматизация оказания услуги. И этих ребят нет на связи. За прошлый год у Юнисендера выручка 865 миллионов рублей. А на дежурную поддержку и сисадмина в воскресенье денег не нашлось.

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

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

    А вас когда-нибудь подставлял известный сервис подобным образом?

    PS: Порекомендуйте другие транзакционные почтовые сервисы.

  • MCP простыми словами

    MCP простыми словами

    Одна из громких тем этого года — MCP для ИИ. Решил разобраться как всё устроено и вам рассказать.

    Если кратко: Теперь ИИ можно дать любой внешний инструмент и он будет знать, как им пользоваться. Помните момент, где Нео осознал, что знает кунг фу?
    Инструментом может быть браузер, файлы на компьютере, почтовый ящик, музыкальный редактор, робот-пылесос, автономный автомобиль или фабрика по производству дверей. MCP — протокол для подключения любой фигни к ИИ.

    MCP — это открытый стандарт, за которым стоит Anthropic (разработчик Claude). Раньше каждый сервис изобретал свою интеграцию с ИИ. Anthropic упаковали лучшие практики интеграции с ИИ в стандарт. Сейчас доступна вся экосистема клиентов, серверов, инструментов и SDK — разработчикам очень легко присоединиться и добавить свой инструмент.

    MCP состоит из Клиента (ваш чат-бот или IDE) и MCP-Сервера, которые вместе используют элементы системы.
    – Инструменты — для ИИ. Описанный набор действий, которые может вызывать ИИ.
    – Промпты — для взаимодействия с Людьми. Это готовые инструкции, как именно использовать инструменты, обрабатывать данные и проводить диалоги.
    – Ресурсы — ссылки на файлы или данные, которые нужны для работы инструментов.

    MCP очень быстро развивается и обновляется. Тысячи MCP-серверов уже доступны — достаточно подключить их к своему клиенту и начать пользоваться.

  • Обнови свой HTTP

    Обнови свой HTTP

    Что такое:
    Протокол передачи данных HTTP применяется для всех сайтов в интернете.
    Все самые популярные веб-серверы по умолчанию используют устаревшую версию протокола HTTP/1.1. Apache2, NGINX, Node.js, uWSGI, Gunicorn, Tomcat, Jetty, IIS — все виновны.

    Браузер пытается одновременно скачать с сайта код, десятки картинок и скриптов. На HTTP/1.1 браузер открывает несколько параллельных соединений, в каждом из которых файлы загружаются по очереди. С HTTP/2 открывается одно соединение, по которому одновременно загружаются все файлы. HTTP/3 ещё быстрее и лучше работает в мобильных сетях.

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

    Год выхода стандарта:
    HTTP/1.1 — 1997
    HTTP/2 — 2015
    HTTP/3 — 2022

    Как обновить:
    В большинстве серверов HTTP/2 уже встроен, но его нужно явно включить в конфигурации. В NGINX достаточно добавить слово “http2” в конфигурацию и всё заработает, настолько всё просто.

    HTTP/3 достаточно свежий, поэтому для многих серверов нужно будет ставить дополнительные модули. Сисадмину будет интересно с этим разобраться.

    Как проверить:
    Из консоли любой операционки

    curl -I https://example.com

    На первой же строке ответа будет указана версия протокола: HTTP/1.1, HTTP/2, или HTTP/3

  • Сравнительный анализ

    Сравнительный анализ

    Почему-то иногда мы забываем, что не всё должно получаться с первого раза.
    Ходить мы учились очень долго — разбивали коленки и лбы. А приносящий клиентов сайт и рекламная кампания должны были получиться с первого раза!
    Но опыт накапливается постепенно…

    Ещё влияет размер выборки. В нашей небольшой деревне быстрее всех бегают Петя и Вася. А в онлайн выборке алгоритмы нам рекомендуют и показывают только олимпийцев во всех видах спорта.
    И тут мы попадаем сразу в две крайности: вначале сравнивали себя с местной парой атлетов, а потом — с лучшими людьми в интернете.

    Нужно пройти свой путь от 1 до 1000го повторения. Набирать опыт, несмотря на всех олимпийцев, обесценивающих твои достижения самим фактом своего существования. Ведь практически, чтобы убежать от медведя, нужно просто бегать быстрее соседа. А чтобы получать удовольствие от бега — не нужна ни Олимпиада, ни зрители.

    К чему это я: не забывайте получать удовольствие в процессе постепенного прохождения пути и радоваться промежуточным результатам. Ежедневная радость лучше сказывается на самооценке, чем отложенная. А там может и на Олимпиаду попадёте.