Это Будущее

Добрый день.

Предлагаю вашему вниманию перевод юмористического поста, посвященного облачным технологиям: Это будущее .

Все поправки и советы приветствуются.



Это будущее

Ээт! Привет! Мой босс сказал поговорить с тобой.

Он сказал, что вы много знаете о веб-приложениях.

— Да, сейчас это правда, я больше занимаюсь распределенными системами.

Я только что вернулся с ContainerCamp и GlueCon, а на следующей неделе собираюсь на DockerCon. Действительно впечатлен тем, как развивается бизнес – все становится намного проще и доступнее! Это будущее! Отлично.

Видите ли, я сейчас разрабатываю простое веб-приложение — обычный CRUD на Rails, собираюсь развернуть его на Heroku. Скажите, Heroku еще актуален? - О чем ты говоришь! Нет. Это уже старая школа.

Хероку — труп.

Никто его больше не использует. Теперь вам нужно изучить Docker. Это будущее! О, вот так вот. Ладно, хорошо.

Что это? — Docker — это новый способ контейнеризации.

Это похоже на LXC, но он также включает в себя формат контейнерной упаковки, а также платформу распространения и ряд утилит, упрощающих построение распределенной системы.

Консервация?.

- что? Что за LXE? - LXC Это как chroot на стероидах.

Что за чертовщина? — Понятно.

Смотри.

Докер.

Контейнеризация.

Это будущее.

Это как виртуализация, только быстрее и дешевле.

Ладно, что-то вроде Vagrant. - Нет, Вагрант - труп.

Теперь все готово для использования внутри контейнеров.

Это будущее! Хорошо, теперь мне не нужно ничего знать о виртуализации? - Ну.

Нет, нужно разбираться в виртуализации, потому что.

Контейнеры пока не обеспечивают полную защиту данных приложений.

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

Итак, я как-то заблудился.

Давайте немного отмотаем назад. Итак, существует виртуализация, называемая контейнерами.

Могу ли я использовать это на Heroku? — Ну, Heroku поддерживает Docker, но помните, что я вам говорил.

Хероку — труп.

Вам необходимо запускать контейнеры на CoreOS. Что это? — Это самая крутая хост-ОС, которую можно использовать с Docker. Черт возьми, тебе даже не нужен Docker! Вы просто можете использовать rkt! Ракета? - Нет, ркт. Правильно, Ракета.

- Нет, теперь это называется ркт. Совсем другое дело.

Это альтернативный формат контейнеризации, который является конкурентом Docker. Это выглядит круто? - Конечно, круто.

Компонуемость — это будущее! Вы вообще используете этот ркт? - Я не знаю.

Я не думаю, что кто-то этим пользуется.

Эxxx. Так вы что-то говорили о CoreOS? — Да… Итак, это хост, который вы используете с Docker. Что такое хост? — CoreOS спроектирована для оптимальной работы с контейнерами.

Он настроен для работы с контейнерами.

Работа с контейнерами.

? - Да, у вас что-то есть в контейнерах.

Итак, вы как бы поднимаете такой экземпляр, как Amazon EC2, поднимаете там хост CoreOS, затем запускаете сервис Docker, а затем можете развернуть там образы Docker. Сколько в этом контейнере? - Все это.

Посмотрите, вы берете свое приложение, пишете Dockerfile, создаете локальный образ, а затем отправляете его на любой хост Docker. Ааа, как Хероку? - Нет. не Хероку.

Я говорил тебе, что Хероку — труп.

Вы запускаете собственное облако с помощью Docker. О_о? - Да, это действительно просто.

Читайте о #gifee. Гифи? — GIFEE — это инфраструктура Google для всех остальных.

Вы берете все эти утилиты и стеки технологий, использующие контейнеры, и у вас есть вся эта инфраструктура, как у Google. Почему бы просто не воспользоваться сервисами Google? — А если через полгода все полностью изменится? Хорошо, разве это больше никто не проводит? Мне очень не хочется все это принимать у себя.

— Ну, AmazonECS, но тебе придётся писать какую-то XML-хрень.

Что вы можете сказать об OpenStack? - Фу… Послушайте, я не хочу ничего размещать и поддерживать сам.

- Нет, это действительно просто.

Вы просто настраиваете кластер Kubernetes. Так нужен ли мне кластер? - Кластер Кубернетес.

Он управляет развертыванием всех ваших сервисов.

У меня только одна услуга.

- О чем ты говоришь? Слушайте, у вас есть веб-приложение, верно? Это означает, что у вас должно быть 8-12 сервисов.

Что? Нет! У меня есть одно приложение.

Сервис, блин, плевать! Всего одно чертово приложение! — Нет, посмотрите в сторону микросервисов.

Это будущее.

Вот как мы все сейчас работаем вокруг себя.

Вы берете свое супер-пупер приложение и делите его на 12 сервисов.

По одному на каждую задачу.

Ну это уже слишком.

— Это единственный способ гарантировать надежность конфигурации.

