Scroll Top
NEWS
NEWS
NEWS

Rethinking Portability in a Virtual Machine World

I don’t get out much anymore, technically speaking. That is, I travel all over the world talking about Internet security and about the Domain Name System (DNS), and recruiting more sensor operators for Farsight Security’s Passive DNS project. But usually I’m addressing non-programmer audiences, and usually the credentials that get me invited are “Internet policy wonk”, not “ex-programmer.”

So I was very much plussed when the EuroBSDCon 2015 programme committee invited me to give the opening keynote here in Stockholm this morning. This is the kind of meeting I don’t get to attend any more, because it concerns a kind of work – digital system architecture and programming – that I don’t do much of any more. Because of travel overhead, it makes no sense not to stay for the whole Con, and I have some observations to share at the end of Day 1.

First, my friend Jordan Hubbard is having more fun than I am. His talk was about work he did while running the Core OS team at Apple, and the work he’s now leading at IX Systems. While on the one hand I don’t love every one of his design choices, on the other hand, he still gets to make design choices whereas I have long since delegated such choices to younger and stronger technologists whose work I have to quick-step to keep abreast of.

Second, my best years as a “hard” technologist currently appear to be behind me. My keynote speech this morning mostly covered work I did in the late 1980’s, 1990’s, and early 2000’s. Somewhere along the line I started feeling old and slow, and I stopped building new stuff. So while today’s audience was either somewhat impressed or very polite, I was still a has-been today – at least as far as programming and technical system design are concerned. “Ouch.” I think I need to re-think how I spend some of my off-hours, because I find I miss the old me, maybe more than a little.

Third, and most importantly, the scope of “portability” has shifted, and programmers and technical system designers can benefit from rethinking the matter.

In Jordan Hubbard’s talk about what he’s jokingly calling “NextBSD”, a fork of FreeBSD wherein he and his team are exploring the merge of some technologies he built as open source software while at Apple. As I listened to his description of an event dispatcher, a thread-elastic task scheduler, an object persistence and reclamation library, an asynchronous notification abstraction layer, and a structured system log manager, I recalled that ISC (Internet Systems Consortium) had built all of that for BIND9 back in 1999 or so – portably! – and that Apple could have saved some time by starting from that code base.

Because my mind runs along economics lines these days, I tried to imagine whether BIND9 could be sped up by using the Apple (and now NextBSD) mechanisms on platforms having such features, and if not, whether such incapacity would render these interfaces hopelessly non-portable, only used by the operating system and its utilities, but ignored by software that had to run on a wide and deep plethora of competing and incompatible systems. And that’s when I had my epiphany.

Portability is at the VM (virtual machine) layer now, not the API or ABI layer.

Because anyone installing a new BIND9 server today is going to dedicate a whole VM to it, and that VM can run any operating system it needs. Indeed, this isn’t just a BIND9 matter. Other DNS servers, or just other servers period, are increasingly isolated behind the membrane of a VM. This trend became popular along about the time that DevOps was reinvented, and this trend is also what illuminates the Docker opportunity and perhaps some elements of the software-defined network (SDN) opportunity also.

These fine-grained VM’s don’t even get maintained, so the ease of maintaining them is irrelevant. If a design or configuration change has to be made, it’ll be made upstream in a “recipe file” somewhere, and a whole new replacement VM will be created, which once running, the old VM will simply be destroyed. So, those of us who care which UNIX shell we’re using, won’t carry that care with us into the diagnostic and monitoring activities on a VM – which only happen just before that VM is replaced by a successor.

Notably, some operating systems have not embraced their role as a VM “guest”. Those will generally not run headless (“without a physical console”), and won’t ship with VirtIO drivers, and so, will generally not be chosen by technical system designers when selecting an operating system for a VM-sized service. The market is big enough for everybody, though.

What this means is if I were crazy enough to write another DNS server (at my age?) I could if I wanted make it completely dependent on some set of features or packages that only existed on, or which worked best on, some particular version and flavor of Linux or BSD. Because my target market for such a DNS server would be operating-system agnostic – they’re just going to put me in a VM, after all. The best packaging/distribution format I could choose would be “ISO” or “image”.

When viewed in that light, the features now being tested out in the NextBSD fork of FreeBSD could be extremely relevant to server level programmers. Portability is at the VM level now! This erases some barriers to innovation, and ought to reduce the total cost of both creating and owning/operating such services. This is probably not news to the DevOps crowd, but it hit me like a brick today.

Lately I’ve been thinking that before the Open Source revolution we had too little software, and now after the Open Source revolution we have too much software – 90% of which is of course dreck. But figuring out which 10% you should be designing into your products and services is a problem made much harder when API and ABI portability was in-scope. Somebody should port BIND9 to NextBSD.

Most days I am the cranky middle aged “hey you kids get off my lawn” guy. But today I am upbeat and more hopeful than fearful about the digital era, because good fences make good neighbors, and many of the Internet security problems the world has lived with in recent decades become somewhat more tractable in small-VM service model.

Greetings from Stockholm, which like San Francisco and Washington DC, wears early October well.

Author:  Paul Vixie
CyberGreen Statistics Advisory Group Member

Privacy Preferences
When you visit our website, it may store information through your browser from specific services, usually in form of cookies. Here you can change your privacy preferences. Please note that blocking some types of cookies may impact your experience on our website and the services we offer.

PRIVACY POLICY

CyberGreen (“us”, “we”, or “our”) operates the CyberGreen website (the “Website Service”).

This page informs you of our policies regarding the collection, use and disclosure of Personal Information when you use our Website Service.

We will not use or share your information with anyone except as described in this Privacy Policy.

