Как стать автором
Обновить
28
0
Миндубаев Андрей @Covex

Разработчик ПО

Отправить сообщение

Kubernetes (k8s) + Helm + GitLab CI/CD. Деплоим правильно

Время на прочтение 2 мин
Количество просмотров 27K
В данной статье я хочу рассказать как деплоить приложения в разные среды. В этом примере, мы будем деплоить в: «Test» и «Production». Разумеется, вы можете добавить любые среды.

Для деплоя приложений я использую HELM. Он позволяет гибко управлять конфигурациями. В чем вы сможете убедится ниже. Предполагается, что у вас уже есть настроенный runner с helm-ом и вы знаете и умеете работать с HELM-ом.

Пример файла: .gitlab-ci.yml

.base_deploy: &base_deploy
  stage: deploy
  script:
  - PROJECT_NAME="${CI_PROJECT_NAME}-${CI_ENVIRONMENT_SLUG}"
  - helm --namespace ${CI_ENVIRONMENT_SLUG} upgrade -i ${PROJECT_NAME} helm --set "global.env=${CI_ENVIRONMENT_SLUG}";

stages:
  - deploy

Deploy to Test:
  <<: *base_deploy
  environment:
    name: test

Deploy to Production:
  <<: *base_deploy
  environment:
    name: production
  when: manual

Здесь стоит обратить внимание на то, что в зависимости от среды мы передаем переменную: «test» или «production».

Имя проекта мы тоже формируем с учетом имени переменной, для того, чтобы helm понимал, что это разные проекты (helm ls).

Далее, мы передаем эту переменную (среду) в HELM как: «global.env».

Для выше указанного примера helm должен находиться в одноименной папке в вашем репозиторие.
Читать дальше →
Всего голосов 16: ↑11 и ↓5 +6
Комментарии 10

Практическое знакомство с пакетным менеджером для Kubernetes — Helm

Время на прочтение 11 мин
Количество просмотров 74K


Статья является логическим продолжение нашей недавней публикации об истории пакетного менеджера для Kubernetes — Helm. В этот раз мы снова затронем вопросы устройства и функционирования нынешнего Helm (версия 2.x), а также управляемых им чартов и репозиториев, после чего перейдём к практике: установке Helm в кластер Kubernetes и использованию чартов.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 9

Непрерывная инфраструктура в облаке

Время на прочтение 15 мин
Количество просмотров 7K
Демонстрация использования инструментов с открытым исходным кодом, таких как Packer и Terraform, для непрерывной поставки изменений инфраструктуры в любимую пользователями облачную среду.


Материал подготовлен на основе выступления Пола Стека (Paul Stack) на нашей осенней конференции DevOops 2017. Пол — инфраструктурный разработчик, который раньше работал в HashiCorp и участвовал в разработке инструментов, используемых миллионами людей (например, Terraform). Он часто выступает на конференциях и доносит практику с переднего края внедрений CI/CD, принципы правильной организации operations-части и умеет доходчиво рассказать, зачем вообще админам этим заниматься. Далее в статье повествование ведется от первого лица.
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 1

Разработка Rich Text Editor: проблемы и решения

Время на прочтение 21 мин
Количество просмотров 36K
Текстовые редакторы, как тип программного обеспечения, появились чуть позже чем динозавры, и вероятнее всего это был вообще первый софт, с которым вы столкнулись в своей жизни, возможно кто-то даже застал MS-DOS Editor.

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



Чтобы вы могли принять более взвешенное решение, Егор Яковишен обобщил весь свой опыт, полученный в процессе создания Setka Editor, и рассказал про проблемы, с которыми придется столкнуться, и что можно предпринять для их решения.

Disclaimer: статья написана на основании доклада Егора на конференции Frontend Conf 2017 в июне 2017 года. Ситуация с поддержкой браузерами определенных API с тех пор уже могла измениться.


Всего голосов 53: ↑52 и ↓1 +51
Комментарии 25

Лучшие практики CI/CD с Kubernetes и GitLab (обзор и видео доклада)

Время на прочтение 5 мин
Количество просмотров 45K


7 ноября на конференции HighLoad++ 2017, в секции «DevOps и эксплуатация» прозвучал доклад «Лучшие практики CI/CD с Kubernetes и GitLab». В нём мы делимся практическим опытом решения проблем, возникающих при построении эффективного процесса CI/CD на базе указанных Open Source-решений.

По традиции рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде.
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 8

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

Время на прочтение 17 мин
Количество просмотров 19K


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

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

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

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

Непрерывная интеграция и развертывание Docker в GitLab CI

Время на прочтение 20 мин
Количество просмотров 72K
В этом руководстве рассмотрим вариант настройки непрерывной интеграции и развертывания Flask приложения на Docker Swarm через GitLab CI.

Сначала мы рассмотрим настройку рабочей среды, включая создание серверов для нодов Docker Swarm. Затем создадим простое приложение Flask с Redis и подготовим GitLab CI для непрерывной доставки.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 7

Интегрируем смартконтракт в веб-приложение на Nodejs

Время на прочтение 7 мин
Количество просмотров 17K

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


