ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Cloud Native Go

دانلود کتاب Cloud Native Go

Cloud Native Go

مشخصات کتاب

Cloud Native Go

ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 9781492076339, 9781492076261 
ناشر: O'Reilly Media, Inc. 
سال نشر: 2021 
تعداد صفحات:  
زبان: English 
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 6 Mb 

قیمت کتاب (تومان) : 57,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 3


در صورت تبدیل فایل کتاب Cloud Native Go به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب Cloud Native Go نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

От издательства
Об авторе
Об иллюстрации на обложке
Предисловие
Часть I. Облачное окружение
	Глава 1. Что такое «облачное» приложение?
		История развития до настоящего времени
		Что значит быть «облачным»?
			Масштабируемость
			Слабая связанность
			Устойчивость
			Управляемость
			Наблюдаемость
		Что особенного в облачном окружении?
		Итоги
	Глава 2. Почему Go правит облачным миром
		Как появился Go
		Особенности облачного мира
			Композиция и структурная типизация
			Понятность
			Модель взаимодействия последовательных процессов
			Быстрая сборка
			Стабильность языка
			Безопасность памяти
			Производительность
			Статическая компоновка
			Статическая типизация
		Итоги
Часть II. Облачные конструкции в Go
	Глава 3. Основы языка Go
		Базовые типы данных
			Логические значения
			Простые числа
			Комплексные числа
			Строки
		Переменные
			Сокращенная форма объявления переменных
			Нулевые значения
			Пустой идентификатор
			Константы
		Контейнеры: массивы, срезы и ассоциативные массивы
			Массивы
			Срезы
				Работа со срезами
				Оператор извлечения среза
				Строки и срезы
			Ассоциативные массивы
				Проверка наличия в ассоциативном массиве
		Указатели
		Управляющие структуры
			Забавный цикл for
				Универсальная инструкция for
				Обход в цикле элементов массивов и срезов
				Обход в цикле элементов ассоциативных массивов
			Инструкция if
			Инструкция switch
		Обработка ошибок
			Создание ошибки
		Необычные особенности функций: переменное число параметров и замыкания
			Функции
				Несколько возвращаемых значений
				Рекурсия
				Отложенные вычисления
				Указатели как параметры
			Функции с переменным числом аргументов
				Передача срезов в параметре с переменным числом значений
			Анонимные функции и замыкания
		Структуры, методы и интерфейсы
			Структуры
			Методы
			Интерфейсы
				Проверка типа
				Пустой интерфейс
			Композиция путем встраивания типов
				Встраивание интерфейсов
				Встраивание структур
				Продвижение
				Прямой доступ к встроенным полям
		Самое интересное: конкуренция
			Сопрограммы
			Каналы
				Блокировка канала
				Буферизация каналов
				Закрытие каналов
				Прием значений из канала в цикле
			select
				Реализация тайм-аутов для каналов
		Итоги
	Глава 4. Шаблоны программирования облачных приложений
		Пакет context
			Что может дать контекст
			Создание контекста
			Определение крайних сроков и тайм-аутов контекста
			Определение значений в контексте запроса
			Использование контекста
		Структура этой главы
		Шаблоны стабильности
			Circuit Breaker (Размыкатель цепи)
				Применимость
				Реализация
				Пример кода
			Debounce (Антидребезг)
				Применимость
				Компоненты
				Реализация
				Пример кода
			Retry (Повтор)
				Применимость
				Компоненты
				Реализация
				Пример кода
			Throttle (Дроссельная заслонка)
				Применимость
				Компоненты
				Реализация
				Пример кода
			Timeout (Тайм-аут)
				Применимость
				Компоненты
				Реализация
				Пример кода
		Шаблоны конкуренции
			Fan-In (Мультиплексор)
				Применимость
				Компоненты
				Реализация
				Пример кода
			Fan-Out (Демультиплексор)
				Применимость
				Компоненты
				Реализация
				Пример кода
			Future (В будущем)
				Применимость
				Компоненты
				Реализация
				Пример кода
			Sharding (Сегментирование)
				Применимость
				Компоненты
				Реализация
				Пример кода
		Итоги
	Глава 5. Конструирование облачной службы
		Давайте создадим службу!
			Что такое хранилище пар ключ/значение?
		Требования
			Что такое идемпотентность, и почему это важно?
			Конечная цель
		Итерация 0: базовая функциональность
			Наш суперпростой API
		Итерация 1: монолит
			Создание HTTP-сервера с использованием net/http
			Создание HTTP-сервера с использованием gorilla/mux
				Создание минимальной службы
				Инициализация проекта с по­мощью модулей Go
				Переменные в путях URI
				Множество сопоставлений
			Создание службы RESTful
				Методы RESTful
				Реализация функции создания
				Реализация функции чтения
			Добавление в структуру данных поддержки использования в конкурентном окружении
				Интеграция мьютекса чтения/записи в приложение
		Итерация 2: долговременное хранение ресурса
			Что такое журнал транзакций?
				Формат журнала транзакций
				Интерфейс регистратора транзакций
			Сохранение состояния в журнале транзакций
				Создание прототипа регистратора транзакций
				Определение типа события
				Реализация FileTransactionLogger
				Создание экземпляра FileTransactionLogger
				Добавление записей в конец журнала транзакций
				Использование bufio.Scanner для воспроизведения транзакций из журнала
				Интерфейс регистратора транзакций (еще раз)
				Инициализация FileTransactionLogger в веб-службе
				Интеграция FileTransactionLogger в веб-службу
				Будущие улучшения
			Сохранение состояния во внешней базе данных
				Работа с базами данных в Go
				Импортирование драйвера базы данных
				Реализация PostgresTransactionLogger
				Создание экземпляра PostgresTransactionLogger
				Выполнение SQL-запроса INSERT с по­мощью db.Exec
				Использование db.Query для воспроизведения транзакций из журнала
				Инициализация PostgresTransactionLogger в веб-службе
				Будущие улучшения
		Итерация 3: реализация безопасности транспортного уровня
			Transport Layer Security
				Сертификаты, центры сертификации и доверие
			Закрытый ключ и файлы сертификатов
				Формат Privacy Enhanced Mail (PEM)
			Защита веб-службы с по­мощью HTTPS
			В заключение о транспортном уровне
		Контейнеризация хранилища пар ключ/значение
			Основы Docker
				Dockerfile
				Сборка образа контейнера
				Запуск образа контейнера
				Проверка запущенного образа контейнера
				Отправка запроса в опубликованный порт контейнера
				Запуск нескольких контейнеров
				Остановка и удаление контейнеров
			Сборка контейнера для службы хранилища пар ключ/значение
				Итерация 1: добавление двоичного файла в пустой образ
				Итерация 2: многоэтапная сборка
			Сохранение данных контейнера вовне
		Итоги
