We’ll life happens, and like everyone else I’ve been busy. I have, however, been working on some exciting stuff so I thought it was time to get back to blogging to share all the cool stuff going on. First, I have been working in management. This means that I have to steal cycles to do the techie stuff these days. Second, my son has started playing travel soccer which stills most of my early evenings and a good part of my weekends. I do love to see him compete however, so no complaints here. All this is to say that I have had to be more deliberate in what I have been working on.
I plan for this to be the first in a series of blogs and I thought it best to go over some of the topics that have been taking up my time. I will list out both technical and non-technical issues that I have been wrestling with and provide a little context. My hope is this information with help me to prioritize my subsequent blog posts as well as give some context to them when they come out.
Last year, my team stepped up to the plate and went from zero to fully supporting Highly Available MySQL in about 9 months. We spent time learning the platform, sharing knowledge and testing different configurations. We also worked with Percona to have an independent expert come out and verify that we were on the right track. When it was all said and done we not only have a handful of production applications on stand-alone MySQL instances and an application running on top of Galera, we also realize that MySQL provides us the ability to control data platform much better than our primary platforms (Oracle and Microsoft SQL Server). My technical contribution to this project was providing a one day hands on Galera training for the team so they could better understand that technology.
After spending last year rolling out MySQL, I had planned to spend this year cleaning up some remaining issues and working on standardizing our Oracle and SQL Server environments more. Life has a way of changing my priorities. Our company had a major initiative that required the use of MongoDB as the data store. I had been reading up on MongoDB and had attended some local user group meetings, but as a team we were basically at ground zero as far as MongoDB was concerned. Once again, we leaned on Percona to help us get some replica sets up in support of the aggressive project goals, and I had two of my folks work through the wonderful online training provided by MongoDB Inc.
We are still very much in the middle of this project, but so far I am excited by what I have seen. I think that developers here are going to love somethings about MongoDB, and it will help us solve some issues we have in being more agile with our data stores.
Database as a Service
Another big initiative my team has going on right now is transitioning to a true Database as a Service provider. We currently have a self-help website I built years ago that lets our customers spin up development and test databases, copy databases between instances, as well as deploy code without worrying about the documentation needed in the CMDB (the application handles all that). It has served us well, but it was built without an API. In order to integrate with other automation initiatives within the company we need to provide all this and more via an API.
We looked at Cloud Foundry and Trove as options to “buy” our way out to this. But with all the other change going on we decided that it would be best to implement our own API and allowing others to plug in as needed. This allows us to better control the back-end services and keep our existing investments in monitoring, backups, and other processes. I am working with another member of my team to build a Restful API for this. We have chosen to leverage NodeJS as our development platform. For a “.Net” guy this is a steep learning curve, but so far I am digging it.
I’ll try to keep you up to speed on these areas. I apologize in advance if post come at you in a seemingly random way from here on out. I just hope to make the time to share and with all this going on the topics are bound to blend together.