• Что такое Windows PowerShell и с чем его едят? Часть 4: Работа с объектами, собственные классы



      Текстовый вывод команд в окне интерпретатора PowerShell — всего лишь способ отображения информации в пригодном для человеческого восприятия виде. На самом деле среда ориентирована на работу с объектами: командлеты и функции получают их на входе и возвращают на выходе, а доступные в интерактивном режиме и в сценариях типы переменных базируются на классах .NET. В четвертой статье цикла мы изучим работу с объектами более детально.
      Читать дальше →
    • Еще раз про Oracle standby

      Представим себе ситуацию, когда наш проект, использующий в качестве СУБД Oracle, неожиданно (или с надеждой ожидаемо) стал критически важным для бизнеса (соответственно, появилась готовность выделять средства на обеспечение надежности системы).
      До этого момента мы вполне обходились ежедневным или даже еженедельным бэкапом («горячим» или «холодным» копированием, а может и просто экспортом данных) и нас устраивало время восстановления системы порядка суток (будем считать, что данных у нас на пару терабайт).
      И вот оказалось, что на восстановление системы нам отводится не более часа, и никакие данные нам терять нельзя.
      Итак, все указывает на то, что нам придется поднимать standby сервер.
      В принципе, большая часть из того, о чем говорится в этой статье, описано в «Oracle Data Guard Concepts and Administartion», а также в куче мест на просторах Сети, но, по большей части, это инструкции, содержащие последовательность команд, без особого описания их смысла и, главное, без рекомендаций, что делать, если что-то идет не так.
      Я постараюсь описать процесс развертывания физической standby базы максимально подробно с указанием тех грабель на которые когда-либо натыкался.
      Указание на случайно не обнаруженные мной проблемы, а также любые уточнения и дополнения всячески приветствуются.
      Читать дальше →
    • Утки, Таиланд и T-SQL… или что может подстерегать программистов при работе с SQL Server?

      • Tutorial

      Все начиналось довольно обыденно… Зачитывался Рихтером и усиленно штудировал Шилдта. Думал, что буду заниматься разработкой под .NET, но судьба на первом месяце работы распорядилась иначе. Один из сотрудников неожиданно покинул проект и во вновь образовавшуюся дыру докинули свежего людского материала. Именно тогда и началось мое знакомство с SQL Server.

      С тех пор прошло чуть меньше 6 лет и вспомнить можно многое…

      Про бывшего клиента Джозефа из Англии, который переосмыслил жизнь, за время отпуска в Таиланде, и в моем скайпе стал подписываться Жозефиной. Про веселых соседей по офису, с которыми приходилось сидеть в одной комнате: один страдал от аллергии на свежий воздух, а другой маялся от неразделенной любви к С++ дополняя это аллергией на солнечный свет. Один раз по команде свыше пришлось на время стать Александром отцом двух детей, чтобы изображать из себя обросшего скилами сениора по JS.
      Подробнее
    • Гипер-конвергентное решение – FusionCube и FusionSphere Openstack для провайдера облачной услуги



        Продолжаем публиковать материалы форума Облачные технологии в России, который наша компания вместе с технологическим партнером HUAWEI провели 23 июня в LOTTE HOTEL MOSCOW. Первые три части вы можете прочитать здесь: часть I, часть II, часть III. Сегодня представляем читателям интересный доклад Дениса Дубинина на тему современных инструментов создания облачных решений.
        Читать дальше →
      • Наш путь к централизованному хранению логов

          Приветствую всех! Я работаю системным инженером в компании «Онланта». На одном из наших проектов я занимался внедрением и сопровождением Elastic Stack. Мы прошли путь от сбора логов фактически вручную до централизованного, автоматизированного процесса. Вот уже два года мы практически не меняем архитектуру решения и планируем использовать удобный инструмент в других проектах. Нашей историей его внедрения, а также некоторыми сильными и слабыми сторонами делюсь с вами в этом посте.

          Источник
          Читать дальше →
        • Бюджетный «датацентр» на Nutanix CE



            Читающие наш блог не первый месяц знают, что год назад мы выпустили специальную версию ПО Nutanix, Nutanix Community Edition, который, в отличие от наших «взрослых» систем, продающихся вместе с аппаратной платформой, и стоящих довольно увесистых денег, можно скачать бесплатно, установить на свое железо подходящей конфигурации, и пользоваться. Да, на получившееся нет нашей классной (и даже русскоязычной!) поддержки (только наш англоязычный community-форум, впрочем, довольно активный и помогабельный), зато бесплатно, Карл! И хотя изначально мы планировали, что CE будет применяться в качестве учебной лабы, для экспериментов, знакомства с продуктом, и тому подобного, не секрет, что есть немало пользователей, которые решили взять CE и применить его в продакшне. Что-ж, это возможно, мы понимаем, времена для IT бюджетов в стране тяжелые, глупо было бы отказываться от такой возможности.
            Но остается вопрос: как и из чего построить «идеальную платформу» под Nutanix CE, да так, чтобы и денег зря не потратить, и получить на выходе то, на что будет не страшно поставить продакшновые задачи. Поэтому в этой статье я попробую спроектировать такую dream-платформу под Nutanix CE с прикидкой на использование ее не в домашней лабе (о таком варианте я уже недавно писал в своем блоге), а для более или менее «боевых» задач.

            Что-ж, начнем. Строить нашу «боевую» платформу под Nutanix CE мы будем вокруг материнской платы хорошо известной «в узких кругах» серверных сборщиков компании SuperMicro, наверное, самого именитого и популярного из вендоров Tier-2 разработчика серверных платформ.
            Читать дальше →
          • Наш опыт знакомства с Docker

              Вместо предисловия





              Сегодня приснился сон, как-будто меня ужали до размера нескольких
              килобайт, засунули в какой-то сокет и запустили в контейнере.
              Выделили транспорт в оверлейной сети и пустили
              тестировать сервисы в других контейнерах…
              Пока не сделали docker rm


              Не так давно мне посчастливилось стать членом очень крутой команды
              Centos-admin.ru, в которой я познакомился с такими же, как я: единомышленниками со страстью к новым технологиям, энтузиастами и просто отличными парнями. И вот, уже на второй рабочий день меня с коллегой посадили работать над одним проектом, в котором требовалось «докерировать всё, что можно докеризировать» и было критически важно обеспечить высокую доступность сервисов.

              Скажу сразу, что до этого я был обычным комнатным Linux-админом: мерился аптаймами, апт-гет-инсталлил пакеты, правил конфиги, перезапускал сервисы, тайлил логи. В общем, не имел особо выдающихся практических навыков, совершенно ничего не знал о концепции The Pets vs. Cattle, практически не был знаком с Docker и вообще очень слабо представлял, какие широкие возможности он скрывает. А из инструментов автоматизации использовал лишь ansible для настройки серверов и различные bash-скрипты.

              Читать дальше →
            • Docker: Окружение для тестирования



                Последние пять лет принесли в нашу жизнь огромное количество технологий, с помощью которых можно быстро создавать изолированные окружения для разработки и тестирования. Но не смотря на это, организовать стабильное окружение для тестирования — далеко не самая простая задача. А если нужно тестировать сетевые взаимодействия компонентов и анализировать предельный уровень нагрузки на них, то задача становится еще сложнее. Добавив возможность быстрого развертывания окружения и гибкой настройки отдельных компонентов, мы сможем получить небольшой интересный проект.
                В этой статье мы подробно расскажем о создании окружения на базе Docker контейнеров для тестирования нашего клиент-серверного приложения. При этом, если смотреть глобально, то данная статья будет хорошей иллюстрацией использования Docker и его ближайшей экосистемы.
                Читать дальше →
                • +17
                • 64.8k
                • 3
              • Интеграция containerd с Kubernetes, заменяющая Docker, готова к production

                • Translation


                Прим. перев.: Мы уже не раз писали о containerd и других исполняемых средах для Kubernetes. Новая публикация — перевод недавнего анонса важной вехи в развитии containerd, опубликованного в официальном блоге проекта Kubernetes. Текст написан сотрудниками компаний Google и IBM, которые (конечно, вместе с Docker Inc) вносят значительный вклад в совершенствование containerd.

                Ранее в блоге — в заметке Containerd Brings More Container Runtime Options for Kubernetes — мы представляли альфа-версию интеграции containerd с Kubernetes. Очередные 6 месяцев разработки привели к тому, что интеграция стала общедоступной! Это означает, что теперь вы можете использовать containerd 1.1 в качестве исполняемой среды для контейнеров в Kubernetes-кластерах в production.

                Containerd 1.1 работает с Kubernetes версии 1.10 и выше, поддерживает все возможности Kubernetes. В инфраструктуре тестов Kubernetes покрытие тестами интеграции с containerd на Google Cloud Platform стало таким же, что и у интеграции с Docker (см. test dashboard).
                Читать дальше →
                • +28
                • 15.6k
                • 2
              • How-to: Разворачиваем Oracle Real Application Cluster 11g на VirtualBox



                1. Предыстория


                Наша компания занимается серийным выпуском техники сугубо мирного назначения и вся сопутствующая информация с производства пишется в БД Oracle, которая располагается на виртуальном сервере под управлением VMware ESX. И вроде бы все налажено, конвейер работает, данные пишутся, идет отгрузка готовой продукции.

                Но стойка, на которой кроме сервера БД, базируется еще куча каких-то непонятных серверов, имеет удивительное свойство иногда падать. Да и с самой БД в один прекрасный момент может произойти все, что угодно. Конечно, первым делом на ум приходит грамотная организация резервного копирования БД или создание спапшотов VMware. Однако, все эти действия, в случае отказа оборудования, не позволяют обеспечить непрерывную работу БД и всего конвейера соответственно. В общем, захотелось опробовать другие решения.

                Когда в IT-отделе в очередной раз проводилось собрание по данной проблеме, было решено опробовать идею поднять Oracle Real Application Cluster и развернуть на нем производственную БД. Проблема заключалась лишь в том, что никто на тот момент не знал, как это делается.

                Пред тем, как закупать железо и разворачивать новые сервера, было решено опробовать выбранную технологию локально, используя VM VirtualBox. После нескольких недель, плавно перешедших в месяцы, поиска и переваривания необходимой как воздух информации, кластер наконец-то был запущен, и можно было приступать к первым тестам. И так, всем, кто хочет поднять n-нодовый (n>=2) кластер, добро пожаловать под кат.
                Читать дальше →
              • Лучшие англоязычные доклады с HighLoad++ 2017

                  В продолжение "разбора полетов" с HighLoad++ 2017 мы подготовили небольшой обзор пяти лучших (по мнению участников конференции) англоязычных докладов.

                  Наивысших оценок удостоились темы, касающиеся использования ProxySQL (в ТОП-5 попало целых два доклада об этом инструменте), тестирования приложений в публичном облаке Amazon, а также принципы логгирования в масштабах, когда это становится проблемой, и мониторинг Apache Kafka.



                  Видеозаписи всех докладов HighLoad++ 2017 мы только что выложили в свободный доступ. Полный список из 150 докладов на нашем YouTube-канале в этом плей-листе.

                  Кроме этого плейлиста в канале несколько сотен видео по базам данных, архитектурам, масштабированию, очередям, машинному обучению и другим highload-премудростям :)
                  Читать дальше →
                  • +37
                  • 5.3k
                  • 2
                • Мониторинг докер-хостов, контейнеров и контейнерных служб

                  • Translation
                  • Tutorial

                  Я искал self-hosted мониторинговое решение с открытым кодом, которое может предоставить хранилище метрик, визуализацию и оповещение для физических серверов, виртуальных машин, контейнеров и сервисов, действующих внутри контейнеров. Опробовав Elastic Beats, Graphite и Prometheus, я остановился на Prometheus. В первую очередь меня привлекли поддержка многомерных метрик и несложный в овладении язык запросов. Возможность использования одного и того же языка для графических изображений и уведомления сильно упрощает задачу мониторинга. Prometheus осуществляет тестирование по методу как черного, так и белого ящика, это означает, что вы можете тестировать инфраструктуру, а также контролировать внутреннее состояние своих приложений.


                  Читать дальше →
                • Работа с потоком логов в реальном времени с помощью Heka. Опыт Яндекс.Денег

                    image alt text


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


                    Система построена на базе стека EHK (Elasticsearch/Heka/Kibana), с прицелом на работу практически в реальном времени. Особый упор сделаю на тонкие места и нюансы обработки миллиардов строк текста в сутки.

                    Приступим к суровому hands-on
                  • Система сбора, анализа, уведомлений и визуализации логов на syslog-ng, elasticsearch, kibana, grafana, elasticalert

                    • Tutorial

                    image


                    Что мы получим после этой статьи:


                    Систему сбора и анализа логов на syslog-ng, elasticsearch в качестве хранилища данных, kibana и grafana в качестве систем визуализации данных, kibana для удобного поиска по логам, elasticalert для отправки уведомлений по событиям. Приготовьтесь, туториал объемный.


                    Какие логи будем собирать:


                    • все системные логи разложенные по индексам в зависимости от их facility(auth,syslog,messages и т.д.);
                    • логи nginx — access и error;
                    • логи pm2;
                    • и др.

                    Обоснование выбора системы


                    Почему я выбрал связку с syslog-ng в качестве отправителя, парсера и приемщика логов? Да потому что он очень быстрый, надежный, не требовательный к ресурсам(да да — logstash в качестве агентов на серверах и виртуальных машинах просто убожество в плане пожирания ресурсов и требованием java), с внятным синтаксисом конфигов(вы видели rsyslog? — это тихий ужас), с широкими возможностями — парсинг, фильтрация, большое количество хранилищ данных(postgresql,mysql,elasticsearch,files и т.д.), буферизация(upd не поддерживает буферизацию), сторонние модули и другие фишки.


                    Требования:


                    • Ubuntu 16.04 или debian 8-9;
                    • vm для развертывания;
                    • Прямые руки.

                    Приступим или добро пожаловать под кат

                    Читать дальше →
                  • Я устал принимать платежи через WebView. Что мне делать?

                      Я езжу в офис на электричке — нужно проехать одну станцию, и я буду почти на месте.

                      Каждое утро покупаю билеты на поезд в приложении и страдаю. Там дешевле, но разница в цене не окупает мою боль, когда я прохожу эти три минуты стресса. Даже не упоминая время загрузки каждого из пяти экранов приложения, нельзя не сказать про банковские WebView с сохранённой картой, ввод кода из смс на бегу и неожиданные сбои в работе.

                      Это когда ты бежишь на поезд, а тебе говорят «Что-то пошло не так» и списывают деньги, а билет не дают. Возврат приходит тут же, но поезд-то уже ушел. Такое происходит пару раз в месяц, вне зависимости от качества интернета. Ни о каких -пэях и говорить не приходится.



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


                        Начало истории вы можете вспомнить в первой статье, я же кратко напомню, что происходит.

                        Все началось с перевода монолитных приложений на микросервисы, когда налаженный процесс накатки новых релизов на тестовую среду начал сбоить из-за резко возросшей «детализации». Чтобы разработчики не ссорились из-за общих тестовых стендов и все работало быстро и гладко, мы запустили проект автоматизации.


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

                        с новыми подробностями
                      • NewSQL: SQL никуда не уходит

                          Tренду NoSQL уже почти 10 лет, и можно смело делать какие-то выводы и обобщения. Этим и займемся, поговорим про развитие NoSQL.

                          Вспомним, как родился NoSQL. Посмотрим, что в нем хорошо, а что плохо, и что выдержало испытание временем. Разберем возможности, которые уже есть в SQL, и которые теперь появляются в NoSQL СУБД. Выделим уникальные ценности NoSQL, и заглянем чуть-чуть вперед в то, что на рынке будет завтра.

                          А поможет нам в этом Константин Осипов (@kostja) — разработчик и архитектор СУБД Tarantool, который в своем докладе на РИТ++ 2017 говорил про тренды NewSQL, ведь архитектору полагается понимать, что происходит в мире баз данных, чтобы, как минимум, не изобретать велосипед.


                          О спикере: Сейчас Константин Осипов работает над Tarantool, но ранее участвовал в разработке MySQL, и, когда Константин начинал работу над новой базой данных, его очень смущало, зачем это делать вообще, зачем нужна очередная база данных. В частности, отношение к NoSQL было очень скептическим, как к «недоSQL».

                          Однако, развитие продолжается, некоторые изначальные принципы отмирают, и, в то же время, NoSQL базы перенимают возможности от классического SQL. На основании результатов этих нескольких лет бурной трансформации вполне можно подвести промежуточные итоги и позволить себе сделать несколько предсказаний на будущее.
                          Читать дальше →
                        • Что технарю нужно знать о гуманитариях?



                            Начнем с того, что разделение на физиков и лириков придумали в 60ые для смеха, типа западников и славянофилов, или патриотов и либералов, спартак или динамо — классическая “двухпартийная система” наглядно показанная в серии Южного Парка про клизму и бутерброд. Еще древние римляне называли этот принцип “разделяй и властвуй”.

                            В итоге разным командам дали разные книжки, а про чужие говорили «скучно, вам не понять, да и понимать НЕ НАДО», а понять меж тем легко, главное посмотреть сквозь другие очки, сменить парадигму. Ведь ни одна из парадигм не истина, а вот бинокулярное зрение сильно облегчает жизнь. А тут, дали людям разные очки, одним плюс, другим минус, гуманитариям шестеренок в часах не рассмотреть, а для технарей через 200 метров вся природа абстракция.

                            Но вот вам, друзья, золотой ключик открывающий миры — три книги с отлично структурированной инфой по гуманитарным наукам. Этих трех точно будет достаточно, что бы технарю понять основные гуманитарные законы и начать видеть, как это устроено на уровне механики.

                            Читать дальше →
                          • Поняв Docker

                              Если вы еще никогда не поддерживали чужие приложения, или пусть даже свои, но таких размеров, что уже не помещаются в одной голове, то прошу вас расслабиться, откинуться на спинку кресла и воспринимать прочитанное как поучительную сказку с надуманными проблемами, забавным сюжетом и очевидным счастливым концом. В противном случае, если реальный боевой опыт у вас имеется, добро пожаловать в ад, но с IDDQD и IDKFA.


                              К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!


                              UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker'ы» в тексте. Селяви.


                              Что мы имеем сегодня


                              • Зоопарк дубовых VPS-хостингов.
                              • Дорогие IaaS и PaaS с гарантированным vendor lock in.
                              • Уникальные сервера-снежинки.
                              • Ворох устаревших зависимостей на неподдерживаемой операционке.
                              • Скрытые связи частей приложения.
                              • Незаменимый админ полубог на скейтборде.
                              • Радуга окружений: development, testing, integration, staging, production.
                              • Генерация конфигов для системы управления конфигами.
                              • Feature flagging.
                              docker run docker
                            • Архитектура платежной системы. Банальности, проверенные опытом

                                Главное в платежной системе — взять денежки, перевести записи из одной таблички в ту же самую табличку со знаком «минус». Звучит не очень сложно, пока не пришли юристы. Платежные системы во всем мире облагаются огромным количеством всевозможных отягощений и указаний. Поэтому в рамках разработки платежной системы приходится все время балансировать на грани между тяжелым enterprise и вполне нормальным масштабируемым web-приложением.

                                Под катом рассказ Филиппа Дельгядо (dph) на Highload++ про опыт, накопившийся за несколько лет работы над платежной системой для российского легального букмекерского бизнеса, про ошибки, но и про некоторые достижения, и про то, как грамотно смешать, но не взбалтывать, web с enterprise.


                                Читать дальше →