• Рекомендации по безопасности при работе с Docker

    Docker ускоряет разработку и циклы развертывания и тем самым позволяет выдавать готовый код в невероятно короткие сроки. Но у этой медали есть и обратная сторона — безопасность. Стоит знать о ряде вещей, на безопасность которых влияет Docker, и именно о них пойдет речь в этой статье. Мы рассмотрим 5 типовых ситуаций, в которых образы, развернутые на Docker, становятся источником новых проблем с безопасностью, которые вы могли и не учитывать. Также мы рассмотрим крутые инструменты для решения этих проблем и дадим совет, которым вы можете воспользоваться, чтобы удостовериться, что все люки задраены при деплое.


    1. Достоверность образа


    Начнем с проблемы, которая является, пожалуй, неотъемлемой частью самой природы Docker — достоверность образа.


    Если вы хоть когда-нибудь пользовались Docker, то вам должно быть известно, что с его помощью вы можете разместить контейнеры практически на любом образе — как на образе из официального списка поддерживаемых репозиториев, таких как NGINX, Redis, Ubuntu, или Alpine Linux, так и на любом другом.


    В результате у нас есть огромный выбор.

    Читать дальше →
    • +20
    • 14k
    • 9
  • Как разделить окружение для сборки и запуска сервиса в Docker сегодня и как это cделать завтра

      image


      Большинство из нас уже давно научилось готовить Docker и используют его на локальных машинах, на тестовых стендах и на боевых серверах. Docker, который недавно превратился в Moby, прочно вошел в процессы доставки кода до пользователя. Но best practice работы с контейнерной виртуализацией и, в частности, с Docker вырабатываются до сих пор.


      Как это было


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

      Читать дальше →
    • Docker и определение доступных ресурсов внутри контейнера


        Как объяснить контейнеру docker-а сколько у него есть ресурсов?


        К написанию этой небольшой заметки меня подтолкнула статья-перевод Java и Docker: это должен знать каждый и скудный на результаты поиск информации по теме. Я давно использую LXC, который тоже ограничивает ресурсы контейнеров средствами cgroup, и там эта проблема уже решена.


        Читать дальше →
        • +24
        • 11,8k
        • 6
      • Микросервисы: опыт использования в нагруженном проекте



          На конференции HighLoad++ 2016 руководитель разработки «М-Тех» Вадим Мадисон рассказал о росте от системы, для которой сотня микросервисов казалась огромным числом, до нагруженного проекта, где пара тысяч микросервисов — обыденность.

          Тема моего доклада — то, как мы запускали в продакшн микросервисы на достаточно нагруженном проекте. Это некий агрегированный опыт, но поскольку я работаю в компании «M-Tех», то давайте я пару слов расскажу о том, кто мы.

          Если коротко, то мы занимаемся видеоотдачей — отдаём видео в реальном времени. Мы являемся видеоплатформой для «НТВ-Плюс» и «Матч ТВ». Это 300 тысяч одновременных пользователей, которые прибегают за 5 минут. Это 300 терабайт контента, который мы отдаем в час. Это такая интересная задача. Как это всё обслужить?

          Про что сама эта история? Это про то, как мы росли, как проект развивался, как происходило какое-то переосмысление каких-то его частей, какого-то взаимодействия. Так или иначе, это про масштабирование проекта, потому что это всё — ради того, чтобы выдержать ещё больше нагрузки, предоставить клиентам ещё больше функционала и при этом не упасть, не потерять ключевых характеристик. В общем, чтобы клиент остался доволен. Ну и немного про то, какой путь мы прошли. С чего мы начинали.
          Читать дальше →
        • Вышел GitLab 8.15

          • Перевод

          В последнем релизе уходящего года мы завершаем наш Мастер-план и хотим показать вам кое-что интересное из того, над чем мы работали.



          В GitLab 8.15 появилась фича Auto Deploy – автоматизированная настройка развертывания и приложений для ревью (Review Apps). Для проекта на Ruby on Rails такая настройка займёт меньше минуты. Посмотрите, как это работает, в видео на 1:42.


          Вдобавок, доступ к вашим средам (environments) стал быстрее и проще: через терминал непосредственно в GitLab (там же на 5:18)


          Мы хотим дать каждому возможность использовать всю мощь контейнеров (containers), непрерывной интеграции и развертывания (continuous integration and deployment, сокращенно CD/CI), приложений для ревью (review apps) и планировщиков контейнеров (container schedulers). В GitLab 8.15 мы взяли на себя всю сложную работу по настройке, и вся она происходит совершенно прозрачно. В демонстрационном видео мы настраиваем и разворачиваем Ruby-приложение с review apps, несколькими средами и чатопсом (chatops, управление инфраструктурой через интеграцию с чатом) на кластер Kubernetes примерно за 12 минут. Без GitLab такая задача обычно занимает дни, если не недели.


          Для большинства из нас декабрь — месяц праздников и подарков. GitLab тоже получил в подарок много новых фич.


          Читать дальше →
        • Как работает Git

          • Перевод
          В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

          Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

          Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

          После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
          Читать дальше →
        • Опыт использования AWS ECS в нашей инфраструктуре

            image

            В данной статье я бы хотел поделиться нашим опытом использования AWS ECS в инфраструктуре, рассказать о плюсах и минусах этого продукта и о том, как мы решали проблемы с этим связанные. Начнём с определения:
            Amazon EC2 Container Service – это высокопроизводительный сервис управления контейнерами с высокими возможностями масштабирования.

            По сути ECS это попытка компании Amazon влезть в рынок управления контейнеров, где сейчас существуют Kubernetes, Mesos/Marathon, Docker Swarm и другие. Однако, в отличии от них Amazon предоставляет сервис с API, таким образом наиболее близкий аналог это Google Container Engine (aka kubernetes-as-a-service). Стоит отметить, что сам ECS бесплатен, а платите вы только за EC2 инстансы.
            Читать дальше →
          • Интегрируем оплату через Paypal в web-приложение

            В данной статье рассмотрена интеграция разовых платежей, а также оплаты по подписке с помощью Paypal в веб-приложение. Примеры реализованы на PHP, но, в принципе, без особых проблем то же самое можно сделать с помощью других технологий. Данный метод выбран как компромисс между простотой и гибкостью. Это попытка написать руководство, которое поможет быстро разобраться в теме и интегрировать оплату через Paypal в свой проект.

            Статья ориентирована в основном на тех, кто раньше с этой системой не работал. Знатоки Paypal вряд ли найдут здесь для себя что-то новое. Но, возможно, они укажут на недостатки данного метода или посоветуют, как можно было бы по-другому это реализовать.
            Читать дальше →
          • Экстремальная сестра Земли. Прошлое и будущее «Утренней Звезды»



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

              Ниже под катом мы постараемся разобраться какие космические и геологические процессы предопределили столь большую разницу между Венерой и ее сестрой Землей. А так же, какие действия человечества в будущем могут вернуть «утренней звезде» статус тропического рая.
              Читать дальше →
            • Коллекции иконок? Легко! Тысячи иконок в сетах.

                В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
                Читать дальше →
              • Макинтош без мышки

                  Статья будет больше интересна маководам, особенно начинающим. Надеюсь, что кому-нибудь пригодится. Будет ещё и вторая часть про ввод текста, если эта понравится.

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

                    Некоторым повезло работать дома. Или в собственном кабинете.

                    Другим повезло меньше и приходится сидеть в кубике или огромной шумной комнате. Неудобства рождают стресс. Желание слегка придушить коллег. Налить им кофе в клавиатуру. Или сделать еще что-то гадкое.

                    Трудотерапия спасет мир! Самый эффективный выход — трудотерапия. Но в офисе обычно нет возможности взять лопату и вскопать грядку. И попытка подвигать мебель для снятия стресса может быть понята очень неправильно. Поэтому занятие должно быть тихим. Добрым. Не требовать сложного инструмента.

                    К счастью, нашлись люди, которые нашли решение проблемы. Нам потребуются вещи, которые есть в любом офисе: принтер (лучше, если он будет цветным), бумага, ножницы и клей. Взяв выкройки (в PDF), которые лежат на замечательном сайте readymech, вы печатаете их, вырезаете и после склеивания получаете двойную пользу. С однй стороны, в руках у вас чудесная игрушка, которую, в зависимости от качества исполнения, можно подарить любимому начальнику или охраннику, который вам нахамил на прошлой неделе. С другой стороны — стресса как ни бывало.
                  • Израильтяне совершают компьютерную революцию

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

                      Специалисты-компьютерщики во всем мире уже более десяти лет бьются над ускользающей целью, но пока безрезультатно. Однако на днях основанная в Иерусалиме компания Linguistic Agents сообщила о том, что ее специалистам удалось создать прикладную программу, которая позволит компьютерам понимать человеческую речь. Стоит ли говорить, что это приведет к настоящей революции в компьютерном мире.
                      Читать дальше →
                    • Работа для программиста в США: 5 простых шагов

                        image Статья про то, что делать тем, кто хочет переехать работать в США. Я предполагаю инженерные позиции, на которые проще всего получить визы, но, возможно, статья окажется полезна и другим специалистам.

                        Мой опыт несколько отличается от нижеописанного (я попала на работу в США после стажировки). Но за 4 года в США пообщалась с людьми, которые попали сюда разными путями и набрала кое-какой опыт. Так что если бы я очень хотела найти работу в США сегодня, то я бы действовала примерно так, как описано ниже.

                        Заранее извиняюсь, если мой тон кому-то покажется наставническим — я не имею амбиций учить других жизни, просто иногда у меня получается такой стиль.
                        Читать дальше →
                      • Rust: как код может быть одновременно быстрым и безопасным. Рассказ Степана Кольцова в Яндексе

                          Привет. Меня зовут Степан Кольцов. Недавно я выступал на Java Party в киевском офисе Яндекса с докладом про язык Rust, который несёт в себе очень много для будущего программирования. Некоторые коллеги утверждают, что я всегда говорю про Rust, когда у меня есть такая возможность. Сегодня я хочу поделиться этим рассказом с вами и объяснить, почему мне это кажется важным.



                          Для начала пара слов о том, что такое Rust. Последние 15 лет между разработчиками на Java и на C++ ведётся спор о том, какой язык программирования хуже — Java или C++. Программы на C++ глючат, падают, и в них утекает память. Программы на Java тормозят и требуют слишком много памяти.

                          Rust — новый современный язык программирования, разрабатываемый компанией Mozilla — решает проблемы Java и C++: программы, написанные на Rust, одновременно быстрые и безопасные. Rust является таким же низкоуровневым (в смысле close-to-metal) языком программирования, как и C++, однако в язык встроены конструкции, позволяющие на этапе компиляции доказывать, что в программе не случатся ошибки работы с памятью, как то обращение после использования, двойное удаление, использование неинициализированной памяти и т.п. В Rust для этого используется механизм borrowed pointers. Большая часть моего рассказа была посвящена описанию этого механизма.
                          Читать дальше →
                        • MySQL Performance real life Tips and Tricks. To be continued.

                            По заявкам трудящихся решил написать еще одну статью, посвященную оптимизации запросов в MySQL.

                            В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.

                            В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
                            Читать дальше →
                          • Триггеры в MySQL

                              Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
                              Поддержка триггеров в MySQL началась с версии 5.0.2
                              Читать дальше →
                            • Закругленные уголки с помощью VML и CSS3

                                jsdhfksdfsd

                                Наткнулся на очень интересный вариант решения очень популярной проблемы многих веб-мастеров — закругление блоков.
                                Для этого варианта закругления используются VML и CSS3.

                                Решение без картинок, работает во всех Internet Explorer’ах включая 5ый, в Firefox, в Safari, но к сожалению в старых версиях Opera не работает.
                                Читать дальше