Pull to refresh

Идея модульного решения для социальной сети

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

Что это даст?
Читать дальше →
Total votes 4: ↑2 and ↓2 0
Views 572
Comments 1

Создание простейшего DI контейнера с использованием TDD

.NET *

Введение



Сегодня просмотрел ряд скринкастов от Daniel Cazzulino, в которых он рассказывает о создании с нуля простейшего DI контейнера, что не могло не привлечь моего внимания. Ниже будут приведены примеры из его скринкастов.
Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Views 8.4K
Comments 8

Интернет в контейнере

IT-companies
imageНа вопрос «Как сохранить три петабайта данных?» (3 145 728 Гб) компания Sun однозначно отвечает: «Нужно поместить весь архив интернета в датацентр, располагающийся в металлическом контейнере, удобном для транспортировки».

Так и было сделано 27-го марта, когда некоммерческая организация Internet Archive и Sun договорились о перемещении всей информации архива в дата-центр (Modular Datacenter) последней компании. Кроме практически всех веб-страниц, созданных за время существования всемирной паутины, в новом архиве будет хоститься и популярная Wayback Machine, позволяющая посмотреть как тот или иной сайт выглядел в прошлом.

Несмотря на то, что сегодня архив существует на созданной специально для него архитектуре, Sun приняла решение о переносе всех данных на сервера Sun Fire x4500 (Thumper), работающих под управлением Solaris 10 OS, файловая система: ZFS. По-мнению Sun, чьему опыту можно доверять, это позволит с меньшими затратами добавлять в архив ежемесячно 100Тб, на которые «вырастает» всемирная сеть.

Между тем, на сайте Sun можно пройти виртуальную экскурсию по дата-центру в контейнере и узнать множество других, не менее занятных, фактов о Sun Modular Datacenter.

Sun via Gizmodo via ArsTechnica
Total votes 42: ↑40 and ↓2 +38
Views 983
Comments 55

lxc — нативные контейнеры Linux

Virtualization *
В данный момент в Linux существует следующие широко известные реализации контейнеров:

Но они требуют наложения своих патчей на ядро, для получения необходимого функционала. В отличии от них lxc начиная с ядра версии 2.6.29 не требует этого. Для реализации изоляции используются уже имеющиеся в ядре namespaces, а для управления ресурсами Control Group. Это позволяет создавать не только полноценные изолированные окружения, но и осуществлять изоляцию отдельно взятых приложений.
Читать дальше →
Total votes 34: ↑30 and ↓4 +26
Views 20K
Comments 32

Компьютерное вместилище

Lumber room
Думаю многие помнят мицумовские клавиатуры с желобком (см. фото), куда так удобно класть ручки, карандаши или маленькие винтики, когда за столом что-то разбираешь. Я обожаю этот желобок и постоянно пользуюсь :).


Любовался-любовался я клавиатурой и подумал, черт побери, а ведь если добавлять «емкости» для разных легких мелочей в другие стационарные части компьютера, до чего же будет удобно! У нас есть монитор и системный блок (в принципе, еще и колонки). Они двигаются очень редко. Туда вполне можно встроить какие-то контейнеры для флешек, дисков, проводов, переходников, карточек памяти, ручек, листочков — всего того, что валяется по всему столу у среднестатистического компьютерщика. Например, небольшие ящички в нижней части монитора, или карманы на задней стенке. А уж системник так и просит добавить в себя какие-нибудь ящички, учитывая его форму. Например, чуть увеличить высоту и сделать на верхней части блока нечто вроде сундука. Там было бы очень удобно хранить диски (сейчас они у меня просто на системнике валяются и пылятся).

В общем идея запущена в ноосферу, в скором будущем жду реализаций от производителей :). Максимум, что я видел, это встроенный жгут за монитором, чтобы к нему прикреплять провода. А пока, может быть вы предложите свои идеи, как можно встроить какой-нибудь удобный контейнер в монитор или системник?
Total votes 10: ↑3 and ↓7 -4
Views 586
Comments 9

Хромированный «сейф» i-Stor iS601

Computer hardware
Уверенный рост рынка ноутбуков и «расширяющиеся» оптоволоконные сети всё чаще заставляют людей задумываться о покупке ёмких хранилищ, куда можно было бы поместить тонны любимой музыки и фильмов.

image

