Thursday, May 30, 2019

Yii2 Queue with Redis on Docker Swarm is a game changer

I don't know why I haven't utilized this before, but the yiisoft/yii2-queue is a fantastic way to quickly and easily split some of your application processing out to asynchronous workers.

Getting it set up with a redis storage engine on a docker stack is super simple -- we just add a persistent redis service to the docker stack, configure the application to include the queue component, and move our slow process(es) into a queue job.

Since we're using a Docker Swarm stack we don't need to worry about setting up a cron or systemd service, we set up the queue listener as it's own service in the stack, which also gives us the ability to scale the queue workers dynamically as the need arises.

Tuesday, May 7, 2019

DockerCon Hallway Track - Logging to a NFS mounted Docker Volume

Recently at DockerCon I decided to check out the whole 'Hallway Track' concept and share a sticky situation we ran into at work. If you've never been, the Hallway Track is a coordinated effort to get conference attendees talking to one another and sharing knowledge. You post your topic or peruse the posted topics and they facilitate connecting people together to discuss face to face. I was amazed at the number of people who requested to talk to me about our experiences with the complications of writing application logs to a NFS mounted docker volume. The official title was "Lessons learned: Why writing to flat file logs in an NFS mounted docker volume is unwise".

Wednesday, February 13, 2019

Code Analysis with Exakat on Docker

One of the neatest things I learned about last week at SunshinePHP, was how Exakat can be used to perform static analysis of a codebase to help formalize your code review processes.  It's a great tool for determining how consistent you and your team are being with your code, and has indicators to show you how closely your code base aligns to each of the major PHP versions -- an excellent way to check backward compatibility and/or whether you're ready for a PHP upgrade or not. 

With Docker, it's extremely easy to get things running!

Monday, February 11, 2019

Notes from SunshinePHP 2019

This conference blows me away every year! There is always so much to learn and to share.  This year every attendee was able to receive their very own ElePHPant - so my herd continues to grow (ok, so I actually have a menagerie, since it includes a few Docker whales as well!)

Some of my biggest take aways from this year's conference:

  • MySQL 8 and x shell via docker
  • Security testing technique
  • Swoole! (Async. PHP!!!)

Once again, I'm renewing my determination to pick the blogging back up - it may not have as many Yii specific examples, since I tend not to run into quite as many road blocks there as I used to (9 years with a framework will do that) but I'm constantly running into IaaS challenges that others may value insight into.  If only there were more hours in a day ...

Friday, October 19, 2018

ZendCon & Open Enterprise 2018

Wow, can't believe how long it's been since I've taken the time to sit down and post on this blog! Just goes to show how crazy and busy life can get. I just got back from ZCOE 2018 - ZendCon & Open Enterprise, where I had the pleasure to present a variety of information about how to incorporate Docker into your daily workflow and use it effectively.  It was my first time at ZendCon, and I was very impressed with the conference! There was a lot of great information presented in the general sessions and all of the keynotes were full of both historical information about some of the key tools and aspects of the open source community and information about where those tools are heading in the future. I was particularly intrigued by the information about asynchronous PHP and Swoole. I am way too old school to be excited about anything that screams of going backward (which is where my my mind jumps whenever anyone starts talking about how awesome functional programming is - or serverless, which is just functional programming on demand - I jump back to the pre-OOP days of functional chaos in my head), but async. is something that I can see myself getting behind. Super excited to look into it further, in addition to all the other tips and tidbits I picked up at the conference.

For anyone curious, the slides to my presentations can be found on SlideShare

If you happened to be at the conference, please send in your feedback via - your constructive feedback is always valuable and appreciated!

Thursday, September 28, 2017


Despite the crazy busy schedule (I miss my time to sit and write these blogs) and the inability to figure out how to squeeze 10 more hours into any given day, the team at work has decided to participate in HacktoberFest - just too cool to pass up! If you're not familiar with it yet, check it out and find a little time to give back to the open source community in a fun way.

I'll probably be focusing my efforts on the Yii front there, since it's a project that I use daily and am not sure how I lived without it before ... What are you passionate about and willing to sacrifice a little personal time to see thrive?

Saturday, March 19, 2016

Swivel Extension for Yii

In my last post, I mentioned that I was looking forward to making a Swivel extension for Yii. I'm excited to share that I've FINALLY found the time to do so.

It's a fairly straight forward extension, simply providing access from the application to a Swivel component which interacts with the core Swivel library, and which handles the general bucket assignment for users as swivel is accessed. I've also provided a class for integrating the existing Swivel logger over to the primary Yii Logger, and provided a data structure and model for storing the list of features for the application.

The extension is available on the Yii Framework Extensions list, from the GitHub repository or as a composer package.

It's really designed to be installed via composer:
composer require "dhluther/yii-swivel":"~1"

I've tried to keep it lean, but provide a good bit of information about how to implement it and how the Swivel features work on the Yii-Swivel Wiki on GitHub.

I will be creating a 2.0 version shortly as well.

Enjoy! I hope others find it as useful as I think I am going to, and huge props to the Zumba team that developed it and to Stephen Young and his presentation at SunshinePHP 2016!