Distributed Computing with Go

A tutorial leading the aspiring Go developer to full mastery of Golang's distributed features.
Preview in Mapt

Distributed Computing with Go

V.N. Nikhil Anurag
New Release!

1 customer reviews
A tutorial leading the aspiring Go developer to full mastery of Golang's distributed features.
Mapt Subscription
FREE
€29.73/m after trial
eBook
€22.49
RRP €32.11
Save 29%
Print + eBook
€33.99
RRP €33.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
€0.00
€22.49
€33.99
€29.74 p/m after trial
RRP €32.11
RRP €33.99
Subscription
eBook
Print + eBook
Start 14 Day Trial

Frequently bought together


Distributed Computing with Go Book Cover
Distributed Computing with Go
€ 32.11
€ 22.49
Go Network Programming Cookbook Book Cover
Go Network Programming Cookbook
€ 41.63
€ 29.15
Buy 2 for €35.42
Save €32.20
Add to Cart

Book Details

ISBN 139781787125384
Paperback246 pages

Book Description

Distributed Computing with Go gives developers with a good idea how basic Go development works the tools to fulfill the true potential of Golang development in a world of concurrent web and cloud applications. Nikhil starts out by setting up a professional Go development environment. Then you’ll learn the basic concepts and practices of Golang concurrent and parallel development.

You’ll find out in the new few chapters how to balance resources and data with REST and standard web approaches while keeping concurrency in mind.  Most Go applications these days will run in a data center or on the cloud, which is a condition upon which the next chapter depends. There, you’ll expand your skills considerably by writing a distributed document indexing system during the next two chapters. This system has to balance a large corpus of documents with considerable analytical demands.

Another use case is the way in which a web application written in Go can be consciously redesigned to take distributed features into account. The chapter is rather interesting for Go developers who have to migrate existing Go applications to computationally and memory-intensive environments. The final chapter relates to the rather onerous task of testing parallel and distributed applications, something that is not usually taught in standard computer science curricula.

Table of Contents

Chapter 1: Developer Environment for Go
GOROOT
GOPATH
Package management
Structuring a project
Working with book's code
Containers
Testing in Go
Summary
Chapter 2: Understanding Goroutines
Concurrency and parallelism
Go's runtime scheduler
Gotchas when using goroutines
Summary
Chapter 3: Channels and Messages
Controlling parallelism
Channels and data communication
Types of channels
Closing channels
Multiplexing channels
Summary
Chapter 4: The RESTful Web
HTTP and sessions
The REST protocol
Fundamentals of a REST server
How to make REST calls
Summary
Chapter 5: Introducing Goophr
What is Goophr?
Design overview
OpenAPI specification
Project structure
Summary
Chapter 6: Goophr Concierge
Revisiting the API definition
Document feeder – the REST API endpoint
Query handler – the REST API endpoint
Conventions
Logical flow diagrams
The Concierge source code
Summary
Chapter 7: Goophr Librarian
The standard indexing model
The inverted indexing model
Ranking
Revisiting the API definition
The document indexer – the REST API endpoint
The query resolver – the REST API endpoint
Code conventions
Librarian source code
Testing Librarian
Summary
Chapter 8: Deploying Goophr
Updating Goophr Concierge
Orchestrating with docker-compose
The Goophr source code
Running Goophr with docker-compose
Searching for keywords with Goophr
Authorization on a web server
Summary
Chapter 9: Foundations of Web Scale Architecture
Scaling a web application
Monolith versus microservices
Deployment options
Summary

What You Will Learn

  • Gain proficiency with concurrency and parallelism in Go
  • Learn how to test your application using Go's standard library
  • Learn industry best practices with technologies such as REST, OpenAPI, Docker, and so on
  • Design and build a distributed search engine
  • Learn strategies on how to design a system for web scale

Authors

Table of Contents

Chapter 1: Developer Environment for Go
GOROOT
GOPATH
Package management
Structuring a project
Working with book's code
Containers
Testing in Go
Summary
Chapter 2: Understanding Goroutines
Concurrency and parallelism
Go's runtime scheduler
Gotchas when using goroutines
Summary
Chapter 3: Channels and Messages
Controlling parallelism
Channels and data communication
Types of channels
Closing channels
Multiplexing channels
Summary
Chapter 4: The RESTful Web
HTTP and sessions
The REST protocol
Fundamentals of a REST server
How to make REST calls
Summary
Chapter 5: Introducing Goophr
What is Goophr?
Design overview
OpenAPI specification
Project structure
Summary
Chapter 6: Goophr Concierge
Revisiting the API definition
Document feeder – the REST API endpoint
Query handler – the REST API endpoint
Conventions
Logical flow diagrams
The Concierge source code
Summary
Chapter 7: Goophr Librarian
The standard indexing model
The inverted indexing model
Ranking
Revisiting the API definition
The document indexer – the REST API endpoint
The query resolver – the REST API endpoint
Code conventions
Librarian source code
Testing Librarian
Summary
Chapter 8: Deploying Goophr
Updating Goophr Concierge
Orchestrating with docker-compose
The Goophr source code
Running Goophr with docker-compose
Searching for keywords with Goophr
Authorization on a web server
Summary
Chapter 9: Foundations of Web Scale Architecture
Scaling a web application
Monolith versus microservices
Deployment options
Summary

Book Details

ISBN 139781787125384
Paperback246 pages
Read More
From 1 reviews

Read More Reviews

Recommended for You

Go Network Programming Cookbook Book Cover
Go Network Programming Cookbook
€ 41.63
€ 29.15
Go Standard Library Cookbook Book Cover
Go Standard Library Cookbook
€ 40.44
€ 28.32
Isomorphic Go Book Cover
Isomorphic Go
€ 45.20
€ 31.65
Go Web Development Cookbook Book Cover
Go Web Development Cookbook
€ 41.63
€ 29.15
Building RESTful Web services with Go Book Cover
Building RESTful Web services with Go
€ 41.63
€ 29.15
Cloud Native programming with Golang Book Cover
Cloud Native programming with Golang
€ 41.63
€ 29.15