Practical Technology

for practical people.

May 22, 2014
by sjvn01
0 comments

Feeding the Flame of the Collaborative Development Revolution

gile, open source, the cloud, and DevOps have all led to a world where everyone should be involved in programming. Yes, everyone. 

Once upon a time there were users and there were IT and never the twain would meet… except to do battle over tech support lines. Also in a galaxy far, far away there were developers and there were operators, and the only communications between them was brickbat thrown over the wall between the lab and operations.

That was then. This is now.

Sure, you can still have snarling fits between IT and the rest of the company. And yes, you can still have programmers and production fighting like cats and dogs. You can also still run Windows XP, write your documentation in XyWrite, and use waterfall for your programming teams.

It’s time to wake up and smell the coffee, people. These days, thanks to the intersection of four technology trends — Agile, open source, the cloud and the rise of DevOps — everyone can get involved in programming. And, you know what? Everyone should.

As Jonathan Bryce, executive director of the OpenStack Foundation, explained at the OpenStack Summit in May 2014 in Atlanta, “We’re living in a software-defined economy. Every company competes with a start-up. The barrier of entry is now very low. The technology shift of development to open source and the Internet has made it very cheap to build new software and this, in turn, is increasing the velocity of money. Any organization’s ability to do great things with software is arguably its core competence, no matter the industry, vertical, or category.”

The reason for this? We’re now in a hyper-competitive world. Your clients or customers aren’t going to wait for you to improve your service or product if someone else can deliver the goods to them faster.

As Walt Disney’s director of cloud services and architecture, Chris Launey, said at OpenStack Summit we now live in a business world “people can set up a WordPress-powered content site in 20 minutes with a credit card they’re not going to settle for an IT environment where they have to put in tickets.” From where he sits, company IT should no longer have to choose the best two out of the traditional trio of good, fast, or cheap. Instead,  the only ” choice” is  “fast, fast, fast. We change little bits all the time. It’s all about faster pizza with an extra helping of faster.”

Agile

Here’s how this has happened. Agile, of course, provided us with a bridge between developers, operators and end-users. Instead of fighting with each other—therefore wasting time and money—they can, ideally, work together. Whether they use Scrum or Extreme Programming (XP) isn’t so important. What’s vital is getting everyone on the same page. At the same time, modern quality assurance testing tools have made this methodology far more practical.

Open Source

That’s fine within a company, but open source has extended the ability to work together in a collaborative fashion across companies. In the Linux Foundation’s Collaborative Development Trends Report, researchers found that “Ninety-one percent of business managers and executives surveyed [from companies such as Cisco, Fujitsu, HP, IBM, Intel, Google, NEC, Oracle, Qualcomm and Samsung] thought that collaborative software development somewhat to very important to their business. And nearly 80% say collaborative development practices have been seen as more strategic to their organization over the past three years. Nearly half of business managers surveyed said they got involved in collaborative development because it allows them to innovate and/or help transform their industry.”

They’re doing this because open source is no longer a “grassroots movement” or a kind of shadow IT. Instead, “business managers recognize open -source software as a business imperative.”

Why? Because it’s a lot cheaper to work together for a common programming infrastructure. No single company may get most of a proprietary market pie, but everyone gets a piece of a large open-source market pie. And, I might add, it’s simply faster.

The Cloud

Where the cloud comes in is that it makes it possible to deploy these Agile, open-source programs and services to a global market in a matter of minutes. Need to fix a bug? Add a new feature? Make it in your test cloud, then deploy it to your customers in your “real” cloud. No fuss, no muss, and, once again, it’s very, very fast.

DevOps

DevOps is where it all comes together. As Michael Cote, the 451 Research group’s research director for infrastructure, said at OpenStack Summit, “DevOps is all about using agile and the cloud to deliver applications more quickly to market.”  That means building and revising your applications as fast as possible to them to an audience that expects them to be both mobile and cloud-friendly.

In other words, expect to be doing a lot of rewriting of your programs in the next few years. The best way to do this is to use DevOps tools such as Juju, Puppet, Chef and Salt.  However, Cote observed,  few companies are really efficiently using DevOps at this point. So, if you haven’t started yet, you still have time to get up to speed before your rivals do.

What you can’t do, Cote said, is wait. In three years, you’ll be too far behind the curve to catch up.

I use the word “speed” deliberately because, as everyone agreed at OpenStack Summit and other open-source developer meetings I’ve attended in the last six months it’s all about speeding up the software development process.

This can’t be done with technology alone. To use these four change agents effectively you have to change your culture, according to Fred Brooks in “No Silver Bullet” (PDF). Sure, you could try to do it by throwing more programmers at it. But, if you’ve read your Fred Brooks The Mythical Man Month, then you know that never works.

No, to compete in this new hyper-accelerated market, you need to adopt new methods, or to be more precise a combination of new methods and change culture to make the best use of them. If you do, then you can use collaborative methods faster than ever before and that will give you, or your clients, a tremendous market advantage. Good luck!

Feeding the Flame of the Collaborative Development Revolution was first published in Smart Bear.

