Principles of Microservices

Some principles that should be followed when designing micro services. Accuracy – Fail hard or show full accurate results, never in between. Our goal is to provide precise numbers customers trust. Sending incomplete numbers because our systems aren’t healthy can’t be an excuse, we should follow the rule of “all or nothing”. Scalability – Predictable way to increase capacity. Growing only the components that are over loaded. It’s easier to identify bottlenecks when it’s components that are fully instrumented and provide an accurate view of their performance.

Read more

Share Comments

Golang Impala Client

Yesterday’s post where I figured out what it took to build thrift interfaces to attach to Cloudera Impala got a big improvement today. I combined my work with the hivething project that Derek Greentree wrote. It’s of course called impalathing over on github, it really does clean up the API. The big thing is that since this behind the scenes uses the ImpalaServer Thrift API everything is marshaled back from the server as TAB delimitated strings.

Read more

Share Comments

Golang and Hive/Impala – Thrift

This started out as a quick project to see about taking a component of our service and migrating it from Python to Go. We’ve been talking about migrating services from the semi-monolithic version to more loosely coupled – the general idea is to move to Thrift oriented services. We have a core component of our system that uses Impala as a key backend, it’s a very stable service that could be logically broken out.

Read more

Share Comments

NPS for Support Feedback

Quick observation: At the end of any support email thread NPS rank it. NPS is based on the key question “How likely is it you would recommend us to a friend?” However, when dealing with support it’s never a “recommend”. Could the question be one of these: How satisfied were you with the handling of your issue? How likely would support be a reason for continuing to use our service?

Read more

Share Comments

ioloop as a core concept

In the begininning there was main() and that was good. But under the surface that has changed, it’s still main() but what really happens is dynamic linking, exit handling resources… We’re even throwing garbage collection in for good luck. But, it’s still main(). Why? If you do anything that’s isn’t linear programming you see that ioloop() is really main and you have boilerplate to set up everything for your call to the ioloop().

Read more

Share Comments

Reproducible instalation

The learning curve on chef is a lot steeper than I wish. Can’t say that I’ve got it running like I would. But, I can now provision a devbox on AWS in 5 minutes with basic packages and users in a sane state. It took 2 days of fiddling. Now back to developing systems onto of basic environments. Things left to learn – How to get private keys onto the machine so git integration is smooth How to checkout private repos with chef onto the boxes The big challenge is how to “auto” configure an environments with AWS Elastic IPs or other tidbits.

Read more

Share Comments

Twitter is the Forrest

Was reminded this morning. I check my Facebook page for updates, but I never check my twitter page. I’ll watch the twitter feed during the day. Thinking it’s like a tree in the woods, if it falls and nobody’s watching do you care? If it’s important it’s on Facebook.

Read more

Share Comments

Fizz Buzz

As seen on a thread on Hacker News about Fizz Buzz and “interesting” functional ways to solve it. Realized that there are many ways to boil the ocean, but this feels like a nice compromise between data/program separation and language. Note this is using a “Bazz” variant of the FizzBuzz problem where Bazz is printed every 7 numbers. cases = [(3, "Fizz"), (5, "Buzz"), (7, "Bazz")] for i in range(110): pr = “.

Read more

Share Comments

MLB Needs the Lance Rule

Thinking about the Oakland A win last night got me thinking about MLB. The A have had a great season ending, while the Giants have fumbled around at the end. But, wait they had to suspend Melky for drug use… Could their be a correlation? Sorry, I’m not going to do a bunch of statistics, but more a thought experiment. We all know the tale of Lance and his Tour jerseys, but MLB doesn’t have the same remediation.

Read more

Share Comments

Synergy is Fun

One could say I’ve got too many projects with too much free time, but another way to look at things is that constant exploration can put a smile on your face. I’ve been working on a few projects: GearTracker (http://geartracker.com) This is my big project, which I really need some product marketing help on. I’ve gotten most of the infrastructure in place, but need somebody to come in an help me put the finishing 20% on top to make the first time experience right and probably catch where I’ve just been wrong headed about the thinking.

Read more

Share Comments