In a recent podcast, I was lucky to have a discussion with Niall Murphy about the role of Site Reliability Engineering. Having contributed to the seminal SRE book, and having experience in this field for many years it was an honour to get the opportunity to chat to him.
We recently wished to switch over our sites hosted on GitHub Pages to be soley HTTPS. However, although you are able to supply a custom domain or support HTTPS traffic you are not able to do both. In this article I would like to guide you through the process of how we went about achieving this using CloudFront, Route 53 and Lambda@Edge.
In this article we discuss our recent move to route all requests through CloudFront, allowing us to parse all traffic through the AWS Web Application Firewall (WAF). We highlight the reasoning behind this change, and some issues/remedies ecountered when trying to garner concrete logs from the WAF instance.
Following on from my previous post which discussed manipulating images, I would now like to expand upon this and look into how you can interact with audio using Lambda. To highlight this use-case we will be creating a simple service which given a name and optional voice (provided by Polly), will synthesise the name and include it in a returned ‘And the winner is…’ applause MP3 file. This will demonstrate how to integrate Polly within Lambda, compile and execute native-code within Lambda and return a binary MP3 file to the client.
I’ve recently been getting really interested in the concept of Functions as a Service (FaaS) and the Serverless Framework. I decided to make a little experimental AWS Lambda, to see how I could use it to manipulate images. For this contrived example I came up with the (silly) idea of ‘Memes as a Service’ (everything needs to be a service nowadays).
A while ago, I wondered if it was possible to write asynchronous code using PHP. After some research I found a library called ReactPHP.
After watching the videos, reading the documentation, reviewing examples and writing some sample code using the library, I struggled to think of something useful that I could create with it… then one day, staring at my screen, I had a very stupid idea about how it could be very helpful.
Over the past couple of months MyBuilder has be transitioning from primarily a dedicated server-stack (with orchestration through Puppet) to cloud infrastructure by-way of Amazon Web Services. We have been a proponent of AWS for quite some time, taking advantage of services such as S3 and CloudFront in our current setup. We are also not unfamiliar with EC2, spreading some of our application requirements onto several instances over the past couple of years. However, we really have not been taking full advantage of the ‘Cloud nature’ of the product, and still treating each server as something in-between a Snowflake and Phoenix.
When a project becomes sufficiently large in size you will undoubtedly encounter the need to simplify certain tasks, such as managing external dependencies or configuring environment parameters. Within the MyBuilder code-base we have required these kinds of processes for some time.
Promises are an invaluable abstraction around ‘eventual’ results within asynchronous operations. I recently had the need to be able to retry a Promise-based action in the event of a failure. It turned out to be very easy to implement such a process using simple recursive constructs.