Pull to refresh
2
0

User

Send message

Проектирование отказоустойчивости IT-систем

Reading time11 min
Views19K

❓Как проектировать системы, которые будут толерантными для различного вида отказов и ошибок?

Что такое отказоустойчивость и стабильность?

Под отказоустойчивостью будем понимать свойство системы, которое позволяет максимально сохранять работоспособность при отказе отдельных конкретных компонентов системы либо связанных систем и восстанавливать работоспособность системы при восстановлении отказавших компонентов или связанных систем. Давайте рассмотрим подробнее эти 2 момента:

1. Деградация работоспособности системы должна быть прямо пропорциональна "величине" отказа. То есть, если упал сервис, отвечающий за некую некритичную функциональность — вся система не должна при этом падать. Да, небольшой кусочек не работает, но это не влияет на стабильность остальной части функционала.

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

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments16

Произносим термины IT правильно

Level of difficultyMedium
Reading time3 min
Views53K

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

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

Читать далее
Total votes 94: ↑79 and ↓15+64
Comments229

Совет #1 по ознакомлению с новыми кодовыми базами JavaScript

Reading time10 min
Views3.2K

За годы работы программистом я просмотрел, возможно, сотни кодовых баз. Слишком много, чтобы посчитать точно. Я много мучился с пониманием того, где в большинстве случаев находится значимый код. Обычно просьба подсказать, на что я должен обратить внимание, и указания в тикетах подталкивают меня вперед. Медленно, но уверенно, я буду понимать, что делает код. И вы тоже поймёте. У некоторых людей это получается лучше, а у некоторых — медленно. От этого не должно быть стыдно. В большинстве случаев код сложен. Но я нашёл простой инструмент, который облегчит вам задачу.

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments0

Повышаем квалификацию с лучшими инструментами для web-разработки на React

Reading time6 min
Views19K
Вы можете стать более ценным специалистом, изучив лучшие инструменты для разработки веб-приложений на React.



Большинство резюме работодатель отклоняет, просто пробежав их по диагонали. Это немного обескураживает, правда? Так что очень важно, чтобы он сразу увидел нужные ему знания и навыки у вас. Сейчас подходящее время прокачаться, особенно если вам нечем похвастаться в своём резюме. Не нужно посещать университет, чтобы получить новые навыки: нужно просто идти в нужном направлении и не отклоняться от него.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments6

Мы тратим годы на то, что делается неделю — потому что все ларьки заигрались в IT-гигантов

Reading time5 min
Views128K


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

Если бы меня кто-то спросил, за сколько можно сделать такое приложение в одиночку — я бы сказал: «два месяца на разработку, один на тестирование». Но нас было много, поэтому мы работали больше двух лет.
Читать дальше →
Total votes 262: ↑220 and ↓42+178
Comments257

Мой опыт эффективной удалённой работы

Reading time7 min
Views46K
Мой друг, у которого уже много лет опыта удалённой работы, давно подначивал меня поехать на пару зимних месяцев в Таиланд поработать удалённо, а я в свою очередь каждый раз находил одну из сотен надуманных причин, и отказывался:

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

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

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

Так я стал удалённым сотрудником, работающим с января по апрель из Таиланда.

image
Если вы думаете, что удалённая работа это вот так — смею вас разочаровать. Так не будет.
Как минимум нужно будет включить компьютер.
Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments96

Непрерывная интеграция в Unity: как сократить время сборок и сэкономить ресурсы + пайплайн в подарок

Reading time6 min
Views9.6K


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

Платформы непрерывной разработки и интеграции, или CI/CD, сейчас используются повсеместно в тех отраслях, где решающую роль играет итеративность и отлаженность технических процессов. В этой статье речь пойдёт о CI/CD для реализации наших Unity-проектов для мобильной геймдев-разработки: с какими проблемами мы столкнулись, как их удалось решить, каких улучшений мы добились и как прописан наш пайплайн сборок билдов.

Сразу договоримся, что в качестве сервера CI мы используем TeamCity от JetBrains, в качестве хранилища Git-репозиториев ― GitHub, для хранения артефактов сборки ― Nexus.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments8

Как оценить уровень владения английским языком

Reading time4 min
Views124K


На Хабре много статей о том, как самостоятельно изучать английский язык. Но вот вопрос, а как оценить свой уровень при самостоятельном изучении? Понятно, что есть IELTS и TOEFL, но эти тесты почти никто не сдает без дополнительной подготовки и эти тесты, как говорят, оценивают не сколько уровень владения языком, а скорее умение проходить эти самые тесты. Да и использовать их для контроля самообучения будет накладно.

В этой статье я собрал различные тесты, которые проходил сам. При этом я сверяю свою субъективную оценку владения языком с результатами тестов. А также сравниваю результаты между разными тестами.
Читать дальше →
Total votes 99: ↑95 and ↓4+91
Comments62

Иллюстрированное руководство по OAuth и OpenID Connect

Reading time7 min
Views79K
Прим. перев.: В этом замечательном материале компании Okta просто и наглядно рассказывается о принципах работы OAuth и OIDC (OpenID Connect). Эти знания будут полезны разработчикам, системным администраторам и даже «обычным пользователям» популярных веб-приложений, которые скорее всего тоже обмениваются конфиденциальными данными с другими сервисами.

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


«Предоставьте свою банковскую учётку». — «Обещаем, что с паролем и деньгами все будет в порядке. Вот прям честно-пречестно!» *хи-хи*

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

Сегодня имеется единый стандарт, позволяющий одному сервису безопасно воспользоваться данными другого. К сожалению, подобные стандарты используют массу жаргонизмов и терминов, что усложняет их понимание. Цель этого материала — с помощью простых иллюстраций объяснить, как они работают (Думаете, что мои рисунки напоминают детскую мазню? Ну и ладно!).

Total votes 42: ↑40 and ↓2+38
Comments3

Несколько малоизвестных возможностей docker-compose

Reading time5 min
Views27K

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


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

Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments22

Полное руководство по Prometheus в 2019 году

Reading time11 min
Views327K


DevOps- и SRE-инженеры уже, наверное, не раз слышали о Prometheus.


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


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


Что такое Prometheus?
Зачем он нужен?
Чем он отличается от других систем?


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

Total votes 30: ↑29 and ↓1+28
Comments30

TheOutloud — озвучивай и делись любимыми статьями и историями

Reading time3 min
Views1.9K
Привет всему сообществу, Habr! Уже некоторое время я являюсь вашим читателем и сегодня решил, что пришло время для моего первого поста здесь.

Я давно хотел научиться программировать и последние пару месяцев проводил все свободное время, просматривая обучающие ролики на youtube, читая ответы и комменты на stackoverflow, а также изучая другие ресурсы для начинающих разработчиков, включая Habr. Для того, чтобы все знания были применены на практике, я решил, что нужно делать полноценный проект.

Идея пришла ко мне, когда я стал проводить уйму времени за рулем: ездил на работу и домой, подрабатывал курьером в пиццерии и катался загород по выходным. В один прекрасный момент мне надоели эти зацикленные несколько песен на популярных радиостанциях, и я переключился на аудио книги. Но и это не продержалось достаточно долго, так как я порой забывал, о чем там было рассказано ранее и приходилось переслушивать. Тогда я подумал, что было бы неплохо в дороге слушать небольшие интересные статьи и истории с популярных ресурсов в сети, типа Habr, vc, spark, meduza и многих других.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments10

Your Own Personal SaaS

Reading time5 min
Views2.1K

Немного исторических параллелей


Disclaimer: Для экономии времени TL;DR вариантом этой статьи является раздел "Потенциальный новый тренд".


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


Объект на КДПВ — Bugatti Type 57 — автомобиль компании Bugatti Automobiles класса Gran Turismo, единичный высококлассный автомобиль для богатых. Производился в 1934-1940 годах. Имеет две модификации: Type 57S и Atalante. Дизайн кузова машины был разработан Жаном Бугатти.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments3

