Search
Write a publication
Pull to refresh
65
0
Дмитриев Сергей @antirek

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

Send message

Kubernetes-HA. Разворачиваем отказоустойчивый кластер Kubernetes c 5 мастерами

Reading time17 min
Views58K

В данный момент инсталяция по данному мануалу работать не будет. Из за больших изменений API Kubemaster, в данный момент я готовлю новый цикл статей где будут рабочие версии мануалов
Первая из статей habr.com/ru/post/462473


Здравствуйте!

В данной публикации я хотел бы рассказать о кластере Kubernetes с высокой доступностью (HA).

image

Оглавление:

  1. Вступление
  2. Список используемого софта
  3. Список и назначение хостов
  4. Принцип работы и развертывания
  5. Подготовка ОС к развертыванию. Установка docker, kubeadm, kubelet и kubectl
  6. Подготовка конфигурационного скрипта
  7. Создание etcd кластера
  8. Инициализация мастера с помощью kubeadm
  9. Настройка CIDR
  10. Инициализация остальных мастернод
  11. Настройка keepalived и виртуального IP
  12. Добавление рабочих нод в кластер
  13. Установка ingress-nginx
  14. Дополнительно

Читать дальше →

Концепции распределенной архитектуры, с которыми я познакомился при построении крупной системы платежей

Reading time12 min
Views38K
Я присоединился к Uber два года назад в качестве мобильного разработчика, имеющего некоторый опыт разработки бекенда. Здесь я занимался разработкой функционала платежей в приложении — и по ходу дела переписал само приложение. После чего я перешёл в менеджмент разработчиков и возглавил саму команду. Благодаря этому я смог гораздо ближе познакомиться с бэкендом, поскольку моя команда несёт ответственность за многие системы нашего бэкенда, позволяющие осуществлять платежи.

До моей работы в Uber у меня не было опыта работы с распределёнными системами. Я получил традиционное образование в Computer Science, после чего с десяток лет занимался full-stack разработкой. Поэтому, пусть я и мог рисовать различные диаграммы и рассуждать о компромиссах (tradeoffs) в системах, к тому моменту я недостаточно хорошо понимал и воспринимал концепции распределённости — такие, например, как согласованность (consistency), доступность (availability) или идемпотентность (idempotency).

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

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

Итак, давайте приступим к нашему погружению в SLA, согласованность, долговечность данных, сохранность сообщений, идемпотентность и некоторые другие вещи, которые мне потребовалось выучить на своей новой работе.
Читать дальше →

Распознавание речи на python с помощью pocketsphinx или как я пытался сделать голосового ассистента

Reading time5 min
Views124K

Это туториал по использованию библиотеки pocketsphinx на Python. Надеюсь он поможет вам
побыстрее разобраться с этой библиотекой и не наступать на мои грабли.

Читать дальше →

Обзор и практическое руководство по Katalon Recorder (Selenium IDE++ для Chrome и Firefox)

Reading time7 min
Views36K
Когда Firefox, начиная с версии Firefox 55, перестал поддерживать Selenium IDE, миллионы тестировщиков и разработчиков столкнулись с тем, что привычный ход работы по автоматизированному тестированию был нарушен, что вызвало среди них немалое беспокойство. К счастью, разработки в данной области продолжились, и не так давно команда Katalon представила Katalon Recorder – инструмент, который был разработан как альтернатива Selenium IDE.
Читать дальше →

Как и зачем переходить от сервис-ориентированной архитектуры к микросервисам

Reading time7 min
Views35K
Здравствуйте, меня зовут Алексей, я главный IT-архитектор банка «Ренессанс Кредит». Лет десять назад мы, как и многие компании, ускорили свое развитие благодаря сервис-ориентированной архитектуре (SOA). Но со временем требования к архитектуре менялись, и к данной парадигме стали возникать серьезные вопросы. В конце концов мы решили перейти от интеграционной шины ESB к микросервисам. На нашем примере я расскажу, почему стоит задуматься об эффективности SOA и что можно предпринять, если эта модель вас тоже не устраивает.


Читать дальше →

ES6: полезные советы и неочевидные приёмы

Reading time5 min
Views39K
Стандарт EcmaScript 2015 (ES6) существует уже несколько лет. Он принёс с собой множество новых возможностей, разные способы использования которых далеко не всегда очевидны. Вот обзор некоторых из этих возможностей с примерами и комментариями.