UI приложения

Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 6

Настройка системы WEB — тестирования на основе headless chromium-browser, chromedriver, nightwatch и node.js на Ubuntu

Время на прочтение 5 мин
Количество просмотров 12K
image

Предисловие


Привет, Хабр! Данная задача возникла у меня с проблемой, которая заключалась в создании робота для авторизации в Instagram, который бы делал за меня лайки. Всю задачу не напишу, напишу только часть реализации в виде настройки необходимого инструментария на удаленном сервере.

WEB — тестирование — это объемная и неоднозначная сфера, которая может заключаться в решении задач не только в плане тестирования WEB — приложений, но и, к примеру, в плане построения парсеров, роботов IoT и ботов работы с социальными сетями и все это используя только JavaScript!

Возможно, что вам не нравится словосочетание «тестирование», возможно, отчасти, из-за того, что это словосочетание заключает в себе более интересные вещи, которые, к примеру, позволят нам написать бота, способного авторизироваться в Instagram, Facebook и совершать там ряд действий от нашего лица и в одно и то же время нудно заниматься наблюдением, как выполняется наш фронтенд, но тестирование имеет смысл и уже стандартизировано сообществом W3C и продолжает развиваться.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 10

Нет времени объяснять! или как подружить terraform с minikube и kubernetes

Время на прочтение 2 мин
Количество просмотров 7.5K


Как начать пользоваться terraform, развернув локально приложение поверх minikube, и потом запустить его поверх kubernetes в cloud.google.com

Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 5

Смарт контракты Ethereum: что делать при ошибке в смартконтракте или техники миграции

Время на прочтение 7 мин
Количество просмотров 10K
При написании смартконтрактов важно помнить, что после загрузки в блокчейн, они уже не могут быть изменены, а следовательно, не могут быть внесены какие-либо улучшения или исправлены какие-то найденные ошибки! Все мы знаем, что ошибки есть в любой программе, а вернувшись к написанному пару месяцев назад коду мы всегда найдем, что там можно улучшить. Как же быть? Единственно возможный вариант – это загрузить новый контракт с исправленным кодом. Но как же быть, если на базе имеющегося контракта уже выпущены токены? На помощь нам приходит миграция! За последний год я попробовал много разных техник ее реализации, проанализировал применяемые в других крупных блокчейн проектах и что-то поизобретал сам. Подробности под катом.

Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 0

Смарт контракты Ethereum: пишем простой контракт для ICO

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


Читать дальше →
Всего голосов 35: ↑31 и ↓4 +27
Комментарии 83

Kubernetes на голом железе за 10 минут

Время на прочтение 8 мин
Количество просмотров 164K


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


По ходу этой статьи мы установим Kubernetes 1.6 на реальную (не виртуальную) машину под управлением Ubuntu 16.04 примерно за 10 минут. В результате у вас появится возможность начать изучать взаимодействие с Kubernetes посредством его CLI kubectl.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 32

Наш опыт знакомства с Docker

Время на прочтение 34 мин
Количество просмотров 46K

Вместо предисловия





Сегодня приснился сон, как-будто меня ужали до размера нескольких
килобайт, засунули в какой-то сокет и запустили в контейнере.
Выделили транспорт в оверлейной сети и пустили
тестировать сервисы в других контейнерах…
Пока не сделали docker rm


Не так давно мне посчастливилось стать членом очень крутой команды
Centos-admin.ru, в которой я познакомился с такими же, как я: единомышленниками со страстью к новым технологиям, энтузиастами и просто отличными парнями. И вот, уже на второй рабочий день меня с коллегой посадили работать над одним проектом, в котором требовалось «докерировать всё, что можно докеризировать» и было критически важно обеспечить высокую доступность сервисов.

Скажу сразу, что до этого я был обычным комнатным Linux-админом: мерился аптаймами, апт-гет-инсталлил пакеты, правил конфиги, перезапускал сервисы, тайлил логи. В общем, не имел особо выдающихся практических навыков, совершенно ничего не знал о концепции The Pets vs. Cattle, практически не был знаком с Docker и вообще очень слабо представлял, какие широкие возможности он скрывает. А из инструментов автоматизации использовал лишь ansible для настройки серверов и различные bash-скрипты.

Читать дальше →
Всего голосов 29: ↑23 и ↓6 +17
Комментарии 63

Разгони свой сайт. Электронные версии

Время на прочтение 1 мин
Количество просмотров 678
Сегодня закончилась эпопея с выкладыванием электронных версий книги «Разгони свой сайт», их доступно аж три пять шесть:
  1. PDF-версия, аналогичная ушедшему в типографию макету книги (даже немного лучше за счет исправленных опечаток). Идеально подходит для чтения на ПК или самиздата.
  2. FB2-версия (формат Fiction Book). Просили владельцы наладонников для чтения — вроде форматом остались довольны.
  3. CHM-версия. Незаменима в качестве руководства, которое всегда под рукой. Очень удобно искать нужный материал.
  4. HTML-версия. Уж этот-то формат сложно испортить :) Спасибо laik216.
  5. Онлайн-версия. Просто копия HTML-версии, расположенная на сервере.
  6. WOL-версия. Для владельцев lBook V8, спасибо msa
