Pull to refresh

18 ноября приходите на онлайн-митап для DevOps-разработчиков

VK corporate blog DevOps *

Приглашаем на VK Tech Talks · DevOps — здесь будут делиться опытом разработчики из ВКонтакте, Юлы и Одноклассников. Поговорим о деплое, лучших практиках в логировании и мониторинге, а также масштабировании Vault на тысячи сервисов.

Это онлайн-встреча, трансляция пройдёт в сообществе VK Team ВКонтакте. Начинаем в 18:00 по московскому времени. Ждём как опытных специалистов, так и начинающих разработчиков. Регистрируйтесь, чтобы задать вопросы спикерам и поучаствовать в викторине.

Подробнее
Total votes 6: ↑4 and ↓2 +2
Views 359
Comments 0

Связка rvm + Rails + Nginx + Unicorn или деплоим рельсы правильно

Ruby on Rails *
Sandbox
Целью данной заметки я ставлю в подробностях описать организацию сервера для Rails приложений в самой популярной на данный момент связке: rvm + Rails + Nginx + Unicorn. К написанию статьи побудило отсутствие полной пошаговой документации по этой связке, понятной не только ядреным профессионалам этой области. Далее я попытаюсь подробно, шаг за шагом, описать идеологически правильный процесс организации сервера для обслуживания нескольких Rails приложений (на примере одного) — если у вас есть абсолютная уверенность в том, что на подопытной машине никогда не будет работать более одного приложения — настройка может быть существенно короче и проще. Хочу предупредить, что тонкости, касающиеся работы приложения под высокой нагрузкой в статье не описываются, т.к. цель ставилась иная — заставить работать приложение в связке и сократить количество конфликтов с другими приложениями до минимума.
Читать дальше →
Total votes 68: ↑63 and ↓5 +58
Views 54K
Comments 135

Еще одно руководство по CCnet + SVN

Version control systems *
Sandbox
Cruise Control — одна из достаточно большого количества CI (continuous integration) систем. Речь пойдет о том, как настроить ее для связи с SVN и деплоя сайта на .NET.

Для начала немного о задачах СС на данном сервере:
  • Взять код из SVN репозитория
  • Скомпилировать его
  • Положить в директорию к IIS


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

Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Views 4.9K
Comments 3

Скрипт для сравнения двух БД Oracle

Oracle *
Процесс выката новых версий ETL на продуктив всегда процесс волнующий. Редко когда среда разработки полностью соответствует среде эксплуатации, в моем предыдущем проекте различались в том числе ОС и железо, на которых велась разработка и эксплуатация ХД.

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

После такого сравнения и унификации многие, зачастую неожиданные, проблемы при деплое должны будут найтись немного раньше, на этапе тестирования, т.е. при деплое с ДЕВа на СИТ. А определенное количество устаревших маппингов OWB или таблиц можно будет удалить с ПРОД системы.

Возможности сравнения нескольких БД присутствуют в некоторых утилитах разработки и администрирования БД, в частности данный набор скриптов получен из Toad. Мой коллега просто выбрал необходимые параметры для сравнения, которых, я думаю, будет достаточно для начала и вам, а уж если вы используете кластеризацию таблиц или что-то более сложное добавить вывод этих объектов для сравнительного анализа сможете сами.

Сформированные файлы (db_info.txt с ДЕВа и такой же с ПРОДа) можно, в дальнейшем, сравнивать утилитами типа WinDiff и решить, где значение вернее и какое из них оставить.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Views 16K
Comments 8

Разработчики «Мамбы» на конференции HighLoad++2012

Мамба corporate blog
Сегодня стартовала самая значимая конференция для разработчиков HighLoad++2012
Наши прекрасные разработчики расскажут много интересного и полезного о высоконагруженной системе знакомств с аудиторией в 17 000 000 пользователей.

Спикеры «Мамбы»:
Глеб Арестов
Использование Comet для создания интерактивных интерфейсов

