Знакомство с Consul

consul

Давно хотелось написать в своем блоге об одном из основных продуктов HashiCorp — Consul. Пожалуй, это один из ключевых программных продуктов для HashiCorp. Он обеспечивает регистрацию, дерегистрацию и хранение информации о работающих IT сервисах в сети организации. Также он представляет собой хранилище KeyValue данных. Такая своеобразная СУБД вкупе с доступом к ней через протокол HTTP делает Consul эффективным инструментом в современной IT инфраструктуре. Большинство остальных продуктов HashiCorp может использовать Consul в качестве бекэнда для хранения своей информации. Это касается и Terraform, и Vault, и Nomad. Получается своеобразная кооперация, дающая возможность организовать отказоустойчивость и распределенность продуктов HashiCorp. При этом аналогичная методика может быть применена и использована в сторонних программных продуктах для организации хранения информации.

Сразу же хотелось бы обозначить сферу применения Consul. Как бы он хорош не был — далеко не всем он будет нужен или принесет заметную пользу. Данный программный продукт будет наиболее интересен тем, кто использует в своей инфраструктуре микросервисную архитектуру, а также удобным, как писал выше, в сочетании с прочими продуктами HashiCorp. Функционал Service Discovery, который является основным в работе Consul, используется во многих IT компаниях, ориентированных на предоставление Highload сервисов. Если же Ваша организация занимается эксплуатацией стандартных покупных IT решений, либо IT сервисов, базирующихся на монолитной архитектуре, то скорее всего программное обеспечение Consul будет не актуальным для Вас.

Читать далее «Знакомство с Consul»

Личный опыт на udemy.com

https://www.youtube.com/watch?v=2vhMateHR1k

Целью этого блога изначально было освещение возможностей образования и прокачивания навыков в области IT. Я стараюсь постоянно писать о тех или иных аспектах просвещения. Давно хотел рассказать о сайте udemy.com, который собрал у себя огромное множество курсов по информационным технологиям, да и не только по ним. В середине декабря 2019 года приобрел по очень хорошей скидке тренинг «AWS Certified DevOps Engineer: Get 3 Certifications 2020«. Курс на английском языке и подразумевает хорошее его знание. Заострять внимание здесь на необходимость понимания английского в IT не буду. Большая часть курсов на Udemy представлена именно на английском. В силу разных причин полностью пройти курс мне удалось только в апреле 2020 года. После прохождения обучения по нему мне захотилось поделиться со своей аудиторией впечатлениями от udemy и конкретного курса. Результатом получился небольшой ролик на youtube.com, который и представлен в этой статье. Для меня создание видео на базе скринкастинга оказалось не такой простой задачей и поставило массу интересных задач.

Читать далее «Личный опыт на udemy.com»

Сила инвентаря и переменных в Ansible


Хотелось бы поговорить в этой статье о такой важной составляющей в работе системы управления Ansible, как файлы инвентаря и соответствующие переменные. Большая часть логики в работе Ansible содержится в соответствующих ролях, которые несут основную нагрузку при выполнении плейбуков. Но для полноценного понимания, как работает Ansible, необходимы знания о правильной настройке инвентаря и переменных для групп и конкретных хостов. С помощью правильно настроенных переменных мы можем направлять выполнение ролей в том или ином направлении. Это позволяет сделать Ansible чрезвычайно гибким и мобильным, а создаваемые роли более универсальными. Хороший пример, где без этого просто не обойтись — установка и настройка различного рода кластерного программного обеспечения. Как правило, в кластере есть сервер, выполняющий Master роль, и прочие сервера, что требует небольшого различия в проводимых настройках. Также, зачастую, различные сервера требует различных конфигураций в настройках одного и того же софта.

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

Читать далее «Сила инвентаря и переменных в Ansible»

Базовая настройка сервера с помощью Ansible


Если раньше при установке любого сервера приходилось делать достаточно много рутинной работы по базовой настройке ручками. Теперь с помощью ролей Ansible или похожих инструментов эти задачи сводятся к минимуму с точки зрения затрат времени и усилий. Многие считают, что использование Ansible — это прерогатива DevOps инженеров. С моей точки зрения, на сегодняшний день это базовый инструмент, который должен быть в арсенале любого IT специалиста. Как установить нужные пакеты в операционной системе Linux, а также как сделать базовые настройки в ней с помощью Ansible покажу на примере, который я постоянно использую в реальной жизни. Сама роль из данного примера предельно простая. Этот код может служить в том числе и для учебных целей. С помощью нее можно начать создавать свои собственные конструкции в процессе обучения системе управления конфигурациями Ansible.

