В этой статье я расскажу о том, как настраивал непрерывную интеграцию в Amazon AWS для репозитория DevExtreme.
Уже несколько месяцев мы ведём разработку DevExtreme в открытом репозитории на GitHub. Непрерывная интеграция у нас с самого начала была построена на базе Docker, чтобы не зависеть от CI-платформы (будь то Travis, Shippable или что-то другое), но с момента публикации репозитория мы не выделялись и использовали для прогона тестов хорошо знакомый Travis CI. На GitHub у нас "бегает" только небольшая часть автоматических тестов, так сказать, первая линия, и возможностей Travis для техники Fork and Pull Request хватало.
Со временем коллеги начали сетовать на очередь из пулл-реквестов (но терпели). Мысль о том, что пора уже что-то предпринять, возникла в конце октября, когда на два дня Travis потерял связь с Docker Hub, а мы как раз готовились к beta-релизу DevExtreme 17.2.
Получив добро на эксперименты в корпоративном AWS-аккаунте, я решил дать второй шанс проекту Drone. Почему второй? Потому что мы его уже пробовали в процессе "обкатки выхода на GitHub". Тогда наш репозиторий был приватным, Drone был ещё более сырым, чем сегодня, и запускали мы его на временной наколеночной инфраструктуре, точнее на старых рабочих станциях, оставшихся после апгрейда рабочих мест (наш IT-отдел обещал их вот-вот забрать, но не торопился).
В прошлом году конференция DotNext проходила в Москве один день, а в этом стала двухдневной. Теперь, когда очередной московский DotNext позади, а зрители прислали свой фидбэк, время оглянуться: как всё прошло, и что вошло в увеличившийся хронометраж? Подробности под катом, а для затравки скажем, что слово «performance» оказалось актуально в обоих значениях: и «производительность», и «художественное выступление». Читать дальше ->
В прошлом году конференция DotNext проходила в Москве один день, а в этом стала двухдневной. Теперь, когда очередной московский DotNext позади, а зрители прислали свой фидбэк, время оглянуться: как всё прошло, и что вошло в увеличившийся хронометраж? Подробности под катом, а для затравки скажем, что слово «performance» оказалось актуально в обоих значениях: и «производительность», и «художественное выступление». Читать дальше ->
В прошлом году конференция DotNext проходила в Москве один день, а в этом стала двухдневной. Теперь, когда очередной московский DotNext позади, а зрители прислали свой фидбэк, время оглянуться: как всё прошло, и что вошло в увеличившийся хронометраж? Подробности под катом, а для затравки скажем, что слово «performance» оказалось актуально в обоих значениях: и «производительность», и «художественное выступление». Читать дальше ->
В прошлом году конференция DotNext проходила в Москве один день, а в этом стала двухдневной. Теперь, когда очередной московский DotNext позади, а зрители прислали свой фидбэк, время оглянуться: как всё прошло, и что вошло в увеличившийся хронометраж? Подробности под катом, а для затравки скажем, что слово «performance» оказалось актуально в обоих значениях: и «производительность», и «художественное выступление». Читать дальше ->
Пришло время рассказать о нашей новой конференции — JBreak 2018.
Для нетерпеливых, визитная карточка мероприятия:
Но вначале я хочу рассказать одну историю. Обычно такие истории-предисловия весьма скучные, знаю, но все-таки — послушайте. Она поможет вам принять решение, стоит ли идти на эту конференцию.
Так получилось, что у меня много друзей в возрасте около 25 лет. Все они искренне верят, что не доживут до 30, и спрашивают — ну как там, по другую сторону? Еще они спрашивают, как стать настоящим программистом (что бы это ни значило). А еще — стоит ли ехать на конференцию. Отвечаю: пока что здесь замечательно, стать успешным разработчиком можно и нужно, и чтобы объяснить это — у меня есть три истории.
Пришло время рассказать о нашей новой конференции — JBreak 2018.
Для нетерпеливых, визитная карточка мероприятия:
Но вначале я хочу рассказать одну историю. Обычно такие истории-предисловия весьма скучные, знаю, но все-таки — послушайте. Она поможет вам принять решение, стоит ли идти на эту конференцию.
Так получилось, что у меня много друзей в возрасте около 25 лет. Все они искренне верят, что не доживут до 30, и спрашивают — ну как там, по другую сторону? Еще они спрашивают, как стать настоящим программистом (что бы это ни значило). А еще — стоит ли ехать на конференцию. Отвечаю: пока что здесь замечательно, стать успешным разработчиком можно и нужно, и чтобы объяснить это — у меня есть три истории.
Пришло время рассказать о нашей новой конференции — JBreak 2018.
Для нетерпеливых, визитная карточка мероприятия:
Но вначале я хочу рассказать одну историю. Обычно такие истории-предисловия весьма скучные, знаю, но все-таки — послушайте. Она поможет вам принять решение, стоит ли идти на эту конференцию.
Так получилось, что у меня много друзей в возрасте около 25 лет. Все они искренне верят, что не доживут до 30, и спрашивают — ну как там, по другую сторону? Еще они спрашивают, как стать настоящим программистом (что бы это ни значило). А еще — стоит ли ехать на конференцию. Отвечаю: пока что здесь замечательно, стать успешным разработчиком можно и нужно, и чтобы объяснить это — у меня есть три истории.
Пришло время рассказать о нашей новой конференции — JBreak 2018.
Для нетерпеливых, визитная карточка мероприятия:
Но вначале я хочу рассказать одну историю. Обычно такие истории-предисловия весьма скучные, знаю, но все-таки — послушайте. Она поможет вам принять решение, стоит ли идти на эту конференцию.
Так получилось, что у меня много друзей в возрасте около 25 лет. Все они искренне верят, что не доживут до 30, и спрашивают — ну как там, по другую сторону? Еще они спрашивают, как стать настоящим программистом (что бы это ни значило). А еще — стоит ли ехать на конференцию. Отвечаю: пока что здесь замечательно, стать успешным разработчиком можно и нужно, и чтобы объяснить это — у меня есть три истории.
Генерация SVG из изображений может использоваться для Placeholder’ов.
Я занимаюсь оптимизацией изображений и картинок для их быстрой загрузки. Одна из самых интересных областей исследования это Placeholder’ы: что показывать, когда изображение еще не загружено.
В последние дни я сталкивался с некоторыми методами загрузки, которые используют SVG, и я хотел бы описать их в этом посте.
В этом посте мы рассмотрим следующие темы:
Обзор различных типов Placeholder’ов
Placeholder на основе SVG (контуры, фигуры и силуэты)
Генерация SVG из изображений может использоваться для Placeholder’ов.
Я занимаюсь оптимизацией изображений и картинок для их быстрой загрузки. Одна из самых интересных областей исследования это Placeholder’ы: что показывать, когда изображение еще не загружено.
В последние дни я сталкивался с некоторыми методами загрузки, которые используют SVG, и я хотел бы описать их в этом посте.
В этом посте мы рассмотрим следующие темы:
Обзор различных типов Placeholder’ов
Placeholder на основе SVG (контуры, фигуры и силуэты)
Генерация SVG из изображений может использоваться для Placeholder’ов.
Я занимаюсь оптимизацией изображений и картинок для их быстрой загрузки. Одна из самых интересных областей исследования это Placeholder’ы: что показывать, когда изображение еще не загружено.
В последние дни я сталкивался с некоторыми методами загрузки, которые используют SVG, и я хотел бы описать их в этом посте.
В этом посте мы рассмотрим следующие темы:
Обзор различных типов Placeholder’ов
Placeholder на основе SVG (контуры, фигуры и силуэты)
Генерация SVG из изображений может использоваться для Placeholder’ов.
Я занимаюсь оптимизацией изображений и картинок для их быстрой загрузки. Одна из самых интересных областей исследования это Placeholder’ы: что показывать, когда изображение еще не загружено.
В последние дни я сталкивался с некоторыми методами загрузки, которые используют SVG, и я хотел бы описать их в этом посте.
В этом посте мы рассмотрим следующие темы:
Обзор различных типов Placeholder’ов
Placeholder на основе SVG (контуры, фигуры и силуэты)
Привет, Хабр! Меня зовут Дмитрий Самсонов, я работаю ведущим системным администратором в Одноклассниках. Основные сферы моей компетенции — Zabbix, CFEngine и оптимизация Linux. У нас более 8 тыс. серверов и 200 приложений, которые в различной конфигурации формируют 700 различных кластеров. Тема этой статьи исчерпывающе описана в заголовке.
Сразу хочу оговориться:
Я буду предвзят, потому что участвовал во внедрении CFEngine в Одноклассниках.
Я пользовался CFEngine только версий 3.3—3.4.
Я не питаю никаких иллюзий по поводу CFEngine, это значимый игрок, но не лидер рынка и не его аутсайдер. В статье не будет сравнений работы CFEngine с другими системами.
Из систем конфигурации у меня есть опыт использования только CFEngine и Ansible.
Привет, Хабр! Меня зовут Дмитрий Самсонов, я работаю ведущим системным администратором в Одноклассниках. Основные сферы моей компетенции — Zabbix, CFEngine и оптимизация Linux. У нас более 8 тыс. серверов и 200 приложений, которые в различной конфигурации формируют 700 различных кластеров. Тема этой статьи исчерпывающе описана в заголовке.
Сразу хочу оговориться:
Я буду предвзят, потому что участвовал во внедрении CFEngine в Одноклассниках.
Я пользовался CFEngine только версий 3.3—3.4.
Я не питаю никаких иллюзий по поводу CFEngine, это значимый игрок, но не лидер рынка и не его аутсайдер. В статье не будет сравнений работы CFEngine с другими системами.
Из систем конфигурации у меня есть опыт использования только CFEngine и Ansible.
Привет, Хабр! Меня зовут Дмитрий Самсонов, я работаю ведущим системным администратором в Одноклассниках. Основные сферы моей компетенции — Zabbix, CFEngine и оптимизация Linux. У нас более 8 тыс. серверов и 200 приложений, которые в различной конфигурации формируют 700 различных кластеров. Тема этой статьи исчерпывающе описана в заголовке.
Сразу хочу оговориться:
Я буду предвзят, потому что участвовал во внедрении CFEngine в Одноклассниках.
Я пользовался CFEngine только версий 3.3—3.4.
Я не питаю никаких иллюзий по поводу CFEngine, это значимый игрок, но не лидер рынка и не его аутсайдер. В статье не будет сравнений работы CFEngine с другими системами.
Из систем конфигурации у меня есть опыт использования только CFEngine и Ansible.
Привет, Хабр! Меня зовут Дмитрий Самсонов, я работаю ведущим системным администратором в Одноклассниках. Основные сферы моей компетенции — Zabbix, CFEngine и оптимизация Linux. У нас более 8 тыс. серверов и 200 приложений, которые в различной конфигурации формируют 700 различных кластеров. Тема этой статьи исчерпывающе описана в заголовке.
Сразу хочу оговориться:
Я буду предвзят, потому что участвовал во внедрении CFEngine в Одноклассниках.
Я пользовался CFEngine только версий 3.3—3.4.
Я не питаю никаких иллюзий по поводу CFEngine, это значимый игрок, но не лидер рынка и не его аутсайдер. В статье не будет сравнений работы CFEngine с другими системами.
Из систем конфигурации у меня есть опыт использования только CFEngine и Ansible.
Qrator Labs выражает благодарность программному комитету ENOG за разрешение опубликовать на Хабре расшифровку круглого стола, посвященного блокировкам запрещенного к распространению контента. Мероприятие проходило в Минске 9-10 октября. Внимание! Текст длинный, тема чувствительная — просьба отнестись серьёзно к комментарию, который вы захотите оставить под публикацией.
ENOG («Евразийская группа сетевых операторов», в оригинале European Network Operators Group) представляет собой региональный форум интернет-специалистов, занимающихся важнейшими аспектами работы интернета. В рамках форума они имеют возможность обмениваться опытом и знаниями по вопросам, присущим Российской Федерации, странам СНГ и Восточной Европы.
Очередность выступлений и темы докладов:
Техническая сторона блокировок, Алексей Семеняка — RIPE NCC
Обзор технической ситуации с блокировками в России — Филипп schors Кулин, DIPHOST
Проблемы deep packet inspection в транспортных сетях — Артем ximaera Гавриченков, Qrator Labs
Перспективы блокирования контента в условиях дальнейшего развития технологий интернет — Антон Басков, AB Architecture Bureau
Административные вопросы блокировок — Юрий Каргаполов, UANIC
Qrator Labs выражает благодарность программному комитету ENOG за разрешение опубликовать на Хабре расшифровку круглого стола, посвященного блокировкам запрещенного к распространению контента. Мероприятие проходило в Минске 9-10 октября. Внимание! Текст длинный, тема чувствительная — просьба отнестись серьёзно к комментарию, который вы захотите оставить под публикацией.
ENOG («Евразийская группа сетевых операторов», в оригинале European Network Operators Group) представляет собой региональный форум интернет-специалистов, занимающихся важнейшими аспектами работы интернета. В рамках форума они имеют возможность обмениваться опытом и знаниями по вопросам, присущим Российской Федерации, странам СНГ и Восточной Европы.
Очередность выступлений и темы докладов:
Техническая сторона блокировок, Алексей Семеняка — RIPE NCC
Обзор технической ситуации с блокировками в России — Филипп schors Кулин, DIPHOST
Проблемы deep packet inspection в транспортных сетях — Артем ximaera Гавриченков, Qrator Labs
Перспективы блокирования контента в условиях дальнейшего развития технологий интернет — Антон Басков, AB Architecture Bureau
Административные вопросы блокировок — Юрий Каргаполов, UANIC
Qrator Labs выражает благодарность программному комитету ENOG за разрешение опубликовать на Хабре расшифровку круглого стола, посвященного блокировкам запрещенного к распространению контента. Мероприятие проходило в Минске 9-10 октября. Внимание! Текст длинный, тема чувствительная — просьба отнестись серьёзно к комментарию, который вы захотите оставить под публикацией.
ENOG («Евразийская группа сетевых операторов», в оригинале European Network Operators Group) представляет собой региональный форум интернет-специалистов, занимающихся важнейшими аспектами работы интернета. В рамках форума они имеют возможность обмениваться опытом и знаниями по вопросам, присущим Российской Федерации, странам СНГ и Восточной Европы.
Очередность выступлений и темы докладов:
Техническая сторона блокировок, Алексей Семеняка — RIPE NCC
Обзор технической ситуации с блокировками в России — Филипп schors Кулин, DIPHOST
Проблемы deep packet inspection в транспортных сетях — Артем ximaera Гавриченков, Qrator Labs
Перспективы блокирования контента в условиях дальнейшего развития технологий интернет — Антон Басков, AB Architecture Bureau
Административные вопросы блокировок — Юрий Каргаполов, UANIC