Михаил Буйлов
Цикл разработки, визуальный деплой, автоматизация и интернационализация

Дмитрий Ананьев
Практические вопросы использования NOSQL в высоконагруженном проекте (NoSQL-экзотика: TokyoTyrant -> KyotoTycoon -> Google LevelDB)

Илья Шаповалов
Производительный специализированный поиск: архитектура, область применимости
Total votes 9: ↑7 and ↓2 +5
Views 3.1K
Comments 0

Архитектура высоконагруженных приложений. Масштабирование распределенных систем. Часть вторая

Badoo corporate blog Website development *Programming *
На этой неделе мы выкладывали первую часть расшифрованного подкаста. Сейчас подготовили вторую часть.

О чем мы говорим во второй части подкаста:
  • Горизонтальное масштабирование проекта

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

  • Асинхронные задачи. Очереди.

— асинхронные задачи в распределенных системах;
— когда они приходят на помощь, какие технологии существуют и активно развиваются сейчас;
— какие подходы организации асинхронных задач используются в Badoo;
— c какими проблемами приходилось и приходится сталкиваться при работе с очередями;
— полезные книги и интересные конференции;
— интересные кейсы с собеседований.

Читать расшифровку подкаста
Total votes 66: ↑63 and ↓3 +60
Views 39K
Comments 33

Git rebase «по кнопке»

Badoo corporate blog Website development *Git *

Когда мы говорим об автоматизации процесса разработки и тестирования, мы подразумеваем, что это очень масштабное действие, и это действительно так. А если разложить его по частям, то станут видны отдельные фрагменты всей картины ― такая фрагментация процесса очень важна в двух случаях:
  • действия выполняются вручную, что требует сосредоточенности и аккуратности;
  • жёсткие временные рамки.

В нашем случае налицо лимит по времени: релизы формируются, тестируются и выкатываются на продакшн-сервер два раза в день. При ограниченных сроках в жизненном цикле релиза процесс удаления (отката) из релизной ветки задачи, содержащей ошибку, имеет важное значение. Для её выполнения мы используем git rebase. Так как git rebase ― это полностью ручная операция, которая требует внимательности и скрупулезности и занимает продолжительное время, мы автоматизировали процесс удаления задачи из релизной ветки.
Читать дальше →
Total votes 73: ↑72 and ↓1 +71
Views 22K
Comments 13

Опрос. Как вы делаете деплой на production сервер(а)?

Website development *
Коллеги расскажите, пожалуйста. как вы делаете деплой на production сервер(сервера) веб-проектов.
Если у вас используется 3 или 4 вариант, то как вы переключаете document_root — создаете симлинк на новый релиз или переписываете (скриптом) конфиг nginx?
Если переключать симлинк не бывает проблем с APC или XCache?
Если не хватает какого то варианта пишите в комментарии.

UPD: Спасибо всем за комментарии, пятничный пост получился очень продуктивным и полезным думаю для многих.
UPD2: Небольшой обзор комментариев:
подробные разборы деплоя habrahabr.ru/post/211733/#comment_7286111 habrahabr.ru/post/211733/#comment_7287769
утилиты для создания deb пакетов habrahabr.ru/post/211733/#comment_7286187
наиболее популярное готовое ПО capistrano, fabric, teamcity
Total votes 56: ↑42 and ↓14 +28
Views 63K
Comments 149

Оптимизируем рабочий процесс

Git *
Sandbox
Доброго времени суток. Решил поделиться опытом в организации рабочего процесса разработки веб-проектов и не только веб. Расскажу свое видение максимально удобного использования связки типа: bugtraker + git + ci + deploy.



Все чаще сталкиваюсь с тем, что подобная оптимизация будет полезна широкому кругу людей. Возможно, в предложенном варианте нет ничего нового, но, лично для меня это было, можно сказать, откровением. Если кто-то, кроме меня, захочет внедрить у себя на проекте что-то подобное, то я буду считать, что статья написана не зря.
Читать дальше →
Total votes 28: ↑21 and ↓7 +14
Views 17K
Comments 21