image
Читать дальше →

Какие инструменты для командной работы делают из обычных сотрудников Команду Мечты?

Reading time6 min
Views27K
Вы когда-нибудь задумывались, какой процент успешно реализованных проектов был выполнен вами самостоятельно, а сколько из них требовало участия команды? Думается, ответ очевиден: для крутых проектов необходима крутая команда.

image
Читать дальше →

Робот Xiaomi MITU: не убийца, а сам по себе

Reading time7 min
Views62K
Вспомните себя ребёнком: Новый год, ёлка, горы вкусной еды, отдых дома и на катке, интересные подарки, каникулы рядом с родителями и друзьями. Раз, два — и вот уже ёлка осыпается и больно колется в тапочках, а за окном настаёт длинная и беспросветная третья четверть. Неохота выходить на мороз, зубрить, писать контрольные и слушать бесконечные тирады про самую главную четверть в году. Собственно, то же самое сейчас испытывают наши дети и младшие братья и сёстры. Перед родителями стоит важная задача: не довести ребёнка до нервного срыва и сохранить интерес и стимул к учёбе более гуманными способами, чем ремень.


Читать дальше →

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

Reading time4 min
Views59K


Идея сделать независимый от корпораций P2P мессенджер не нова, однако разработка нового протокола и клиентских приложений для него достаточно дорогой и долгий процесс. А что, если использовать старый добрый XMPP, в котором уже все давно продумано и запилено?


Но это же не настоящий peer-to-peer, скажете вы, для работы XMPP нужен собственный сервер и домен. Это так, но мы можем запустить сервер на локалхосте, а для связи с серверами других пользователей использовать скрытый сервис в виртуальной сети I2P. Использование I2P избавит нас от необходимости платить за домен с хостингом, а так же защитит наши коммуникации от преступной онлайн-слежки.


Таким образом, получаем:


  • Гибридный P2P мессенджер, который можно запускать и на пользовательских устройствах, и на полноценном сервере.
  • Фичи, которых не хватает другим P2P мессенджерам: оффлайн сообщения, хранение контактов и истории "в облаке", работа нескольких клиентов с одним аккаунтом.
  • Готовые клиентские приложения на любой вкус.
  • За счет использования I2P, неуязвим для различных *надзоров (сори за мат).

Приступим же к реализации...

Читать дальше →

Пощупать нейросети или конструктор нейронных сетей

Reading time4 min
Views109K


Я давно интересовался нейросетями, но только с позиции зрителя – следил за новыми возможностями, которые они дают по сравнению с обычным программированием. Но никогда не лез ни в теорию, ни в практику. И вдруг (после сенсационной новости о AlphaZero) мне захотелось сделать свою нейросеть. Посмотрев несколько уроков по этой теме на YouTube, я немного врубился в теорию и перешёл к практике. В итоге я сделал даже лучше, чем свою нейросеть. Получился конструктор нейросетей и наглядное пособие по ним (то есть можно смотреть, что творится внутри нейросети). Вот как это выглядит:


Читать дальше →

Исповедь менеджера продукта

Reading time6 min
Views18K
image

Я работаю в продуктовой компании. Что это значит?

Мы не разрабатываем проекты на заказ, мы делаем продукт, который продаем клиентам.
Для своих команд я формирую видение продукта, принимаю решение, какие из “хотелок” пользователей мы будем делать и объясняю команде (иногда на уточках), зачем они нужны. Описываю задачи с точки зрения ценности для бизнеса, формулирую и проверяю гипотезы.
Мои требования к разработке зачастую сформулированы нечетко, фичи часто приходится переделывать или дорабатывать после запуска.

Этим я мешаю разработчикам писать идеальный код. Я знаю, что так поступают многие менеджеры продукта.

И я хочу рассказать, зачем я делаю это снова и снова.
Читать дальше →

Как работает JS: сервис-воркеры

Reading time11 min
Views54K
[Советуем почитать] Другие 19 частей цикла
Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Часть 16: Как работает JS: системы хранения данных
Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
Часть 19: Как работает JS: пользовательские элементы

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


Читать дальше →

Кто убил джуниора?

Reading time4 min
Views42K
Джуниоров много, вакансий не хватает



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

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

Но почему так происходит?
Читать дальше →

Многозадачность или марихуана?

Reading time6 min
Views68K


