دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: نویسندگان: John Doak, David Justice سری: ISBN (شابک) : 9781801818896 ناشر: Packt Publishing سال نشر: 2022 تعداد صفحات: 634 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 9 مگابایت
در صورت تبدیل فایل کتاب Go for DevOps: Learn how to use the Go language to automate servers, the cloud, Kubernetes, GitHub, Packer, and Terraform به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب برو به DevOps: یاد بگیرید که چگونه از زبان Go برای خودکار سازی سرورها ، ابر ، Kubernetes ، Github ، Packer و Terraform استفاده کنید نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Cover Title Page Copyright Dedication Contributors Table of Contents Preface Section 1: Getting Up and Running with Go Chapter 1: Go Language Basics ____Technical requirements ____Using the Go Playground ____Utilizing Go packages ________Declaring a package ________Importing a package ________Using a package ________Package name conflicts ________Packages must be used ________A Go Hello World ____Using Go\'s variable types ________Go\'s types ________Declaring variables ________Variable scopes and shadowing ________Function/statement variable must be used ____Looping in Go ________C style ________Removing the init statement ________Remove the post statement too and you have a while loop ________Creating an infinite loop ____Using conditionals ________if statements ________else ____Learning about functions ________Returning multiple values and named results ________Variadic arguments ________Anonymous functions ____Defining public and private ____Using arrays and slices ________Arrays ________Slices ________Extracting all values ________Understanding maps ________Declaring a map ________Accessing values ________Adding new values ________Extracting all values ____Understanding Go pointers ________Memory addresses ________Function arguments are copies ________Pointers to the rescue ____Getting to know about structs ________Declaring a struct ________Declaring a custom type ________Custom struct types ________Adding methods to a type ________Changing a field\'s value ________Changing a field\'s value in a method ________Constructors ____Comprehending Go interfaces ________Defining an interface type ________Important things about interfaces ________The blank interface – Go\'s universal value ________Type assertion ____Summary Chapter 2: Go Language Essentials ____Handling errors in Go ________Creating an error ________Using an error ________Creating named errors ________Custom errors ________Wrapping errors ____Utilizing Go constants ________Declaring a constant ________Enumeration via constants ________Printing enumerators ____Using defer, panic, and recover ________defer ________panic ________recover ____Utilizing goroutines for concurrency ________Starting a goroutine ________Synchronization ________WaitGroups ________Channels ________Sending/receiving ________select statements ________Channels as an event signal ________Mutexes ________RWMutex ____Understanding Go\'s Context type ________Using a Context to signal a timeout ________Honoring a context when receiving ________Context in the standard library ________Context to pass values ________Best practices ____Utilizing Go\'s testing framework ________Creating a basic test file ________Creating a simple test ________Table Driven Tests (TDT) ________Creating fakes with interfaces ________Third-party testing packages ____Generics – the new kid on the block ________Type parameters ________Using type constraints ________We could do better with constraints ________Current built-in constraints ________Type constraints with methods ________Adding type parameters to struct types ________Specifying the type when calling a generic function ________Gotchas to watch for ________When to use generics ____Summary Chapter 3: Setting Up Your Environment ____Technical requirements ____Installing Go on your machine ________macOS installation using the package installer ________macOS installation via Homebrew ________Windows installation using MSI ________Linux ________Other platforms ________A note on Go compiler version compatibility ____Building code locally ________Creating a module directory and go.mod file ________Updating a module when adding dependencies ________Adding a hello world ________Running our first program ____Summary Chapter 4: Filesystem Interactions ____All I/O in Go are files ________I/O interfaces ____Reading and writing to files ________Reading local files ________Writing local files ________Reading remote files ____Streaming file content ________Stdin/Stdout/Stderr are just files ________Reading data out of a stream ________Writing data into a stream ____OS-agnostic pathing ________What OS/platform am I running? ________Using filepath ________Relative and absolute pathing ____OS-agnostic filesystems ________io.fs filesystems ________embed ________Walking our filesystem ________The io/fs future ____Summary Chapter 5: Using Common Data Formats ____Technical requirements ____CSV files ________Basic value separation using the strings package ________Using the encoding/csv package ________Using excelize when dealing with Excel ____Popular encoding formats ________The Go field tags ________JSON ________YAML encoding ____Summary Chapter 6: Interacting with Remote Data Sources ____Technical requirements ____Accessing SQL databases ________Connecting to a Postgres database ________Querying a Postgres database ________Null values ________Writing data to Postgres ________Transactions ________Postgres-specific types ________Other options ________Storage abstractions ________Case study – data migration of an orchestration system – Google ____Developing REST services and clients ________REST for RPCs ____Developing gRPC services and clients ________Protocol buffers ________Stating the prerequisites ________Generating your packages ________Writing a gRPC client ________Writing a gRPC server ________Creating a server binary ________Creating a client binary ________Company-standard RPC clients and servers ____Summary Chapter 7: Writing Command-Line Tooling ____Technical requirements ____Implementing application I/O ________The flag package ________Custom flags ________Basic flag error handling ________Shorthand flags ________Accessing non-flag arguments ________Retrieving input from STDIN ____Using Cobra for advanced CLI applications ________Code organization ________The optional Cobra generator ________The command package ____Handling OS signals ________Capturing an OS signal ________Using Context to cancel ____Summary Chapter 8: Automating Command-Line Tasks ____Technical requirements ____Using os/exec to automate local changes ________Determining the availability of essential tools ____Using SSH in Go to automate remote changes ________Connecting to another system ____Designing safe, concurrent change automations ________Components of a change ________Writing a concurrent job ________Case study – Network rollouts ____Writing a system agent ________Designing a system agent ________Implementing Install ________Implementing SystemPerf ____Summary Section 2: Instrumenting, Observing, and Responding Chapter 9: Observability with OpenTelemetry ____Technical requirements ____An introduction to OpenTelemetry ________Reference architecture for OpenTelemetry ________OpenTelemetry components ____Logging with context ________Our first log statement ________Structured and leveled logs with Zap ________Ingesting, transforming, and exporting logs using OpenTelemetry ____Instrumenting for distributed tracing ________The life cycle of a distributed trace ________Correlating traces and logs ________Adding log entries to spans ____Instrumenting for metrics ________The life cycle of a metric ________Client/server metrics with OpenTelemetry ____Alerting on metrics abnormalities ________Adding and configuring Alertmanager ____Summary Chapter 10: Automating Workflows with GitHub Actions ____Technical requirements ____Understanding the basics of GitHub Actions ________Exploring the components of a GitHub Action ________How to build and trigger your first GitHub Action ____Building a continuous integration workflow ________Introducing the tweeter command-line tool ________Goals of the tweeter continuous integration workflow ________Continuous integration workflow for tweeter ____Building a release workflow ________GitHub releases ________Release automation for tweeter ____Creating a custom GitHub Action using Go ________Basics of custom actions ________Goals for the tweeter custom GitHub Action ________Creating the tweeter action ____Publishing a custom Go GitHub Action ________The basics of publishing actions ________Goals for publishing the tweeter custom action ________Managing action semantic versioning ________Publishing the tweeter action to the GitHub Marketplace ____Summary Chapter 11: Using ChatOps to Increase Efficiency ____Technical requirements ____Environment architecture ____Using an Ops service ____Building a basic chatbot ____Creating event handlers ________Case Study – Regexes versus Lexer and Parser ____Creating our Slack application ________Running the applications ____Summary Section 3: Cloud ready Go Chapter 12: Creating Immutable Infrastructure Using Packer ____Technical requirements ____Building an Amazon Machine Image ________Setting up an AWS source ________Defining a build block and adding some provisioners ________Executing a Packer build ____Validating images with Goss ________Creating a spec file ________Adding a Packer provisioner ____Customizing Packer with plugins ________Writing your own plugin ________Releasing a plugin ________Using our plugin in a build ________Debugging a Packer plugin ____Summary Chapter 13: Infrastructure as Code with Terraform ____Technical requirements ____An introduction to IaC ____Understanding the basics of Terraform ________Initializing and applying infrastructure specs using Terraform ____Understanding the basics of Terraform providers ________Defining and provisioning cloud resources ____Building a pet store Terraform provider ________Resources for building custom providers ________The pet store provider ________Publishing custom providers ____Summary Chapter 14: Deploying and Building Applications in Kubernetes ____Technical requirements ____Interacting with the Kubernetes API ________Creating a KinD cluster ________Using kubectl to interact with the API ____Deploying a load-balanced HTTP application using Go ________It all starts with main ________Creating a ClientSet ________Creating a namespace ________Deploying the application into the namespace ________Creating the NGINX deployment ________Waiting for ready replicas to match desired replicas ________Creating a Service to load-balance ________Creating an ingress to expose our application on a local host port ________Streaming pod logs for the NGINX application ____Extending Kubernetes with custom resources and operators ________Custom Resource Definitions ________Controllers ________Standing on the shoulders of giants ____Building a pet store operator ________Initializing the new operator ____Summary Chapter 15: Programming the Cloud ____Technical requirements ____What is the cloud? ____Learning the basics of the Azure APIs ________A background on cloud APIs and SDKs ________Microsoft Azure identity, RBAC, and resource hierarchy ________Creating an Azure account and accessing the API ____Building infrastructure using Azure Resource Manager ________Azure SDK for Go ________Setting up your local environment ________Building an Azure virtual machine ____Using provisioned Azure infrastructure ________Building an Azure Storage account ____Summary Chapter 16: Designing for Chaos ____Technical requirements ____Using overload prevention mechanisms ________Case study – AWS client requests overwhelm the network ________Using circuit breakers ________Using backoff implementations ________Combining circuit breakers with backoff ____Using rate limiters to prevent runaway workflows ________Case study – Google satellite disk erase ________Channel-based rate limiter ________Token-bucket rate limiter ____Building workflows that are repeatable and never lost ________Building idempotent workflows ________Using three-way handshakes to prevent workflow loss ____Using policies to restrict tools ________Defining a gRPC workflow service ________Creating a policy engine ________Writing a policy ________Cautions on policy engines ____Building systems with an emergency stop ________Understanding emergency stops ________Building an emergency-stop package ________Using the emergency-stop package ________Case study – Google\'s network backbone emergency stop ____Summary Index About Packt Other Books You May Enjoy