Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

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

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

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

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

Если у вас есть возможность потратить час на видео с докладом, рекомендуем посмотреть его полностью. В ином случае — ниже представлена основная выжимка в текстовом виде.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Просмотры27.9K
Комментарии 14

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

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



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

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

Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры23.8K
Комментарии 24

Официально представляем dapp — DevOps-утилиту для сопровождения CI/CD

ФлантСистемное администрированиеСерверное администрированиеDevOps
Читатели этого блога, а также посетители последних HighLoad++ и РИТ++ с большой вероятностью уже слышали про нашу утилиту для DevOps-инженеров dapp, но теперь мы решили официально и окончательно представить её «большому миру». Формальное право на то нам даёт тот факт, что мы работаем с dapp для решения задач в production уже больше года, поэтому считаем, что технология созрела для более массового использования.

Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код переписан на Go, а документация значительно улучшена.



Итак, dapp — написанный на Ruby инструмент, созданный в компании «Флант» как Open Source-проект для реализации и сопровождения процессов CI/CD. Что он позволяет?
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры13.7K
Комментарии 6

Практика с dapp. Часть 2. Деплой Docker-образов в Kubernetes с помощью Helm

ФлантСистемное администрированиеDevOpsKubernetes
dapp — наша Open Source-утилита, помогающая DevOps-инженерам сопровождать процессы CI/CD (Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код полностью переписан на Go, а документация значительно улучшена) (подробнее о ней читайте в анонсе). В документации к ней приведён пример сборки простого приложения, а подробнее этот процесс (с демонстрацией основных возможностей dapp) был представлен в первой части статьи. Теперь, на основе того же простого приложения, покажу, как dapp работает с кластером Kubernetes.

Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры13.5K
Комментарии 2

Практика с dapp. Часть 1: Сборка простых приложений

