AppFog and now Tier 3, CenturyLink is on a Roll!

I feel like I’m being followed by CenturyLink. I shouldn’t be surprised, they should follow me!  😮

But faux paranoia joking aside, it is interesting to see them snapping up two key players in the Cloud Foundry space that have built .NET support into it at an enterprise level. They’re obviously intent on capturing that market. Now they just need to snag Basho and make those services available without being damaged by windows – in other words, enabling the back end and on premise, but remove the (absurd) notion that it ever is put on Windows Server.

With that I add another congratulations to Teir 3 becoming part of the CenturyLink Family, joining the likes of AppFog and others to help build the next stages of PaaS and cloud technologies combined.

Here’s some of the past news of the AppFog acquisition a few months ago.

…and now the Tier 3 acquisition news.

So what does this mean for that PaaS Technology? Especially the elements that I’ve lead, built and been a part of in some way or another the past ~2 years? Well, that’s to be seen, but I have several exceptionally good ideas about what will be done. In subsequent weeks I might even add to some thoughts around this as I have in the past. We’ll see if things keep going the way leading developers want them to go or if this is a sign of consolidation and innovation grinding to a crawl.

It is, after all being consolidated into a corporate entity that has historically had no reputation or focus around developing actual new solutions or a culture that can make that happen. I wish the dev teams of Tier 3 and AppFog the best, but CenturyLink better do well by them or it’ll turn into a standard bleed rate of lost brain power and the innovation trust will disappear.

On that note, congratulations to everyone and good luck!

Orchestrate.io, Webstorm, Hacking Some Code and Project Pivots

In the previous blog entries “Orchestrate.io JavaScript Client Library” and “How to Build an NPM Package, Beginning the Symphonize Project” I kicked off a client library project. However, as things go in techlandia, they have changed. Just a few days after I created the project I learned of Steve Kaliski’s project he’d just rolled out on NPM. So he’d beaten me to the punch for a client library! I didn’t want to do a completely redundant project, so it was…

…Pivot Time!

So a quick pivot and I’ve decided to shift what would have been a client library called symphonize.js to a different project. Here’s the new plan. I’m doing the series, to be posted on the orchestrate.io blog with the first blog entry now live at, “Test Data Builder Symphonize.js with Chance.js“. The next entry will go live soon, diving more into the data structures and who, what, where, when and how to use them.

Using WebStorm for Orchestrate.js Hacking

This is a quick video I put together that outlines the steps to get Webstorm IDE setup to hack on the Orchestrate.js Code base that Steve has setup. I’ve assumed in the video that you’ve already downloaded node.js, Webstorm, and got the version of node.js setup in Webstorm already. The second assumption that I’ve made is that you’ve already downloaded the orchestrate.js code base somewhere and are opening it with Webstorm with the open directory option.

http://vimeo.com/adronhall/webstormorchestratejs

References:

Linux Containers, LXC, FreeBSD Jails, VServer…

These days containerization of work, applications and storage on systems has become a hot topic. Not to say it wasn’t before, but it’s got a boost from the cloud computing segment of the industry. With that I felt the need to write up what I’ve discovered of the history in this industry so far. I’d love feedback and corrections if I’ve got anything out of order here or if – heaven forbid – I’ve got something wrong.

What are Containers?

Before I get into what a container is, it is best to define what operating system-level virtualization is. Sometimes this is referred to as jailed services or apps running in a jail.

This level of virtualization often provides extremely similar functionality as a VMware, Virtual Box or Hyper-V virtual server would provide. The difference however is primarily around the idea that the operating system-level virtualization actually runs as a service, usually protected, that runs apps as if it were an operating system itself.

So what’s a container?

Linux Contains is a feature that allows Linux to run a single or more isolated virtual systems that each have their own network interfaces, computer process threads and namespaces, user namespaces and states.

One of the common abbreviations for Linux Containers you’ll see is LxC. There are however many distinct operating system-level virtualization solutions.

  • Open VZ – this technology uses a single patched Linux kernel, providing the ability to use the architecture and kernel version of the system that is executing the container.
  • Linux V-Server – this technology is a virtual private server implementation that was created by adding operating system-level virtualization to the Linux kerne. The project was started by Jacques Gélinas. It is now maintained by Herbert Pötzl of Austria and is not related to the Linux Virtual Server project. The server breaks things into partitions called security contexts, within that is the virtual private server.
  • FreeBSD Jail – This container technology breaks apps and services into jails.
  • Workload Partitions – This is a technology built for AIX, introduced in AIX 6.1. Workload Partitions breaks things into WPARs. These are software partitions that are created from the resources of a single AIX OS instance. WPARs can be created on any system p(the new old thing, was the RS/6000 tech) hardware that supports AIX 6.1 or higher versions. There are two kinds of WPARs, System WPARs and Application WPARs.
  • Solaris Containers – is a container tech for x86 and SPARC systems. It was first released in February 04′ for Solaris 10. It is also available in OpenSolaris, SmartOS and others as well os Oracle Solaris 11. The Solaris container combines resource controls in seperations referred to as zones. These zones act as completely isolated virtual servers within a OS.

