Pull to refresh
  • by relevance
  • by date
  • by rating

26 сентября приглашаем на оффлайн-митап HOT Backend&Web в Краснодаре

PHP *System Analysis and Design *Conferences Microservices *
Привет, Хабр! Для всех разработчиков Backend и Web, кто соскучился по живым докладам и плодотворному общению в комьюнити, мы проводим новый митап в Краснодаре — с соблюдением необходимых требований безопасности. Спикеры SimbirSoft и других IT-компаний представят несколько докладов и ответят на вопросы. Ждем 26 сентября, участие бесплатное.

Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views 580
Comments 0

Теперь в Debian комфортнее работать с k8s. Сопровождающий добавил 200 зависимостей и вынудил комитет одобрить монолит

ITSumma corporate blog Configuring Linux *Development for Linux *Kubernetes *

Технический комитет Debian (CTTE) одобрил поставку Kubernetes одним монолитным пакетом вместе с зависимостями. Случилось это после того, как сопровождающий пакета k8s добавил в него более 200 зависимостей библиотек и, фактически, своими действиями просто поставил CTTE перед фактом.

Комитету пришлось одобрить поставку Kubernetes монолитом, хотя это полностью противоречит правилам разработки Debian.

Читать далее
Total votes 21: ↑21 and ↓0 +21
Views 7.5K
Comments 9

Микросервисы: пожалуйста, не нужно

Programming *System Analysis and Design *Microservices *
Translation


Иллюстрация @alvaro_sanchez


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


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


Я хочу рассказать о некоторых важных заблуждениях и подводных камнях движения за микросервисы с точки зрения человека, который работал в компании, убежденной в идее целительных свойств микросервисов. Я не хочу, чтобы выводом этой статьи для вас стало "микросервисы == плохо", но в идеале я хотел бы, чтобы вы задумались о проблемах когда будете решать, подходит ли вам микросервисная архитектура.

Читать дальше →
Total votes 89: ↑77 and ↓12 +65
Views 83K
Comments 111

Комиксы Даниэля Стори (часть 2)

Cloud4Y corporate blog Studying in IT Reading room
Привет, Хабр! Помните подборку юмористических IT-комиксов от Даниэля Стори (Daniel Stori). Первая часть собрала много положительных откликов. Сегодня мы вновь хотим порадовать всех очередной порцией веселья. Желаем приятного просмотра.


Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views 11K
Comments 8

Модули вместо микросервисов

Abnormal programming *Programming *System Analysis and Design *API *Microservices *

Термин "модуль" (module) взят из статьи Modules vs. microservices. Так же для описания чего-то среднего между микросервисами и монолитами иногда используют термины "микролит" (microlith) или "моносервис" (monoservice). Но, не смотря на то, что термин "модуль" и так уже нагружен общеизвестным смыслом, на мой взгляд он подходит лучше других вариантов. Update: В комментарии lega использовал термин "встроенный микросервис" — он лучше описывает суть подхода, чем "модуль".


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


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

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Views 23K
Comments 100

Тёмная сторона agile

ЮMoney corporate blog Development of mobile applications *Web services testing *Agile *Product Management *
Внимательный читатель листает ленту и задает вопрос: «Что, опять текст про agile?». Ага.

Эта статья — о процессах, технических аспектах и немного о том, как agile живет и внедряется в Яндекс.Деньгах. Если вы прошли хотя бы половину пути до настоящего agile, какие-то вещи могут показаться вам очевидными, и это нормально.

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

А еще внимательный читатель спросит: «Почему „Темная сторона"? Тут что, про Дарта Вейдера?» Увы, нет, речь пойдет о темной стороне Луны, которая была неизвестна человечеству, пока туда не прилетел аппарат, чтобы сфотографировать и показать ее всем.

Когда внедряете agile, вы составляете проект освоения Луны, не зная,
что на другой стороне


Все начинается с попытки внедрить новые процессы разработки.
Total votes 30: ↑26 and ↓4 +22
Views 16K
Comments 10