Каждой ветке по хосту c помощью capistrano

AT Consulting corporate blog Ruby *Ruby on Rails *
Думаю многим знакомо понятие «борьба за staging», когда все разработчики одновременно за день до релиза хотят поделиться своими наработками, чтобы тестировщик их проверил как можно скорее и не пришлось всю ночь править баги, да? Кому интересно посмотреть как мы решаем данную проблему для RoR-проектов с помощью Capistrano прошу под кат.


Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Views 6K
Comments 8

Node.js в бою (создание кластера)

Website development *Node.JS *
Translation
Tutorial
Когда вы используете приложения на node.js в продакшене, вам приходится задумываться о стабильности, производительности, безопасности и удобстве поддержки. Данная статья описывает мои мысли о лучших практиках использования node.js в бою.

К окончанию данного руководства вы получите систему из 3 серверов: балансировщик (lb) и 2 сервера приложений (app1 и app2). Балансировщик будет следить за доступностью серверов и распределять между ними траффик. Серверы приложений будут использовать комбинацию systemd и кластеризации node.js для балансировки траффика между несколькими процессами ноды на сервере. Вы сможете выкатывать код с помощью одной команды со своей машины, и при этом не будет перерывов в обслуживании или необработанных запросов.
Все это можно представить в виде схемы:


Читать дальше →
Total votes 37: ↑35 and ↓2 +33
Views 66K
Comments 17

Сине-зеленый деплой

System administration *IT Infrastructure *DevOps *
Translation

Я и мои коллеги всегда склоняем своих клиентов полностью автоматизировать процесс деплоя. Автоматизация помогает сократить количество конфликтов и задержек, которые возникают в процессе между "завершением" работы над программой и введением в эксплуатацию. Дэйв Фарли (Dave Farley) и Джез Хамбл (Jez Humble) заканчивают книгу "Непрерывная доставка" (Continuous Delivery) на эту тему. Она основывается на множестве идей, которые в целом связаны с непрерывной интеграцией и подталкивают к возможности быстро пустить софт в работу. Глава о сине-зеленом деплое привлекла мое внимание, потому что это один из малоиспользуемых методов, и я решил кратко его осветить.

Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Views 45K
Comments 12

Эволюция процесса деплоя в проекте

Конференции Олега Бунина (Онтико) corporate blog System administration *IT Infrastructure *Server Administration *DevOps *


Денис Яковлев (2ГИС)


Меня зовут Денис, я работаю в компании 2ГИС, около полутора лет занимаюсь вопросами continuous delivery для проектов веб-отдела. До этого работал в компании Parallels и там прошел путь от QA инженера до team lead’а.

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

Из чего это состоит? Нам нужно доставить, прежде всего, код — то, над чем мы работали большое количество времени, тестировали и прочее.
Читать дальше →
Total votes 27: ↑22 and ↓5 +17
Views 17K
Comments 20

Безопасность в IoT: Обеспечение безопасности развертывания Azure IoT

Microsoft corporate blog Information Security *Microsoft Azure Development for IOT *
Tutorial
Представляем вашему вниманию последнюю статью из цикла «Безопасность в IoT», а также приглашаем принять участие в конференции от Microsoft «Бизнес.IoT: открывая интернет вещей». В этой статье детально рассматриваются средства обеспечения безопасности IoT-инфраструктуры на базе Azure IoT и описывается уровень реализации в процессе настройки и развертывания отдельных компонентов. Представлен также сравнительный анализ различных методик.


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

Практики Continuous Delivery с Docker (обзор и видео)

