Pull to refresh
7
0
Никита @irknikita

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

Send message

Пишем Grafana reverse proxy на Go

Reading time5 min
Views11K


Очень хотелось назвать статью «Proxy-сервис на Go в 3 строчки», но я выше этого.


В действительности так и есть, основную логику можно уместить в трёх строках. Для нетерпеливых и тех, кто хочет увидеть самую суть:


proxy := httputil.NewSingleHostReverseProxy(url)
r.Header.Set(header, value)
proxy.ServeHTTP(w, r)

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


Разберём, для чего нужен прокси-сервис, как его реализовать и что под капотом у стандартной библиотеки.

Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments5

Рождение платформы

Reading time9 min
Views2.8K


Мир изменился. Я чувствую это в воде, вижу в земле, ощущаю в воздухе. Всё, что когда-то существовало, ушло, и не осталось больше тех, кто помнит об этом.
Из фильма «Властелин колец: Братство кольца»

В интернете существует 100500 статей и докладов на тему «как мы пилили монолит», и у меня нет желания написать еще одну. Я попробовал пойти немного дальше и рассказать, как изменения технологий привели к появлению абсолютно нового продукта (спойлер: мы писали коробку, а написали платформу). Статья во многом получилась обзорной, без технических подробностей. Подробности будут позже.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments1

Vepp — новая панель управления сервером и сайтом от ISPsystem

Reading time9 min
Views9.3K


Vepp — это новая панель для управления сервером и сайтом. Помогает установить WordPress, подключить домен, настроить почту, делать резервные копии. Скоро появится встроенная аналитика и антивирус.


Сначала мы хотели просто обновить интерфейс ISPmanager 5, но на этапе проектирования поняли: интерфейсом не обойтись, нужно менять подход к задачам пользователя. Фактически это означало, что надо делать новый продукт.


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

Читать дальше →
Total votes 39: ↑33 and ↓6+27
Comments34

В чем сила и слабость рынка хостинга

Reading time5 min
Views5.1K


Пользователи меняются, а провайдеры хостинга и облачных услуг — нет. Так звучит главная мысль доклада индийского предпринимателя и миллиардера Бхавина Туракхия (Bhavin Turakhia), с которым он выступил на международной выставке облачных услуг и хостинга CloudFest.


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

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments4

Как разделить фронтенд и бэкенд, сохранив взаимопонимание

Reading time8 min
Views23K

image


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


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


Мне посчастливилось начать программировать в те годы, когда не было разделения на бэкенд и фронтенд-программистов, когда не звучали слова «прототип», «продуктолог», «UX» и «QA». Мир был проще, деревья выше и зеленее, воздух чище и во дворах играли дети, а не парковались автомобили. Как бы мне ни хотелось вернуться в то время, нужно признать, что всё это не замысел суперзлодея, а эволюционное развитие общества. Да, общество могло развиваться иначе, но, как известно, история не терпит сослагательного наклонения.

Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments22

Разработка новой ветки продукта: как избавиться от непрактичного и сохранить полезное

Reading time10 min
Views5K


Привет, Хабр! Меня зовут Дмитрий, я разработчик в ISPsystem. Недавно мы выпустили в бета-тестирование новую версию панели управления виртуальными машинами. Сегодня я расскажу, как мы решали, что взять из старого продукта, а от чего лучше отказаться. Пройдусь по самым важным для нас вопросам: библиотека для работы с libvirt, поддержка различных ОС при установке продукта, переход от монолита к микросервисам, развёртывание виртуальных машин.

В статье речь идёт о VMmanager. Это система управления, развёртывания и мониторинга виртуальных машин на основе виртуализации KVM и OVZ. Пятое поколение вышло в 2012 году. С тех пор интерфейс сильно устарел, а централизованная архитектура мешала развивать продукт. Пришло время делать новую версию.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments6

VMmanager 6: новый инструмент для создания виртуальных машин от ISPsystem

Reading time1 min
Views5.3K


5 февраля мы открыли бета-тестирование облачной версии VMmanager 6, новой панели виртуализации. Приглашаем сообщество Хабра (всех, кто сталкивается с созданием и управлением виртуальными машинами) посмотреть её и оставить свои отзывы.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments4

50 вопросов для работы над документацией

Reading time5 min
Views8.9K
Как бы ни старался UX-дизайнер, не сможет человек с улицы разобраться в интерфейсе управления космическим кораблём без подсказки. И даже не с улицы. Просто потому, что ракета большая и настроек много.

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

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


Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments0

Асинхронный обмен данными с удалённым приложением через SSH

Reading time8 min
Views8.7K
Доброго времени суток, друзья и коллеги. Меня всё ещё зовут Дмитрий Смирнов, и я всё ещё, к моему вящему удовольствию, являюсь разработчиком ISPsystem. Некоторое время назад я начал работу над совершенно новым проектом, который меня очень вдохновил, поскольку новое — это в нашем случае отсутствие легаси кода и поддержки старых компиляторов. Здравствуй, Boost, C++17 и все прочие радости современной разработки.

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

Одной из последних сопутствующих задач стала необходимость написать обёртку над библиотекой libssh2 в реалиях асинхронного приложения, использующего Boost.Asio, и способного породить не более двух потоков. Об этом и расскажу.



Примечание: автор предполагает, что читатель знаком с основами асинхронной разработки и boost::asio.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments8

5 страхов разработчиков, которые мы преодолели

