Pull to refresh
-8
0
Send message

Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование)

Reading time5 min
Views72K
Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее продвинутых из них с помощью Kubernetes-оператора Flagger. Он написан простым языком и содержит наглядные схемы, позволяющие разобраться в вопросе даже начинающим инженерам.


Схема взята из другого обзора стратегий выката, сделанного в Container Solutions

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

Более короткие и частые развертывания имеют следующие преимущества:

  • Сокращается время выхода на рынок.
  • Новые функции быстрее попадают к пользователям.
  • Отклики пользователей быстрее доходят до команды разработчиков. Это означает, что команда может дополнять функции и исправлять проблемы более оперативно.
  • Повышается моральный дух разработчиков: с большим количеством функций в разработке интереснее работать.
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments3

Уровни изолированности транзакций для самых маленьких

Reading time5 min
Views245K


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

Немного теории


Сами транзакции особых объяснений не требуют, транзакция — это N (N≥1) запросов к БД, которые выполнятся успешно все вместе или не выполнятся вовсе. Изолированность же транзакции показывает то, насколько сильно влияют друг на друга параллельно выполняющиеся транзакции.
Выбирая уровень транзакции, мы пытаемся прийти к консенсусу в выборе между высокой согласованностью данных между транзакциями и скоростью выполнения этих самых транзакций.
Стоит отметить, что самую высокую скорость выполнения и самую низкую согласованность имеет уровень read uncommitted. Самую низкую скорость выполнения и самую высокую согласованность — serializable.
Читать дальше →
Total votes 42: ↑36 and ↓6+30
Comments17

Как работать вне офиса и не сойти с ума

Reading time6 min
Views18K
В последние годы полностью удаленные компании, такие как GitLab, Zapier и InVision, доказали, что культура удалённой работы — это не просто привилегия, но и явное преимущество для бизнеса. Кроме того и некоторые UI/UX дизайн-агенства использую практику удаленной работы. И развитие технологий лишь ускоряет этот переход. Мы можем мгновенно общаться в Slack или других мессенджерах, скоординировать глобальную видеоконференцию через Zoom и отслеживать всю нашу дорожную карту проекта в Asana.

Для сотрудников удаленная работа обеспечивает большую гибкость (позволяет больше времени уделять семье и/или личностному развитию, отсутствует необходимости перемещаться с работы домой или в другую локацию и наоборот), оставляет меньше отвлекающих факторов (рядом никто не общается по телефону, не ведёт разговоры, мешающие сконцентрироваться на задаче) и делает более короткими поездки на работу (или вовсе приводит к отсутствию поездок на работу). Для компаний культура удалённой работы облегчает найм, сокращает расходы на офис и, естественно, привлекает работников с самостоятельной мотивацией и самодисциплиной.

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

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


Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments2

Бесплатная трансляция DotNext и HolyJS

Reading time5 min
Views3.6K


6 ноября, то есть уже завтра, начнется конференция DotNext 2019 Moscow. Это два дня докладов для .NET-разработчиков: хардкор, низкоуровневые подробности, максимальный перформанс, best practices, архитектура и так далее.

А сразу следом за ней, 8 и 9 ноября, состоится конференция HolyJS 2019 Moscow. Это два дня бесконечного фронтендерского веселья.

Из тридцатки докладов на каждой из конференций вы сможете совершенно бесплатно посмотреть на YouTube доклады первого дня, проводящиеся в первом зале — 6 штук. В той же онлайн-трансляции будут интервью между докладами.

За ссылками и подробностями ныряйте под кат.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments0

Какие soft skills нужны разработчику? Мнения из Яндекса

Reading time7 min
Views22K
Скоро начнется большая студенческая олимпиада «Я — профессионал». Она уже несколько лет проходит в онлайне и офлайне. Участвовать могут студенты самых разных специальностей, включая технические. Олимпиаду организуют 26 ведущих вузов: НИУ ВШЭ, МГУ, МГТУ, МФТИ, МИФИ, СПбГУ, Университет ИТМО и другие.

Яндекс — технический партнер проекта. Для нас «Я — профессионал» уже второй год подряд становится хорошим поводом поговорить про важность софт-скиллз (гибких навыков) в работе разработчиков и других специалистов. Год назад в нашем московском офисе прошла встреча для участников олимпиады, посвященная софт-скиллам. Говорил о них и руководитель офиса разработки Яндекса в Новосибирске Сергей Бражник, выступая на тренинге, входящем в программу «Я — профессионал». Сегодня Сергей и еще двое руководителей в Яндексе — Анна Федосова и Олег Мохов Olegbl4 — расскажут для Хабра о гибких навыках: какие они бывают, какие из них нужны разработчику, где их получать и как их наличие сказывается на росте в компании.

Сергей Бражник, руководитель офиса разработки в Новосибирске, директор по развитию региональных образовательных проектов




— Для разработчика важны «4К»: критическое мышление, креативность, кооперация и коммуникация. Принято считать, что коммуникация в этой профессии — не важный навык, но если задуматься, он необходим для профессионального роста: нужно уметь задавать вопросы, слушать и слышать собеседника, объяснять свою точку зрения и принимать чужую, говорить и договариваться. Стажер может не уметь работать в команде или критически мыслить — и это нормально, потому что у него еще нет такого бэкграунда.
Читать дальше →
Total votes 38: ↑28 and ↓10+18
Comments18

DevOps — всё

Reading time5 min
Views24K
[Этот материал представляет собой перевод серии твитов Майкла ДеХана, одного из создателей популярного движка автоматизации Ansible — прим.перев.]

Итак, у opsmop — та же проблема с графиком принятия и вовлечения, что и у vespene_io, и я также не вижу смысла продолжать. Я упорно верю в саму идею, но думаю, что целый мир IT с открытыми исходниками выгорел, а я устал пытаться заинтересовать людей.
Читать дальше →
Total votes 42: ↑33 and ↓9+24
Comments93

Введение в Git

Reading time17 min
Views150K

Оглавление


Предисловие
1. Настройка git
....1.1 Конфигурационные файлы
....1.2 Настройки по умолчанию
....1.3 Псевдонимы (aliases)
2. Основы git
....2.1 Создание репозитория
....2.2 Состояние файлов
....2.3 Работа с индексом
....2.4 Работа с коммитами
....2.5 Просмотр истории
....2.6 Работа с удалённым репозиторием
3. Ветвление в git
....3.1 Базовые операций
....3.2 Слияние веток
....3.3 Rerere
4. Указатели в git
....4.1 Перемещение указателей
5. Рекомендуемая литература

Предисловие


Git — самая популярная распределённая система контроля версиями.[1][2]

Основное предназначение Git – это сохранение снимков последовательно улучшающихся состояний вашего проекта (Pro git, 2019).
Читать дальше →
Total votes 40: ↑34 and ↓6+28
Comments27

Универсально храним настройки приложения через IConfiguration

Reading time7 min
Views5.3K
image

В рамках разработки продукта Docs Security Suit мы столкнулись с задачей хранения множества разнотипных настроек приложения как в БД, так и в конфигах. Да и еще так, чтобы их можно было удобно читать-писать. Здесь нам поможет интерфейс IConfiguration, тем более, что он универсальный и удобный для использования, что позволит хранить всевозможные настройки в одном месте
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments3

Основы DevOps. Вхождение в проект с нуля

Reading time16 min
Views29K
В ноябре 2018 года в ЛитРес создали отдел информационного обеспечения и пригласили руководить Андрея Юмашева. Последний год отдел помогает компании работать и развиваться и держит под контролем всю инфраструктуру. Но так было не всегда. Перед тем, как наладить работу, Андрей столкнулся с руинами: полуживой Nagios, условно живой Cacti и коматозный Puppet, мертвая Вики на 120 страниц, несвязные таблицы с задачами и списком железа, устаревшая архитектура, 340 бездействующих ядер, 2 Тбайта оперативной памяти и 17 Тбайт дискового пространства, которые почему-то не были записаны в инвентарных таблицах. Планы, которые не работают, сроки, которые срываются, рабочее окружение и инструменты, которых нет — все это ждало Андрея в новом проекте.



На DevOpsConf 2019 Андрей выступил с докладом, в котором на живых примерах показал, что стоит, а что не стоит делать, когда входишь в проект, которого еще не видел или плохо знаешь. Под катом дополненная версия рассказа — как правильно анализировать спектр проблем и выстроить план деятельности, как правильно рассчитать KPI и когда следует вовремя остановиться.
Total votes 55: ↑47 and ↓8+39
Comments15

Советы для кандидатов от программиста, проводящего собеседования в Facebook

Reading time7 min
Views11K


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

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

ДА вздрогнет FAANG* или [практическое руководство] по поиску работы в США/Европе для айтишника

Reading time5 min
Views24K
*FAANG — акроним 5 крупнейших tech компаний (Facebook, Apple, Amazon, Netflix and Google), предоставляющих одни из самых хороших возможностей для разработчиков, которые мечтают/планируют/хотят приобщиться к волне IT-эмиграции.

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

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

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

image
Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments27

Микросервис на GO для граббинга видео из твитов

Reading time4 min
Views6.9K

Добрый день, Хабравчане! Статья для новичков, каких то сверх новых идей вы здесь не увидите. Да и данный функционал, скорее всего, реализовывался десятки раз на различных языках. Идея состоит в том, что бы получив ссылку на пост в твиттере в котором содержится видео, забрать это видео и конвертировать в mkv.

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments0

Простые методы оптимизации программ Go