Однако для ноутбука какой «хард» не купи — всё будет мало. Выходом чаще всего становится внешний жёсткий диск или более дешёвый вариант: контейнер для сразу нескольких винчестеров. Об одном из таких контейнеров и пойдёт речь в этом обзоре: i-Stor iS601.
Читать дальше →
Total votes 52: ↑36 and ↓16 +20
Views 1.2K
Comments 48

Просто о Qt. Библиотека контейнеров

Qt *
Sandbox
Tutorial
Привет, хабр!

Сегодня я хотел бы рассказать о интересной и полезной фиче. Имя ее — Библиотека контейнеров. Это не одна, а целая группа полезных фич. А их назначение — организация и обработка групп элементов. Звучит интересно, да? Сейчас рассмотрим поближе — добро пожаловать под кат.
Читать дальше →
Total votes 38: ↑29 and ↓9 +20
Views 140K
Comments 45

Объектно-ориентированная разработка инсталлятора Gin

Designing and refactoring *
Ссылка на первую часть
Ссылка на вторую часть

Контентные и контейнерные команды


Некоторые команды подразумевают работу с файлами, изначально хранимыми на компьютере разработчика пакета. Понятно, что эти файлы нужно вместе с пакетом (а желательно, прямо внутри пакета) доставить к потребителю пакета. Попробуем для начала представить себе как это будет работать.
У нас есть экземпляр класса PackageBuilder, которому при конструировании мы указываем аргумент PackageBody, содержащий в себе, помимо всего прочего, команду Command, которая представляет собой корневой узел дерева команд пакета. Метод SaveResult() экземпляра класса PackageBuilder должен рекурсивно обойти все дерево, и для тех команд, которые используют контентные файлы, расположенные на компьютере разработчика, включить в тело пакета содержимое всех этих файлов. В тело пакета он также должен включить xml-файл, в который будет сериализован сам PackageBody с полным описанием пакета и выполняемых им команд.
Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views 440
Comments 1

Высокоуровневые API для Linux-контейнеров

Go *

Компания DotCloud разработала и выложила в открытый доступ систему Docker — высокоуровневые интерфейсы для доступа к Linux-контейнерам (LXC). Это идеальный инструмент для работы с контейнерами на любом сервере x64, для развёртывания крупномасштабных веб-инсталляций, кластеров БД, частных PaaS и т.д.

LXC — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров Linux на одном компьютере. LXC не использует виртуальные машины, а создаёт виртуальное окружение с собственным пространством процессов и сетевым стеком. Все экземпляры LXC используют один экземпляр ядра ОС.

Ключевые особенности Docker
  • Изоляция файловой системы: каждый контейнер процесса работает полностью отдельной корневой файловой системе
  • Изоляция ресурсов: системные ресурсы, как CPU и память, можно выделять по-разному для каждого контейнера процесса, используя cgroups
  • Сетевая изоляция: каждый контейнер процесса работает в своём собственном пространстве имён, с виртуальным интерфейсом и собственным IP-адресом
Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Views 22K
Comments 15

Контейнер серверного java-кода с поддержкой постоянного соединения

Java *
Sandbox

Disclaimer


Все, описанное в статье, является личным практическим опытом и не претендует на звание «истины в последней инстанции».

Преамбула


Здравствуйте. Я увлекаюсь созданием компьютерных игр. Моим любимым направлением, в котором я постоянно стараюсь совершенствоваться и узнавать что-то новое, являются браузерные многопользовательские игры.
Для создания прототипа для одной идеи в качестве контейнера сервлетов используется Apache Tomcat. Он общается с клиентской частью по http протоколу. Для такого типа игры схема вполне действующая, причем достаточно простая в реализации.
Но одной из преждевременных оптимизаций(да, это плохо, но тут я решил себе это позволить) стала идея использовать постоянное соединение между сервером и клиентом, т.к. в такой схеме не тратится время на открытие\закрытие соединения в каждом запросе. Для реализации схемы рассматривалось WebSocket API для Tomcat, но стало интересно написать свой велосипед, поэтому, встречайте рассказ о разработке под катом.
Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Views 15K
Comments 29

Виртуализация с OpenVZ

Virtualization *
Sandbox


На Хабре есть много статей о том, что контейнерная виртуализация — это плохо или хорошо, но пошаговой интструкции по ее установке и настройке мне найти не удалось. Постараюсь заполнить этот пробел.

Виртуализация — очень актуальная тема, так как позволяет более рационально использовать ресурсы сервера. И, признаюсь, мне было очень приятно познакомиться с OpenVZ.

OpenVZ — это реализация технологии виртуализации на уровне операционной системы, которая базируется на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, так называемых контейнеров (Virtual Environments, VE).

Поскольку OpenVZ базируется на ядре Linux, в роли «гостевых» систем могут выступать только дистрибутивы GNU/Linux. Однако виртуализация на уровне операционной системы в OpenVZ дает также и многие преимущества, а именно: удобство в администрировании, плотное размещения виртуальных контейнеров в хост-системе (это обычно положительно отражается на стоимости VPS-хостинга) и несколько лучшую производительность по сравнению с технологиями полной виртуализации.

Конечно, и недостатков достаточно. Главный из них, что в отличие от KVM, модули OpenVZ не входят в ванильное ядро, поэтому для фунционування последнего необходимо отдельное ядро и версия его далеко не последняя. На момент публикации этой статьи последняя стабильная версия — 2.6.32-042stab084.14. Из этого по сути следует, что хост-системой на OpenVZ может выступать не каждый дистрибутив, а только с ядром 2.6.32 и около версии. Поэтому, скажем, OpenVZ — ядро под Ubuntu 12.04 LTS вряд ли заведется (что я уже попробовал), ведь ядро здесь версии 3.8. Но не все так плохо, так как для RedHat 6 (CentOS 6, Scientific Linux 6) и Debian 7 все просто устанавливается и эти дистрибутивы официально поддеживаются Parallels.

Следующий недостаток в том, что все контейнеры работают под одним ядром (ядром хост-системы) и добавить необходимый модуль ядра уже будет не так просто, как в случае с технологиями полной виртуализации. В результате на OpenVZ-контейнерах не сможет работать NFS-сервер или другие сервисы, которым необходима тесная интегрирация с ядром. О некоторых других недостатках и преимуществах систем виртуализации можно почитать например здесь.

Теория без практики — мертва, поэтому самое время описать установку и настройку хост-системы для OpenVZ. В качестве хост-системы я выбрал CentOS 6.5. Добавляем репозитории для установки ядра OpenVZ и утилит для работы с контейнерами:

# wget -P /etc/yum.repos.d/  http://ftp.openvz.org/openvz.repo
# rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ
Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Views 87K
Comments 9

Project Cenntenial

Website development *.NET *Development for Windows *

На последней конференции Build был анонс одного из мостов Windows под названием Project Cenntenial. Так как он до сих пор не был упомянут в русскоговорящем сегменте интернета, то я сейчас постараюсь восполнить этот пробел.

Project C – это технология, которая позволит вам упаковать ваши классические приложения .Net и Win32 в AppX контейнер, который можно загрузить в Windows Store. Вы получите возможность опубликовать приложение в Store, а ваши пользователи получат приложения которые устанавливаются и удаляются не оставляя после себя всякий разный мусор.

Кроме того, разработчики получат возможность вызывать API и сервисы UWP из своих .Net приложений.
Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views 5.8K
Comments 0

Shared Folders в OpenVZ 7.0

Virtualization *
Sandbox
Новый OpenVZ 7.0 является гибридом старого доброго OpenVZ и коммерческого Virtuozzo. Хотелось бы думать, что он взял лучшее от обоих родителей, но это не так. В данном случае под нож попал функционал Shared Folders.



Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views 5.3K
Comments 15

Полное практическое руководство по Docker: с нуля до кластера на AWS

Website development *Amazon Web Services *
Translation



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



Ого! Как много информации.

Читать дальше →
Total votes 125: ↑124 and ↓1 +123
Views 1.3M
Comments 43

АТС в контейнере. Asterisk 14 + Nginx + Freepbx 14 + srtp на Centos 7 в lxc-контейнере Proxmox VE 4

System administration *Nginx **nix *Virtualization *Asterisk *
Tutorial
В контейнеры, в наше время, можно установить множество интересных систем
но под катом вы сможете найти лишь относительно стандартную инструкцию по установке asterisk+freepbx. Скуку слегка развеет то, что версии всего ПО «последние стабильные», есть шифрование, вместо apache — nginx, а вся установка под недавно «повзрослевший» lxc. На выходе получится достаточно мобильная, компактная и современная IP-АТС, потребляющая в покое 200-300 Мб ОЗУ
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Views 21K
Comments 7

Не бойся микросервиса: Алексей Баитов об использовании микросервисной архитектуры на практике