В своем блоге уже несколько раз поднимал тему Ansible. Это были статьи — Разворачиваем Django с Ansible, а также Тестируем Ansible роли с Molecule. В них мы рассмотрели практические аспекты использования Ansible, а также его вспомогательные инструменты. Автоматизация задач по администрированию и развертыванию настолько плотно входит в работу ITшников, что использование функционала Ansible становится рутинной процедурой. Давно уже сам для себя решил, что буду выкладывать в общий доступ на GitHub свои личные наработки. Начну с этой Ansible роли, которая доступна по ссылке — https://github.com/andreyuzb/ansiblerole-linux-common. Дальше по тексту мы разберем ее функционал, а также то, как работает сам Ansible при этом.

Читать далее «Базовая настройка сервера с помощью Ansible»

VMware и terraform

terraform

Если публичные облака в нашей стране используют далеко не все организации в своей работе, то кластеры под управлением VMware работают практически в каждой более или менее серьезной организации. И точно так же, как и при использовании публичных облаков, в крупных развертываниях в локальном виртуальном окружении подход IaaC крайне продуктивен и полезен. Утилита от hashicorp terraform так же эффективно работает с виртуальной инфраструктурой, как и с облачной. Писал в своем блоге уже статью о Terraform — Автоматизируем облако с Terraform. Там мы рассмотрели, как автоматизировать создание нужной инфраструктуры публичных сервисов AWS с помощью Terraform. Теперь хотелось бы показать, что можно делать аналогичные действия с виртуальными машинами в кластере VMware vCenter.

Те, кто еще не знаком с IaaC или Infrastructure-as-a-Code, но постоянно работают с системами виртуализации, наверняка задумывались и не раз как ускорить процесс создания, первичной настройки и удаления тех или иных ресурсов. С помощью Terraform можно серьезно сэкономить время на рутинных операциях, а также заметно автоматизировать процесс работы, даже в случаях если Вы не связаны с разработкой ПО. Создание шаблонов виртуальных машин — полезная техника, которая используется системными администраторами давно годами. Добавив к этим шаблонам возможность управлять виртуальной инфраструктурой с помощью кода terraform, Вы получите недостающий «пятый элемент» в пазле менеджмента систем виртуализации.

Читать далее «VMware и terraform»

DevNet — сетевой DevOps от Cisco


DevNet — новое направление в развитии компании Cisco Systems, которое по сути было предсказуемо и находится в тренде того, что происходит в отрасли IT в целом. Мое знакомство с данной темой произошло совсем недавно. Откровенно говоря, я последние годы слабо отслеживал что творится с продуктами Cisco. Об этом я писал в блоге совсем недавно. Поэтому последние несколько недель, которые я посвятил учебным курсам Cisco, были полны открытий для меня. Ранее уже писал заметки о SDN технологиях Cisco — SD-WAN и SD-Access, которые произвели на меня серьезнейшие впечатления. Вместе с технологией для дата центров Cisco ACI — они покрывают самые различные варианты использования программно определяемых сетей. Но в данной статье речь не об этом. Хотелось бы поделиться своими соображениями и знаниями о Cisco DevNet. Что это такое, зачем Cisco выделила это в отдельное направление, которое активно продвигается. А также как все это может пригодиться в работе.

Мое первое знакомство с DevNet началось с онлайн курса — DevNet Associate Fundamentals. Он предназначен для ознакомления на базовом уровне с технологиями DevNet и подготовкой к экзамену DevNet Associate Exam (200-901). Я выбрал этот курс для изучения с основной целью заработать 48 балов в процессе ресертификации. Кроме того, на курс имелась серьезная скидка в стоимости. Получить доступ к нему на месяц можно было всего лишь за 99 USD. Если сравнить с другими курсами Cisco, который стоят тысячи долларов, то можно понять насколько он выгоден с экономической точки зрения. Да и мне самому давно была интересна эта тема. Я немного слышал о ней до этого и знал, что в целом DevNet — это свеобразный DevOps для продуктов Cisco. Последний год мне очень близка тема DevOps, и узнать получше как это работает у Cisco не помешает, посчитал я.

Читать далее «DevNet — сетевой DevOps от Cisco»

Разворачиваем контейнеры в Kubernetes


Как работать с Kubernetes — вопрос, который волнует многих. Система оркестрации контейнеров Docker под названием Kubernetes прочно вошла в инфраструктуру серьезных приложений. Именно с помощью нее можно максимально автоматизировать процесс развертывания и обновления приложений. Родившаяся в недрах компании Google, данная система управления стала де-факто стандартом по всему миру. Да есть и другие варианты менеджмента и создания кластера работающих контейнеров Docker. Но именно Kubernetes справляется с этой задачей лучше всего. Его многие сравнивают с системой виртуализации VMware и ее системой управления vCenter. То, что делает VMware для виртуализации операционных систем, делает Kubernetes для контейнеров Docker. Как запустить нужные контейнеры в кубере и сделать их доступными снаружи кластера попробую осветить в данной статье.

