We have been a big fan of DataDog and the level of telemetry/monitoring it provides us for many years now. One such aspect of monitoring that we employ throughout the services we maintain are HTTP health checks, which are intentionally run on a separate cloud provider to our primary which is AWS. DataDog has supplied the ability to handle running these checks via their agent for many years, providing us with a sufficient blackbox means of ensuring a service is functioning as expected. This past week we explored the viability of containerising this responsibility into a service which could be run on a Serverless platform such as the DigitalOcean App Platform.
I was fortunate to be able to make it down to Brighton to spend a day listening to some great technical and non-technical talks on SEO at BrightonSEO 2022. I was particularly impressed on how many people attended the event and the quality of the talks.
It was interesting to see and hear key speakers so passionate about what they do so it was great that some opinions went against the general feeling that content with intent is king. It was good to hear how obtaining backlinks is a difficult job for everyone and how Digital PR, contacting journalists, is a huge part of successful back linking.
I have always been amazed by the sheer amount of services AWS offers. Although I spend a lot of time working within AWS, I am always surprised to find yet another service that I did not know existed. Better still, is with each new service comes an associated new service icon. This is why I thought it would be interesting (and somewhat educational) to build a small trivia game which quizzes you on AWS service icons.
Over the years we’ve seen countless methods for handling redirects in web applications. From the Apache rewrite rule to AWS ALBs, Lambda@Edge, and even with S3 object metadata. In this post I’m going to share yet another method that we’ve recently started using at MyBuilder: CloudFront Functions.
It makes logical sense that ‘faster’ pages are ‘better’ pages. They get things done faster, score better for SEO, use less energy and people like them. This is how I took a page important for SEO at mybuilder.com and cut its metrics in half.
Having had great success using AWS Lambda within our insurance product (MyBuilder Plus), late last year we made the decision to move all our web request traffic over to the platform! However, we noticed when attempting to migrate over one application in particular, that we could not use the latest release of Bref (the PHP runtime) due to a conflict between required Symfony Process component versions.
Ensuring that both the tech team and company as a whole are aware of changes that have just been released is very important. This keeps everyone in the loop with the work that the tech team are carrying out, and how the system is changing over time. Last year we transitioned away from Jenkins to GitHub Actions to manage our CI pipelines, and in the process was able to revise how we notified interested parties about releases.
Here at MyBuilder we recently had the chance to work on a green-field project, which of course meant we were able to play with all the shiny new toys we’ve been dying to try out for a while.
We needed to extract a standalone PDF generation service from some work we’d already done in another project. It was a perfect candidate for running inside AWS Lambda, and thus also finally giving Bref a try in production.
I remember a colleague in a previous job repeating the mantra “program to interfaces, not implementations”.
This sounded like good advice, but it felt a little abstract to me, since in PHP variables do not have types. The values of the variables have types, but the type of an object in memory is never an interface — it’s always a class.