• Docker. Начало



      Примерно такие же эмоции я и мои коллеги испытывали, когда начинали работать с Docker. В подавляющем большинстве случаев это происходило от недостатка понимания основных механизмов, поэтому его поведение казалось нам непредсказуемым. Сейчас страсти поутихли и вспышки ненависти происходят все реже и все слабее. Более того, постепенно мы на практике оцениваем его достоинства и он начинает нам нравиться… Чтобы снизить степень первичного отторжения и добиться максимального эффекта от использования, нужно обязательно заглянуть на кухню Docker'a и хорошенько там осмотреться.
      Читать дальше →
    • Linux-контейнеры: изоляция как технологический прорыв

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



        Ответ: использовать контейнеры. Вместе с вашим приложением контейнер содержит в себе все необходимые конфигурации (и файлы), поэтому его можно легко переносить из среды разработки в среду тестирования, а затем в промышленную среду, не опасаясь никаких побочных эффектов. Кризис устранен, все в выигрыше.
        Читать дальше: Linux-контейнеры
        • +10
        • 12,6k
        • 7
      • REST-сервисы на ASP.NET Core под Linux в продакшене

          В основе этой статьи доклад Дениса Иванова (@DenisIvanov) на РИТ++ 2017, в котором он поделился опытом разработки и запуска в продакшен REST-сервиса на ASP.NET Core на Kubernetes. На текущий момент это сделать уже можно без особенных проблем и бояться использовать .NET Core, судя по опыту 2ГИС, не стоит.

          Конфигурация: ASP.NetCore на Linux позволила не только использовать существующую on-premise платформу, но и принесла еще несколько дополнительных плюсов, в частности, в виде полноценных Docker и Kubernetes, которые сильно упрощают жизнь.



          О сервисе


          С 1 апреля 2017 года в продуктах 2ГИС появилась иконка, на которую можно нажать и начнет проигрываться видео. Рекламодатели, которые размещаются в справочнике, теперь могут купить новый способ размещения рекламы, а все продукты нашей компании (мобильные, онлайн, API), ходят на сервис, про который я буду сегодня рассказывать.

          Топология этого сервиса примерно представлена на картинке ниже. Сервис помечен облачком в центре, он, по сути дела, является бэкендом для продуктов. Когда продукт приходит и говорит: «Дай мне для этого рекламодателя всю информацию о видеорекламе», сервис ему послушно ее отдает. Это информация такого плана: такая-то обложка лежит на таком-то CDN, такой-то видеофайл в таких-то разрешениях лежит там-то и там-то, само видео длится такое количество времени и прочее.


          Осторожно: много информации и кода.
          Читать дальше →
        • Обзор сервера удаленных рабочих столов ThinLinc для Linux

            Решение Cendio ThinLinc в России пока не получило большой известности, хотя постепенно начинает привлекать к себе внимание. Мы решили опубликовать небольшой обзор, чтобы читатели смогли оценить удобство программного продукта под Linux.

            Читать дальше →
          • Resolve IP адресов в Linux: понятное и детальное описание

              Настройка сетевого взаимодействия сервисов не самая простая задача и часто осуществляется без глубокого понимания как требуется настраивать систему и какие настройки на что влияют. После миграции сервисов в docker контейнерах с centos 6 на centos 7 я столкнулся со странным поведением вебсервера: он пытался присоединиться к сервису по IPv6, а сервис же слушал только IPv4 адрес. Стандартный совет в такой ситуации — отключить поддержку IPv6. Но это не поможет в ряде случаев. Каких? В этой статье я задался целью собрать и детально объяснить как приложения resolve'ят адреса.

              Читать дальше →
            • Linux-форензика в лице трекинга истории подключений USB-устройств

                image

                В рамках погружения в одну из дисциплин (в процессе обучения по специальности Компбеза) я работал над одним занимательным проектом, который бы мне не хотелось просто похоронить в недрах папки «Универ» на внешнем винчестере.

                Сей проект носит название usbrip и представляет собой небольшую консольную опенсорс утилиту для Linux-форензики, а именно для работы с историей подключений USB-устройств. Программа написана на чистом Python 3 (с использованием некоторых сторонних модулей) и не требует зависимостей помимо Python 3.x интерпретатора и нескольких строк из requirements.txt, разрешающихся одной строкой с помощью pip3.

                В этом посте я опишу некоторые возможности данного софта и оставлю краткий мануал со ссылкой на источник загрузки.

                Снято! (… в смысле Cut!)
                Читать дальше →
                • +14
                • 4,4k
                • 6
              • Ой, у вас баннер убежал!

                Ну, и что?
                Реклама
              • Компания LG объявила о выпуске открытой платформы WebOS Open Source Edition

                  LG Electronics сообщила о доступности webOS Open Source Edition, рассчитанной главным образом на разработчиков, разрешив другим компаниям использовать ее в своих устройствах. Это дает возможность другим компаниям задействовать webOS Open Source Edition в своих продуктах: телевизоры, IoT устройства, планшеты, или смартфоны.


                  palm


                  Версия 1.0 новоиспеченной webOS OSE оптимизирована для Raspberry Pi 3, однако поддержка новых платформ не за горами. Страница настройки содержит инструкции по сборке прошивки для загрузки с microSD карты. Для сборки необходима Ubuntu 14.04 LTS 64-bit, 4-х ядерный процессор Intel Core i5, 8 GiB ОЗУ и 100 GiB дискового пространства.

                  Читать дальше →
                • Заметка о новом интерфейсе linux kernel — gpio uapi

                    Начиная с версии ядра 4.6-r1 нам стал доступен новый интерфейс для взаимодействия с подсистемой ядра gpio. Теперь существует три официальных способа работы с gpio и получения от них прерываний. Нет смысла углубляться в потребности для данной подсистемы, для малой части это суровые будни, для другой части веселое хобби, и для всех вместе в ядре была предоставлена новая возможность взаимодействия.


                    Заметка носит популярный характер, так как основных преимуществ, которые шли в комплекте с нововведением, а именно упрощение работы с gpio в контексте ядра касаться не будем.

                    Читать дальше →
                    • +11
                    • 3,9k
                    • 2
                  • Процесс портирования драйверов устройств Linux

                    • Tutorial
                    Здравствуйте, хаброчитатели!

                    Введение


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



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

                    К сожалению, я не могу прикрепить исходный код драйвера, но мы рассмотрим все проблемы, с которыми я и вы можете столкнуться в процессе переноса. Далее будет рассмотрен пример переноса простого драйвера c версии ядра 2.6.25 на 4.12.5, который расположен в drivers/serial/name_uart.c. Также нам очень поможет следующий ресурс 2.6.25 и 4.12.5, где можно посмотреть структуру ядра, а также исходные коды.
                    Читать дальше →
                    • +13
                    • 5,5k
                    • 4
                  • GObject: наследование и интерфейсы

                      В комментариях к прошлой статье часто высказывалось мнение, что система GObject не нужна ввиду наличия C++ и других высокоуровневых языков. Помимо чисто технических моментов, о которых уже поговорили в комментариях, хотелось бы затронуть другой аспект. Вероятно, большинство комментаторов видит смысл существования объектной системы GLib в упорном нежелании сишников-ретроградов пользоваться благами цивилизации и смиряться с неумолимой поступью прогресса. Вероятно, так оно и было на заре развития Glib/GTK, зародившихся в мире UNIX-систем, GNU, open-source, идей Столлмана, и т. п. Большая часть того поколения хакеров действительно предпочитали Си, в то время как C++ был относительно молод и неразвит и преимущества его использования казались не настолько очевидными.

                      Сегодня, разумеется, для новых проектов большинство из нас предпочтёт использование более удобных, лаконичных и безопасных языков, даже если будет знаком со всеми нюансами использования GObject. Однако не стоит упускать из виду, что за 20 с лишним лет существования GLib/GTK с их использованием были созданы тысячи приложений и библиотек, многие из которых активно развиваются и поныне тысячами программистов со всего мира. В них добавляется новый функционал, вылавливаются баги, их адаптируют к современным технологиям вроде HiDPI-экранов, Wayland, Vulkan, и т. д. Для того, чтобы читать (дополнять, исправлять) код таких проектов, необходимо иметь базовые знания объектно-ориентированных расширений для Си, о котором мы с вами ведём речь.

                      Засим милости прошу под кат. Тренируемся, как обычно, на кошках :)


                      Читать дальше →
                      • +10
                      • 2,4k
                      • 2
                    Самое читаемое