May 19, 2014
by sjvn01
0 comments

Windows 8.1 Update 1, now with less annoyance

Some disasters are easy to see coming. All you had to do was look at Windows 8 and its Metro — excuse me, Modern — interface back in its beta days and you knew it was going to fly like a pigeon with concrete overshoes. Years went by and Windows 8.1 was — better, but still basically awful. Now Windows 8.1 Update 1 is here, and I’ve been trying it for the past few weeks and, ah, the best I can say is it sucks less.

Windows 8.1 Update 1, now with less annoyance. More>

April 24, 2014
by sjvn01
0 comments

Here comes the black market for XP patches

Hey buddy.”

“Yeah?”

What do you think I’m looking for?”

“XP SP 4.”

“Jeeze. Really?”

“Yeah, but it will cost you…”

I expect conversations along those lines to happen in real life on, say, May 13, 2014. Why that date? It will be the first Patch Tuesday when Microsoft will no longer be releasing patches for Windows XP — unless you’re one of those big XP customers, such as the IRS, that didn’t leave themselves enough time to get off of XP. If you’re one of those, then Microsoft will allow you to buy XP support for at least another year via its Custom Support plan.

Here comes the black market for XP patches. More>

April 21, 2014
by sjvn01
0 comments

What’s the best smartphone? That’s the wrong question.

As my town’s resident technology expert, I am sometimes approached by complete strangers with tech questions. Lately, 9 out of 10 ask, “What’s the best smartphone?”

I can see in their faces that they would like a straightforward answer, something along the lines of, “Buy Samsung’s Galaxy S5; you’ll love it.” But I can’t say that. That’s not because the Galaxy S5 isn’t an excellent phone. Everything I’ve heard about it tells me that it is.

The only answer I can ever give is, “It depends.” And I follow that up with, “What are you going to be using the phone for? What do you really need from the phone? What can’t you do without in a smartphone?”

What’s the best smartphone? That’s the wrong question. More>

April 16, 2014
by sjvn01
0 comments

Show Me The Money: The New Open Source Motivation

If you think open source programming is still about developers working on projects for love or to scratch an itch, think again. A recent Linux Foundation survey found that today’s free software developers are in it for the money.

One stereotype of an open source programmer is the guy in his parent’s basement using EMACS to write obscure code for a GitHub game project. Another common image is that of a passionate hacker pounding away on a Linux kernel coding program, motivated by nothing but her sheer love of programming. People like that do exist, but they’re not representative of 2014’s open-source developers.

No one was more surprised by this discovery than was The Linux Foundation, which conducted a survey of 686 software developers and business managers at some of the world’s largest businesses. These included such companies as Cisco, Fujitsu, HP, IBM, Intel, Google, NEC, Oracle, Qualcomm, and Samsung. Most of the respondents work at organizations with $500 million or more in annual revenue (69%) and more than 500 employees (76%). In short, the people who responded to the market research survey were programmers and team leads from enterprise companies.

The report, Collaborative Development Trends Report 2014, looked at open source based collaborative development projects such as the software-defined networking (SDN) OpenDaylight, virtualization’s Xen Project, and the OpenStack cloud project.

Given that these collaborative projects sprang from corporations’ needs instead of individuals’, some of the survey’s findings weren’t surprising. Today, enterprise business managers recognize open source software as a business imperative and are taking the lead in initiating open source participation, says the report.

For example, it’s no shock that 91% of business managers and executives surveyed reported that open source, collaborative software development was somewhat important or very important to their business. As Linux Foundation director Jim Zemlin said at the Linux Collaboration Summit in March 2014, “A new business model has emerged in which companies are joining together across industries to share development resources and build common open source code bases on which they can differentiate their own products and services. … In the past, collaboration was done by standards committees; now it’s being done by open source foundations.”

Ten years ago, as the Linux Foundation reported, open source software was largely a grassroots movement. “Developers undertook and contributed to open source projects and brought them into the workplace. Business managers oftentimes weren’t even aware that their products were being built with open source tools and components.”

That isn’t the way it is now. Sure, developers do still get started by contributing to an open source project on their own time; almost 35% said they started contributing in their free time. But even more developers are introduced to open source projects on their jobs, with 44% of the respondents reporting job requirements were the primary reason they started contributing.

The situation definitely changed a decade back. Enterprise software developers with 10 or more years of experience were more likely to have started in their free time. Developers with fewer than 10 years of experience largely started due to job requirements.

That’s right. Today, people get into open source because the job requires it. You can’t get much more mainstream than that.

This has happened, the survey reveals, because of the rise of Linux and open source software within the enterprise. Sixty-one percent of the software developers agreed that open source software and/or collaborative development are “on the incline” to become the de-facto way to build software; almost 33% said Linux and open source “dominate” software practices today.

First people use open source. Then, some are motivated to contribute or even to create their own projects. As the report found, “For companies that have embraced Linux and open source software, collaborative development is the natural next step along the spectrum of open source participation that begins with consumption – using open source tools and components – and progresses to contributions with increasing levels of commitment through fixing bugs, writing code and finally starting and leading new projects.”