До микросервисов нужно дорасти, а не начинать с них

Website development *Microservices *
Translation


Предлагаю поговорить о том, когда нужны микросервисы, а когда нет. Спойлер: это зависит от проекта.

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

Просто так, из-за мнения одного человека или компании вы начинаете сомневаться во всём, что делали в течение многих лет, даже если всё работало отлично.
Читать дальше →
Total votes 64: ↑64 and ↓0 +64
Views 48K
Comments 237

Микросервисы делают мир проще (а вот и нет)

Райффайзенбанк corporate blog Designing and refactoring *
Про микросервисы сейчас говорят все. Почти каждая встреча, конференция и митап не обходятся без рассказа о том, что такое микросервисы и как они хороши, как уменьшают сложность проекта и тп.

Основной посыл всех этих докладов — микросервисы помогают уйти от излишней сложности и запутанности проекта. Но, как по мне, от сложности не избавиться совсем, нельзя переделать проект, чтобы сразу всё стало просто. Сложность из одной области перейдет в другую.
Читать дальше →
Total votes 80: ↑74 and ↓6 +68
Views 31K
Comments 179

Верните мне мой монолит

Website development *Web services testing *Microservices *
Translation
Кажется, пик хайпа по микросервисам остался позади. Мы уже не читаем по нескольку раз в неделю посты «Как я перенес свой монолит на 150 сервисов». Теперь я чаще слышу разумные мысли: «Я не ненавижу монолит, я просто забочусь об эффективности». Мы даже наблюдали несколько миграций от микросервисов обратно к монолиту. При переходе от одного большого приложения к нескольким службам меньшего размера вам придётся решать несколько новых проблем. Перечислим их максимально кратко.
Читать дальше →
Total votes 96: ↑79 and ↓17 +62
Views 40K
Comments 96

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

ISPsystem corporate blog System Analysis and Design *Designing and refactoring *API *

image


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


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


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

Читать дальше →
Total votes 33: ↑32 and ↓1 +31
Views 18K
Comments 21

Пара слов в защиту монолита

SimbirSoft corporate blog System Analysis and Design *Designing and refactoring *Microservices *
Сравниваем особенности микросервисной и монолитной архитектуры, их преимущества и недостатки. Статья подготовлена для Хабра по материалам нашего митапа Hot Backend, который прошел в Самаре 9 февраля 2019 года. Мы рассматриваем факторы выбора архитектуры в зависимости от конкретной задачи.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views 12K
Comments 10

Вечный вопрос технического долга

Туту.ру corporate blog Development Management *Project management *

Это одно из самых крутых облегчений проекта. На картинке — график суммарного времени, затрачиваемого CPU на обработку всех пользовательских запросов. В конце видно переход на PHP 7.0. с версии 5.6. Это 2016 год, переключение во второй половине дня с 24 ноября.

Туту.ру с точки зрения вычислений — это в первую очередь возможность купить билет из точки А в точку Б. Для этого мы перемалываем огромное количество расписаний, собираем в кэш ответы множества систем авиакомпаний и периодически делаем невероятно длинные join-запросы к базе данных. В целом мы написаны на PHP и до недавних пор были полностью на нём (если язык правильно готовить, то можно даже строить на нём системы реального времени). С недавнего времени критичные по производительности участки стали рефакториться на Go.

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

Вообще технический долг — это плата за ошибку при принятии решения. Вот ты что-то предсказал не так, как архитектор, то есть совершил ошибку прогнозирования или принимал решение в условиях недостаточной информации. В какой-то момент понимаешь, что надо что-то менять в коде (часто на уровне архитектуры). Дальше можно сразу поменять, а можно подождать. Если подождал — на техдолг набежали проценты. Поэтому хорошая практика — время от времени реструктуризировать его. Ну или признавать себя банкротом и писать весь блок заново.
Читать дальше →
Total votes 85: ↑79 and ↓6 +73
Views 19K
Comments 34

