У цій статті ми поділимося досвідом автоматизації запуску, тестування і конфігурації великих проектів з використанням docker-compose. Кілька простих змін можуть допомогти Вашій команді бути більш ефективною і витрачати час на важливі, а не на рутинні завдання.

Docker в 2017

На конференції Dockercon 2016 CEO компанії Docker розповів, що кількість додатків, що запускаються в Docker зросла на 3100% за останні два роки. Понад 460 тисяч додатків по всьому світу запускаються в Docker. Це неймовірно!
Якщо ви все ще використовуєте Docker, я б порадив почитати відмінну статтю про використання Docker у всьому світі. Docker повністю змінив те, як ми пишемо програми і став невід'ємною частиною для розробників і DevOps команд. У цій статті ми вважаємо, що ви вже знайомі з Docker і хочемо дати вам ще одну серйозну причину продовжувати використовувати його.

Читати далі →

Home Assistant або ще один «мозок» для проекту типу «Розумний Будинок»

Добрий день, шановний читач. Днями довелося мені погратися з багатьом вже відомої іграшкою від Google – Google Home. Штука хороша — огляд її я звичайно не буду. У комірці абсолютно випадково завалялися Raspberry PI 3 (RPi), Arduino Mega і ще їм подібна дрібниця, яку захотілося підключити Google Home (GH) з метою голосового управління. Простого API у GH немає, але є можливість з допомогою стороннього сервісу організувати голосове керування системою на RPi + Arduino з затримкою команд у кілька секунд.

Читаючи буржуйські форуми (справедливості заради, потрібно відзначити, людина я схиблений на автоматизації і IoT), звернув увагу на досі мені невідоме щось, що називають Assistant Home (HASS), цю систему умільці і прикручують до GH.

В двох словах про самій платформі:

Система написана на Phyton, останній реліз був 29 січня, поточна версія: 0.37.0

Підтримувані ОС:

  • Windows 10
  • Mac OS X
  • Ubuntu 14.04
  • Raspbian (Raspberry PI)
  • iOS App – beta
Підтримувані компоненти: 545 шт., включаючи майже всі TV/AV receivers, Broadlink, ZigBee, iCloud, Yandex TTS і багато, багато іншого.

Читати далі →

Доставляємо собі в офіс чашку гарячої кави однією командою консолі за допомогою TestCafe


Друзі, сьогодні я розповім вам історію про те, як просто і елегантно вирішити проблему еnd-to-еnd тестування web-сервісу доставки кави з допомогою нового open source тестового фреймворка. Ми проведемо перевірку не тільки роботи сайту, але і менеджерів і навіть служби доставки, до того ж витратимо на це мінімум зусиль і часу. А в якості бонусу за докладені зусилля отримаємо чашку гарячої кави прямо в руки. Всіх любителів пригод прошу під кат...
Читати далі →

Функціональне тестування сучасних web-додатків



Сучасні web-додатки найчастіше містять безліч "рухомих частин" і сторонніх залежностей. В процесі рефакторінгу і додавання/зміни функціональності в такому додатку може відбутися поломка існуючих use-case сценаріїв і нестабільна робота в певних браузерах.
Для своєчасного виявлення таких ситуацій та виконання безперервної інтеграції необхідно функціональне тестування web-додатки. У статті піде мова про двох безкоштовних open-source рішеннях:

Читати далі →

Аудит вразливостей Linux c Vulners.com

Vulners замислювався як пошуковик для Security Content-а: вразливостей, бюлетенів безпеки, експлойтів, плагінів детекта та іншої корисної інформації. Але ми подумали: якщо у нас вже є розібрані бюлетені безпеки для основних Linux-дистрибутивів, чому б нам не зробити сервіс, який буде брати дані про систему, а на виході віддавати список вразливостей. Також, як це роблять звичні сканери вразливостей, тільки швидше і безкоштовно.


Звідки ми отримуємо інформацію про уразливість Linux? Для цього ми парсим бюлетені вендорів. Покажемо процедуру аналізу на прикладі бюлетеня безпеки Debian DSA-3638.
Читати далі →

Бот-касир на pywinauto, або GUI automation для платіжного шлюзу

Я працюю в невеликому ізраїльському стартапі, наш продукт — платформа для замовлення їжі з ресторанів, кафе і магазинів. На відміну від десятків подібних сервісів, ми монополісти на студентському ринку в США. Ми обробляємо на піку кілька сотень тисяч замовлень на день і один з платіжних шлюзів в продакшне побудований на автоматизації GUI для Win32 програми з допомогою бібліотеки pywinauto.

