← Înapoi la Urmăritori

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 29
  1. The investigation timeline: From false DNS timeout leads to discovering the real culprit—a serial console bottleneck causing 3+ minute network outages.

  2. Abstract Link to heading We run a very large AWS EKS cluster with lots of interesting challenges.

  3. Setup Link to heading Most cloud providers allow you to set commands to run when a host comes online.

  4. Fighting with hard drives TL;DR Link to heading Changing kubelet’s root directory can break CSI drivers and other components.

  5. Debugging a kubernetes node

    Do you ever need to debug a node on kubernetes?

  6. Image from UnSplash Preface Link to heading This post describes how I’ve been conducting sprint planning on my current team.

  7. Image from UnSplash I’ve led infrastructure at a startup for the past 4 years that has had to scale quickly.

  8. Context Link to heading We are using AWS Auora to manager our databases and I want to setup automatic rotation of database passwords.

  9. An unambiguous best practice for systems is to codify your infrastructure in a repeatable text format, rather than clicks in a UI.

  10. Table driven tests are a popular model for testing in Go and a clear improvement to traditional testing of one function per case.

  11. Histograms are an important part of metrics and monitoring.

  12. Interface Contracts Matter

    A recent vulnerability in the go-redis library allowed correctly configured clients to return the results of other redis commands in the event of redis failures.

  13. Problem Link to heading You have a constructor function that creates an object with a background goroutine.

  14. Problem Link to heading You’ve written an object or class.

  15. Go’s append is not always thread safe

    Problem Example Link to heading I commonly see bugs appending to slices in Go in a way that is not thread safe.

  16. I had an integration test that was very complex (most are, sadly) and took too long to start.

  17. Aspects of a good Go library

    A short checklist of what I wish for in a good Go library, in no particular order.

  18. Go Experience report: Go’s type system

    What I wanted to do Link to heading Today’s pkg/errors Link to heading Package errors is a popular go error wrapping package.

  19. Interface wrapping method erasure

    Problem Link to heading The go language spec has no way to simultaneously add or augment behavior to an interface while maintaining commonly accepted best programming practices around minimal interface design.

  20. I get woken up to an alert about read capacity on one of my DynamoDB tables.

  21. Creating custom Go profiles with pprof

    Go’s pprof package is frequently used for heap and CPU profiles, but a little used feature of the package is being able to create custom profiles.

  22. Not lacking nuance Link to heading I’ve mentioned a general guideline of accept interfaces, return structs in a previous post and multiple times on code reviews to coworkers, but often get the question “Why”.

  23. Go race condition trivia

    I recently ran into a -race error message that stumped me for a while, so I’ll retell it here in phases to see if you can catch it.

  24. An interesting property of Go’s built-in data structures is that read operations work even when they are nil!

  25. Package httptrace is a new addition in Go 1.7 that allows users to trace the steps of a HTTP request.

  26. This post will talk about a new library in Go 1.7, the context library, and when or how to correctly use it.

  27. Go client library best practices

    This post describes what I feel are best practices when creating a client library for a service.

  28. Repository organization tips in Go

    This post will describe common approaches to organizing Go code into packages and what I feel is the ideal directory structure for Go repositories.

  29. Preemptive Interface Anti-Pattern in Go

    In this post I will describe the Preemptive Interface pattern often used in code and why I think it is generally an incorrect pattern to follow in Go.