“I’m a man, and I can change, if I have to … I guess.”
This line from The Red Green Show sums up how I felt a little over a year ago. I realized I needed to ramp up my understanding of cloud computing and all things related.
I learned two things from this effort: First, I realized that for all the new buzz words, the cloud builds on everything I learned the past, reducing my learning curve. Second, I learned that there are a huge number of resources in the cloud to help you learn about the cloud—all while getting your hands dirty, so to speak.
In this post I’ll share some of the approaches and tools I discovered/rediscovered that help me learn cloud computing and its related systems of engagement tools. I’ll also provide some insight into how I used the cloud to share this with others.
Understanding the cloud landscape (how all the pieces relate)
The first step that I had to overcome was to understand what all the pieces were, what they did and how they related. I turned to that old friend, Google.
When you stop to think for a moment, it’s truly amazing what you can learn by simply Googling something. However, the one thing I noticed is that you need to dig for relationships. In other words, what is based on what. Being a picture-focused architect I started to build some simple pictures to help me understand the relationships of what I was learning in the cloud. I’ve included a subset of this below so you can see what I’m getting at.
Not surprisingly, most of the new things out there have their roots in work from the past. If you read between the lines, it’s easy to see.
How does a cloud work?
OK—I sorted out the pieces of the puzzle. Now how, exactly, does this work? Being a hands-on guy, I needed to actually use the cloud to internalize its operations. So, I turned to the cloud once again.
I focused in on platform as a service (PaaS) and infrastructure as a service (IaaS) since they form the foundations for all the other ” as a service” models. As a former developer, I needed to get my hands on a server. Since this was before IBM acquired SoftLayer, I provisioned a competitor’s server. That was easy enough, but then I asked, how do I log into a server on the cloud?
Ah, another learning adventure. Again, two things surprised me. One, thanks to “The University of YouTube” there is often a short video that shows you how to do whatever it is you’re trying to do. I was also surprised at how this really wasn’t any different than the things I did in the 90s . Gasp … am I old?
The bottom line is if you want to learn how an IaaS cloud works, just do it. That is the best way to go. As I switched my focus to SoftLayer, I discovered a whole new set of tools in my toolbox, and new things to learn. I found that “doing” is the best teaching tool. I found I did have to crack open my wallet in some cases in order to to pay to learn, but by actually provisioning servers on a cloud I had the lightbulb moment and things started to make sense.
Learning platform as a service
Again, the first phase I went through was understanding the product landscape, tools, and languages available. Once agin, Google helped. Actually, understanding how one developed applications for this type of environment required another aha moment.
By using resources such as YouTube, and by actually trying out IBM’s BlueMix beta, I became comfortable with using a PaaS. When I started this effort, I found that there really wasn’t a good end-to-end view. That required me to dig into resources on CloudFoundry. However, times have changed—much of this is readily available on the BlueMix developers site. There are some very good tutorials and sample code out there that allow you to use the cloud to learn the cloud.
Understanding the languages
At this point, I understood the pieces, the relationships and the infrastructure. But what about these new fangled languages? What is Ruby? How does NodeJS work? Once again, I turned to the cloud. As an avid KahnAcademy user, I looked there first. However, its coverage of programming languages is somewhat weak.
Then, I discovered the codeacademy.com site. This is an interactive learning site to help you learn these “new” languages. OK, so they’re not all new. Frankly, as a developer, I started to see the language flow and similarities about halfway through the lesson. Now, punch cards … that would be new!
Using this site, and companion sites for the various languages ( e.g. http://nodejs.org , https://www.ruby-lang.org/en/, etc.) I discovered how to setup a local runtime environment to run what I had developed. Again, another lesson learned. You don’t need the cloud to run these systems of engagement languages. You can run them on on your PC and/or Mac and get it working there first.
Sharing what I learned
So what? I did all this learning and figured out the relationships and drew some interesting pictures, but how does that help others? Once again, I turned to the cloud—but this time in reverse. I used the cloud’s social capabilities to document what I learned for my colleagues’ benefit.
I have posted some of this work on a wiki on DeveloperWorks, thus providing another resource in the cloud for others to learn from and socialize with. This work is evolving and iterating as I learn more, so bookmark it and come back for more.
And so, the cycle of using the cloud to learn the cloud continues.