Pull to refresh
24
0
Пискунов Юрий @modestguy

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

Send message

Разворачиваем веб-приложение в Kubernetes с нуля

Level of difficultyEasy
Reading time31 min
Views34K

Современные веб-приложения, даже простые на вид, часто подразумевают нетривиальную архитектуру, состоящую из многих компонент. В статье «Делаем современное веб-приложение с нуля» я рассказал, как она может выглядеть, и собрал для демонстрации простейшую реализацию на стеке из нескольких популярных технологий. В неё вошёл бэкенд, фронтенд, воркер для асинхронных задач и аж два хранилища данных — MongoDB как основная база и Redis как очередь задач. В «Делаем поиск в веб-приложении с нуля» я показал, как можно добавить полнотекстовый поиск, и подключил третье хранилище — Elasticsearch.

Всё это время для простоты разработки и отладки компоненты приложения запускались локально через Docker Compose. Но как развернуть такое приложение в настоящем продакшн-окружении? Как обеспечить горизонтальное масштабирование? Как раскатывать новые релизы без простоя? 

В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube. Мы поднимем виртуальный кластер прямо на рабочем ноутбуке, разберёмся с основными сущностями Kubernetes, запустим и соединим между собой компоненты демо-приложения и обсудим, какие ещё возможности Kubernetes пригодятся нам в суровом энтерпрайзе. Если вы занимаетесь разработкой и слышали о Kubernetes, но ещё не имели возможности пощупать его руками — добро пожаловать под кат!

Скорее к YAML-инженерии
Total votes 38: ↑38 and ↓0+38
Comments10

Яндекс выложил в опенсорс YDB

Reading time16 min
Views140K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



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

В посте я расскажу об истории развития технологий баз данных, о том, зачем использовать YDB, как её применяют текущие пользователи и какие плюсы для всех несёт выход в опенсорс. А во второй половине поста поговорим о разных вариантах развёртывания.
Читать дальше →
Total votes 335: ↑332 and ↓3+329
Comments135

Мифы о вакцинации

Reading time26 min
Views68K

Вакцинация - одно из самых важных достижений медицины, а недоверие к вакцинации включено ВОЗ в список десяти основных проблем здравоохранения. После прочтения очередных комментариев о вакцинации от covid-2019 в соцсетях вспоминается история вакцинации от оспы в Москве 1959-1960 гг и кажется, что люди 21 века, перепрыгнув 20 век, вернулись во времена Екатерины II.

Ученые пытаются понять причины отрицательного отношения к вакцинации. 16 июля в Nature Medicine вышла статья об отношении к вакцинации в разных странах и Россия оказалась абсолютным лидером антипрививочных настроений. В нашей стране к вакцинации положительно относятся только 30%, а в конспирологические теории верит 21% населения (считают, что вирус не существует или что эпидемия - это заговор фармкомпаний или политиков). 29% опрошенных считают, что вакцины не защищают от болезни и 14% боятся заразиться от вакцины. В России, в стране с одним из самых высоких процентов людей с высшим образованием, показатели оказались в несколько раз хуже, чем в США, Индии, Пакистане, Сьерра-Леоне и Уганде.

Побочные эффекты вакцинации
Total votes 183: ↑156 and ↓27+129
Comments1044

Как мы создали Web приложение для определения лиц и масок для Google Chrome (часть 2)

Reading time12 min
Views3.1K
Определение лица и маски
В предыдущей статье я рассказывал о том, можно ли использовать машинное обучение (в частности определение лица и маски) в браузере, подходах к детекции и оптимизации всех процессов.
Сегодня я хочу рассказать о технических подробностях реализации.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments2

Олды в ИТ

Reading time18 min
Views89K

Когда ты молод, ты «бессмертен» и не задумываешься о старости. Есть просто уверенность, что если много и хорошо работать, то твоя карьера и доходы будут неуклонно расти. Следуя этой стратегии, ты развиваешься в профессии уже 15, 20, 30 лет. За эти годы уже получил огромный опыт и, наверное, он обязательно поможет безбедно и интересно прожить остаток дней. Но все не так просто. Да, ты уже давно работаешь в хорошей компании, занимаешься интересными проектами, получаешь за это достойную зарплату, но в будущем уже не так уверен, как раньше. Профессиональный возраст приходит с массой вопросов, на которые нужно ответь стратегически.

 Эта статья родилась на основе обсуждения горячей темы «Олды в ИТ», которую 4 января 2021 г. мы записали для подкаста Linkmeup. Обязательно послушайте запись здесь или в любимом подкаст-приложении.