ФлантАнализ и проектирование системСистемы сборки
Эта статья — ознакомительное руководство по сборке Docker-образов приложений с помощью нашей Open Source-утилиты dapp (подробнее о ней читайте в анонсе. На примере двух простых приложений (с одним образом) рассмотрим, как могут быть задействованы некоторые из основных возможностей dapp и какой результат они дают.

Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код переписан на Go, а документация значительно улучшена.

Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры9.2K
Комментарии 10

Эксперименты с контрактами Solidity в тестовой сети Rinkeby блокчейна Ethereum

Разработка под e-commerceDevOpsSolidity


Эта статья представляет собой небольшое практическое руководство, которое поможет вам быстро настроить среду разработки смарт-контрактов на языке Solidity для блокчейна Ethereum. Вы опубликуете первый контракт, сохраните его в тестовом блокчейне Rinkeby и научитесь вызывать методы контракта. Это будет ваш первый шаг на пути создания децентрализованных приложений DApp (Decentralized Application).

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

При погружении в эту тему я использовал приложение (браузер) Mist в среде Microsoft Windows, а также интерфейс командной строки Geth узла Ethereum в среде Ubuntu. В этой статье мы расскажем о работе с Geth, а также немного о том, как вызывать методы контрактов из Node.js.

С благодарностью приму замечания и пожелания по дальнейшим статьям про блокчейн Ethereum, разработку контрактов на языке Solidity и приложений DApp.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры15.4K
Комментарии 23

Сборка и дeплой приложений в Kubernetes с помощью dapp и GitLab CI

ФлантСистемное администрированиеСистемы сборкиDevOpsKubernetes
Tutorial


В предыдущих статьях о dapp было рассказано про сборку приложений и про запуск в Minikube. При этом dapp запускался локально на машине разработчика. Однако инструмент задумывался для поддержки процессов непрерывной интеграции (CI) и сами мы используем его в основном в связке с GitLab. Чем dapp помогает в процессах CI/CD?
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры19.7K
Комментарии 4

Модуль Net::Ethereum для работы с контрактами Solidity

PerlДецентрализованные сетиAPIDevOpsSolidity


Обычно когда мне нужно использовать какой-то новый сервис или технологию из скриптов Perl, я захожу на CPAN, и там уже есть один или несколько подходящих модулей. Однако в случае фреймворков для работы с узлами блокчейна Ethereum и контрактами Solidity, к сожалению, мне не удалось найти нужного модуля.

Мы планируем в ближайшее время использовать смарт-контракты Solidity сети Ethereum в нашем SAAS-сервисе интернет-магазинов, написанном на Perl. Поэтому мне ничего не оставалось, как написать свой модуль Net::Ethereum (этот модуль уже доступен на CPAN, хотя и в виде альфа-версии).

Надеюсь, что модуль Net::Ethereum будет полезен тем, кто хочет интегрировать свои Perl-системы с контрактами блокчейна Ethereum. Буду очень благодарен тем, кто воспользуется этим модулем и пришлет мне свои соображения по его доработке, а также информацию о найденных ошибках.
Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Просмотры4.6K
Комментарии 14

Vibrant.kt — быстрое прототипирование и разработка распределенных приложений (DApps) на JVM

КриптографияПрограммированиеJavaKotlin

Нихао!


Введение


Я долго ничего не писал, потому что ЕГЭ само себя не сдаст, но к Балтийскому конкурсу я не мог не написать чего-нибудь классное. Хороших идей из ниоткуда я выдавить не мог, поэтому решил окунуться в абсолютно незнакомую мне на тот момент(пол месяца назад) тему, в мир блокчейна, криптовалют, смарт контрактов и других умных английских слов. На уроках утыкался в телефон, читая множество текстов про блокчейн, peer2peer сети и все такое, постепенно разбираясь. Все пошло легче, когда я начал писать простые прототипы на Javascript'e: в очередной раз убеждаюсь, что в коде все понятнее, нежели на тексте. В итоге, когда я вроде разобрался, я определился с темой работы, которую видно в заголовке статьи.

Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры3K
Комментарии 0

Сборка проектов с dapp. Часть 1: Java

ФлантСистемы сборкиDevOps


Эта статья — начало цикла о сборке dapp'ом приложений на различных языках, платформах, технологических стеках. Предыдущие статьи про dapp (см. ссылки в конце материала) были больше обзорными, описывали возможности dapp. Теперь же пора поговорить более предметно и поделиться конкретным опытом работы с проектами. В связи с недавним релизом dapp 0.26.2 я заодно покажу, как описывать сборку в YAML-файле.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Просмотры5.6K
Комментарии 2

Переписываем приложение под Blockchain

Децентрализованные сетиOpen sourceПрограммированиеSolidity

Before and after


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


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


В последнее время по роду деятельности мне довелось поработать с несколькими проектами связанными с криптовалютой и blockchain-технологиями. Познакомившись ближе с Ethereum и его идеологией децентрализованных приложений (ĐApp) я просто заболел этой идеей: никакой цензуры, никто не может прикрыть ваш бизнес, никто не может конфисковать ваши средства, невозможно просто взять и выключить сервер на котором работает ваше приложение. В определенный момент я пришёл к выводу, что именно в такой среде мой проект может иметь шансы на жизнь.


Итак, взглянем на фронт работ.

Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Просмотры9.9K
Комментарии 71

Дождались: поддержка YAML и Ansible (без коров) в dapp

ФлантСистемное администрированиеСистемы сборкиDevOps

В начале этого года мы посчитали, что наша Open Source-утилита для сопровождения процессов CI/CD — dapp версии 0.25 — обладает достаточным набором функций и была начата работа над нововведениями. В версии 0.26 появился синтаксис YAML, а Ruby DSL был объявлен классическим (далее перестанет поддерживаться вовсе). В следующей версии, 0.27, основным нововведением можно считать появление сборщика с Ansible. Пришло время рассказать об этих новинках подробнее.

Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код переписан на Go, а документация значительно улучшена.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры7.7K
Комментарии 4

Linux-дистрибутив from scratch для сборки Docker-образов — наш опыт с dappdeps

ФлантНастройка LinuxСистемное администрированиеDevOps

Сборка образов для Docker на основе базового образа, как правило, предполагает вызов команд в окружении этого базового образа. Например — вызов команды apt-get, которая есть в базовом образе, для установки новых пакетов.

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

Проблема известная: одним из путей её решения может быть сборка вспомогательного образа и перенос файлов из вспомогательного образа в результирующий. Для этого появились Docker multi-stage builds или образы-артефакты в dapp (Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код переписан на Go, а документация значительно улучшена). И данный подход идеально решает проблему подобную переносу результатов компиляции исходных кодов в итоговый образ. Однако он не решает все возможные проблемы…
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры11K
Комментарии 4

Возможности dapp, которые делают жизнь проще

ФлантOpen sourceСистемное администрированиеСистемы сборкиDevOps

В статье представлен (и продемонстрирован в коротких видеороликах) инструментарий, облегчающий разработку и отладку конфигураций с dapp — Open Source-утилитой, которую мы ежедневно используем при построении и сопровождении процессов CI/CD.


Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код переписан на Go, а документация значительно улучшена.


Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры4.7K
Комментарии 1

Сборка проектов с dapp. Часть 2: JavaScript (frontend)

ФлантСистемы сборкиDevOps


Этот материал продолжает цикл о сборке Docker-образов для приложений на различных языках программирования с помощью утилиты dapp. Предыдущая статья была о сборке приложений на Java — теперь же поговорим о приложениях на JavaScript. Для начала это будет frontend-приложение, а в следующей части планируется рассказать о сборке backend'а и запуске всего в Kubernetes.

Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код переписан на Go, а документация значительно улучшена.

В качестве иллюстрации будут использованы приложения nodejs-pool и poolui. Да-да, подготовим к запуску в Kubernetes свой майнинг-пул с блокчейном и выплатами!
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Просмотры4.2K
Комментарии 2

Как победить дракона: переписываем вашу программу на Golang

ФлантПрограммированиеАнализ и проектирование системПроектирование и рефакторингGo

Так случилось, что ваша программа написана на скриптовом языке — например, на Ruby — и встала необходимость переписать ее на Golang.


Резонный вопрос: зачем вообще может понадобится переписывать программу, которая уже написана и нормально работает?


Читать дальше →
Всего голосов 33: ↑28 и ↓5 +23
Просмотры11.3K
Комментарии 35

Продвигаем Ethereum DAPP

Интернет-маркетингSolidityКриптовалюты
Сегодня в интернете достаточно информации, как создавать DAPP приложения. Вот вы создали крутое DAPP и теперь появляется вопрос ещё сложнее, как рассказать о нём потенциальным пользователям?

image

Я хочу поделиться собственным опытом продвижения DAPP приложения по каталогам. Метод хорош тем, что он ориентирован на пользователей, которые уже знают, что такое DAPP и как ими пользоваться, также про DAPP узнают поисковики.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры3K
Комментарии 2

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

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

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

Принцип работы грантовых программ на разных платформах не имеет существенных отличий. Блокчейн-компания определяет наиболее приоритетные для себя направления и выделяет бюджет на выплату грантов, как правило, в собственной криптовалюте.
Читать дальше →
Всего голосов 18: ↑12 и ↓6 +6
Просмотры2K
Комментарии 5

Децентрализованная аффилейт-программа с открытым исходным кодом на блокчейне Waves

Децентрализованные сетиJavaScriptКриптовалюты
Из песочницы
Децентрализованная аффилейт-программа на блокчейне Waves, реализованная в рамках гранта Waves Labs командой Bettex.

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

image
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры1.2K
Комментарии 4

Книга «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство»

Я пиарюсь

Больше года я работал над книгой «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство», и вот теперь эта работа завершена, а книга издана и доступна в Литресе.

Надеюсь, моя книга поможет быстро приступить к созданию смарт-контактов Solidity и распределенных приложений DApp для блокчейна Ethereum. Она состоит из 12 уроков с практическими заданиями. Выполнив их, читатель сможет создавать собственные локальные узлы Ethereum, публиковать смарт-контракты и вызывать их методы, обмениваться данными между реальным миром и смарт-контрактами с помощью оракулов, работать с тестовой отладочной сетью Rinkeby.

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

Ниже вы найдете оглавление и первую главу книги (также на Литресе доступны фрагменты книги). Надеюсь получить обратную связь, замечания и предложения. Все это я постараюсь учесть при подготовке следующей редакции книги.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры7K
Комментарии 19
1