Winder.AI Blog

Industrial AI insight about machine learning, reinforcement learning, MLOps, and more...


Surprise at CPU Hogging in Golang

Tue Jan 3, 2017, by phil-winder, in Software Engineering

In one of my applications, for various reasons, we now have a batch like process and a HTTP based REST application running inside the same binary. Today I came up against an issue where HTTP latencies were around 10 seconds when the batch process was running.

After some debugging, the reason for this is that although the two are running in separate Go routines, the batch process is not allowing the scheduler to schedule the HTTP request until the batch process has finished.

Data Science Project Checklist

Sun Jan 1, 2017

This checklist can be used to help you define your Data Science project. The aim of this form is to help people understand what you need to know in order to build a real project, product or service. Note that this is a Google Form. You can access the original form here. If you submit this form it will only be visible to Winder.AI and will not be shared publically.

Exploring Microservice Security in an Open-Source Sock Shop

Exploring Microservice Security in an Open-Source Sock Shop

Tue Nov 15, 2016, in Cloud Native, Talk

Slides Abstract Microservices are often lamented as “providing enough rope to hang yourself”, which gives the impression that microservices are inherently insecure. But if we do microservices right, we can improve security with a range of measures all designed to prevent further intrusion and disruption. In this talk, you will discover a reference microservices architecture - the sock shop - which we will abuse in order to investigate microservice security on the Kubernetes orchestrator and Weave Net, a software-defined networking product from Weaveworks.

Gocoverage - Simplifying Go Code Coverage

Tue Oct 11, 2016, by phil-winder, in Software Engineering

Go introduced vendoring into version 1.5 of the language. The vendor folder is used as a dependency cache for a project. Because of the unique way Go handles dependencies, the cache is full code from an entire repository; worts and all. Go will search the vendor folder for its dependencies before it searches the global GOPATH. Tools have emerged to corral the vendor folder and one of my favourites is glide.

How to Test in a Microservices Architecture

Mon Sep 26, 2016, by phil-winder, in Cloud Native

The testing of microservices is inherently more difficult than testing monoliths due to the distributed nature of the code under test. But distributed applications are worth pursuing because by definition they are decoupled and scalable.

With planning, the result is a pipeline that automatically ensures quality. The automated assurance of quality becomes increasingly important in larger projects, because no one person wants to or is able to ensure the quality of the application as a whole.

This article provides some guidelines that I have developed whilst working on a range of software with microservice architectures. I attempt to align the concepts with best practice (references at the end of this article), but some of the terminology is my own.

An Overview of Mesos' New Unified Containerizer

Sat Jul 2, 2016, by phil-winder, in Cloud Native

This week I was lucky enough to have spend some time with Mesos 1.0.0-RC1 and specifically, the new unified containerizer. But first, let’s discuss what has existed for the last few years.

The Benefits of Outsourcing Research and Development

Wed Apr 13, 2016, by phil-winder, in Strategy

When I think about my business, I often end up at one fundamental business truth. The goal of any business is to make profit. This is achieved by either making more money or reducing costs. Often, business activities are outsourced to experts in order to achieve one of these. For example, I outsource my accounting to an expert, in order to a) ensure that I’m being tax efficient (save costs) and b) because I lack the expertise and the time/desire to obtain it (save costs).

Most traditional outsourcing routes (e.g. accountancy, recruiting, etc.) affect either making more money (e.g. marketing) or reducing costs (e.g. recruiting). Outsourcing research and development is different, in that it can benefit your business in both of these ways.