Читать далее
Total votes 188: ↑181 and ↓7+174
Comments435

Путь к ООП: Взгляд инженера

Reading time23 min
Views14K

Дисклеймер


Статья не предполагает какой-то принципиально новый взгляд на вещи, кроме как с точки зрения изучения этого материала с «абсолютного нуля».


Материал основан на записях примерно 7-летней давности, когда мой путь в изучении ООП без IT-образования только начинался. В те времена основным языком был MATLAB, много позже я перешел на C#.

Изложение принципов ООП, которое я находил, с примерами в виде каких-то яблок, груш, унаследованных от класса «фрукты» и кучей терминологии (наследование, полиморфизм, инкапсуляция и т.п.), — воспринималось как китайская грамота.

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

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

Насколько это соответствует действительности и вашим собственным предпочтениям, — решайте сами…
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments45

Технология Solid: пришло время для перестройки веба

Reading time3 min
Views37K

Сэр Тим Бернерс-Ли на Campus Party 2008, фото Jonan Basterra

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

Есть примеры удачной реализации совместного творчества, как Википедия, децентрализованный хостинг сайтов и пиринговые социальные сети. Это предвестники того, каким может стать веб на основе новой технологии Solid, которую разработал Тим Бернерс-Ли совместно с группой исследователей из Массачусетского технологического института. Это венец десятилетий концептуальной работы, которой занимался Бернерс-Ли.
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments84

Блокчейн 101: книги, исследования и статьи по теме

Reading time6 min
Views40K
Мы подготовили дайджест из 30 полезных материалов о блокчейне: это книги, статьи, видео для тех, кто «что-то слышал, но хочет лучше разобраться в теме». Этот список мы формировали на основе собственных материалов и исследований, а также рекомендаций резидентов платформ Hacker News, Quora, Reddit.

Как устроены смарт-контракты, как объяснить концепцию биткойна ребенку и (самое интересное) как сделать свой собственный блокчейн — обо всем под катом.

Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments4

Разработка транзакционных микросервисов с помощью агрегатов, Event Sourcing и CQRS (Часть 1)

Reading time11 min
Views32K

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

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

Однако микросервисы являются не таким уж простым и универсальным решением. В частности, модели предметной области, транзакции и запросы удивительно устойчивы к разделению по функциональному признаку. В результате разработка транзакционных бизнес-приложений с использованием микросервисной архитектуры является довольно сложной задачей. В этой статье мы рассмотрим способ разработки микросервисов, при котором эти проблемы решаются с помощью паттерна проектирования на основе предметной области (Domain Driven Design), Event Sourcing и CQRS.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments10

Я устал

Reading time5 min
Views57K
Создание программных продуктов – это стиль, это умение думать, понимать. Часто программистов ассоциируют с архитекторами, которые строят будущее жилище для людей, которое будет удобным, качественным и т.д.

Однажды я столкнулся с такой вакансией:

Текст вакансии

Требования:
Опыт поисковой оптимизации сайтов (SEO).
Опыт разработки с использованием LINQ, WCF, WPF, Silverlight, VBA.
Опыт работы с ORM-платформами.
Опыт командной разработки и использования систем управления версиями.
Наличие сертификатов.
Хорошие коммуникационные навыки.
Высшее техническое образование (информационные технологии, информационные системы, вычислительные системы).
Кроссбраузерная вёрстка.
Отличное знание XHTML/Javascript/CSS, Ruby on Rails, Perl, PHP, C++, Java, SQL, СУБД Oracle Enterprise, Microsoft SQL Server.
Владение графическими пакетами: Adobe Photoshop, CorelDraw

Опыт работы с различными CMS (Joomla, Drupal, NetCat, WP).
Опыт разработки и уверенное знание платформы .NET, языка C#, технологии ASP.NET и ASP.NET MVC.
Опыт работы в среде Visual Studio 2005/2008.
Отличное понимание принципов ООП.
Уверенное знание теории БД, опыт проектирования БД, опыт работы с промышленными СУБД, знание языка SQL и опыт написания запросов.
Знание принципов, подходов и архитектуры построения традиционных телефонных и IP-телефонных сетей;
Опыт участия в проектах по внедрению и сопровождению систем обработки и передачи голосовой информации;
Опыт работы с оборудованием Cisco (Catalyst, ISR/ISR G2);
Знание ПО Cisco Systems (Unified Communications Manager, Unified Contact Center Express);
Знание ОС Windows XP/2003/2008, AD, exchange, DNS, DHCP, Proxy, Firewall, MS ISA Server, Terminal Server, VPN