Ранее в своем блоге уже не раз затрагивал тематику работы с контейнерами Docker. В частности, в статьях — Используем Docker для python приложения, Docker-сompose на практике. Как Вы понимаете с контейнерами Docker можно работать напрямую через утилиту docker, или через дополнительные различные сторонние графические интерфейсы. Но также можно задействовать и тяжелую артиллерию, каковой в данном контексте является Kubernetes. Порог входа при этом для начала использования кубера довольно высокий. Нужно не просто знать и понимать, как работают контейнеры, но также и вникнуть во множество специфичных фишек кубера. Это и поды, и ReplicaSet, и различные виды балансировки нагрузки, и многое другое. Сейчас хотелось бы не заморачиваясь во все нюансы, показать как развернуть Docker контейнер в кубере.

Читать далее «Разворачиваем контейнеры в Kubernetes»

GitHub — наше все

GitHub img

Глобальный репозитарий кода GitHub стал своеобразной копилкой знаний для всех, кто связан с IT темой. В нем можно найти практически любое возможное решение проблем, относящихся к программированию и конфигурированию компьютерных систем. Философия Open Source в современном мире во много распространяется благодаря именно этому инструменту. Каждый из нас постоянно каждый день пользуется различными опенсорс продуктами. И наверняка многие задумываются о том, что, беря из «колодца», надо и отдавать что-то обратно взамен. Я с такими мыслями существую уже не один год. Если добавить к этому, что в идеале хорошо бы постоянно использовать принцип работы, при котором репозитарий Git задействуется при взаимодействии с программным кодом или конфигурациями. И тогда становится понятным, что привычка кодить с Git-ом должна быть у профессиональных ITшников на кончиках пальцев.

Кроме того в последнее время Git Hub стал своеобразным стандартом в области высоких технологий, который показывает, что тот или иной человек может сделать с IT инструментами. Зачастую на собеседованиях при приеме на работу просят показать свои репозитарии на GitHub. И то, что там содержится, может говорить гораздо больше о специалисте, чем резюме на 10 листах. Если же Вы позиционируете себя как профессиональный программист или что-то около того, то коллекция репозитариев на данном сайте просто MUST HAVE для Вас. Вообщем, хотите показать себя в современном мире IT, а также быть полезными этому миру — выкладывайте свои работы на Git Hub.

Читать далее «GitHub — наше все»

Docker-сompose на практике

docker compose img

Чем больше Вы работаете с Docker, тем чаще испытываете необходимость запускать одновременно сразу несколько контейнеров в связке. Это позволяет обеспечить работоспособность приложений, требующих нескольких компонентов для своего функционирования. Банальный пример, который иллюстрирует часто встречающую связку из реальной жизни — nginx, php-fpm и mysql. Как правило, современные веб приложения в минимальной конфигурации требуют СУБД — mysql, поддержку PHP, и возможность отдачи через веб сервер. Данную связку легко поднять с помощью 3 контейнеров, каждый из которых будет выполнять свой процесс. Так контейнер с nginx будет взаимодействовать с пользователями, контейнер с php-fpm обрабатываь PHP скрипты, а контейнер с mysql хранить информацию. Сами скрипты PHP и вспомогательные файлы приложения могут спокойно храниться на сервере, где работает Docker. С помощью Docker-compose проблема работы такой связки решается легко и эффективно.

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

Читать далее «Docker-сompose на практике»

Используем Docker для python приложения

docker img

Технология контейнеризации Docker — своеобразная священная корова последних лет в области Информационных Технологий. Именно с помощью Docker и различных систем управления для контейнеров получается реализовать самые высоконагруженные системы в мире. Также заметно упрощается процесс разработки приложений. В свое время уже писал в блоге статью из этой области — Docker в повседневной работе ITшника. Сейчас хотелось бы немного больше осветить практическую часть вопроса. А именно способ запуска python приложения в Docker контейнере на сервере. При этом подразумевается, что Вы не используете инфраструктуру наподобие Kubernetes или его аналогов, а просто хотите по мере необходимости использовать контейнеры от случая к случаю. Частенько бывает ситуация, что сервер для различных задач задействует возможности Python v2. При этом есть существенная необходимость запускать приложения, написанные на Python v3. Использование Docker позволяет элегантно решить эту задачу.

По большому счету для того, чтобы ощутить всю прелесть преимуществ использования Docker нужна хорошая система оркестрации. Именно при полной декомпозиции программных приложений под Docker с использованием систем управления мы получим отличное масштабирование, фишки CI/CD, отказоустойчивость. В данном примере всего этого у нас не будет. Мы будем разворачивать наше контейнеризированное приложение напрямую в операционной системе Linux. Это будет своеобразным примером, который позволит понять с практической точки зрения как же на самом деле работает Docker в реальной жизни.

Читать далее «Используем Docker для python приложения»