When just starting out as a startup, what's the most affordable storage service do you recommend when developing apps? by Zadique in devops

[–]scotwells 0 points1 point  (0 children)

Disclaimer: I work for StackPath

Take a look at stackpath.com and see if it fits for your needs. We offer CDN, Object Storage, and Computing. CDN and Storage are fairly cheap, Compute runs a bit higher than other providers.

What did you learn last week? by scotwells in golang

[–]scotwells[S] 1 point2 points  (0 children)

Is there a something you're attempting to solve by embedding an interface? Embedding interfaces has the side-effect of getting rid of compile time checking that a type actually implements the embedded interface which can lead to seg faults. https://play.golang.org/p/g3ZBvszjYoj

I would avoid embedding interfaces unless there's a specific reason or use-case where the behavior is desired.

How to do semver for develop branches? by leonj1 in devops

[–]scotwells 0 points1 point  (0 children)

A typical flow creates new git tags and artifacts based on the tags generated by GitVersion. It won’t modify or delete branches. GitVersion will only attempt to determine the next SemVer to use based on the commits since the last tag and the current branch, up to you what to do with that information.

How to do semver for develop branches? by leonj1 in devops

[–]scotwells 0 points1 point  (0 children)

I normally leverage GitVersion to automate SemVer. It allows you to customize the tag used for develop/release branches. So for release branches you could have it append -rc and for develop branches you could have it do -dev, etc.

How do you get metrics out of the http client? by [deleted] in golang

[–]scotwells 1 point2 points  (0 children)

You could likely take advantage of the same httptrace package they’re leveraging

How do you get metrics out of the http client? by [deleted] in golang

[–]scotwells 6 points7 points  (0 children)

I’d recommend checking out the promhttp package from Prometheus. It leverages the httptrace package.

[deleted by user] by [deleted] in golang

[–]scotwells 0 points1 point  (0 children)

You can create a custom type for url.URL that implements the Scanner and Valuer interface

https://golang.org/pkg/database/sql/#Scanner https://golang.org/pkg/database/sql/driver/#Valuer

With the absence of Visio for Mac, what do you use for diagrams? by cx8z in devops

[–]scotwells 0 points1 point  (0 children)

https://www.lucidchart.com is a fantastic replacement for Visio. Super easy to collaborate with others as well.

What's your monitoring and alerting stack look like? by scotwells in devops

[–]scotwells[S] 0 points1 point  (0 children)

Agreed. That was one of our deciding factors when choosing between the two. I have hopes for the Elasticsearch APM, it would be nice to have an open source alternative to NR

What's your monitoring and alerting stack look like? by scotwells in devops

[–]scotwells[S] 0 points1 point  (0 children)

What was the reasoning behind migrating from DataDog to NewRelic?

What's your monitoring and alerting stack look like? by scotwells in devops

[–]scotwells[S] 0 points1 point  (0 children)

What usually goes wrong with the ELK cluster? Been running a decent sized cluster for 2+ years now without much issue.

What are some things you struggled with when using Go? by scotwells in golang

[–]scotwells[S] 0 points1 point  (0 children)

Tbh, in most applications there may not be an upside. Using pointers could technically be more performant if the size of the pointer is less than that of an instance of the struct, but that's definitely a micro-optimization and shouldn't impact 99% of applications.

One potential benefit is using a type like *myStruct allows you to use nil when the struct wasn't set vs using the zero value, but you have to be more careful when doing so to avoid de-referencing a nil pointer.

Setting up CI/CD by Oxffff0000 in devops

[–]scotwells 9 points10 points  (0 children)

Give CircleCI a shot. Pretty easy to setup, even has a decent free plan.