Cooking all weekend

So I’ve wrapped up most of my Learning Chef Book and I have to say it was very good at getting me started. It took about two dedicated weekends to get through most everything in detail (including lab set up, etc.) which I think is pretty good. To be fair I have used and played with chef before in a Unix setting, but beyond writing recipes and simple tasks I’ve not done much. I’ve started translating the information over for windows administration, and with the supplement of Chef’s own documentation I’ve been doing pretty well. I’ve been fiddling with the IIS Cookbook to try and configure and set up a windows box, and instead of making my own box I’ve been using opentable/win-2012r2-standard-amd64-nocm from Vagrant’s website. The Box has been treating me well, though I’ve run into some issues with the IIS Cookbook, which appears to stem from the base windows cookbook.

       [2015-08-30T10:42:43-07:00] WARN: Using an LWRP provider by its name (WindowsFeatureDism) directly is no longer supported in Chef 12 and will be removed.  Use Chef::ProviderResolver.new(node, resource, action) instead.

The fact that the base windows cookbook uses DISM for installing windows features caught me off guard, and it appears to not support out of order installations or dependency resolution. The fact that DISM names and PowerShell names vary also caught me off guard since I’m used to leveraging PowerShell for feature installation. Oddly, that isn’t one of the supported providers that the cookbook can leverage, so I’ve forked the cookbook to try and add the PowerShell provider. So if you take a look at the Repo you’ll see my first cookbook is windows! I’ve actually got several local, but I’m looking forward to trying to extend one by opscode as I think that will give me a way better understanding of making complex cookbooks. With the realization of the number of cookbooks I’ll likely be writing, I made an organization for my Cookbooks: https://github.com/wildbillcat-cookbooks which is where you can find my windows fork.

Tomorrow I’ll hopefully get started implementing chef  at work, with my first project this week setting up an IIS Web Farm so we can use a shared hosting environment for our applications. I also plan on experimenting with Microsoft’s web deploy to see if we can leverage chef as a part of our deployment workflow. Chef has put so much hope on the horizon I’m pretty excited about the possibilities it unlocks for our application management. Combined with the deployment pipelines in TFS we should be hitting a completely automated cloudy horizon some time this year. I look forward to seeing the contrast!

Starting From Scratch

Well, my AOCMDB project is going to fall by the wayside for a while. Work has has me overwhelmed the past few months with internal changes and a lot of moving targets. I’ve implemented a new orchestration system using MS build and PowerShell for deployment automation which is very extensible, allowing for the addition of more deployment types with minimal effort. Being that it is mostly in PowerShell we can move it to an alternative build system down the road as I see Jenkins on our horizon.

It has been live for a few weeks now, on boarding applications to it has been a little bumpy but I look forward to running reports later this year to see how many more deployments we perform, along with their average deployment time. I’m still extending the number and types of deployments it can do, and am looking into integrating it with Chef, which we are also currently implementing . By this time next year I don’t think our set up will be recognizable from what it used to be, as I’ll hopefully have driven all of our cloud initiatives into production, and our application developers will be focused on newer application architectures.

Presently for work, my primary focus has been our application deployment automation and Oracle Database Automation. However I’m now focusing all of my free time on Chef, and to a lesser extent CoreOS. I’m hoping to set up a CoreOS cluster and start using docker in production as well, with our first production service being Artifactory. I’m looking at setting it up with Fleet, but I think Kubernetes will be the end state.

With these going, I’m feeling like I’m falling out of touch with the current web stack, so I decided to start developing a small web application of managing and sharing e-books. I found that Oreilly has a really nice sharing license on their eBooks (http://shop.oreilly.com/category/ebooks.do) which encourages letting my coworkers sneek peeks at my collection. Unfortunately I couldn’t find anything to moderate a private ebook collection that you could host yourself and offer community lending. This project will essentally be a bucket list of technologies I want to get up to speed on, and will hopefully serve as good instructional material in the future when the tech goes live. There’s alot of tech stacks I want to play with, so for my own reference I’m listing them here:

  • epub.js (http://futurepress.github.io/epub.js/)
  • Angular 2.0 (https://angular.io/)
  • ASP MVC 6 (http://www.asp.net/vnext/overview/aspnet-vnext)
  • TypeScript (Which Angular 2 is written in)
  • SignalR
  • BootStrap

Essentially I’m thinking of organizing it like a gallery of eBooks, users can add their own the allow other users to “rent” them. Using Angular 2 I can make it an SPA (Or at least portions), and using epub.js I can offer a web viewer. With SignalR I can monitor connections live for maintaining connection to e-books to optimize rental leases on epub files, maintaining a timer on how long an inactive viewing lease can be. (Leaning toward 30 minutes) That said I could  allow that to be set at a per book level, with just a generic default to allow users to customize. This would also enable users to take back their books by force.

I’ve been craving learning some machine learning stuff as well, so I’m thinking of trying out Apache Mahout. (http://mahout.apache.org/) Essentially it allows for an easier leveraging a lot of machine learning techniques, including leveraging Hadoop and Map Reduce. Considering the amount of data analysis we perform at work, I think in the future we could easily leverage this tech to more efficiently scale up our data crunching, as least once we have our cloud infrastructure automated.

It’s good to have my head above water again and working on my external interests. I’m excited to start the new project, although splitting my time between that, Chef and CoreOS/Docker will leave me wanting for time. But I’m excited for all of it, so hopefully I’ll make great strides!