Часть III. Облачные атрибуты
	Глава 6. Все дело в надежности
		В чем суть облачных вычислений?
		Все дело в надежности
		Что такое надежность, и почему она так важна?
			Надежность обеспечивается не только операторами
		Достижение надежности
			Предотвращение неисправностей
				Рекомендуемые практики программирования
				Особенности языка
				Масштабируемость
				Слабая связанность
			Отказоустойчивость
			Устранение неисправностей
				Проверка и тестирование
				Управляемость
			Прогнозирование неисправностей
		Непреходящая актуальность методологии «Двенадцать факторов»
			I. Кодовая база
			II. Зависимости
			III. Конфигурация
			IV. Сторонние службы
			V. Сборка, выпуск, выполнение
			VI. Процессы
			VII. Изоляция данных
			VIII. Масштабируемость
			IX. Живучесть
			X. Сходство окружений разработки/эксплуатации
			XI. Журналирование
			XII. Задачи администрирования
		Итоги
	Глава 7. Масштабируемость
		Что такое масштабируемость?
			Различные формы масштабирования
		Четыре основных узких места
		С состоянием и без состояния
			Состояние приложения и состояние ресурса
			Преимущества отсутствия состояния
		Отложенное масштабирование: эффективность
			Эффективное кеширование с использованием кеша LRU
			Эффективная синхронизация
				Разделяйте память, общаясь
				Уменьшение простоев на блокировках с помощью буферизованных каналов
				Уменьшение простоев на блокировках с помощью сегментирования
			Утечки памяти могут вызвать... фатальную ошибку исчерпания памяти во время выполнения
				Утечки сопрограмм
				Вечно тикающие таймеры
			В заключение об эффективности
		Архитектуры служб
			Архитектура монолитной системы
			Архитектура системы микросервисов
			Бессерверные архитектуры
				Достоинства и недостатки бессерверных вычислений
				Бессерверные службы
		Итоги
	Глава 8. Слабая связанность
		Тесная связанность
			Множество форм тесной связанности
				Хрупкие протоколы обмена
				Общие зависимости
				Общий момент времени
				Фиксированные адреса
		Взаимодействия между службами
		Шаблон обмена сообщениями запрос/ответ
			Распространенные реализации шаблона запрос/ответ
			Отправка HTTP-запросов с использованием net/http
			Вызов удаленных процедур с использованием gRPC
				Определение интерфейса с использованием протокола буферов
				Установка компилятора протокола буферов
				Определение структуры сообщения
				Структура сообщений для взаимодействий с хранилищем пар ключ/значение
				Определение методов службы
				Компиляция протокола буферов
				Реализация службы gRPC
				Реализация клиента gRPC
		Слабое связывание локальных ресурсов с помощью плагинов
			Подключение плагинов с по­мощью пакета plugin
				Словарь плагинов
				Пример плагина
				Интерфейс Sayer
				Код плагина
				Сборка плагинов
				Использование плагинов Go
				Запуск примера
			Система плагинов HashiCorp для Go, доступных через RPC
				Еще один пример плагина
				Общий код
				Реализация плагина
				Процесс-потребитель
		Гексагональная архитектура
			Архитектура
			Реализация гексагональной службы
				Реорганизация компонентов
				Наш первый разъем
				Основное приложение
				Адаптеры TransactionLogger
				Порт FrontEnd
				Все вместе
		Итоги
	Глава 9. Устойчивость
		Почему устойчивость важна
		Что подразумевается под сбоем системы?
			Обеспечение устойчивости
		Каскадные сбои
			Предотвращение перегрузки
				Дросселирование
				Сброс нагрузки
				Постепенное ухудшение качества обслуживания
		Повтори еще раз: повторные запросы
			Алгоритмы увеличения задержки
			Размыкание цепи
			Тайм-ауты
				Использование контекста Context для реализации тайм-аутов на стороне службы
				Прерывание ожидания обработки клиентских запросов HTTP/REST
				Прерывание ожидания обработки клиентских запросов gRPC
			Идемпотентность
				Как сделать службу идемпотентной?
				А как насчет скалярных операций?
		Избыточность служб
			Проектирование избыточности
			Автоматическое масштабирование
		Проверка работоспособности
			Что подразумевается под «работоспособностью» экземпляра?
			Три типа проверок работоспособности
				Проверка жизнеспособности
				Поверхностная проверка работоспособности
				Глубокая проверка работоспособности
			Открытие при отказе
		Итоги
	Глава 10. Управляемость
		Что такое управляемость, и почему она важна?
		Настройка приложения
			Рекомендуемые приемы организации конфигураций
			Настройка с использованием переменных окружения
			Настройка с использованием аргументов командной строки
				Стандартный пакет flag
				Парсер командной строки Cobra
			Настройка с использованием файлов
				Наша структура конфигурационных данных
				Формат JSON
				Формат YAML
				Наблюдение за изменениями в конфигурационных файлах
			Viper: швейцарский армейский нож конфигурационных пакетов
				Явно устанавливаемые значения в Viper
				Работа с флагами командной строки в Viper
				Работа с переменными окружения в Viper
				Работа с конфигурационными файлами в Viper
				Использование удаленных хранилищ пар ключ/значение в Viper
				Значения по умолчанию в Viper
		Управление функциональными возможностями с по­мощью флагов
			Разработка флага для управления функциональной возможностью
			Итерация 0: начальная реализация
			Итерация 1: жестко запрограммированный флаг
			Итерация 2: настраиваемый флаг
			Итерация 3: динамический флаг
				Динамические флаги как функции
				Реализация функции динамического флага
				Поиск функции флага
				Функция маршрутизации
		Итоги
	Глава 11. Наблюдаемость
		Что такое наблюдаемость?
			Зачем нужна наблюдаемость?
			Чем наблюдаемость отличается от «традиционного» мониторинга?
		«Три столпа наблюдаемости»
		OpenTelemetry
			Компоненты OpenTelemetry
		Трассировка
			Концепции трассировки
			Трассировка с использованием OpenTelemetry
				Создание экспортеров трассировки
				Создание провайдера трассировки
				Настройка глобального провайдера трассировки
				Получение экземпляра трассировщика
				Начальная и конечная операции
				Установка метаданных операции
				Автоматическое инструментирование
			Собираем все вместе: трассировка
				API-службы вычисления чисел Фибоначчи
				Функция-обработчик службы вычисления чисел Фибоначчи
				Функция main службы
				Запуск служб
				Вывод консольного экспортера
				Просмотр результатов в Jaeger
		Метрики
			Два способа передачи метрик: принудительная и по запросу
				Принудительная отправка метрик
				Передача метрик по запросу
				Какой подход лучше?
			Метрики в OpenTelemetry
				Создание экспортеров метрик
				Установка глобального провайдера метрик
				Экспортирование конечной точки метрик
				Получение экземпляра Meter
				Инструменты метрик
			Собираем все вместе: метрики
				Запуск служб
				Вывод конечной точки метрик
				Просмотр результатов в Prometheus
		Журналирование
			Рекомендуемые методы журналирования
				Интерпретируйте журналы как потоки событий
				Структурируйте события для последующего анализа
				Лучше меньше, да лучше
				Динамически фильтруйте журналируемые данные
			Журналирование с использованием стандартного пакета log
				Специальные функции журналирования
				Журналирование в нестандартный объект записи
				Флаги журналирования
			Пакет журналирования Zap
				Создание регистратора Zap
				Журналирование с использованием Zap
				Динамическая фильтрация журналируемых данных в Zap
		Итоги
Предметный указатель




نظرات کاربران