
Corporate Service Corps
I had never heard of IBM’s Corporate Service Corps until my friend David Wierbowski participated in one of IBM’s 2014 corporate service teams.
IBM’s corporate service program is one of the ways that IBM contributes back to the communities where it does business. From what I’ve seen, it is also a fantastic experience for the individuals involved, offering both professional and personal challenges and rewards.
Dave recounted and reflected on his experience before, during, and after his service on his CSC blog. I enjoyed reading about the corporate service program through his eyes.
Stopping all instances on your PureApplication System
If your PureApplication System is protected by an uninterruptible power supply (UPS), you likely want to automate a graceful and orderly system shutdown in case of a power loss. To do this, you might create a Linux or AIX virtual machine nearby or even within your PureApplication System, have it monitor for SNMP traps indicating the UPS has detected a power loss, and then trigger an orderly shutdown of both the deployed application instances in your system, as well as triggering the shutdown of the system itself.
Here is a simple PureApplication command-line script that will stop all application instances on a system. If you are running this within the system itself, you should remember to exclude your own deployment from the list of deployments being stopped, and stop it last. This script stops all deployments without regard to dependencies between deployments. You may need to modify it so that dependent deployments are stopped in a particular order.
Finally, this script uses a different method than calling stop() on virtual system and virtual application objects. The built-in stop() method waits for each instance to complete stopping before moving to the next. Instead, this script initiates the stop of all instances in parallel, and then waits for all instances to complete stopping.
# Collect all deployments
listOfVsysClassic = deployer.virtualsystems.list()
listOfVsysRegular = deployer.virtualsysteminstances.list()
listOfVApps = deployer.virtualapplicationinstances.list()
# Initiate stops for all deployments
for vsys in listOfVsysClassic :
print "Stopping vsys classic: %s" % vsys.name
vsys.stop() # vsys classic method does not wait
for vsys in listOfVsysRegular :
print "Stopping vsys: %s" % vsys.deployment_name
deployer.http.putJSON(vsys.uri, {"operation": "stop"})
for vapp in listOfVApps : # This includes shared services
print "Stopping vapp: %s" % vapp.deployment_name
deployer.http.putJSON(vapp.uri, {"operation": "stop"})
# Wait for all deployments to reach a non-transient state
print "Waiting for all instances to stop"
for vsys in listOfVsysClassic :
vsys.refresh()
vsys.waitFor()
for vsys in listOfVsysRegular :
vsys.refresh()
vsys.waitFor()
for vapp in listOfVApps :
vapp.refresh()
vapp.waitFor()
Wat
PureApplication 2.2
Last week, IBM announced the general availability of PureApplication System, Software, and Service version 2.2. There are a lot of exciting developments in this release.
As previously announced, there is now a beta offering of OpenStack Kilo on Intel-based systems.
There are a number of multi-system enhancements that I’m excited about. For example, we are raising the limit on the number of systems in a subdomain from two to four. We are also alleviating the problem of the proliferation of multi-system shared service deployments, by allowing you to link shared service deployments from one multi-system environment profile to another. We’ve also improved the workflow for managing multi-system certificate trust stores.
We’ve significantly enhanced the chargeback reporting capabilities for PureApplication System in version 2.2. And on top of this list of highlights, there are many additional minor enhancements and improvements.
I’m very proud to have had a small part in reaching this milestone. Congratulations to the rest of the PureApplication development team!
Walk for Life 2016
Last year my son Asher and I ran Hand Of Hope Pregnancy Resource Center’s 5k race as part of their annual Walk for Life. This year my daughters Ivy and Charlotte are excited to join us in the race. Would you join us in support of Hand of Hope? Please consider sponsoring us, running together with us, or even just coming out on May 1 to cheer us on!
Over rock and under tree
Well, that was fast. In a matter of a few weeks, I made the jump from Knight Wazer to Royalty Wazer, after having driven a total of 4,665 miles. It is interesting to me that, during this period of two and a half weeks, the point value required to reach royalty did not change. It makes sense to me that this value may be recalculated less frequently, perhaps on a weekly or monthly basis, but I crossed both week and month boundaries without the point value being updated.
This indicates to me that the activity at the 1% mark for Waze members—at least in North Carolina—is stagnant, as the 1% bar is not moving. Thus, in North Carolina less than 1% of the total Waze membership is highly active.
Roads go ever ever on
Last November I joined the Waze traffic and navigation community. I’ve been using Waze since then for my daily commute and also used it for our family’s Thanksgiving trip. My commute time is 35 minutes in one direction compared to the national average of 25 minutes.
It is now mid-February, three months later, and I’m a little surprised at how rapidly I’ve been able to progress in ranking. Just today I received the Waze Knight status, which means that I am in the top 4% of users in my state, North Carolina.
Thus far I have driven only 3,472 miles with Waze. The majority of my Waze points come from driving miles, although I have achieved a fairly normal set of bonus points (for example, using Waze four days out of one week). That is not a lot of activity to reach the top 4%!
If I’d had to guess, I would have expected that somewhere in the neighborhood of 20% of Waze’s user base was fairly active. But from my experience, at least in North Carolina I would say that number must be less than 5% and could be much less than that. Now I’m very curious to see whether and how quickly I’m able to reach the top 1%.
PureApplication and hybrid cloud
IBM has published a new Redbook that discusses how you can build a hybrid cloud solution using PureApplication System, Software and Service.
I’m privileged to have served as a contributor to this Redbook, with a particular focus on the ways in which PureApplication’s multi-system management and deployment capabilities allow you to build cross-site and hybrid business solutions.
But even beyond multi-system deployment, the power of patterns combined with the variety of PureApplication offerings allows for a genuine “write once, run anywhere” model for applications.
Slow down to speed up
The next maneuver that Mott proposed for his pupils was most complicated: ‘Randy, you’re in Gemini down here and you must intercept Agena-B up here. Don’t go for the target. Burn straight ahead. Go faster to go slower.’
‘Doc, I understand that part. But what in hell do I do next?’
‘As you move to a higher orbit, your speed will begin to drop off, and believe it or not, if you obey the figures your computer will be feeding you, you’ll bring your Gemini right in behind the target. The computer will time it so that when you’re about a hundred feet apart, your speeds will be identical, and so will your orbit. Then your twelve-year-old son could dock the two vehicles, because you can make the Gemini move a quarter of a mile an hour faster than the Agena, ease it into a docking.’
Claggett and Pope looked at each other, and the former said, with his bright Texan grin, ‘Like the pretty girl said in My Fair Lady, “I think I got it.”’
‘I believe the professor said that,’ Mott said. ‘And to protect you,’ he added, ‘we always time the docking so it occurs in the daylight part of the orbit.’
‘Real thoughtful,’ Claggett said.
‘So think about the orbits tonight. Memorize the diagram. And keep telling yourself, “To go faster, I must go slower.”’ (James Michener, Space, 502)
You can envision this somewhat counter-intuitive aspect of orbital mechanics in a couple of different ways. First, you can think of the higher orbit as stealing your kinetic energy (slowing you down) and converting it into potential energy (increasing your altitude). You can also picture it in terms of Kepler’s second law, which states that an orbit sweeps out equal areas in equal time. The higher your orbit, the more area your radius is sweeping across, and so your momentum becomes slower in order to compensate.
This notion of speeding up to slow down (and conversely slowing down to speed up) is useful for considering how organizations and projects scale. When your project (program, product, etc.) is small and your customer base is small, you can and do move very quickly. If you are a programmer, it is possible to rewrite your entire codebase in a few weeks. At this stage, organizational disciplines can feel like unnecessary drag on this perceived speed. But if you have fallen into the trap of thinking that way, as your project and customer base grow, the lack of discipline actually becomes a drag on your ability to make further change. Over time, with a continued lack of discipline, both the chance of error and the so-called blast radius of that error become larger. You are slowed down both by your fear of error, and by the cost of having to correct such errors. Being thus slowed down, how can you speed back up?
Certainly this sort of breakneck early speed may be a legitimate tradeoff. The term technical debt was coined to help articulate the fact that such a tradeoff is being made for the sake of present benefit against future cost. But as an organization or project grows, the need to pay down this technical debt becomes more and more critical. And this is where notions such as “paying off debt” and “slowing down to speed up” can help us to feel perfectly at ease with the time and effort we are spending on organizational disciplines that do not obviously contribute to more features and more customers.
For example: if I have “slowed down” by taking the time to create a large battery of automated tests for my codebase, then I am actually able to “speed up” in making further changes to that codebase, because I have a higher degree of confidence not only that my changes will not break existing behaviors, but thereby that my changes will not result in added support costs by exposing my customers to bugs.
To paraphrase the wise man: better is he who has self-governance than he who, without it, governs a city.
And keep telling yourself, “To go faster, I must go slower.”
See also: The Start-Up Trap