We use your Personal Information for providing and improving the Website Service. By using the Website Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, terms used in this Privacy Policy have the same meanings as in our Terms of Use, accessible at https://www.cybergreen.net.

MANUAL INFORMATION COLLECTION AND USE

While using our Website Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you. Personally identifiable information (“Personal Information”) may include, but is not limited to:

  • Name
  • Email address
  • Affiliation
  • Internet Protocol (“IP”) address/range (if requesting opt out from CyberGreen scans)

BROWSER INFORMATION (LOG DATA)

We collect information that your browser sends whenever you visit our Website Service (“Log Data”). This Log Data may include information such as your computer’s IP address, browser type, browser version, the pages of our Website Service that you visit, the time and date of your visit, the time spent on those pages and other statistics.

COOKIES

Cookies are files with small amounts of data, which may include an anonymous unique identifier. Cookies are sent to your browser from a web site and stored on your computer’s hard drive.

We use cookies to collect, store, and/or correlate information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Website Service.

SERVICE PROVIDERS

We may employ third-party companies and individuals to facilitate our Website Service, to provide the Website Service on our behalf, to perform Website Service-related services or to assist us in analyzing how our Website Service is used.

These third parties have access to your Personal Information only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.

SECURITY

The security of your Personal Information is important to us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Information, we cannot guarantee its absolute security.

LINKS TO OTHER SITES

Our Website Service may contain links to other sites that are not operated by us. If you click on a third-party link, you will be directed to that third party’s site. We strongly advise you to review the Privacy Policy of every site you visit.

We have no control over, and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.

CHILDREN’S PRIVACY

Our Website Service does not address anyone under the age of 18 (“Children”).

We do not knowingly collect personally identifiable information from children under 18. If you are a parent or guardian and you are aware that your child has provided us with Personal Information, please contact us. If we discover that a child under 18 has provided us with Personal Information, we will delete such information from our servers immediately.

COMPLIANCE WITH LAWS

We will disclose your Personal Information where required to do so by law or subpoena.

CHANGES TO THIS PRIVACY POLICY

We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

CONTACT US

If you have any questions about this Privacy Policy, please contact us.

TERMS OF USE

The CyberGreen Institute (“CyberGreen”) Is a non-profit, charitable organization dedicated to the creation and dissemination of metrics measuring the Cyber health of networks along with related data, metrics, and analysis. We also assist network operators with the adoption of Cyber hygiene best practices and risk remediation. A big part of our mission is the collection, calculation, and public distribution of our CyberGreen Index. The CyberGreen Index and the other data that we publish on this website is released under the Affero General Public License (version 3) (the “License”). The use of License ensures that our data remains freely accessible and freely useable by members of the public. (In rare circumstances, we may use another license to distribute data, in which case the specific data set will not be available without a click-thru notice specifying the specific license that applies.)

We do ask that you cite us properly in any academic work as the source for anything that you take from this website. If you are a commercial firm and wish to incorporate our data into a commercial product, you must acknowledge CyberGreen as the source of the data that you used and provide your customers with a link to this website with simple instructions on how to find the data that you took from our site.

We do not publish personally identifiable information (PII) or other information that implicates third party privacy rights. CyberGreen is committed to being compliant with GDPR. Our compliance efforts have been certified by the Institute for Social Internet Public Policy (ISIPP).

TERMS OF USE

The CyberGreen Institute (“CyberGreen”) Is a non-profit, charitable organization dedicated to the creation and dissemination of metrics measuring the Cyber health of networks along with related data, metrics, and analysis. We also assist network operators with the adoption of Cyber hygiene best practices and risk remediation. A big part of our mission is the collection, calculation, and public distribution of our CyberGreen Index. The CyberGreen Index and the other data that we publish on this website is released under the Affero General Public License (version 3) (the “License”). The use of License ensures that our data remains freely accessible and freely useable by members of the public. (In rare circumstances, we may use another license to distribute data, in which case the specific data set will not be available without a click-thru notice specifying the specific license that applies.)

We do ask that you cite us properly in any academic work as the source for anything that you take from this website. If you are a commercial firm and wish to incorporate our data into a commercial product, you must acknowledge CyberGreen as the source of the data that you used and provide your customers with a link to this website with simple instructions on how to find the data that you took from our site.

We do not publish personally identifiable information (PII) or other information that implicates third party privacy rights. CyberGreen is committed to being compliant with GDPR. Our compliance efforts have been certified by the Institute for Social Internet Public Policy (ISIPP).

TERMS OF USE

The CyberGreen Institute (“CyberGreen”) Is a non-profit, charitable organization dedicated to the creation and dissemination of metrics measuring the Cyber health of networks along with related data, metrics, and analysis. We also assist network operators with the adoption of Cyber hygiene best practices and risk remediation. A big part of our mission is the collection, calculation, and public distribution of our CyberGreen Index. The CyberGreen Index and the other data that we publish on this website is released under the Affero General Public License (version 3) (the “License”). The use of License ensures that our data remains freely accessible and freely useable by members of the public. (In rare circumstances, we may use another license to distribute data, in which case the specific data set will not be available without a click-thru notice specifying the specific license that applies.)

We do ask that you cite us properly in any academic work as the source for anything that you take from this website. If you are a commercial firm and wish to incorporate our data into a commercial product, you must acknowledge CyberGreen as the source of the data that you used and provide your customers with a link to this website with simple instructions on how to find the data that you took from our site.

We do not publish personally identifiable information (PII) or other information that implicates third party privacy rights. CyberGreen is committed to being compliant with GDPR. Our compliance efforts have been certified by the Institute for Social Internet Public Policy (ISIPP).