Reading time6 min
Views14K
Хэллоуин — время поговорить о страхах. Я работаю продакт-менеджером в IT-компании, поэтому речь пойдёт про кошмары разработчиков. Но не обычные, а те, что появляются во времена перемен.



Когда компания развивается — меняет подход к разработке, создаёт новые продукты и расширяет возможности текущих, десятками принимает сотрудников, тем, кто работал по-старому, бывает тяжело перестроиться. Мы радуемся изменениям, но иногда, чего скрывать, боимся их. Я работаю продакт-менеджером уже год и за это время столкнулась с пятью крупными страхами своей команды. Сегодня расскажу об этих страхах и о том, как нам удалось их преодолеть.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments16

Бдительная «Лида»: автоматизация тестирования безопасности

Reading time6 min
Views5.4K
Добрый день, уважаемые читатели. Меня зовут Виктор Буров, я разработчик в ISPsystem. В прошлом посте я рассказывал об инструменте для создания автотестов, сегодня поделюсь опытом автоматизации тестирования безопасности.



Сначала уязвимости в продуктах у нас искал отдельный сотрудник. Ручное тестирование занимало много времени и не гарантировало, что будут найдены все уязвимости. Выяснив основные закономерности тестирования, мы пришли к выводу, что его можно автоматизировать. Тогда мы решили написать утилиту, которая облегчит жизнь тестировщика, сэкономит его время и позволит проверять продукты после каждого изменения. Так как тестировщика звали Лида, новое приложение мы назвали в её честь. Вообще, у нас в компании это стало традицией — называть инструменты тестирования именами тестировщиц.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments8

Дизайн-процессы в ISPsystem. Как внедрить идеологию, построить отдел и остаться в живых

Reading time6 min
Views2.7K
История об одном редизайне, который изменил подход к разработке в ISPsystem.

image

Я пришёл в ISPsystem в апреле 2016 г. На тот момент ситуация с продуктовым дизайном была следующая: решения по продуктам принимались руководством и программистами, никаких дизайнеров или проектировщиков не было. Ситуация на рынке требовала продуктов с «другими интерфейсами», поэтому руководство решило перепроектировать клиентскую часть BILLmanager. Это должно было стать пробным шаром, первой попыткой сделать что-то с новым дизайном.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments1

«Малявки, но хорошие»: как мы брали студентов на практику

Reading time8 min
Views17K
Почему решились организовывать практику, как выбирали ребят, какие задачи им ставили и за что хотели прибить в процессе.


Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments14

Магнитофон — инструмент для записи автотестов

Reading time7 min
Views4.8K


Добрый день, уважаемые читатели. Меня зовут Виктор Буров. Я работаю разработчиком в компании ISPsystem и хочу поделиться опытом автоматизации тестирования.

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

Мы решили написать модуль создания автоматических тестов. Чтобы тестировщик мог просто нажать кнопку создания теста, выполнить условия тест-кейса, по окончании нажать «завершить» — и всё, тест был готов! Простая идея, но реализовать ее оказалось непросто. Потому что мы хотели, чтобы этот модуль был максимально адаптирован под наши продукты и использовал преимущество унифицированного интерфейса: чтобы сделанная запись выглядела как готовый тест-кейс. Это бы полностью избавило от ручной работы по написанию тестов. Получившаяся в итоге система получила название «магнитофон».
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments10

Что делать сразу после поездки на деловую конференцию? Советы от биздевов ISPsystem

Reading time5 min
Views4.4K
Вы можете готовиться к конференции как раб и бить рекорды продуктивности на самом мероприятии, но если не добьете этого «монстра» правильной работой после, считайте, что проиграли битву. Все достижения можно легко спустить в канализацию, если расслабиться после конференции.



Раньше мы часто оставались в стране проведения конференции на недельку-другую за свой счет. Согласитесь, грех упускать возможность погулять по Сан-Франциско несколько дней! Но со временем перестали так делать: приехали, провели переговоры, через день или два уехали обратно. Потому что после конференции появляется много работы, делать которую в условиях «полуотпуска» сложно, а не делать — нельзя. Бывает, конечно, биздев остается, но на пару дней и только после клятвы кровью о том, что будет на связи.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments1

Как организовать собственный репозиторий модулей Node.js с блэкджеком и версионностью

Reading time10 min
Views6.3K
В ISPsystem на текущий момент три front-end команды разрабатывают три крупных проекта: ISPmanager для управления веб-серверами, VMmanager для работы с виртуализацией и BILLmanager для автоматизации бизнеса хостеров. Команды работают одновременно, в режиме сжатых сроков, поэтому без оптимизации не обойтись. Чтобы сэкономить время, мы применяем единые решения и выносим общие компоненты в отдельные проекты. Такие проекты имеют собственные репозитории, которые поддерживают участники всех команд. Об устройстве этих репозиториев, а также работе с ними и будет эта статья.


Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments7

Как провести время на деловой конференции с пользой? Советы от биздевов ISPsystem

Reading time10 min
Views4.6K


Поездка на бизнес-конференцию, как спринтерский забег. Долго-долго готовишься, а в день «Х» должен выложиться по максимуму. За один или два дня надо рассказать десятку малознакомых человек о себе и узнать как можно больше о них, чтобы это привело к успешному партнерству. Надо действовать технично и быстро. Эта статья поможет избежать распространенных ошибок и научит гибко подстраиваться под меняющиеся обстоятельства.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments5

Information

Rating
Does not participate
Registered
Activity