Читати далі →

Find.By — finding & verifying locators

Почну цю статтю з того, що я працюю QA Automationg і того, що я люблю автоматизувати всі рутинні дії. Так от останнім часом для мене таким стало написання, редагування та перевірка локаторів до елементів на сторінці.

Зазвичай це процес виглядає так: я пишу вираз xpath в chrome або firepath, потім копіюю його і додаю атрибут елемента в C# код. Але локатори часто потрібно виправляти або просто перевірити, на якій елемент він вказує. І навіть таке просто зміна предиката [@id='myId'] [contains(@id = 'Id')] закінчується падінням тесту під час виконання тому, що я написав '=' замість ',' і полінувався перевірити зміни. Загалом, дуже багато дій з копіюванням, вставленням, перемикання між вікнами і тому подібного для такої простої задачі. Вирішив я написати плагін для ReSharper, який би Alt+Enter подсвечивал мій елемент у браузері.

Читати далі →

Автоматизація ip-мережі за допомогою підручних інструментів (Python)

Ця стаття підійде мережним фахівцям, які знаходяться в пошуках прикладів можливої автоматизації ip мережі з допомогою підручних інструментів.

Як один із варіантів автоматизації, це взаємодію програмного середовища з CLI (Command Line Interface) обладнання, так званий 'Screen Scraping'. Власне, про це варіанті і піде мова.

В якості програмної середовища, буде використано мову програмування Python версії 3.3. Для тих, хто сумнівається в потребі вивчення мови програмування, необхідно зазначити, що базові навички програмування на Python досить прості в освоєнні і для вирішення таких завдань є достатніми. Надалі з вдосконаленням навичок буде вдосконалюватися код та рівень вироблених продуктів. Для віддаленого взаємодії з обладнанням в основному буде використовуватися протокол SSH, тому в якості роботи з SSH, для полегшення завдань, обраний додатковий модуль для Python – Paramiko. Як правило розгляд рішення конкретних завдань, може сприяти кращому засвоєнню матеріалу, тому не затягуючи процес далі будуть розглянуті вибіркові приклади завдань по зростаючій ступеня складності та їх розв'язання з використанням описаних вище інструментів (важливо помітити, всі ip-адреси, логіни, паролі, назви і специфічні значення параметрів з мережевих пристроїв — вигадані, будь-який збіг випадково).

Читати далі →

Початок роботи з Junos PyEZ

Зараз дуже популярна тема мережевий автоматизації. Одним з інструментів такої автоматизації в світі Juniper є бібліотека PyEZ, що розробляється командою Джеремі Шульмана (Jeremy Schulman). PyEZ — це мікро-фреймворк для віддаленого управління і автоматизації пристроїв Juniper, написаний на мові Python. Основною перевагою PyEZ є його простота і націленість на аудиторію мережевих інженерів, а не програмістів.

Деякі можливості PyEZ:
  • Збір «фактів», таких як серійний номер, версія ОС і т. д.
  • Витяг оперативної (аналог команд show) інформації
  • Витяг конфігурації
  • Зміна конфігурації
У цій статті я б хотів зупинитися на можливості отримання оперативної інформації на прикладі комутатора EX4200.

Читати далі →

Ansible і ChatOps або як управляти 100+ серверами з чату

Ansible і ChatOps за допомогою StackStorm, Slack і Hubot
Що таке ChatOps?
ChatOps все ще свіже і рідкісне явище у світі DevOps, коли робота з інфраструктурою переноситься в загальний чат. Ви можете запускати команди прямо з чату, при цьому розробники/сисадміни бачать що відбувається в режимі реального часу, можуть переглядати історію змін, запускати свої команди, підтримувати комунікацію навколо роботи і навіть обмінюватися досвідом. Таким чином інформація і робочий процес належить усій команді — а це несе в собі багато переваг.

Можна придумати такі речі як деплой коду або розгортання серверів з чату, перегляд графіків моніторингу, відправку SMS, управління кластерами або просто запуск shell команд. ChatOps може бути високорівневим поданням вашої дійсно складною CI/CD системи, несучи простоту з допомогою команди в чаті кшталт:
!deploy <that thing>
. Такий підхід робить чудеса для поліпшення видимості і зниження складності навколо процесу розгортання.


Читати далі →