Reading time11 min
Views15K
Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок.

В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к существенному падению доходов. — Грег Линден, Amazon.com

По опыту, низкая производительность проявляется одним из двух способов:

  • Операции, которые хорошо выполняются в небольших масштабах, становятся нежизнеспособными с ростом числа пользователей. Обычно это операции O(N) или O(N²). Когда база пользователей мала, всё работает отлично. Продукт спешат вывести на рынок. По мере роста базы возникает всё больше неожиданных патологических ситуаций — и сервис останавливается.
  • Много отдельных источников неоптимальной работы, «смерть от тысячи порезов».
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments10

Один день из жизни разработчика

Reading time4 min
Views13K


В прошлой статье мы рассказали о том, как проходит обычный день нашего системного инженера. Сегодня же расскажем про один день из жизни нашего разработчика. Добро пожаловать под кат.
Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments11

Что писать в резюме, если нет опыта работы

Reading time6 min
Views86K
image

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

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

Зачем я об этом пишу? Мой интерес прост – чтобы классные ребята находились легче, чем это получается сейчас :)
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments160

Непрерывное профилирование в Go

Reading time7 min
Views7.5K

pprof — основной инструмент профилирования в Go. Профилировщик включен в стандартную библиотеку Go и про него, за годы, написано уже очень много. Чтобы подключить pprof в существующее приложение нужно просто добавить одну строчку кода:


import _ “net/http/pprof”

В HTTP-сервере по-умолчанию — net/http.DefaultServeMux — по пути /debug/pprof/ будут зарегистрированы обработчики, отдающие результаты профилирования.


curl -o cpu-profile.pb.gz http://<server-addr>/debug/pprof/profile

(подробнее см. https://godoc.org/net/http/pprof)


Но по опыту, не всегда все так просто и на практике с использованием pprof в бою, есть подводные камни.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments2

Делаем из Vim-а конфетку

Reading time17 min
Views140K

Вы под давлением коллег или сокурсников из более успевающих групп решились на отчаянный шаг, способный разделить вашу жизнь на период "до" и "после" (прошли vimtutor), и теперь не знаете что делать с вашими новообретёнными способностями? А может вы всё ещё сидите в какой-нибудь IDE и в ус не дуете зачем вам "эти ваши программистские блокноты" и "какой-то там Vim"? Тогда присаживайтесь поудобнее и налейте себе лимонад, сейчас я вам всё по полочкам разложу.


Читать дальше →
Total votes 54: ↑50 and ↓4+46
Comments252

Внутренности Go: оборачиваем переменные цикла в замыкании

Reading time9 min
Views22K


Сегодня я решил перевести для вас небольшую статью о внутренностях реализации так называемых замыканий или closures. В дополнение вы узнаете о том, как Go пытается автоматически определить, нужно ли использовать указатель/ссылку или значение в разных случаях. Понимание этих вещей позволит избежать ошибок. Да и просто все эти внутренности чертовски интересны, как мне кажется!


А еще я хотел бы пригласить вас на Golang Conf 2019, которая пройдет 7 октября в Москве. Я член программного комитета конференции, и мы с коллегами выбрали много не менее хардкорных и очень, очень интересных докладов. То, что я люблю!


Под катом передаю слово автору.

Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments8

Автостопом по DevOps с Экспресс 42

Reading time4 min
Views4K
DevOps уже у всех на слуху, но DevOps-трансформация для многих еще похожа на путешествие в неизведанный космос. Сегодня хочу рассказать о партнерстве, которое помогает нам самим исследовать эту вселенную и прокладывать надежный путь для других.

Все началось в 2015-м году, когда мы, Экспресс 42, совместно с Онтико воссоздали конференцию RootConf. Формально направление конференции значилось как «Профессиональная конференция по эксплуатации и DevOps», но фактически на докладах в основном обсуждали задачи системного администрирования.

В 2018-м стало понятно, что в мире, где Dev и Ops живут в одном общем процессе, конференция только про системное администрирование уже неактуальна. Тогда мы начали постепенно менять формат конференции. Теперь наша конференция обо всем, что касается DevOps — от Kubernetes, до обсуждения изменения процессов и эффективного обмена знаниями.



Сейчас мы совместно с Программным комитетом взяли курс на все, что связано с превращением аналоговых бизнес-процессов в цифру. В программе DevOpsConf этого года упор на то, как все превращается в код и управляется в виде кода. Сообщество созрело и я уже предвкушаю, какая сильная получится конференция. Но сегодня речь о пройденном пути, о планах поговорим в другой раз.
Узнать, что еще значит 42, и получить видео
Total votes 23: ↑20 and ↓3+17
Comments1

Теория и практика стандартизации Docker-сервисов

Reading time17 min
Views6.7K

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



Источник изображения:


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

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

Information

Rating
4,665-th
Registered
Activity