What is so great about a container?

Ok, so I’ve covered what a container is. You’re probably asking, “so what do I do with these containers?” There are a number of things, for starters speed is a huge advantage with containers. You can spool up entire functional application or service systems, like an API facade or something, in seconds. Often times a container will spool up and be ready in less than a second. This provides a huge amount of power to build out flexible, resilient, self-healing distributed systems that otherwise are just impossible to build with slow loading traditional virtual machine technology.

Soft memory is another capability that most containers have. This is the capability of being allocated, or being allocated and running, in memory. As one may already know, if you run something purely out of memory it is extremely fast, often 2-10x faster than running something that has to swap on a physical drive.

Managing crashing services or damaged ecosystem elements. If the containers are running, but one gets hit with an overloaded compute ask, software crashes on it, or one of the many receive some type of blocking state like a DDOS of sorts, just reboot it. Another option is just to kill it and spool up and entirely new instance of the app or service in a container. This ability really is amplified in any cloud environment like AWS where a server instance may crash with some containers on it, but having another instance running with multiple containers on it is easy, and restarting those containers on running instances is easy and extremely fast.

Security is another element that can be assisted with container technology. As I alluded to in the previous point above, if a container gets taken over or otherwise compromised, it’s very easy to just kill it and resume one that is not compromised. Often buying more time to resolve the security concern. Also, by having each container secured against each other container, controlling a container does not result in a compromised physical machine and operating system. This is a huge saving grace when security is breached.

Container Summary

Containers are a hot ticket topic, for good reason. They provide increase management of apps and services, can utilize soft memory, increase security and they’re blazing fast. The technology, albeit having been around for a good decade, is starting to grow in new ways. Containers are starting to also become a mainstay of cloud technology, almost a requirement for effective management of distributed environments.

Next up, I’ll hit on Docker tech from DotCloud and Salomon Hykes @solomonstre.

For now, anybody got some additions or corrections for this short history and definitions of containers?  🙂

Could you answer a few questions about hackathons for me?

Hacking Hackathons

Hacking Hackathons

Recently I was talking to Jeff Martens of CPUsage about Hackathons. A few questions came up about what would make a hackathon fun, exciting and worth your time. Here’s a few questions, that I’d love to have a conversation about…

  • What type of hacking would you or do you prefer to do at a Hackathon? Hardware Hacking? Software Hacking?
  • How important are the prizes?
  • What should the prizes or rewards be?
  • How many people should attend that would actually make the Hackthon fun?
  • Have you attended, and if so, what was the coolest thing about the hackathon to you?
  • Are hackathons better as 1 day or 2 days or more?
  • Should hackathons be during the week or the weekend?

…and as you can imagine, there’s a million other questions. What’s your take on hackathons? Got a few thoughts? Throw down a comment or two, much appreciation for your thoughts, next beer is on me!  😉

Becoming a Better Programmer… Step One, Build a Course

Often a programmer sits back and reflects on, “how can I get better at my job?” A number of months ago I found myself sitting with that same reflection. One of the many ideas that popped into my head was to put together focused material around a topic. Training material, a blog series or something else. I wasn’t sure just yet what it would be, but I knew that was one of the many things I wanted to do. Fast forward a few months.

Fellow Tier 3 coder Richard Seroter, who I’d known for some time via his blog “Richard Seroter’s Architecture Musings” and I had a conversation about what we do, respectively, to keep our skills honed in tech. He brought up he’d be putting together material for Pluralsight for a while now and enjoyed that. It struck me as something I’d like to do too, considering my past reflection, so he made an intro. The rest is history!

Pluralsight Author, Achievement Reached

I’m now a Pluralsight Author (my author’s page) with my first course on Riak Fundamentals. I’m now working on a second course, on Docker Fundamentals. I’ve got a lot more in the queue after that too, so I hope to keep producing a lot of material on everything from the big languages these days like Javascript, Java, Ruby and C# to lesser knowns like Erlang, Go and maybe some others to boot.

For now, check out my Riak Fundamentals Course and some of the other great material that Pluralsight has available. They’ve just acquired TekPub, Peepcode and a number of other companies too, so when you subscribe you don’t just get all the Pluralsight material but also access to all the material at these excellent course creating companies! In the coming days and weeks I’ll have some reviews of other courses I enjoyed. As always, enjoy, subscribe to my blog, subscribe to Pluralsight and cheers!

References: