After a week of travel wherein I was lucky enough to rub elbows with many an end user, I'm back with more DevCentral goodness. Technology really is ubiquitous, by enlarge, and no matter where I go around the world I find people dealing with awesome, interesting solutions or problems. This latest trip was no different, and hearing how many of my fellow geeks out there make use of DevCentral to solve said problems or help envision those solutions is just...awesome. It has me reinvigorated (okay maybe just double invigorated) to get the good word of DevCentral out to the masses, and what better way than the Top 5? I couldn't think of anything either, so here you go, my Top 5 picks of the past two weeks:
Redirects, Rewrites, and App Transfers via iRules
First up this time around is an article that I penned specifically thanks to a question that came up at one of the user groups. It goes though one of the many (see: near infinite) ways in which a user may deal with challenges when augmenting the behavior of an application or the desired behavior of a user base. In this case, I know that this is actually happening given that I actually had face time in real world meat space with the guy responsible for implementing the solution. This particular solution was enough to convince said engineer to call their boss, skip a meeting, and stay at the user group for over an hour longer than they originally intended. True fact. If that isn't hawesome enough for you, it then got white boarded on one of those massive, triple sized white boards you see at the front of college classrooms and occupied the entire thing. That, of course, is likely due to the fact that my hands have atrophied into gnarled keyboard operating utensils as opposed to multi-function tools capable of actually, you know, writing. Still, it was an impressive mess of ink. This solution is a little hard to get your head around at first because of the almost-but-not-quite circular logic, but it's a good one. Take a peek and see for yourself.
F5 Acceleration Guru Panel
In case you haven't been paying attention, the Guru Panel events on DevCentral are not only fun, but wickedly useful. You should check them out. What are they, you ask? Well, the idea is simple: We round up a few experts on a given subject, offer a chance for the community to interact directly with them by asking questions, and let them ramble on as experts tend to do. So far we've covered iApp, iRules, iControl, Security and now Acceleration. The people on this panel, the Acceleration Guru Panel, are some of the people driving the acceleration technologies inside F5. If you want the inside scoop on all things acceleration, these are the people that can get it to you, and as part of this panel discussion, you would have had direct access to them to ask your burning questions about WA, caching or...whatever else you use to make the bits go faster. Never fear if you weren't in attendance, however, it was recorded and you can view through the magic of the internet precisely what was said. The above link will take you there. Make sure to watch for the next Guru Panel, these things are killer.
WILS: Virtualization, Clustering, and Disaster Recovery
In this "Write It like Seth" style post (a style I love, btw) Lori talks about the differences between these three broad, powerful, important topics. To some the disparities are obvious, others use the terms more interchangeably, and I think Lori does a good job here of defining some of the differences. The notion of local reliability vs. global reliability is an interesting one too, and worth looking into. Is your application globally reliable? If not, then all of that fancy DR thinking you're doing probably doesn't matter a heck of a lot to the end user. Sure, you can recover from a catastrophic failure, but how long will your app be down in the meantime? Is it really not worth it to have it available in real time somewhere else, geographically removed, if things hit the proverbial fan? Take a look at Lori's explanations and think it over for yourself. She even explains what "Write It Like Seth" means, for the curious among you.
Wiki Entry: Create DNS Monitor
The CodeShare is one of my very favorite sections on DevCentral. Sharing code, finding out what other people are doing, and generally geeking out over awesome technology - what's not to love? It's good to remember, though, that "CodeShare" does not necessarily mean "iRules" (I know, heresy!). In this fantastic example we get a look at creating a DNS monitor via TMSH that doesn't require an external dig or nslookup call. While I'm most certainly an iRules lover, I get super excited about many of the technologies available on these crazy powerful boxes I get to
play work with every day. TMSH being one of those, naturally. Take a look at this monitor and see for yourself why. All I'll say here is ... 300+ lines. No...seriously, go look.
Vulnerability Patching via iRules: VU#520827 for PHP
For those playing along with the home game, it should be obvious by now that I am an iRules lover. No, an iRules zealot. No...what comes after zealot? I'm one of those. With a sub-degree in zealotry. There are just so many darn things that you can do that are wicked cool and exciting in a "geeks everywhere rejoice!" sort of way with iRules. Not the least of which is the ability to quickly and flexibly patch security vulns as they are released. Intelligent, network based patching can be a massively powerful tool in a tightened security stance. Solving zero-day issues has never been easier than applying one small section of code in one place, not having to roll it out to every app server, and not having to make any changes to your core code in the process. That's exactly what happened in this iRules Tech Tip. A PHP vulnerability was released, one of the awesome engineers here at F5 rolled up an iRule to patch it based on the recommendations from the folks over at PHP HQ, and boom...problem solved without having to tweak an app, a web server, or anything other than your BIG-IP. I know, it's cool. It's okay to grin, I am. Check it out for the details and the code.