Итак, если ваша служба аутентификации выйдет из строя.

Служба аутентификации? Черт возьми, да, я просто собирался использовать тот же плагин, который использовал много раз раньше! - Супер.

Используй это.

Вынеси это в отдельный проект. Добавьте RestAPI поверх него.

Тогда другие ваши сервисы будут использовать этот API и очень изящно обрабатывать сбои.

Поместите его в контейнер и делайте CI/CD! Как хочешь.

Теперь у меня под рукой десятки неуправляемых сервисов, что дальше? — Да, я говорил о Kubernetes. Это позволяет вам удобно организовывать все ваши сервисы.

Провести оркестровку? - Да! Теперь у вас есть эти сервисы, и они должны быть отказоустойчивыми, поэтому вам нужно запускать несколько копий каждого из ваших сервисов одновременно! И Kubernetes гарантирует вам, что этих копий у вас будет достаточно, они распределены по хостам вашего парка и всегда доступны.

То есть мне нужен флот? - Да, для отказоустойчивости.

Но Kubernetes все сделает за вас.

Кроме того, вы уверены, что Kubernetes будет работать как надо, потому что это сделал Google, а также потому, что он работает поверх etcd. Что такое тдд? — Эта штука сделана на основе РАФТА.

Хорошо, что такое РАФТ? - Это как Паксос.

Боже, насколько глубокой будет эта гребаная кроличья нора, куда мы сейчас направляемся? Я просто хочу запустить одно чертово веб-приложение!!! Ваша мать!!! Ладно, глубокий вдох, выдох.

Ладно, что такое Паксос? — Paxos — это старое семейство распределенных протоколов 70-х годов, которое никто не понимает и не использует. Большой! Я так рада, что ты рассказал мне об этом! Так что же такое Рафт? - Поскольку никто не понимает Паксос.

эээ.

кроме Диего.

О! Так ты его знаешь? — Конечно нет, в CoreOS это работает. В любом случае, Диего предложил Рафта для своей докторской диссертации, потому что.

Паксос был слишком сложным.

Чертовски умный парень.

А потом он написал в качестве реализации etcd и тут Афир сказал, что это действительно не говно, а круто!!! Кто такой Афир? — Афир - ну, это тот самый парень, который написал "Call Me Maybe", ну.

ты же его знаешь, да? «Распределенные системы и БДСМ парень»? Ты только что сказал БДСМ? - Да, БДСМ.

Это Сан-Франциско.

Здесь все увлечены распределенными системами и БДСМ.

И он написал песню Кэти Перри? - Нет, он написал серию статей о том, что каждая база данных не справляется с CAP. Что за КАП? — Теорема о CAP (также известная как теорема Брюера).

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

И все базы данных не справляются с этим CAP? Что, черт возьми, все это значит? «Это значит, что все это отстой».

Как МонгоДБ.

Я думал МонгоДБ горизонтально расширяемый .

- Никто кроме тебя.

ХОРОШО.

Так что там с etcd? — Да, так вот, etcd — это распределённое хранилище значений.

Прямо как Редис.

— Нет, совсем не так, как Redis. etcd — это распределенная система.

Redis теряет некоторую информацию, если сеть временно выходит из строя.

Хорошо, это распределенное хранилище ценностей.

Почему эта вещь так полезна? — Kubernetes настраивает стандартный кластер из пяти узлов, используя etcd в качестве шины обмена сообщениями.

В сочетании с парой собственных сервисов он обеспечивает очень надежную оркестровую систему.

5 узлов? У меня есть одно приложение.

Сколько машин мне нужно поднять для этого? — Ну, вы собираетесь поднять 12 сервисов, и вам естественно понадобится по паре дополнительных копий для каждого, пара балансировщиков и т. д., ваша база данных и кластер Kubernetes. Таким образом, одновременно может работать около 50 контейнеров.

Что за черт! - Да это уже не вопрос! Контейнеры действительно эффективны, поэтому вам не составит труда распределить все это между 8 машинами! Разве это не удивительно? И все же, это всего лишь ваше впечатление.

И учитывая все это, я смогу просто развернуть свое приложение? - Да, конечно! Правда, в случае с Docker и Kubernetes объемы хранения данных пока остаются открытым вопросом, да и нагрузка на сеть увеличивается, но эти вопросы будут решены совсем скоро! МММ ясно.

Ладно, думаю, теперь я все понимаю.

- Супер! Спасибо за подробный рассказ.

- Да нет проблем.

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

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

все в контейнерах Docker, запустить парк из 8 машин, которые являются Docker-хостами на базе CoreOS, «оркестрировать их» с помощью небольшого кластера Kubernetes на базе etcd, решить «пару открытых вопросов» по сетевой нагрузке и хранению информации, настроить CI /CD по нескольку копий каждого микросервиса с балансировщиками в парке.

Как будто? - Да! Разве это не великолепно? .

Собираюсь развернуть в Heroku. Теги: #ИТ-инфраструктура #облачные технологии #юмор

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.