Практическое применение ELK. Настраиваем logstash

Reading time12 min
Views85K

Введение


Разворачивая очередную систему, столкнулись с необходимостью обрабатывать большое количество разнообразных логов. В качестве инструмента выбрали ELK. В данной статье пойдёт речь о нашем опыте настройки этого стека.

Не ставим цели описать все его возможности, но хотим сконцентрироваться именно на решении практических задач. Вызвано это тем, что при наличии достаточно большого количества документации и уже готовых образов, подводных камней достаточно много, по крайней мере у нас они обнаружились.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments18

В = Внимание, или как создавать время

Reading time4 min
Views12K


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


Пробовал разное. Первой отпала всякая «продуктивность». Будем честными: «продуктивность» — это зонтичный бренд для разных инкрементальных микро-улучшений, который каждый и так применяет в той или иной степени.


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


В итоге пришел к такой формулировке: важны прежде всего внимание и намерения.

Читать дальше →
Total votes 30: ↑24 and ↓6+18
Comments7

Чек-лист: что нужно было делать до того, как запускать микросервисы в prod

Reading time9 min
Views50K

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


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


Если вы ощущаете, что пришло время запустить ещё одну аппку в Kubernetes/ECS/whatever, то мне есть чем вам возразить.


English version is also available.

Читать дальше →
Total votes 138: ↑135 and ↓3+132
Comments71

Как правильно купить картошку, если ты дальтоник

Reading time5 min
Views67K


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

Короче, сегодня я попробую рассказать вам, что такое цветоаномалии, насколько это мешает в жизни, и отвечу на самый сакраментальный вопрос «А какой цвет ты видишь на самом деле?».
Читать дальше →
Total votes 138: ↑135 and ↓3+132
Comments611

Анализ тональности текстов с помощью сверточных нейронных сетей

Reading time11 min
Views58K


Представьте, что у вас есть абзац текста. Можно ли понять, какую эмоцию несет этот текст: радость, грусть, гнев? Можно. Упростим себе задачу и будем классифицировать эмоцию как позитивную или как негативную, без уточнений. Есть много способов решать такую задачу, и один из них — свёрточные нейронные сети (Convolutional Neural Networks). CNN изначально были разработаны для обработки изображений, однако они успешно справляются с решением задач в сфере автоматической обработки текстов. Я познакомлю вас с бинарным анализом тональности русскоязычных текстов с помощью свёрточной нейронной сети, для которой векторные представления слов были сформированы на основе обученной Word2Vec модели.

Статья носит обзорный характер, я сделал акцент на практическую составляющую. И сразу хочу предупредить, что принимаемые на каждом этапе решения могут быть неоптимальными. Перед прочтением рекомендую ознакомиться с вводной статьей по использованию CNN в задачах обработки естественных языков, а также прочитать материал про методы векторного представление слов.
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments9

Поиск узлов дисперсии управления (как перестать делать тупую работу и передать её другому)

Reading time6 min
Views38K


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

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

Чаще случается, что не хватает каких-то кусков власти или ответственности. И мы тут на десятом году развития компании внезапно нашли работающую модель для того, чтобы понимать сразу, чего не хватает. То есть так же лажать, но чуть реже.
Читать дальше →
Total votes 108: ↑104 and ↓4+100
Comments72

Настолка для обучения основам электрических цепей. Почему бы и нет?

Reading time2 min
Views26K


Ранее я уже писал, как делал «электрический» конструктор из… картона. Увы проект пока так и остается на стадии прототипа, не перерастая в промышленный «физический» вид и ждет своего времени (и инвестора).

Но я решил пойти дальше — раз уж начали делать из картона, доведем ситуацию до ее логического завершения — сделаем полностью картонную настольную игру, но с электрическим сеттингом и обучающим эффектом. Вариантов было много — начиная от простой «ходилки» и заканчивая амитрешем с зомби с движением электронов и злобными короткими замыканиями и вздувшимися конденсаторами.
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments32

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity