• Основы DevOps. Вхождение в проект с нуля

      В ноябре 2018 года в ЛитРес создали отдел информационного обеспечения и пригласили руководить Андрея Юмашева. Последний год отдел помогает компании работать и развиваться и держит под контролем всю инфраструктуру. Но так было не всегда. Перед тем, как наладить работу, Андрей столкнулся с руинами: полуживой Nagios, условно живой Cacti и коматозный Puppet, мертвая Вики на 120 страниц, несвязные таблицы с задачами и списком железа, устаревшая архитектура, 340 бездействующих ядер, 2 Тбайта оперативной памяти и 17 Тбайт дискового пространства, которые почему-то не были записаны в инвентарных таблицах. Планы, которые не работают, сроки, которые срываются, рабочее окружение и инструменты, которых нет — все это ждало Андрея в новом проекте.



      На DevOpsConf 2019 Андрей выступил с докладом, в котором на живых примерах показал, что стоит, а что не стоит делать, когда входишь в проект, которого еще не видел или плохо знаешь. Под катом дополненная версия рассказа — как правильно анализировать спектр проблем и выстроить план деятельности, как правильно рассчитать KPI и когда следует вовремя остановиться.
      Читать дальше →
    • Как выстроить процессы и перестать издеваться над командой

        Всем привет! Сегодня хотел поговорить о процессах разработки. По мере роста компании не только развивается сам бизнес, но и копятся проблемы внутри, в частности в процессе разработки. Часто их пытаются решить внедрением каких-то практик и новомодных методологий. Увы, это насильное перестраивание процесса по книжкам и тренингам нередко это приводит к ещё большим проблемам — издевательству над людьми.

        Недавно я выступал на конференции Saint TeamLead Conf 2019, в докладе я рассказал о том, как смог найти ряд проблем в рабочем процессе и потом постепенно поборол их. Здесь я постараюсь описать наиболее ценные практики, которые мне помогли не только наладить рабочий процесс, но и перестать издеваться над разработчиками. У сотрудников изменилось отношение к компании в целом и рабочему процессу.
        Читать дальше →
      • Менеджмент памяти или как реже стрелять себе в ногу

        Привет, Хабр! В этой статье я попытаюсь рассказать, что из себя представляет менеджмент памяти в программах/приложениях с точки зрения прикладного программиста. Это не исчерпывающее руководство или мануал, а просто обзор существующих проблем и некоторых подходов к их решению.


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


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



        Невозможно все держать в памяти. Но если не успел подгрузить, то получишь мыло

        Читать дальше →
      • Вывод Jira из состояния помойки, с чего начать

          Вдруг мы понимаем, что Jira превратилась в помойку. Каждый второй РП настраивал Jira как ему было удобнее бесконтрольно. А когда проект начал гореть, начал тушить пожары вручную, оставляя задачи в трекере в каком-то состоянии, далеком от завершения. Если в проекте создан полноценный CI/CD, то большая часть задач на разработку будет в правильном финальном статусе, но остальные…

          Часть проектов заморозилась, часть отвалилась, РП выгнали, но задачи в Jira не почистили. У вас на руках 10-20 идущих “проектов” и нужно быстро понять где больше болит.

          Сопоставив опыт участников посиделок КиФБ (клуб имени Фрэнсиса Бекона) в решении этой задачи, мы представили этот опыт в записанном виде (за что спасибо всем участникам).
          Читать дальше →
        • Работа в IT, управление проектами, регулирование ПД и разработка в облаке: мегадайджест от 1cloud.ru

            Это — наши лучшие хабратопики. Здесь вы найдете материалы об истории Linux, обсуждение стоп-фраз для PM'ов и зарплат разработчиков плюс — большую фотоэкскурсию по нашему облаку.

            Читать дальше →
            • +13
            • 2.8k
            • 1
          • Разработчик хочет уйти в стартап. Что делать работодателю?

            Обыкновенная история. Но не самая простая


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

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

            В первую очередь, вспомним: идеи не охраняются авторским правом. Охране подлежит их реализация в виде созданных продуктов: текст, исходный код, картинка.
            С разработками проще. Работодателю достаточно выстроить стройную систему управления объектами интеллектуальной собственности в компании, чтобы спать спокойно и при возникновении спора не пытаться оформить доказательства задним числом.
            Читать дальше →
          • Первые полгода в роли тимлида: как не сойти с ума, если кажется, что все плохо



              Первый квартал внутренний критик и синдром самозванца были моими двумя лучшими друзьями. Я с ними общалась каждый день. Систематически. И просто не могла расслабиться. Считала, что недостаточно сделала, недостаточно взяла задач, недостаточно хороша и вообще…

              Мне казалось, что я должна быть супертимлидом с первого дня

              Читать дальше →
            • Чему я научилась за 6 лет, помогая стартапам расти

              Эта статья — перевод моего оригинального поста на Medium, набравшего более 150 'upvotes' на Reddit за первые сутки после публикации. В ней я рассказываю о том, что нужно знать основателю стартапа о маркетинге (особенно если тем, кто пришел в стартапы с техническим бэкграундом).
              Читать дальше →
              • –9
              • 3.1k
              • 8
            • iFest в Нижнем Новгороде: IT впечатляет

                Пока половина айтишного мира субботним утром отсыпалась за рабочую неделю, 2000 человек собрались в нижегородском технопарке Анкудиновка, чтобы погрузиться в iFest — IT-фестиваль с очевидным акцентом на искусственный интеллект и нейросети. Туда же отправилась наша скромная команда в составе меня, ноутбука, телефона и боевой зеркалки Canon 550 D, чтобы к вечеру понедельника выпустить субъективный, но честный рассказ о фестивале для читателей Хабра. Есть что рассказать, есть что взять на вооружение, есть на каких ошибках поучиться организаторам — потому что было живо, интересно, в прямом смысле динамично. Время пролетело незаметно, мысли и эмоции остались. Ну что, пойдёмте со мной под кат — расскажу, как оно было. 



                Всех смущала перевёрнутая клавиатура, на которой «печатал» Сеньор, но походу это он просто вылез из экрана ноутбука и потянул руки к зрителю. В любом случае, он был прикольным и встречал гостей у входа.
                Читать дальше →
                • +29
                • 4.8k
                • 6
              • Deploy приложений с помощью Docker Swarm

                  Онлайн рекомендательная система видео-контента, над которой мы работаем, является закрытой коммерческой разработкой и технически представляет собой многокомпонентный кластер из собственных и open source компонентов. Целью написания данной статьи является описание внедрения системы кластеризации docker swarm под staging-площадку, не нарушая сложившийся workflow наших процессов в условиях ограниченного времени. Представленное вашему вниманию повествование разделено на две части. Первая часть описывает CI/CD до использования docker swarm, а вторая — процесс его внедрения. Кто не заинтересован в чтении первой части, может смело переходить ко второй.
                  Читать дальше →
                  • +10
                  • 3.2k
                  • 7
                • О Nutanix, Web-Scale, конвергентных платформах и смене парадигм построения IT инфраструктур

                    Возможно, вы уже слышали достаточно новый для рынка не_онлайн проектов термин — Web-Scale IT, который по мнению Gartner в 2017 году займет не менее 50% рынка корпоративного IT.

                    В этом году — это один из основных модных терминов.

                    Ситуация на корпоративных рынках сейчас активно напоминает фразу про подростковый секс — все говорят что имели (= умеют), но реально — дела обстоят невесело.

                    Буквально каждый вендор рассказывает про BigData, конвергентные решения, перспективы и прочее.

                    Мы в свою очередь смеем надеяться, что у нас с этим реально все весьма неплохо, но тут всегда виднее со стороны и ваше мнение может не совпадать с нашим.

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

                    image

                    Читать дальше →
                  • Пользователи и авторизация RBAC в Kubernetes

                    • Translation
                    Прим. перев.: Продолжая недавно затронутую нами тему безопасности Kubernetes в целом и RBAC — в частности, публикуем перевод этого материала от французского консультанта из международной компании Big Data-компании Adaltas. Автор в деталях показывает, как создавать пользователей, наделять их правами и в дальнейшем обслуживать.

                    Настройка и запуск кластера Kubernetes – это только начало: ведь его необходимо еще и эксплуатировать. Чтобы обезопасить доступ к кластеру, нужно задать идентификационные данные пользователей и грамотно управлять настройками аутентификации и авторизации.

                    (Иллюстрация взята из блога CNCF — прим. перев.)

                    Эта статья посвящена тому, как создавать пользователей, используя клиентские сертификаты X.509, и как управлять авторизацией с помощью базовых API-объектов RBAC в Kubernetes. Мы также поговорим о некоторых открытых проектах, упрощающих администрирование кластера: rakkess, kubectl-who-can, rbac-lookup и RBAC Manager.
                    Читать дальше →
                  • Terraformer — Infrastructure To Code

                      image
                      Хотел бы рассказать про новый CLI tool который я написал для решения одной старой проблемы.

                      Проблема


                      Terraform уже давно стал стандартом в Devops/Cloud/IT сообществе. Вещь очень удобная и полезная чтоб заниматся infrastructure as code. Есть много прелестей в Terraform а так же много вилок, острых ножей и граблей.
                      С Terraform очень удобно делать новые вещи и потом ими управлять, менять или удалять. А что делать тем у кого есть огромная инфраструктура в облаке и не создано через Terraform? Переписывать и пересоздавать все облако как то дорого и небезопасно.
                      Я сталкивался с такой проблемой на 2 работах, самый простой пример когда хочешь что все было в гите виде терраформ файлов, а у тебя 250+ бакетов и писать их для терраформа руками как то много.
                      Есть issue еще с 2014 года в terrafom которую закрыли в 2016 с надеждой что будет import.

                      Вообщем все как на картинке только справа налево
                      Читать дальше →
                    • Сайзинг Elasticsearch



                        — How big a cluster do I need?
                        — Well, it depends… (злобное хихиканье)

                        Elasticsearch — сердце Elastic Stack, в котором происходит вся магия с документами: выдача, приём, обработка и хранение. От правильного количества нод и архитектуры решения зависит его производительность. И цена, кстати, тоже, если ваша подписка Gold или Platinum.

                        Основные характеристики аппаратного обеспечения — это диск (storage), память (memory), процессоры (compute) и сеть (network). Каждый из этих компонентов в ответе за действие, которое Elasticsearch выполняет над документами, это, соответственно, хранение, чтение, вычисления и приём/передача. Поговорим об общих принципах сайзинга и раскроем то самое «it depends». А в конце статьи ссылки на вебинары и статьи по теме. Поехали!
                        Читать дальше →
                      • Как мы переложили управление инфраструктурой на Terraform — и начали жить

                          image
                          У нас было 4 Amazon-аккаунта, 9 VPC и 30 мощнейших девелоперских окружений, стейджей, регрессий — всего более 1000 EC2 instance всех цветов и оттенков. Раз уж начал коллекционировать облачные решения для бизнеса, то надо идти в своем увлечении до конца и продумать, как все это автоматизировать.

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

                          Статья длинная, поэтому запаситесь попкорном чаем и вперед!

                          И еще один нюанс — статья писалась на основе версии 0.11, в свежей 0.12 многое изменилось но основные практики и советы по прежнему актуальны. Вопрос миграции с 0.11 на 0.12 заслуживает отдельной статьи!
                          Читать дальше →
                        • Патентование алгоритмов компьютерных программ

                            Продукты в сфере информационных технологий (далее – ИТ) в общем случае содержат несколько компонентов, правовая охрана которых реализуется разными способами.


                            Архитектура, алгоритмическое решение, аппаратная часть ИТ-продукта и графическая часть интерфейса пользователя охраняются как объекты патентного права.

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

                            Код компьютерных программ, реализующих алгоритм и интерфейс пользователя, регистрируется как объект авторского права (т.е. как литературное произведение), соответственно, в его отношении охраняется только текстовая форма, а не алгоритм. Графическая часть интерфейса пользователя может патентоваться в качестве промышленного образца. При этом регистрация кода компьютерных программ и патентование графической части интерфейса пользователя может рассматриваться, скорее, как вспомогательный инструмент обеспечения правовой охраны в ИТ-индустрии.

                            Наиболее надежным и поэтому основным механизмом защиты интересов разработчика программного обеспечения является патентование алгоритмов компьютерных программ в качестве изобретений.
                            Читать дальше →
                          • Инструмент для управления проектами на базе Google Sheets

                            Некоторое время назад передо мной встал выбор инструмента для управления небольшими проектами по SCRUM-методологии. У меня был довольно большой опыт использования различных инструментов включая Jira, Asana, Trello и проч., но ни один из них не подходил в полной мере для моего проекта: какой-то был чересчур монструозен, а какому-то недоставало важных для меня фич. В итоге пришлось изобретать инструмент самому, на базе Google Sheets.


                            Требования, предъявляемые мною к инструменту, были таковы:
                            Читать дальше →
                          • Управление распределенной командой в режиме многопроектности (обзор и видео доклада)



                              23-24 сентября в Санкт-Петербурге проходила конференция Saint TeamLead Conf 2019. «Флант» принял в ней активное участие: Игорь Цупко (наш директор по неизвестному) провел митап, на котором участники разобрались в способах поиска и выявления тайных знаний внутри организации, а Сергей Гончарук (менеджер проектов) выступил с докладом «Управление распределенной командой в режиме многопроектности». По традиции, мы публикуем обзор доклада и его видео (~37 минут).
                              Читать дальше →
                            • Лёгкое программирование: канбан-доска для GitLab за один рабочий день

                                Рабочий понедельник начался со следующего диалога:

                                Руководитель (P): У тебя в команде не понятно, кто чем занимается.
                                Я (Я): Это да, у нас нет инструмента, который бы отображал общую картину работы над задачами. В гитлабе есть канбан-доски, но они только в контексте проектов и групп. Общая канбан-доска решила бы проблему.
                                Р: Тогда сделай доску.
                                Я: К утру будет готово.

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

                                а) создание механической руки и контроллера к ней, который позволит удалённо переклеивать стикеры на доске, при этом, чтобы не усложнять решение, писать на стикерах нам придётся за нашего недосягаемого коллегу, что несправедливо;
                                б) реализация программной канбан-доски, которая собирала бы все задачи с нашего гитлаба.

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

                                Читать дальше →
                              • Как я провела лето ВКонтакте

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



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