Провернув вверх, я увидел, что требовался «Помощник программиста».
На мой вопрос друзьям–программистам чем же он отличается от обычного (хотя, тут больше подойдет необычного) программиста я получил ответ – наличием бороды.
К чему я все это?
Total votes 168: ↑129 and ↓39+90
Comments93

Что такое консалтинг?

Reading time2 min
Views4.9K
Слово “консалтинг” стало нынче очень модным и популярным, однако большинство из тех, кто его употребляет, не могут ответить на простой вопрос: “А что же представляет собой консалтинг?”
Читать дальше →
Total votes 4: ↑1 and ↓3-2
Comments4

Что же не так с QR-кодами?

Reading time18 min
Views253K

Прекрасная картинка неизвестного автора

Я долго не писал эту статью. На протяжении полугода я регулярно практиковал попытки пройти в поликлинике к докторам без очереди и хамское вождение с московскими номерами в глубинке, чтобы стать толстокожим и невосприимчивым к ненависти (даже НЕНАВИСТИ!!!1), которая прольётся на меня после этой статьи. Это неизбежно, так как Хабр — гик-ориентированный ресурс, а QR-коды — гик-технология. Они уже получили широкое распространение и теплую поддержку от гиков Хабра, так что будущее у меня в мрачных оттенках. Не удивлюсь бритвенным лезвиям в почтовом ящике и молчаливому дыханию в телефонную трубку от полуночных незнакомцев.

Видимо, для апологетов QR-кодов эта технология — возможностью приблизить будущее, шагнуть в прекрасный мир завтрашнего дня с дополненной реальностью из всех этих многочисленных видеороликов и фильмов про будущее с прозрачными дисплеями, что-то разобрать на которых можно только при отсутствии просвечивающегося пёстрого бабушкина ковра на стене. Гики радуются любому новому примеру использованию QR-кода, даже если это помогающая рассказывать сказки детская пижама с QR-кодами, надгробия, коровы. И с мечтательным видом прогнозируют, что в будущем QR-коды будут повсеместно. По моему мнению, такой вариант событий можно описывать в антиутопиях, что-нибудь вроде «Мы» Замятина.

Для создания видимости аргументов в защиту своего мнения я мог бы устроить тут филиал wtfqrcodes.com и со злыми комментариями публиковать самые неудачные и даже опасные случаи использования QR-кодов, завершив всё это ссылкой на понятную инструкцию. Но эта демагогия не поможет прийти к цели — понять суть проблемы QR-кодов, так что passive-aggressive mod off, и давайте разберемся.

Так что же с ними не так?
Total votes 440: ↑369 and ↓71+298
Comments283

Fenom — yet another PHP template engine

Reading time6 min
Views44K
Доброго времени суток. Вышла первая стабильная версия нового шаблонизатора Fenom. Для нетерпеливых, Fenom — это легковесный (статистика прилагается), быстрый (бенчмарк прилагается), гибкий (API прилагается) шаблонизатор, который может стать удачной заменой шаблонизаторам Twig или Smarty.
Заинтересовавшихся прошу под кат
Total votes 97: ↑83 and ↓14+69
Comments183

3D принтер UP! — обзор и первая печать

Reading time11 min
Views87K
Про пистолет я уже писал, а вот про принтер, который этот самый пистолет не напечатал — нет. Сегодня я расскажу о 3д-принтере UP! Plus китайской компании PP3DP, продажей которого в РФ занимается компания 3DP Home.
image
По классификации принтеров, которую я уже описывал, принтер относится к классу «X Head/ZY Bed». Если говорить простым языком — головка перемещается только по оси X(если смотреть на принтер спереди — вправо-влево. Впрочем, если смотреть на принтер сзади, будет тоже самое), а платформа, на которой находит печатающий обьект — вверх-вниз, и ближе-дальше. В общем-то, UP это единственный известный принтер этой категории.
Да-да, нажми меня.
Total votes 78: ↑76 and ↓2+74
Comments55

Как стать руководителем

Reading time7 min
Views35K