It’s not just open source projects in and of themselves that’s driving this trend. The survey also showed that the use of open source software development tools is pervasive. Almost 96% use common open source software, such as Git and Subversion for things like version control. And both developers (93%) and managers (91%) use open source development tools to participate in the open source community.

No wonder open source jobs are hotter than hot. Nowadays, if you want to work in enterprise computing, it’s a necessary skill.

Show Me The Money: The New Open Source Motivation. A version of this story first appeared on SmartBear.

April 8, 2014
by sjvn01
0 comments

Why Containers Instead of Hypervisors?

Our cloud-based IT world is founded on hypervisors. It doesn’t have to be that way – and, some say, it shouldn’t be. Containers can deliver more services using the same hardware you’re now using for virtual machines, said one speaker at the Linux Collaboration Summit, and that spells more profits for both data centers and cloud services.

I confess that I’ve long been a little confused about the differences between virtual machine (VM) hypervisors and containers. But at the Linux Collaboration Summit in March 2014, James Bottomley, Parallels‘ CTO of server virtualization and a leading Linux kernel developer, finally set me straight.

Before I go farther I should dispel a misconception you might have. Yes, Parallels is best known for Parallels Desktop for Mac; it enables you to run Windows VMs on Macs and yes, that is a hypervisor-based system. But where Parallels makes its real money is with its Linux server oriented container business. Windows on Macs is sexier, so it gets the headlines.

So why should you care about hypervisors vs. containers? Bottomley explains that hypervisors, such as Hyper-V, KVM, and Xen, all have one thing in common: “They’re based on emulating virtual hardware.” That means they’re fat in terms of system requirements.

Bottomley also sees hypervisors as ungainly and not terribly efficient. He compares them to a Dalek from Dr. Who. Yes, they’re good at “EXTERMINATE,” but earlier models could be flummoxed by a simple set of stairs and include way too much extra gear.

Containers, on the other hand, are based on shared operating systems. They are much skinner and more efficient than hypervisors. Instead of virtualizing hardware, containers rest on top of a single Linux instance. This means you can “leave behind the useless 99.9% VM junk, leaving you with a small, neat capsule containing your application,” says Bottomley.

That has implications for application density. According to Bottomley, using a totally tuned-up container system, you should expect to see four-to-six times as many server instances as you can using Xen or KVM VMs. Even without making extra effort, he asserts, you can run approximately twice as many instances on the same hardware. Impressive!

Lest you think this sounds like science fiction compared to the hypervisors you’ve been using for years, Bottomley reminds us that “Google invested in containers early on. Anything you do on Google today is done in a container—whether it’s Search, Gmail, Google Docs—you get a container of your own for each service.”

To use containers in Linux you use the LXC userspace tools. With this, applications can run in their own container. As far as the program is concerned, it has its own file system, storage, CPU, RAM, and so on.

So far that sounds remarkably how a VM looks to an application. The key difference is that while the hypervisor abstracts an entire device, containers just abstract the operating system kernel.

LXC’s entire point is to “create an environment as close as possible as a standard Linux installation but without the need for a separate kernel,” says Bottomley. To do this it uses these Linux kernel features:

  • Kernel namespaces (ipc, uts, mount, pid, network, and user)
  • AppArmor and SELinux profiles
  • Seccomp policies
  • Chroots (using pivot_root)
  • Kernel capabilities
  • Control groups (cgroups)

The one thing that hypervisors can do that containers can’t, according to Bottomley, is to use different operating systems or kernels. For example, you can use VMware vSphere to run instances of Linux and Windows at the same time. With LXC, all containers must use the same operating system and kernel. In short, you can’t mix and match containers the way you can VMs.

That said, except for testing purposes, how often in a production environment do you really want to run multiple operating system VMs on a server? I’d say “Not very damn often.”

You might think that this all sounds nice, but some developers and devops believe that there are way too many different kinds of containers to mess. Bottomley insists that this is not the case. “All containers have the same code at bottom. It only looks like there are lots of containers.” He adds that Google (which used cgroups for its containers) and Parallels (which uses “bean-counters” in OpenVZ) have merged their codebases so there’s no practical differences between them.

Programs such as Docker are built on top of LXC. In Docker’s case, its advantage is that its open-source engine can be used to pack, ship, and run any application as a lightweight, portable, self sufficient LXC container that runs virtually anywhere. It’s a packaging system for applications.

The big win here for application developers, Bottomley notes, is that programs such as Docker enable you to create a containerized app on your laptop and deploy it to the cloud. “Containers gives you instant application portability,” he says. “In theory, you can do this with hypervisors, but in reality there’s a lot of time spend getting VMs right. If you’re an application developer and use containers you can leave worrying about all the crap to others.”

Bottomley thinks “We’re only beginning to touch what this new virtualization and packing paradigm can mean to us. Eventually, it will make it easier to create true cloud-only applications and server programs that can fit on only almost any device.” Indeed, he believes containers will let us move our programs from any platform to any other platform in time and space… sort of like Dr. Who’s TARDIS.

A version of this story was first published in SmartBear.