9 лет в монолите на Node.JS

Website development *JavaScript *System Analysis and Design *Node.JS *Microservices *

монолит от https://reneaigner.deviantart.com


Неделю назад я выступал на митапе по Node.JS, и многим обещал выложить запись выступления. Уже потом я понял, что мне не удалось вместить в регламентированные полчаса некоторые интересные факты. Да и сам я больше люблю читать, а не смотреть и слушать, поэтому решил выложить выступление в формате статьи. Впрочем, видео тоже будет в конце поста в разделе ссылок.


Рассказать я решил про набившую оскомину тему — жизнь в монолите. Об этом на хабре уже есть сотни статей, тысячи копий сломаны в комментах, истина давно погибла в спорах, но… Дело в том, что у нас в OneTwoTrip есть весьма специфический опыт, в отличие от многих людей, которые пишут про некие архитектурные паттерны в вакууме:


  • Во-первых, нашему монолиту уже 9 лет.
  • Во-вторых, всю жизнь он провёл под хайлоадом (сейчас это 23 млн запросов в час).
  • А в NaN-ых, мы пишем наш монолит на Node.JS, который за эти 9 лет изменился до неузнаваемости. Да, мы начинали писать на ноде в 2010, безумству храбрых поём мы песню!

Так что всякой специфики и реального опыта у нас довольно много. Интересно? Поехали!

Читать дальше →
Total votes 88: ↑86 and ↓2 +84
Views 26K
Comments 44

Микросервисы или монолит: ищем решение

PHP *Programming *
Sandbox
image

Когда задумывается большой продукт или маленький софт начинает вырастать в левиафана, какой путь развития выбрать? Стоит ли все переписывать с нуля или продолжать «исторически сложившиеся» традиции? Да и вообще, стоит ли пересматривать саму концепцию архитектуры?

Здравствуйте, хабровчане! Меня зовут Константин, и я являюсь ведущим разработчиком одной довольно крупной системы, которая начиналась когда-то как эксперимент. Небольшой сайт на PHP, созданный буквально «на коленке» и, конечно же, монолитом. Шло время, сайт рос и столкнулся с рядом проблем, решение которых поставило вопрос «а дальше-то как?».
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Views 23K
Comments 18

Кир Шатров: Shopify начался с Rails и здесь искренне любят этот фреймворк

RubyRussia corporate blog Ruby *Ruby on Rails *Conferences Interview
На конференции RubyRussia Кир Шатров расскажет об архитектуре Shopify. Как одного из самых больших и нагруженных в мире приложений на Rails поддерживает рост бизнеса на протяжении 10 лет, не переходя на микросервисы, Elixir и другие популярные альтернативы? В традиционном интервью перед конференцией вопросы Киру задал Анатолий Зайцев, разработчик компании Evrone.

image

Расскажи, как ты начал карьеру?
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Views 4K
Comments 25

Темы секции Frontend на DUMP Казань: ML для фронтенд-разработчика, пиксельная магия, SvelteJS, смех, пот и слезы

IT-People corporate blog JavaScript *Angular *ReactJS *VueJS *
«Все об этом говорят, некоторые понимают, (как они думают), а занимаются, по-настоящему, лишь единицы» — цитата программного директора DUMP Казань. Если вы думаете, что вы тертый калач фронтенд, и ничего нового на конференциях не услышите, то загляните на frontend-секцию 8 ноября. Мы вспотели, пока слушали мат.часть некоторых докладов и истории взлетов-падений.


Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 1.3K
Comments 0

От монолита к распределенной системе

ООО «Хоум Кредит Энд Финанс Банк» corporate blog
Постоянный рост конкуренции среди Банков заставляет подстраиваться под разные категории Клиентов. Так, одним проще зайти на сайт и оформить заявку на банковский продукт онлайн, другие же привыкли выбирать новые продукты и услуги непосредственно при живом общении с банковским представителем. В сентябре 2019г. в Хоум Кредит Банке решили запустить новый процесс для Клиента, основная цель которого была в сохранении контакта «Клиент – Оператор Банка» и отказе от физической привязки оператора к офису или стойке Банка в торговом центре.

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