Все версии (последней редакции — 1.4) выложены на сайте книги. Здесь прямых ссылок не будет: мало ли что поменяется, чтобы в нескольких местах не править.

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

Если кто-то возьмется перегнать CHM в человеческие (=красивые внешне и валидные внутри) HTML-страницы — буду крайне признателен.

P.S. судя по логам, книгу скачали уже более 3000 4000 человек

P.P.S. Судя по отзывам, CHM (и не только) кривоват. Если кто-нибудь знает, как его переконвертировать в нормальный файл — напишите, пожалуйста, в комментариях. На сайте доступны и прошлые версии PDF, которые отличаются некоторым количеством опечаток — нужно 1.4 заменить на 1.2.

P.P.P.S. PDF-версия перевыложена (1.4.1)
Всего голосов 59: ↑54 и ↓5 +49
Комментарии 102

Web 2.0 успешность или неуспешность идеи?! Продолжение, часть 2

Время на прочтение 3 мин
Количество просмотров 396
Web 2.0 — это сама по себе идея. Это попытка формализовать — что же собой представляют проекты, основой которых являются пользователи и материалы, которые размещают пользователи. А под этим подразумевать можно все что угодно. Социальные сети и сервисы, рекомендательные социальные сервисы (которые упорно сейчас пытаются отстоять свое право называться Web 3.0).

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

Обычно все бывает не так.
Читать дальше →
Всего голосов 12: ↑7 и ↓5 +2
Комментарии 18

Загрузка MS Windows с USB-флэшки

Время на прочтение 6 мин
Количество просмотров 28K
Я не люблю M$Win'ские системы. На моих компьютерах установлен Linux (Fedora 9). Чем же вызвано появление постинга, рассказывающего об установке нелюбимой мною ОС на флэшку? В конце октября я оказалась в составе «команды Йота», получившей бесплатный безлимитный доступ к разворачиваемой по Москве и Санкт-Петербургу бепроводной сети WiMax (заявленная скорость — 10Мбит входящего трафика и 5Мбит исходящего, а как обстоят дела в настоящий момент, можно прочитать здесь). Вместе с бесплатной безлимиткой (бесплатной она будет до 31 марта 2009 года) нам бесплатно выдали WiMax-модемы Samsung SWC-U200, как было сказано — «в бессрочное пользование». Вот этот-то модем и стал причиной того, что мне снова — временно! — потребовалась M$Win'ская ось. Дело в том, что драйвера для него пока существуют только под Windows. Если верить сотрудникам «Йоты», драйвера под Mac и Линукс в настоящее время находятся в разработке и станут доступны до конца года. Но работать с сетью-то надо сейчас. Поэтому, промучившись несколько дней с постоянной сменой на нетбуке линукса виндами и обратно, я задумалась о более комфортном для меня варианте — поставить M$Win на USB-Flash.
Читать дальше →
Всего голосов 77: ↑54 и ↓23 +31
Комментарии 69

“DVD-Йон” затеял социальную сеть на пиратском контенте

Время на прочтение 2 мин
Количество просмотров 1.5K
Норвежский программист-самоучка Йон Йохансен прославился на весь мир в 2002 году, когда не только вскрыл слабенькую 40-битную защиту DVD-дисков, но осмелился открыто распространять программу DeCSS, которая снимает эту защиту. Этим фактом Йон вызвал громкий скандал и по требованию американцев был арестован. Однако, к удивлению многих, суд не смог доказать его вину (тут не обошлось без помощи адвокатов EFF).

Теперь “DVD-Йон” решился на ещё одну революцию, которая по своей значимости и масштабности может быть не менее значимой, чем снятие защиты с DVD-дисков. Полтора года назад он перебрался в Америку по приглашению компании doubleTwist. В течение года они с товарищами доламывали DRM-защиту iTunes, разрабатывали концепцию бизнеса и обеспечили себе венчурное финансирование, после чего Йон вернулся в Норвегию. А сегодня, наконец, стало известно, ради чего затевалась вся эта активность.
Читать дальше →
Всего голосов 128: ↑128 и ↓0 +128
Комментарии 114

Индексация прав в многопользовательских сервисах.

Время на прочтение 7 мин
Количество просмотров 741
Этот текст посвящен тому, как ускорить выборку закрытых данных в многопользовательских проектах.
Некоторые вещи рассмотренные вначале могут быть уже хорошо вам известны, но учитывая, что вопросы о разграничении прав доступа задаются регулярно, я счел нужным рассмотреть их подробнее.
Для гуру ценным там может быть разве что обоснования, чем именно нехорош этот метод. Если для вас это и так понятно, перейдите сразу к пункту «двоичные маски», там и содержится самое основное.
Многие сервисы позволяют пользователю размещать в сети различные данные, при этом самому размещающему, как правило, требуется ограничивать круг лиц, которые могут просматривать, комментировать его записи или изображения. Для этих целей разработчики создают различные системы контроля прав.
Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 12
1

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность