Skip to content

Latest commit

 

History

History
47 lines (39 loc) · 2.96 KB

README.md

File metadata and controls

47 lines (39 loc) · 2.96 KB

Phteven Tutorial

What is Go?

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Go is developed by a team at Google and many contributors from the open source community.

Why Go?

Go’s excellent tooling, elegant concurrency model and unique approach to object-orientation has captivated the attention of developers from compiled and scripting languages alike.

Easy to learn. A comparison of keywords from different languages (source):

  • C++ — 84
  • JavaScript — 63
  • Pascal — 54
  • Rust — 52
  • Java — 50
  • Scala — 39
  • Python — 33
  • C — 32
  • Go — 25 ❤

Companies Using Go

We could downsize our provisioned API server pool by about 90%. And we were also able to remove silos of isolated Rails API servers from our stack, drastically simplifying our architecture.

As if that weren't enough, the time it takes to run our full integration test suite dropped from 25 minutes to 2 minutes, and the time to do a full API server deploy with rolling restarts dropped from 30 minutes to 3 minutes. The go API server restarts gracefully so no load balancer juggling and prewarming is necessary.

Compiling our code also turned out not to be an issue — our largest Go app compiles in ~2.5 seconds at worst.

With our Golang upgrade, we are easily able to handle 200 requests per minute and 1.5 million S3 item fetches per day. And those 4 load-balanced instances we were running Octo on initially? We’re now doing it with 2.

We migrated our entire API stack from Python (First Django then Falcon) to Go, reducing the mean response time of an API call from 100ms to 10ms.

We reduced the number of EC2 instances required by 85%.

Want to learn more?