Opis ebooka: Cloud Native Go
What do Docker, Kubernetes, and Prometheus have in common? All of these cloud native technologies are written in the Go programming language. This practical book shows you how to use Go's strengths to develop cloud native services that are scalable and resilient, even in an unpredictable environment. You'll explore the composition and construction of these applications, from lower-level features of Go to mid-level design patterns to high-level architectural considerations.
Each chapter builds on the lessons of the last, walking intermediate to advanced developers through Go to construct a simple but fully featured distributed key-value store. You'll learn best practices for adopting Go as your development language for solving cloud native management and deployment issues.
- Learn how cloud native applications differ from other software architectures
- Understand how Go can solve the challenges of designing scalable distributed services
- Leverage Go's lower-level features, such as channels and goroutines, to implement a reliable cloud native service
- Explore what "service reliability" is and what it has to do with cloud native
- Apply a variety of patterns, abstractions, and tooling to build and manage complex distributed systems
Wybrane bestsellery
-
Ta książka będzie świetnym uzupełnieniem wiedzy o Flutterze i Darcie, sprawdzi się również jako wsparcie podczas rozwiązywania konkretnych problemów. Znalazło się tu ponad sto receptur, dzięki którym poznasz tajniki pisania efektywnego kodu, korzystania z narzędzi udostępnianych przez framework F...
Flutter i Dart. Receptury. Tworzenie chmurowych aplikacji full stack Flutter i Dart. Receptury. Tworzenie chmurowych aplikacji full stack
(41.40 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
Czy chcesz szybko i skutecznie opanować podstawy Microsoft Azure, zrozumieć jego architekturę i możliwości? W takim razie to książka dla Ciebie! Czy chcesz nauczyć się, jak wdrażać, zarządzać i skalować aplikacje w chmurze Azure, nie tracąc przy tym cennego czasu? W takim razie to książka dla C...
Azure w 1 dzień. Microsoft Azure od podstaw po zaawansowane techniki Azure w 1 dzień. Microsoft Azure od podstaw po zaawansowane techniki
-
Oto zaktualizowane wydanie bestsellerowego przewodnika dla architektów rozwiązań. Dzięki niemu dobrze poznasz wzorce projektowe wbudowane w chmurę, czyli model AWS Well-Architected Framework. Zaznajomisz się z sieciami w chmurze AWS z uwzględnieniem sieci brzegowych i tworzeniem hybrydowych połąc...
AWS dla architektów rozwiązań. Tworzenie, skalowanie i migracja aplikacji do chmury Amazon Web Services. Wydanie II AWS dla architektów rozwiązań. Tworzenie, skalowanie i migracja aplikacji do chmury Amazon Web Services. Wydanie II
Saurabh Shrivastava, Neelanjali Srivastav, Alberto Artasanchez, Imtiaz Sayed
(83.40 zł najniższa cena z 30 dni)90.35 zł
139.00 zł(-35%) -
Szukasz kursu, który pomoże Ci zdobyć wiele praktycznych umiejętności związanych z korzystaniem z narzędzia Terraform? Jesteś we właściwym miejscu. Terraform, określany jako oprogramowanie pozwalające zarządzać infrastrukturą komputerową w modelu „infrastruktura jako kod”, służy w pra...
Terraform w praktyce. Kurs video. Architektura serverless i usługi chmurowe AWS Terraform w praktyce. Kurs video. Architektura serverless i usługi chmurowe AWS
(39.90 zł najniższa cena z 30 dni)109.85 zł
169.00 zł(-35%) -
To trzecie wydanie przewodnika autorstwa twórców Kubernetesa. Zostało starannie zaktualizowane i wzbogacone o tak ważne zagadnienia jak bezpieczeństwo, dostęp do Kubernetesa za pomocą kodu napisanego w różnych językach programowania czy tworzenie aplikacji wieloklastrowych. Dzięki książce poznasz...
Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie III Kubernetes. Tworzenie niezawodnych systemów rozproszonych. Wydanie III
(41.40 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
To praktyczny przewodnik dla inżynierów, którzy chcą planować i wdrażać usługi Amazon Web Services. Przyda się również osobom planującym zdobycie certyfikatu AWS. Przedstawiono tu zasady pracy zgodne z najlepszymi praktykami Well-Architected Framework firmy Amazon, wprowadzono kluczowe koncepcje,...
Amazon Web Services. Podstawy korzystania z chmury AWS Amazon Web Services. Podstawy korzystania z chmury AWS
(34.90 zł najniższa cena z 30 dni)44.50 zł
89.00 zł(-50%)
Ebooka "Cloud Native Go" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Cloud Native Go" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Cloud Native Go" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-14-920-7628-5, 9781492076285
- Data wydania ebooka:
- 2021-04-20 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 4.6MB
- Rozmiar pliku Mobi:
- 11.9MB
Spis treści ebooka
- Preface
- Who Should Read This Book
- Why I Wrote This Book
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- I. Going Cloud Native
- 1. What Is a Cloud Native Application?
- The Story So Far
- What Is Cloud Native?
- Scalability
- Loose Coupling
- Resilience
- Manageability
- Observability
- Why Is Cloud Native a Thing?
- Summary
- 2. Why Go Rules the Cloud Native World
- The Motivation Behind Go
- Features for a Cloud Native World
- Composition and Structural Typing
- Comprehensibility
- CSP-Style Concurrency
- Fast Builds
- Linguistic Stability
- Memory Safety
- Performance
- Static Linking
- Static Typing
- Summary
- II. Cloud Native Go Constructs
- 3. Go Language Foundations
- Basic Data Types
- Booleans
- Simple Numbers
- Complex Numbers
- Strings
- Basic Data Types
- Variables
- Short Variable Declarations
- Zero Values
- The Blank Identifier
- Constants
- Container Types: Arrays, Slices, and Maps
- Arrays
- Slices
- Working with slices
- The slice operator
- Strings as slices
- Maps
- Map membership testing
- Pointers
- Control Structures
- Fun with for
- The general for statement
- Looping over arrays and slices
- Looping over maps
- Fun with for
- The if Statement
- The switch Statement
- Error Handling
- Creating an Error
- Putting the Fun in Functions: Variadics and Closures
- Functions
- Multiple return values
- Recursion
- Defer
- Pointers as parameters
- Functions
- Variadic Functions
- Passing slices as variadic values
- Anonymous Functions and Closures
- Structs, Methods, and Interfaces
- Structs
- Methods
- Interfaces
- Type assertions
- The empty interface
- Composition with Type Embedding
- Interface embedding
- Struct embedding
- Promotion
- Directly accessing embedded fields
- The Good Stuff: Concurrency
- Goroutines
- Channels
- Channel blocking
- Channel buffering
- Closing channels
- Looping over channels
- Select
- Implementing channel timeouts
- Summary
- 4. Cloud Native Patterns
- The Context Package
- What Context Can Do for You
- Creating Context
- Defining Context Deadlines and Timeouts
- Defining Request-Scoped Values
- Using a Context
- The Context Package
- Layout of this Chapter
- Stability Patterns
- Circuit Breaker
- Applicability
- Participants
- Implementation
- Sample code
- Circuit Breaker
- Debounce
- Applicability
- Participants
- Implementation
- Sample code
- Retry
- Applicability
- Participants
- Implementation
- Sample code
- Throttle
- Applicability
- Participants
- Implementation
- Sample code
- Timeout
- Applicability
- Participants
- Implementation
- Sample code
- Concurrency Patterns
- Fan-In
- Applicability
- Participants
- Implementation
- Sample code
- Fan-In
- Fan-Out
- Applicability
- Participants
- Implementation
- Sample code
- Future
- Applicability
- Participants
- Implementation
- Sample code
- Sharding
- Applicability
- Participants
- Implementation
- Sample code
- Summary
- 5. Building a Cloud Native Service
- Lets Build a Service!
- Whats a Key-Value Store?
- Lets Build a Service!
- Requirements
- What Is Idempotence and Why Does It Matter?
- The Eventual Goal
- Generation 0: The Core Functionality
- Your Super Simple API
- Generation 1: The Monolith
- Building an HTTP Server with net/http
- Building an HTTP Server with gorilla/mux
- Creating a minimal service
- Initializing your project with Go modules
- Variables in URI paths
- So many matchers
- Building a RESTful Service
- Your RESTful methods
- Implementing the create function
- Implementing the read function
- Making Your Data Structure Concurrency-Safe
- Integrating a read-write mutex into your application
- Generation 2: Persisting Resource State
- Whats a Transaction Log?
- Your transaction log format
- Your transaction logger interface
- Whats a Transaction Log?
- Storing State in a Transaction Log File
- Prototyping your transaction logger
- Defining the event type
- Implementing your FileTransactionLogger
- Creating a new FileTransactionLogger
- Appending entries to the transaction log
- Using a bufio.Scanner to play back file transaction logs
- Your transaction logger interface (redux)
- Initializing the FileTransactionLogger in your web service
- Integrating FileTransactionLogger with your web service
- Future improvements
- Storing State in an External Database
- Working with databases in Go
- Importing a database driver
- Implementing your PostgresTransactionLogger
- Creating a new PostgresTransactionLogger
- Using db.Exec to execute a SQL INSERT
- Using db.Query to play back postgres transaction logs
- Initializing the PostgresTransactionLogger in your web service
- Future improvements
- Generation 3: Implementing Transport Layer Security
- Transport Layer Security
- Certificates, certificate authorities, and trust
- Transport Layer Security
- Private Key and Certificate Files
- Privacy enhanced mail (PEM) file format
- Securing Your Web Service with HTTPS
- Transport Layer Summary
- Containerizing Your Key-Value Store
- Docker (Absolute) Basics
- The Dockerfile
- Building your container image
- Running your container image
- Running your container image
- Issuing a request to a published container port
- Running multiple containers
- Stopping and deleting your containers
- Docker (Absolute) Basics
- Building Your Key-Value Store Container
- Iteration 1: adding your binary to a FROM scratch image
- Iteration 2: using a multi-stage build
- Externalizing Container Data
- Summary
- III. The Cloud Native Attributes
- 6. Its All About Dependability
- Whats the Point of Cloud Native?
- Its All About Dependability
- What Is Dependability and Why Is It So Important?
- Dependability: Its Not Just for Ops Anymore
- Achieving Dependability
- Fault Prevention
- Good programming practices
- Language features
- Scalability
- Loose coupling
- Fault Prevention
- Fault Tolerance
- Fault Removal
- Verification and testing
- Manageability
- Fault Forecasting
- The Continuing Relevance of the Twelve-Factor App
- I. Codebase
- II. Dependencies
- III. Configuration
- IV. Backing Services
- V. Build, Release, Run
- VI. Processes
- VII. Data Isolation
- VIII. Scalability
- IX. Disposability
- X. Development/Production Parity
- XI. Logs
- XII. Administrative Processes
- Summary
- 7. Scalability
- What Is Scalability?
- Different Forms of Scaling
- What Is Scalability?
- The Four Common Bottlenecks
- State and Statelessness
- Application State Versus Resource State
- Advantages of Statelessness
- Scaling Postponed: Efficiency
- Efficient Caching Using an LRU Cache
- Efficient Synchronization
- Share memory by communicating
- Reduce blocking with buffered channels
- Minimizing locking with sharding
- Memory Leaks Canfatal error: runtime: out of memory
- Leaking goroutines
- Forever ticking tickers
- On Efficiency
- Service Architectures
- The Monolith System Architecture
- The Microservices System Architecture
- Serverless Architectures
- The pros and cons of serverlessness
- Serverless services
- Summary
- 8. Loose Coupling
- Tight Coupling
- Tight Coupling Takes Many Forms
- Fragile exchange protocols
- Shared dependencies
- Shared point-in-time
- Fixed addresses
- Tight Coupling Takes Many Forms
- Tight Coupling
- Communications Between Services
- Request-Response Messaging
- Common Request-Response Implementations
- Issuing HTTP Requests with net/http
- Remote Procedure Calls with gRPC
- Interface definition with protocol buffers
- Installing the protocol compiler
- The message definition structure
- The key-value message structure
- Defining our service methods
- Compiling your protocol buffers
- Implementing the gRPC service
- Implementing the gRPC client
- Loose Coupling Local Resources with Plug-ins
- In-Process Plug-ins with the plugin Package
- Plug-in vocabulary
- A toy plug-in example
- The Sayer interface
- The Go plugin code
- Building the plug-ins
- Using our go plug-ins
- Import the plugin package
- Find our plug-in
- Open our plug-in
- Look up your symbol
- Assert and use your symbol
- Executing our example
- In-Process Plug-ins with the plugin Package
- HashiCorps Go Plug-in System over RPC
- Another toy plug-in example
- Common code
- The Sayer interface
- The SayerPlugin struct
- The SayerRPC client implementation
- The handshake configuration
- The SayerRPCServer server implementation
- Our plug-in implementation
- Our host process
- Import the hashicorp/go-plugin and commons packages
- Find our plug-in
- Create our plug-in client
- Connect to our plug-in and dispense our Sayer
- Hexagonal Architecture
- The Architecture
- Implementing a Hexagonal Service
- Our refactored components
- Our first plug
- Our core application
- Our TransactionLogger adapters
- Our FrontEnd port
- Putting it all together
- Summary
- 9. Resilience
- Keeping on Ticking: Why Resilience Matters
- What Does It Mean for a System to Fail?
- Building for Resilience
- Cascading Failures
- Preventing Overload
- Throttling
- Load shedding
- Graceful service degradation
- Preventing Overload
- Play It Again: Retrying Requests
- Backoff Algorithms
- Circuit Breaking
- Timeouts
- Using Context for service-side timeouts
- Timing out HTTP/REST client calls
- Timing out gRPC client calls
- Idempotence
- How do I make my service idempotent?
- What about scalar operations?
- Service Redundancy
- Designing for Redundancy
- Autoscaling
- Healthy Health Checks
- What Does It Mean for an Instance to Be Healthy?
- The Three Types of Health Checks
- Liveness checks
- Shallow health checks
- Deep health checks
- Failing Open
- Summary
- 10. Manageability
- What Is Manageability and Why Should I Care?
- Configuring Your Application
- Configuration Good Practice
- Configuring with Environment Variables
- Configuring with Command-Line Arguments
- The standard flag package
- The Cobra command-line parser
- Configuring with Files
- Our configuration data structure
- Working with JSON
- Encoding JSON
- Decoding JSON
- Field formatting with struct field tags
- Working with YAML
- Encoding YAML
- Decoding YAML
- Struct field tags for YAML
- Watching for configuration file changes
- Making your configuration reloadable
- Polling for configuration changes
- Watching OS filesystem notifications
- Viper: The Swiss Army Knife of Configuration Packages
- Explicitly setting values in Viper
- Working with command-line flags in Viper
- Working with environment variables in Viper
- Working with configuration files in Viper
- Reading configuration files
- Watching and rereading configuration files in Viper
- Using remote key/value stores with Viper
- Setting defaults in Viper
- Feature Management with Feature Flags
- The Evolution of a Feature Flag
- Generation 0: The Initial Implementation
- Generation 1: The Hard-Coded Feature Flag
- Generation 2: The Configurable Flag
- Generation 3: Dynamic Feature Flags
- Dynamic flags as functions
- Implementing a dynamic flag function
- The flag function lookup
- The router function
- Summary
- 11. Observability
- What Is Observability?
- Why Do We Need Observability?
- How Is Observability Different from Traditional Monitoring?
- What Is Observability?
- The Three Pillars of Observability
- OpenTelemetry
- The OpenTelemetry Components
- Tracing
- Tracing Concepts
- Tracing with OpenTelemetry
- Creating the tracing exporters
- The Console Exporter
- The Jaeger Exporter
- Creating the tracing exporters
- Creating a tracer provider
- Setting the global tracer provider
- Obtaining a tracer
- Starting and ending spans
- Setting span metadata
- Attributes
- Events
- Autoinstrumentation
- Autoinstrumenting net/http and gorilla/mux
- Autoinstrumenting gRPC
- Getting the current span from context
- Putting It All Together: Tracing
- The Fibonacci service API
- The Fibonacci service handler
- The service Main function
- Starting your services
- Console exporter output
- Viewing your results in Jaeger
- Metrics
- Push Versus Pull Metric Collection
- Push-based metric collection
- Pull-based metric collection
- But which is better?
- Push Versus Pull Metric Collection
- Metrics with OpenTelemetry
- Creating the metric exporters
- Setting the global meter provider
- Exposing the metrics endpoint
- Obtaining a meter
- Metric instruments
- Synchronous instruments
- Asynchronous instruments
- Putting It All Together: Metrics
- Starting your services
- Metric endpoint output
- Viewing your results in Prometheus
- Logging
- Better Logging Practices
- Treat logs as streams of events
- Structure events for parsing
- Less is (way) more
- Dynamic sampling
- Better Logging Practices
- Logging with Gos Standard log Package
- The special logging functions
- Logging to a custom writer
- Log flags
- The Zap Logging Package
- Creating a Zap logger
- Writing logs with Zap
- Using dynamic sampling in Zap
- Summary
- Index
O'Reilly Media - inne książki
-
Software as a service (SaaS) is on the path to becoming the de facto model for building, delivering, and operating software solutions. Adopting a multi-tenant SaaS model requires builders to take on a broad range of new architecture, implementation, and operational challenges. How data is partiti...(237.15 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Great engineers don't necessarily make great leaders—at least, not without a lot of work. Finding your path to becoming a strong leader is often fraught with challenges. It's not easy to figure out how to be strategic, successful, and considerate while also being firm. Whether you're on the...(118.15 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%) -
Data science happens in code. The ability to write reproducible, robust, scaleable code is key to a data science project's success—and is absolutely essential for those working with production code. This practical book bridges the gap between data science and software engineering,and clearl...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
With the massive adoption of microservices, operators and developers face far more complexity in their applications today. Service meshes can help you manage this problem by providing a unified control plane to secure, manage, and monitor your entire network. This practical guide shows you how th...(194.65 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Get practical advice on how to leverage AI development tools for all stages of code creation, including requirements, planning, design, coding, debugging, testing, and documentation. With this book, beginners and experienced developers alike will learn how to use a wide range of tools, from gener...(177.65 zł najniższa cena z 30 dni)
164.25 zł
219.00 zł(-25%) -
Rust's popularity is growing, due in part to features like memory safety, type safety, and thread safety. But these same elements can also make learning Rust a challenge, even for experienced programmers. This practical guide helps you make the transition to writing idiomatic Rust—while als...(177.65 zł najniższa cena z 30 dni)
164.25 zł
219.00 zł(-25%) -
Advance your Power BI skills by adding AI to your repertoire at a practice level. With this practical book, business-oriented software engineers and developers will learn the terminologies, practices, and strategy necessary to successfully incorporate AI into your business intelligence estate. Je...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Microservices can be a very effective approach for delivering value to your organization and to your customers. If you get them right, microservices help you to move fast by making changes to small parts of your system hundreds of times a day. But if you get them wrong, microservices will just ma...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
JavaScript gives web developers great power to create rich interactive browser experiences, and much of that power is provided by the browser itself. Modern web APIs enable web-based applications to come to life like never before, supporting actions that once required browser plug-ins. Some are s...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
How will software development and operations have to change to meet the sustainability and green needs of the planet? And what does that imply for development organizations? In this eye-opening book, sustainable software advocates Anne Currie, Sarah Hsu, and Sara Bergman provide a unique overview...(160.65 zł najniższa cena z 30 dni)
169.14 zł
199.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: Cloud Native Go Matthew A. Titmus (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.