Взгляните на эту картинку. Персонаж справа — медведь. Так случилось, что он курит марихуану (не спрашивайте, где он её взял. Знать не хочу). Женщину слева я назвал Салли. За исключением того, что у неё пять рук, Салли совершенно обыкновенная, непримечательная деловая женщина. Салли, как и многие другие обыкновенные деловые женщины, ещё и завзятая многозадачница. На картинке она держит свой ноутбук, готовит какой-то десерт, да ещё и балансирует миской с какой-то обжигающе горячей похлёбкой, наверное, из морепродуктов. А теперь главный вопрос. Допустим, у Салли и медведя одинаковый уровень интеллекта (это очень умный медведь), тогда кто из них покажет лучший результат при тестировании когнитивной деятельности? Иными словами, если бы меня интересовала умственная деятельность, что для меня хуже: быть многозадачным или забивать косяк?

Управление IAX каналами при большом количестве Asterisk

Reading time9 min
Views4.8K
Добрый день.

Каждый, кто мало-мальски администрирует Asterisk, сталкивается с такой задачей как объединить несколько серверов между собой. Тут уже не важно какой протокол выбран IAX или SIP, так как не зависимо от протокола будет приблизительно одинаковый набор действий. В этом нет никакой проблемы до тех пор пока у вас сервера можно пересчитать по пальцам одной руки. Если же вам не хватило одной руки, а пальцы на второй уже заканчиваются тогда милости прошу под кат, дабы посмотреть один из способов решения данной проблемы.
Читать дальше →

Web Apps: быстро, дёшево, круто

Reading time6 min
Views11K

Web Apps: быстро, дёшево, круто


Каждый Web App (веб-апп) — это маленькое и весёлое фронтенд-приключение.
Однажды в iFunny мы устроили «веб-апп марафон», развлекли миллионы пользователей и попутно заработали много денег. А теперь готовы рассказать, как же это всё было.

Читать дальше →

Freeswitch: по пути наименьшего сопротивления

Reading time13 min
Views75K

Немного лирики


Сколько помню себя в кресле системного администратора (а общий стаж приближается уже годам к 15), столько вопросы офисной телефонии воспринимались мной строчкой из Californication калифорнийских же RHCP: hard core soft porn. Телефония всегда казалась параллельным измерением, в ее администрирование и настройку я старался не лезть. Точнее, вообще обходить все эти телефоновопросы по широкой дуге, скидывая все подобные задачи на «специально обученных людей».
Читать дальше →

Орги среди программистов

Reading time5 min
Views33K
Когда я учился в вузе, на техническом факультете, то среди нас, будущих инженеров, были такие особые люди — всевозможные -ОРГИ. Сейчас уже точно не вспомню всех разновидностей, но точно были спорторги и культорги.

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

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

И тут, на любимом Хабре, я обнаруживаю вот это чудо — человек, называющий себя программистом и инженером, рассказывает, что мы тут все производим какие-то суррогаты. Я был настолько удивлен этой нежданной встрече с (наверняка) бывшим оргом, что не смог промолчать. Так нельзя, друзья!
Читать дальше →

Бесплатная GPU Tesla K80 для ваших экспериментов с нейросетями

Reading time6 min
Views75K


Около месяца назад Google сервис Colaboratory, предоставляющий доступ к Jupyter ноутбукам, включил возможность бесплатно использовать GPU Tesla K80 с 13 Гб видеопамяти на борту. Если до сих пор единственным препятствием для погружения в мир нейросетей могло быть отсутствие доступа к GPU, теперь Вы можете смело сказать, “Держись Deep Learning, я иду!”.


Я попробовал использовать Colaboratory для работы над kaggle задачами. Мне больше всего не хватало возможности удобно сохранять натренированные tensorflow модели и использовать tensorboard. В данном посте, я хочу поделиться опытом и рассказать, как эти возможности добавить в colab. А напоследок покажу, как можно получить доступ к контейнеру по ssh и пользоваться привычными удобными инструментами bash, screen, rsync.

Читать дальше →

Kubeflow: новый проект для работы с машинным обучением в Kubernetes

Reading time3 min
Views11K
Разработчики Google объявили о запуске нового проекта Kubeflow. Проект упрощает работу с машинным обучением, предоставляя необходимый инструментарий для масштабирования и настройки системы в среде Kubernetes. В статье расскажем:

  • о компонентах Kubeflow;
  • как начать работу с решением;
  • о перспективах проекта.

Читать дальше →

Information

Rating
10,540-th
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity