Серия Cloud Native: Контейнеры и Docker
Серия Cloud Native: Контейнеры и Docker

Область облачных технологий в последнее время находится в самом разгаре, так что же такое облачные технологии? Что такое облачное решение? Для чего используется Cloud Native? Сегодня старший поведет всех в эпоху облачных вычислений~~

Что такое облако?

Технологические изменения должны идти в первую очередь с мышлением.Cloud Native — этоКак создавать и запускать приложения,Это набор технической системы и методологии. Cloud Native — слово-портманто,Облако+Родной. Облако означает, что приложение находится в облаке.,Вместо традиционного центра обработки данных; Native означает, что приложение с самого начала разрабатывалось с учетом облачной среды.,Разработан специально для облака,Оптимальная работа в облаке,В полной мере используйте гибкость облачных платформ+Распределенное преимущество。Старший Е ЦюПонимание облачных технологий заключается в сокращении затрат и повышении эффективности.,Как показано ниже:

Редактировать

Что такое облачные приложения?

Старший Е Цю считает, что приложения, соответствующие облачной архитектуре, должны: использовать стеки с открытым исходным кодом (K8S+Docker) для контейнеризации, повышать гибкость и удобство обслуживания на основе микросервисной архитектуры, а также поддерживать непрерывную итерацию, а также автоматизацию эксплуатации и обслуживания с помощью agile. методы и DevOps, используя возможности облачной платформы для достижения эластичного масштабирования, динамического планирования и оптимизации использования ресурсов.

Что такое контейнеры и Docker?

Виртуализация и контейнеры

До появления контейнерных технологий наибольшим влиянием в отрасли были виртуальные машины. Представителями технологии виртуальных машин являются VMware и OpenStack. Многие люди использовали виртуальные машины, которые предназначены для установки программного обеспечения в операционную систему, а затем используют это программное обеспечение для моделирования одного или даже нескольких «субкомпьютеров». На «субкомпьютере» вы можете запускать такие программы, как WeChat и Word, как на обычном компьютере. «Субкомпьютер» и «субкомпьютер» изолированы друг от друга и не влияют друг на друга.

Хотя виртуальная машина может изолировать множество «субкомпьютеров», она занимает много места, медленно запускается, а программное обеспечение виртуальной машины может стоить денег (например, VMware). Контейнерная технология не имеет этих недостатков. Она не требует виртуализации всей операционной системы, а требует виртуализации только небольшой среды (похожей на «песочницу»). Время запуска очень быстрое и может быть выполнено в режиме «песочницы». несколько секунд. Более того, он очень эффективно использует ресурсы (один хост может одновременно запускать тысячи контейнеров Docker). Кроме того, он занимает очень мало места. Виртуальным машинам обычно требуется от нескольких до десятков ГБ места, тогда как контейнерам требуется только МБ или даже КБ. Виртуальные машины и контейнеры, представленные Docker, являются технологиями виртуализации, но контейнеры — это облегченная виртуализация. Вот основные сравнения между ними.

Редактировать

Происхождение Докера

Давайте еще раз взглянем на Docker. Docker сам по себе не является контейнером. Это инструмент для создания контейнеров и движок контейнеров приложений. Хотя Docker вывел контейнерную технологию на пик своего развития, контейнерная технология не была изобретена Docker. На самом деле контейнерная технология даже не является новой технологией, поскольку ее зарождение и использование существуют уже несколько лет. Например, самый ранний контейнер LXC был выпущен в 2008 году. Изначально Docker был PaaS-компанией, первоначально называвшейся DotCloud, основанной в 2010 году. Однако по сравнению с такими известными компаниями, как Pivotal и Red Hat, операции DotCloud не являются успешными. Когда проект был на грани провала, DotCloud в 2013 году решила открыть исходный код своего собственного контейнерного проекта Docker. Но всего за несколько месяцев Docker быстро появился и привлек к своему использованию большое количество разработчиков. Поскольку Docker становился все более популярным среди разработчиков, DotCloud официально сменила название на Docker в октябре 2013 года. В августе 2014 года Docker объявила о продаже своего бизнеса PaaS и начала концентрироваться на Docker. Слово Docker означает докер, а его логотип — кит, держащий множество контейнеров, что очень ярко: Docker — это кит, а контейнеры — это контейнеры. На официальном сайте Docker есть объяснение контейнеров в одно предложение: «Стандартизированная единица программного обеспечения», то есть «стандартизированная единица программного обеспечения».

Основные понятия Docker

Три основные концепции технологии Docker:

• Изображение

• Контейнер

• Репозиторий

В приведенном выше примере разработанный шаблон — это образ Docker, произведенный (скопированный) компонент — контейнер Docker, а склад Docker — это место, где образы Docker централизованно размещаются и управляются.

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

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

Docker официально предоставляет Docker Hub для обслуживания и управления всеми образами, но для бесплатных пользователей можно создать только одно частное хранилище. Docker Hub предоставляет большое количество высококачественных официальных образов, таких как Oracle, MySQL, redis, Ubuntu, Nginx, python, Docker (Docker в Docker!) и т. д. Когда разработчикам нужна среда, они могут перейти непосредственно к Docker. Хранилище изображений Найдите и сократите массу ненужной работы по установке среды.

Преимущества Докера

Docker приносит нам много преимуществ. Вот некоторые из них:

• Более эффективное использование системных ресурсов.

С Докером,Мы можем запускать множество приложений на одном сервере,Полностью используйте аппаратные ресурсы. Например, теперь у нас есть Linux-сервер,Различные версии образов Ubuntu могут быть собраны и запущены.,И назначайте разные контейнеры разным пользователям. Таким образом, один сервер можно использовать для виртуализации множества виртуальных серверов под управлением разных операционных систем.,И для пользователей,Все это прозрачно. Многие публичные облака используют контейнерную технологию для предоставления услуг пользователям.,так Виртуализация и контейнеры вместе стали краеугольным камнем современных облачных вычислений.

• Более быстрое время запуска

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

• Обеспечить экологическую стабильность

Одной из распространенных проблем в процессе разработки является согласованность среды. Из-за несоответствия среды разработки, тестовой среды и производственной среды некоторые ошибки не обнаруживаются в процессе разработки. Образы Docker обеспечивают полную среду выполнения, за исключением ядра. Среда обеспечивает согласованность среды выполнения приложения. Больше не будет ситуации, когда приложение нормально работает в автономной среде разработки, но имеет различные ошибки при развертывании в Интернете.

• Непрерывная доставка и развертывание.

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

• Упрощенная миграция

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

• Улучшите возможность повторного использования, уменьшите связанность и упростите обслуживание и расширение.

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

• Внедрить механизм песочницы для повышения безопасности.

Поскольку приложение работает в контейнере и изолировано от операционной системы, повреждение операционной системы практически невозможно. Кроме того, если приложение парализовано из-за атаки, нет необходимости перезапускать сервер. Достаточно перезапустить контейнер или запустить другой образ.

Контейнеры и микросервисы

Контейнеры — лучший носитель реализации микросервисов и облачной архитектуры. Микросервисы и контейнеры — почти идеальное сочетание. Монолитная архитектура (Monolithic) становится архитектурой микросервисов (Microservices), что эквивалентно преобразованию универсального типа в N типов специального назначения. Каждому типу специального назначения назначается изолированный контейнер, что обеспечивает максимальную гибкость.

Редактировать

На этом общение в этом выпуске заканчивается. Следуйте за блоггерами, чтобы не заблудиться. Старший Е Цю проведет вас по шоссе~~~.

boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0
boy illustration
Новейшее подробное руководство по установке и использованию библиотеки cv2 (OpenCV, opencv-python) в Python.
boy illustration
Легко создайте локальную базу знаний для крупных моделей на основе Ollama+AnythingLLM.
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание решения. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Одна статья поможет вам понять RAG (Retrival Enhanced Generation) | Введение в концепцию и теорию + практику работы с кодом (включая исходный код).
boy illustration
Эволюция архитектуры шлюза облачной разработки
boy illustration
Docker и Kubernetes [Разработка контейнерных приложений с помощью Python]