Go: Simple, Easy, Fast – Building a Go (golang) REST Service with Gorilla

There are a lot of tools out there for Go (golang) to build REST based services. Gorilla is a web toolkit for the Go programming language. With Gorilla you can build RPC services, WebSocket apps and many more. Today I’m going to go over building a simple REST service using Gorilla (Mux).

Continue reading

Posted in Go, Open Source | 2 Comments

Introducing ECS Minion – A Python library for interacting with the ECS 2.x Management API

I currently work in EMC’s Cloud Services group and we scale very large storage solutions. We write a lot of code and many times this is done in Python. Previously I wrote another open source tool that worked with EMC’s ViPR product. Today I want to announce that ECS Minion is ready to go. We use both ViperPy and ECS Minion in production but if you find any issues please file it on Github.

To get started check out the readme which has plenty of examples.

To install simply run:

$ pip install ecsminion
Posted in Uncategorized | Leave a comment

Getting started with RethinkDB and Python 3

I’ve been keeping an eye on RethinkDB for a while now and recently began working with it. There is a lot to like about RethinkDB like the ability to easily cluster and scale your deployment but what I’m going to focus on today is something called Changefeeds. I’ll start this blog article off with installing a development server running RethinkDB and then move onto a quick tutorial. From there we will look at Changefeeds.

Continue reading

Posted in Open Source, Python | Leave a comment

Installing Hashicorp’s Consul and using Python 3 to communicate with it

Hashicorp builds several great tools and I’m going to focus on one in particular today called Consul. In particular one of the many ways to utilize Consul is it’s ability to support service discovery, failure detection and to be multi-datacenter aware for things like microservices (or other types of projects). Consul also has a sophisticated key/value storage feature in addition to the other features. Today I want to cover how to easily get a small two node Consul cluster up and running and use Python to do some simple communication with it.

Continue reading

Posted in Open Source, Python | Leave a comment

Exploring Python 3’s Asyncio by Example

In spring 2014 Python 3.4 shipped a provisional package (asyncio) which according to the docsprovides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives“. I can’t possibly cover everything in this article but I can introduce some of the things you can do with it. As per my New’s Years resolution I’ll be building these examples using Python 3.4.2 (Asyncio has been ported back to Python 3.3 now as well).

Continue reading

Posted in Open Source, Python | 7 Comments

Installing Apache Kafka and using Python 3 to communicate with it

Apache Kafka is being used a fair amount these days and where I work is no exception. Kafka is getting a lot done in the highly scaled ‘Cloud’ and elsewhere. Getting a developer instance of Kafka up and running can be a little daunting for those new to it so I’ve come up with an easy way to get your development environment up and running in very little time. We will test out the single node Kafka server using Python 3 and kafka-python.

Continue reading

Posted in Open Source, Python | Leave a comment

Tutorial: Building a Minecraft Microservice with Python 3

Probably many of you have heard of Microservices. They are essentially a small single-purpose, API accessible (typically REST) based application. You can build your microservices in a variety of programming languages or just one depending on your needs. Today I want to guide you through a Python 3 microservice that focuses on one thing and is self-contained in the sense of not requiring any external dependencies that need to be installed via PIP.

Continue reading

Posted in Open Source, Python | 1 Comment

Easily setting up a Salt Master and Minion using Vagrant

I wrote a couple articles previously on getting started with Salt (see here and here). Those articles are good for learning however once you know the general idea of what it takes to install Salt (well one way to install it) sometimes you just want to quickly spin up and Salt master and a minion or two to experiment with. If that sounds like something you would use then go ahead and checkout my repo vagrant-salt-starter. Simply follow the instructions in the readme and you’ll have a Salt master and minion running in no time.

Posted in Open Source, Salt | Leave a comment

Introducing ViperPy – A Python library for interacting with the EMC ViPR API

ViperPy is a Python library for interacting with the EMC ViPR API. ViperPy began originally as an easy way to hook up numerous projects that needed to interact with the ViPR product in order to perform certain metering and billing extraction and handle authentication tokens behind the scenes. Very quickly I realized that it could be useful to others in my group if I added support for additional APIs and certain other features. ViperPy gives a great alternative to the existing Java SDK for ViPR if you would prefer to write your application in Python.

Continue reading

Posted in Open Source, Python | 1 Comment

Building a Python 3 REST application that scales “good enough”

Often developers get caught up in discussions about scaling their applications – usually before one line of code has even been written. Of course its helpful to keep the scalability of an application in mind, it however shouldn’t be a primary focus – at least initially on (most) new applications. I say this simply because the vast majority of applications out there will run just fine under most scenarios with minimal horsepower behind them. Most of us are not building Reddit, Twitter, or Amazon. In fact, you’d be surprised at how even some large projects like Twitter started out and eventually scaled. Suffice to say no at Twitter originally probably could’ve prefigured out how to have scaled Twitter to the levels its at now. Many times you’ll find that handling a few hundred requests per second will handle many corporate (or otherwise) workloads and you’ll never need to go beyond that.

Continue reading

Posted in Open Source, Python | Leave a comment