Конференции Олега Бунина (Онтико) corporate blog High performance *System Analysis and Design *DevOps *Microservices *
Для одних микросервисы — это возможность переделать и отрефакторить приложение под условно современный стиль. Другим это архитектурное решение не подходит из-за особенности взаимодействия различных частей приложения. В любом случае, выбирая архитектуру, полезно изучить чужой опыт перехода от монолита к набору сервисов.

Мы попросили поделиться своим кейсом разработки и доставки микросервисов Алексея Баитова, ведущего инженера 2ГИС. Поговорим на тему архитектурных решений, деплоя и возможности масштабирования. Расспросим про трендовые и просто удобные инструменты для работы.


Читать дальше →
Total votes 58: ↑56 and ↓2 +54
Views 18K
Comments 3

GitLab для Continuous Delivery проекта на технологиях InterSystems: Контейнеры

InterSystems corporate blog Git *Version control systems *GitHub *Development Management *
Tutorial

Эта статья — продолжение статьи про организацию процессов Continuous Integration / Continuous Delivery, автоматизирующих сборку, тестирование и доставку приложений применимо к решениям на платформе InterSystems.


Рассмотрим такие темы как:


  • Контейнеры 101
  • Контейнеры на разных этапах цикла разработки ПО
  • Continuous Delivery с контейнерами
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Views 6.9K
Comments 6

ОK, а мне точно нужен Kubernetes?

КРОК corporate blog IT Infrastructure *Virtualization *Data storage *


В большой компании часто очень тяжело согласовывать выделение ресурсов под рабочие задачи. Весь Agile с хрустом разбивается о стену трёхнедельного согласования с ИБ новой инфраструктуры. Поэтому к нам часто приходят запросы на перевод инфраструктуры на контейнеры, чтобы выкатывать изменения не раз в три месяца, а когда нужно бизнесу. Просят при этом настроить/внедрить Kubernetes как самый популярный инструмент оркестрации, хотя, как показывает практика, из 10 проектов он нужен максимум в трёх. А по факту стоит или использовать не Kubernetes, а OpenShift, или работать с ним не в своей инфраструктуре, а в публичном облаке, например. Я попробую рассказать про реальные бизнес-кейсы, которые мы решали, опишу основные различия между Kubernetes и OpenShift. А ещё о том, как мы согласование ИБ до 30 минут урезали, и все остались живы.

У нас было несколько интересных внедрений, в которых мы разгребали накопившиеся проблемы заказчика. Например, к нам пришла розничная компания, которой надо было выкатывать новые фишки непрерывно. Конкуренция дикая! А у них только инфраструктура под разработку каждый раз готовится от шести до десяти дней, из-за чего возникают простои. Решать вопрос с помощью закупки нового железа для тестирования и разработки — дорого и путь в никуда. В итоге мы перевели ИТ-инфраструктуру на контейнерную виртуализацию. В результате благодаря контейнерам нагрузка сократилась на 40 %, а инфраструктура под новую разработку теперь готовится от одного до четырёх часов. Бонус — экономия, так как все процессы можно было продолжать вести на базе имеющихся мощностей без покупки новых.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Views 16K
Comments 12

Создаем приватную сеть Ethereum Geth в контейнерах Docker

System administration *DevOps *Solidity *Cryptocurrencies
Tutorial


Если вам нужно развернуть приватную сеть Ethereum на базе Geth, то это можно сделать, например, создавая узлы сети на физических серверах или виртуальных машинах. Однако намного легче использовать готовые образы (Images) контейнеров Geth из репозитория Docker hub. В этом случае можно установить целую сеть узлов даже на одной виртуальной машине или на одном физическом сервере.

В этой статье мы расскажем как установить Docker на сервере с ОС Debian 9 (виртуальном или физическом), как создать несколько контейнеров с работающим Geth и объединить их в приватную сеть. Мы приведем пример скрипта для Node.js, который обращается к узлам Geth, работающим в контейнерах.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 7.7K
Comments 5

Сеть контейнеров — это не сложно

Timeweb Cloud corporate blog System administration *Network technologies *DevOps *Kubernetes *
Translation
Tutorial

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

В этой статье мы ответим на следующие вопросы:

Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у каждого из них есть выделенный сетевой стек?

Как превратить контейнеры в дружелюбных соседей, не дать им мешать друг другу и научить хорошо общаться?

Как настроить сетевой доступ из контейнера во внешний мир (например, в Интернет)?

Как получить доступ к контейнерам, работающим на сервере, из внешнего мира (публикация портов)?

Читать далее
Total votes 24: ↑24 and ↓0 +24
Views 21K
Comments 6
1