Serverless Background jobs part 1

Background jobs form the backbone of a lot of modern applications, they are used to perform a range of asynchronous tasks, from image processing through to order processing, fulfillment and shipping. Wherever there is a need to dispatch some sort of task, then monitor or wait for it’s result. In the serverless space AWS Step Functions play a similar role to projects such as delayed job or resque in ruby, celery in python, but with the following differences: ...

Using AWS DeepRacer for ROS development

So the DeepRacer was released with much fanfare by Amazon Web Services (AWS) at this years Reinvent conference in Las Vegas. This combines an off the shelf radio control (RC) car chassis, with an intel based compute module which has been configured to control the throttle, steering of the car. DeepRacer is powered by Robot Operating System (ROS) as a framework which is used for the internal control systems making it a very interesting device for anyone getting started in robotics. ...

Diving into vgo from the Golang project

I have been looking into the Versioned Go Command which was released recently by Russ Cox. In summary this project is a pretty rethink of how golang retrieves and stores packages used to build applications, and more specifically how versioned modules are introduced while retaining reproducible builds. The highlights, and standout features for me are as follows: Adds intrinsic support for versioning into the go command. Includes a few new sub commands such as vendor and verify Incorporates a lot of new ideas around the storage and management of golang modules, which seems to correlate to something akin to a github project. Note there is support for more than one module in a repository but the general idea is one. Adds a new mechanism to retrieve and cache modules in zip files, which will supersede the current source repository. Adds a new proxy mechanism, enabling organisations to provide a mediated, verified module server to developers. But probably the biggest change is the move away from the much maligned $GOPATH, this will as far as I can tell be deprecated over time. Developers will create their projects outside of the $GOPATH, using a file named go.mod to provide a pointer to the projects namespace. ...

AWS User Federation with Keycloak

As a user of Amazon Web Services (AWS) in large organisations I am always mindful of providing a mechanism to enable single sign on (SSO) to simplify the login process for users, enable strict controls for the organisation, and simplify on/off boarding for operations staff. As an advocate for open source I was happy find Keycloak, which is developed by Redhat and is now an option for organisations looking for an open solution to identity federation with AWS. ...

So you want to use DynamoDB?

Over the last few months I have been working on a project which uses DynamoDB almost exclusively for persistence, this has been a big challenge for everyone on the team. As a developer, most of us are comfortable using a Relational database management system (RDBMS) systems, so the move to a primitive key value store has been fun, but we have learnt a lot. To try and capture some of these learnings I have written this article, hopefully it will help those who embark on a similar journey. ...

bootstrap an apex golang project

Lately I have been using apex to build a side project, this tool stream lines building and deploying serverless applications using AWS Lambda. While working on this project I have helped others get started with golang at the same time as apex. My general strategy for building apex applications is to build a standalone version of the functionality on my machine, typically in a way which makes the code reusable, then I import and use that in apex. This post will run through how I do this. ...

bootstrap a golang project

I have been helping a few people get up and running with golang lately and thought it was about time to post a brief getting started. This is primarily for OSX as this is what most of my colleagues use. Firstly you will need to install golang and setup your GOPATH. If your on OSX you can just install homebrew and use it to install golang. brew install go Then in OSX I append a couple of lines to my $HOME/.bash_profile and source the file to update my current environment. On Linux you typically modify your .bashrc. ...

Development with Webpack and Docker

This describes how to develop front-end projects with webpack inside a docker container using boot2docker on OSX. So firstly why would we even do this? The main aim of using docker for development is: Portable build environment Simplified on-boarding of new developers Consistency between development and continuous integration (CI) In summary tools like docker make it very easy to package up a development environment and share it among a team of developers. Sharing folders Within this setup we want the developer to choose what and how they code, on OSX we need an environment where they can just keep using their current editor. ...

IoT Development with Docker Containers

With the almost continuous release of new Internet of Things (IoT) hardware platforms and development boards it is not surprising that SDK delivery has seen a shift to piecemeal and “some assembly required” solutions. The majority of hardware companies have trouble delivering Software Development Kits (SDKs) which just work. Docker presents an opportunity to really make a big leap forward in providing a simple to deploy packaged SDK environments for hardware platforms. It is the first portable package format which works across operating systems, with consistent tooling and a mechanism to share changes with others. ...

July 6, 2015 3 min

Github Security

Having worked with Github for the last six years, commercially for the last three I thought I would do a post on security, or more specifically, protecting your projects, and the ones you work on for others, this may be friends, or it could be a company. Either way the aim of this post is to encourage you to review the security of your personal Github account. Two Factor Authentication As soon as you start build things in Github for other people I recommend you enable two factor authentication, the process is pretty straight forward and services such as Authy and Google Authenticator make this even easier. ...

May 6, 2015 5 min