Флант corporate blog System administration *DevOps *
Свой блог мы начнём с публикаций, созданных по мотивам последних выступлений нашего технического директора distol (Дмитрия Столярова). Все они состоялись в 2016 году на различных профессиональных мероприятиях и были посвящены теме DevOps и Docker. Одно видео, со встречи Docker Moscow в офисе Badoo, мы уже публиковали на сайте. Новые будут сопровождаться статьями, передающими суть докладов. Итак…

31 мая на конференции RootConf 2016, проходившей в рамках фестиваля «Российские интернет-технологии» (РИТ++ 2016), секция «Непрерывное развертывание и деплой» открылась докладом «Лучшие практики Continuous Delivery с Docker». В нём были обобщены и систематизированы лучшие практики построения процесса Continuous Delivery (CD) с использованием Docker и других Open Source-продуктов. С этими решениями мы работаем в production, что позволяет опираться на практический опыт.

Дмитрий Столяров (Флант) на RootConf 2016

Если у вас есть возможность потратить час на видео с докладом, рекомендуем посмотреть его полностью. В ином случае — ниже представлена основная выжимка в текстовом виде.
Total votes 19: ↑18 and ↓1 +17
Views 29K
Comments 14

Собираем Docker-образы для CI/CD быстро и удобно вместе с dapp (обзор и видео)

Флант corporate blog System administration *DevOps *
Это вторая публикация, созданная по мотивам моих выступлений на конференциях. Первая была общей и посвящена обзору практик Continuous Delivery с Docker. Новая основана на более прикладном докладе «Собираем Docker-образы быстро и удобно», который прозвучал 8 ноября на конференции HighLoad++ 2016 в секции «DevOps и эксплуатация».



Как и в прошлый раз, если у вас есть возможность потратить ~час на видео, рекомендуем посмотреть его полностью (см. в конце статьи). В ином случае — представляем основную суть в текстовом виде.

Что мы хотим от Docker-образов?

Total votes 16: ↑15 and ↓1 +14
Views 25K
Comments 24

MeteorJS, Nginx, mongodb, iptables… продакшен

Nginx *Server Administration *Database Administration *
Tutorial

Здравствуйте, меня зовут Александр Зеленин, и я веб-разработчик сисадмин.


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


Разворачивать будем на Ubuntu 16, но в целом схема на 99% совпадает и для Debian 8.

Читать дальше →
Total votes 46: ↑36 and ↓10 +26
Views 14K
Comments 69

Octopus Deploy. Улучшаем мир в кровавом энтерпрайзе

TINKOFF corporate blog DevOps *


Сегодня я хочу рассказать о системе деплоя Octopus Deploy. На данный момент на Хабре есть всего одна вводная статья на эту тему, поэтому в своем материале я хочу расширить описание системы, подробнее рассказать о таких важных понятиях как «жизненные циклы» (lifecycles) и «каналы» (channels), а также о том, как мы внедрили и используем Octopus в своей работе.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 12K
Comments 9

MODx Revo workflow. Организация рабочего процесса, контроль версий и деплой

MODX *
Sandbox
Все основные элементы системы MODX, такие как чанки, шаблоны, сниппеты и т.д, хранятся в БД, из этого появляется проблема осуществления контроля версий за этими элементами, а также сложности с разделением на development и production версии сайта.

Приведу основные требования, чего я хочу от своего рабочего процесса на MODX Revo:
  • контроль версий везде, где пишу какой-либо код (html, css, js, php),
  • иметь отдельную dev-версию сайта, на которой ведётся текущая разработка, а после — деплоить все изменения в продакшн, причём, желательно, автоматизировать этот процесс,
  • минимум копипаста при разработке и деплое.

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

Деплой webpack-приложения на github.io с помощью Travis CI

Website development *JavaScript *Node.JS *GitHub
Tutorial

Задача


Есть приложение, сгенерированное с помощью create-react-app. Нужно развернуть его на github.io.


Проблемой является то, что Github Pages работает только со статическим кодом и Jekyll.

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