Мы в Alconost’е очень любим стройную мысль в хорошем изложении. Именно так пишет Бен Хоровиц, в далеком прошлом — обычный программист, а сегодня — соучредитель одного из самых успешных мировых венчурных фондов. В свободное от инвестирования время Бен делится всеми нажитыми знаниями в своем блоге. Мы не можем молчать. Впечатлились и перевели один из его постов, очень уж он хорош и полезен.

Управленцы, налетай!

Читать дальше →
Total votes 38: ↑32 and ↓6+26
Comments24

Пишем одностраничный клиент на javascript

Reading time5 min
Views48K
Данная статья является вольным переводом. Оригинал тут.

Введение


Думаю, ни для кого не секрет, что клиентские приложения в современных веб-сервисах становится все сложнее и количество JS кода в них растет. До недавнего времени архитектура клиентской части, как правило, разрабатывалась с нуля и была специфична для каждого проекта. Не удивительно что приходилось снова и снова сталкиваться с типичными задачами.
К MVC-фреймворкам на серверной стороне все уже привыкли, но JS код на клиенте часто бывает плохо структурирован.

Предлагаю ознакомиться с решением на базе backbone.js, underscore.js и jQuery, которое поможет решить эту проблему.

Постановка задачи


Каким бы мы хотели видеть наше приложение? Вот основные моменты, которые мне кажутся важными:
  1. Должен быть удобный способ описать модели нашей предметной области.
  2. Любые изменения в модели должны немедленно отражаться в пользовательском интерфейсе, если модель в нем представлена каким-либо образом.
  3. Понятная и легко-поддерживаемая структуризация кода в стиле MVC.


Попробуем решить эти задачи на примере простого приложения «Каталог фильмов».
Поехали!
Total votes 70: ↑64 and ↓6+58
Comments51

Пишем игру для Samsung SmartTV на JS

Reading time4 min
Views30K
Всем привет. Я по долгу службы занимаюсь разработкой для Samsung SmartTV. В силу того, что на хабре мало статей на эту тему, я решил это исправить. Кому интересна пошаговая инструкция как сделать свой пинг-понг на «умный телик» с распознованием жестов — милости прошу под кат.
Читать дальше →
Total votes 52: ↑46 and ↓6+40
Comments30

Suggest.io: на пути к идеальному поиску

Reading time2 min
Views16K

Живой поиск для вашего сайта


Поиск по сайту — проблема для большинства Интернет-ресурсов. Создание собственного поиска занимает время и требует навыков тонкой настройки поисковой системы. Если владелец сайта заинтересован, чтобы его поиск оставался актуальным, ему нужно иметь «под рукой» специалиста, который постоянно занимается совершенствованием алгоритма релевантности, индексом, базой запросов и т.д. Всё это хлопотно, поддержка собственного поиска требует серьезных затрат.

Suggest.io восполняет этот пробел. Новый сервис ближе других подошёл к решению задачи организации живого поиска по сайту c минимумом затрат времени на установку.

image

Читать дальше →
Total votes 50: ↑44 and ↓6+38
Comments43

Бесшовная миграция MySQL 5.0 -> Percona Server 5.5 с переразбивкой хранилища

Reading time5 min
Views18K
Здравствуйте.

Хочу поделиться опытом миграции боевой базы данных с MySQL 5.0 на Percona Server 5.5 под нагрузкой почти без отрыва от производства.

Опишу вкратце эволюцию нашей базы до текущего состояния


База у нас древняя, пережила несколько апгрейдов MySQL. Начинали с MySQL 3.x. С ростом нагрузки, уже на MySQL 5.0, настроили репликацию и подключили еще один сервер для чтения. Тогда мы это делали стандартными средствами MySQL, без привлечения xtrabackup — полностью блокировали сервер на время создания мастер-дампа и вывешивали на сайтах заглушки.

Затем встала следующая проблема — на томе с данными стало заканчиваться место. Плюс InnoDB-хранилище исторически располагалось в одном файле. Было рассмотрено много вариантов решения. Начиная от размещения базы на iSCSI-томе и заканчивая перетыканием в рейд более емких дисков, расширением на них volume group / logical volume с последующим расширением файловой системы.

В качестве временного варианта решили подключить iSCSI-том из виртуалки под VMWare vCloud (не реклама, честно!). vCloud стоит у нас под боком.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments9
1

Information

Rating
Does not participate
Location
Ковров, Владимирская обл., Россия
Date of birth
Registered
Activity