На пути к новой платформе


Стали смотреть в сторону планшетного решения. Реализация нового процесса на планшете на базе архитектуры текущей фронт-офисной системы Банка для работы Операторов с Клиентом выглядела нерациональной по причине устаревшего технологического стека, т.к. текущий фронт-офис представляет собой монолитное web- приложение, написанное 8 лет назад на Silverlight. Попытки работы с текущим фронтом на планшете были не успешными из-за перегруженной ui-части приложения и отсутствия адаптивной вёрстки. Кроме того, отсутствие поддержки Silverlight со стороны Microsoft тонко намекало на то, что жизненный цикл нашего текущего приложения подходит к концу и что наступил момент радикальной переработки и переход на новые технологии. Пришли к решению реализации микросервисной архитектуры. Почему было необходимо отказаться от монолита? Во-первых, из-за масштабируемости решения, улучшения общей отказоустойчивости и независимого обновления компонентов. Во-вторых, в Банке тенденция распределения функционала между продуктовыми командами и микросервисный подход дает в этом случае большую гибкость и независимость команд.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 2.1K
Comments 2

Микросервисы: что это, зачем это и когда нужно их внедрять

DevOps *Microservices *
Статью на тему микросервисной архитектуры я хотел написать давно, однако все время останавливали два момента — чем дальше я погружался в тему, тем больше мне казалось, что то, что я знаю — очевидно, а что не знаю — еще изучать и изучать. С другой стороны считаю, что уже есть о чем порассуждать и в широкой аудитории. Так что альтернативные мнения приветствуются.
Читать дальше →
Total votes 13: ↑8 and ↓5 +3
Views 9.5K
Comments 49

История архитектуры Dodo IS: путь бэкофиса

Dodo Engineering corporate blog Programming *System Analysis and Design *IT Infrastructure *Development Management *
Хабр меняет мир. Больше года мы ведём свой блог. Где-то полгода назад нам прилетел вполне логичный фидбэк от хабровчан: «Додо, вот вы везде говорите, что у вас своя система. А что это за система? И зачем она нужна сети пиццерий?».

Мы посидели, подумали и поняли, что вы правы. Мы пробуем объяснить всё на пальцах, но выходит рваными кусками и нигде нет полноценного описания системы. Так начался долгий путь сбора информации, поиска авторов и написания серии статей про Dodo IS. Погнали!
Благодарности: спасибо, что делитесь своим фидбэком с нами. Благодаря ему мы наконец описали систему, составили технорадар и скоро выкатим большое описание наших процессов. Без вас так бы и сидели ещё 5 лет.

Читать дальше →
Total votes 39: ↑34 and ↓5 +29
Views 24K
Comments 35

2.07 онлайн-митап про микросервисы и Unit-тесты

Directum corporate blog IT systems testing *Conferences Microservices *
Recovery mode
В четверг 2 июля собираемся обсудить очередной опыт распила монолита и рассказать, как Unit-тестирование сокращает время разработки. Старт в 16:00 мск, в 17:00 по Ижевску.

Участие бесплатно, нужна регистрация.

«Упрощаем себе жизнь с помощью Unit-тестирования»


Юнит-тесты повышают скорость разработки согласны?

  • расскажу, почему нетестируемые проекты увеличивают сроки релизов;
  • приведу аргументы в пользу написания юнит-тестов. Рассмотрим, почему хороший дизайн тестируемый, а обратное — неверно;
  • плохие юнит-тесты хуже, чем ничего. Поговорим про требования к юнит-тестам. Например, почему важна изолированность или скорость выполнения тестов;
  • расскажу про лучшие практики юнит-тестирования с примерами на NUnit.

Читать дальше →
Total votes 8: ↑4 and ↓4 0
Views 1.1K
Comments 4