
Software Development with Go: Cloud-Native Programming using Golang with Linux and Docker
- Length: 407 pages
- Edition: 1
- Language: English
- Publisher: Apress
- Publication Date: 2022-12-29
- ISBN-10: 1484287304
- ISBN-13: 9781484287309
- Sales Rank: #1058245 (See Top 100 Books)
Gain insights into the different challenges that can be solved using Go, with a focus on containers, Linux, security, networking, user interfaces and other relevant cloud based topics. This book reviews the necessary tools to create container-based cloud solutions with Go, a programming language that was born out of the need to address scalable, high availability cloud computing architecture needs inside Google.
Go, also known as Golang, has been adopted across different industries and products with many popular Open Source projects that power cloud computing technologies such as Docker and Kubernetes being written with Go. As the complexity of cloud technology increases, so does the need for people to understand how things work under-the-hood and to fix them when they’re broken.
What You Will Learn
- Understand how the various components of a container-based system works
- Tackle complex technical issues using Go
- Integrate tools that can be used as part of your daily operational needs
- Build system-based products
Who This Book Is For
Developers and Engineers familiar with Go who want to know how different parts of the system work and who want to write command line tools. It will also be beneficial to programmers who already have a system-level understanding and want to use Go to build tools for existing projects and applications.
Table of Contents About the Author About the Technical Reviewer Acknowledgments Introduction Part I: System Programming Chapter 1: System Calls Source Code What Is a System Call? C System Call sys/unix Package System Call in Go Summary Chapter 2: System Calls Using Go Source Code Syscall Package syscall Application Checking Disk Space Webserver with syscall ELF Package High-Level ELF Format Dump Example /sys Filesystem Reading AppArmor Summary Chapter 3: Accessing proc File System Source Code Peeking Inside procfs Reading Memory Information Peeking Network Information Using the procfs Library Code Sample Inside the procfs Library Summary Part II: Containers Chapter 4: Simple Containers Linux Namespace cgroups rootfs Gontainer Project Summary Chapter 5: Containers with Networking Source Code Network Namespace Setting Up with the ip Tool Containers with Networks Summary Chapter 6: Docker Security Source Code seccomp Profiles libseccomp Docker seccomp Docker Proxy Container Attack Surface Summary Part III: Application Security Chapter 7: Gosec and AST Source Code Abstract Syntax Tree Modules Sample Code Inspecting Parsing a File gosec Inside gosec Rules Summary Chapter 8: Scorecard Source Code What Is Scorecard? Setting Up Scorecard Running Scorecard High-Level Flow GitHub GitHub API GitHub Explorer Summary Part IV: Networking Chapter 9: Simple Networking Source Code TCP Networking TCP Client TCP Server UDP Networking UDP Client UDP Server Concurrent Servers Load Testing Summary Chapter 10: System Networking Source Code Ping Utility Code Walkthrough DNS Server Running a DNS Server DNS Forwarder Pack and Unpack Summary Chapter 11: Google gopacket Source Code gopacket Layer TCP Layer Packet Using gopacket pcap Installing libpcap Networking Sniffer Code Walkthrough Analyzing pcap Manually Analyzing pcap Using WireShark Capturing With BPF Summary Chapter 12: Epoll Library Source Code Understanding epoll epoll in Golang Epoll Registration Epoll Wait Epoll Library Summary Part V: Securing Linux Chapter 13: Vulnerability Scanner Source Code Vulnerability Scanners Using Vuls Checking Out the Code Running Scan Learning From Vuls Port Scan Exec SQLite Summary Chapter 14: CrowdSec Source Code CrowdSec Project Using CrowdSec crowdsec.db Learning From CrowdSec System Signal Handling Handling Service Dependencies GeoIP Database Summary Part VI: Terminal User Interface Chapter 15: ANSI and UI Source Code ANSI Escape Code ANSI-Based UI Color Table Styling Text Open Source Library Gookit Spinner Summary Chapter 16: TUI Framework uiprogress Code Flow Updating Progress Bubbletea Init Update View Summary Part VII: Linux System Chapter 17: systemd Source Code systemd systemd Units systemctl Hello Server systemd go-systemd Library Querying Services Journal Machines Summary Chapter 18: cadvisor Source Code Running cAdvisor Web User Interface Architecture Initialization Manager Monitoring Filesystem Information from /sys and /proc Client Library Summary Index
How to download source code?
1. Go to: https://github.com/Apress
2. In the Find a repository… box, search the book title: Software Development with Go: Cloud-Native Programming using Golang with Linux and Docker
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.