Node at LinkedIn: The Pursuit of Thinner, Lighter, Faster

A discussion with Kiran Prasad, Kelly Norton, and Terry Coatta

Node.js, the server-side JavaScript-based software platform used to build scalable network applications, has been all the rage among many developers for the past couple of years, although its popularity has also managed to enrage some others, who have unleashed a barrage of negative blog posts to point out its perceived shortcomings. Still, while new and untested, Node continues to win more converts.

Case StudyNode at LinkedIn: The Pursuit of Thinner, Lighter, Faster

 

Related:
Reveling in Constraints
Multitier Programming in Hop
High Performance Web Sites

This is the Foo Field

The meaning of bits and avoiding upgrade bog downs

GEORGE NEVILLE-NEIL

Dear KV,

When will someone write documentation that tells you what the bits mean rather than what they set? I’ve been working to integrate a library into our system, and every time I try to figure out what it wants from my code, all it tells me is what a part of it is: “This is the foo field.” The problem is that it doesn’t tell me what happens when I set foo. It’s as if I’m supposed to know that already.

Confoosed

This is the Foo Field

 

Unikernels: Rise of the Virtual Library Operating System

What if all the software layers in a virtual appliance were compiled within the same safe, high-level language framework?

ANIL MADHAVAPEDDY AND DAVID J. SCOTT

Cloud computing has been pioneering the business of renting computing resources in large data centers to multiple (and possibly competing) tenants. The basic enabling technology for the cloud isoperating-system virtualization such as Xen1 or VMWare, which allows customers to multiplex VMs (virtual machines) on a shared cluster of physical machines. Each VM presents as a self-containedcomputer, booting a standard operating-system kernel and running unmodified applications just as if it were executing on a physical machine.

Unikernels: Rise of the Virtual Library Operating System

 

Related:
Self-Healing in Modern Operating Systems
Erlang for Concurrent Programming
Passing a Language through the Eye of a Needle

Toward Software-defined SLAs

Enterprise computing in the public cloud

JASON LANGO, BRACKET COMPUTING

The public cloud has introduced new technology and architectures that could reshape enterprise computing. In particular, the public cloud is a new design center for enterprise applications, platform software, and services. API-driven orchestration of large-scale, on-demand resources is an important new design attribute, which differentiates public-cloud from conventional enterprise data-center infrastructure. Enterprise applications must adapt to the new public-cloud design center, but at the same time new software and system design patterns can add enterprise attributes and service levels to public-cloud services.

Toward Software-defined SLAs

Related:
Why Cloud Computing Will Never Be Free
Condos and Clouds
There’s Just No Getting around It: You’re Building a Distributed System

 

The Road to SDN

An intellectual history of programmable networks

NICK FEAMSTER, GEORGIA INSTITUTE OF TECHNOLOGY 

JENNIFER REXFORD, PRINCETON UNIVERSITY
ELLEN ZEGURA, GEORGIA INSTITUTE OF TECHNOLOGY

Designing and managing networks has become more innovative over the past few years with the aid of SDN (software-defined networking). This technology seems to have appeared suddenly, but it is actually part of a long history of trying to make computer networks more programmable.

The Road to SDN

 

The Bikeshed: Center Wheel for Success

“Not invented here” syndrome is not unique to the IT world.

POUL-HENNING KAMP

When I first read the claim that HealthCare.gov, the Web site initiated by the Affordable Care Act, had cost $500 million to create,4I didn’t believe the number. There is no way to make a Web site cost that much. But the actual number seems not to be an order-of-magnitude lower, and as I understand the reports, the Web site doesn’t have much to show for the high cost in term of performance, features, or quality in general. This is hardly a unique experience in the IT world. In fact, it seems more the rule than the exception.

Center Wheel for Success

 

The Software Inferno

 

Dante’s tale, as experienced by a software architect

ALEX E. BELL, THE BOEING COMPANY

PREFACE

 

The Software Inferno is a tale that parallels The Inferno, Part One ofThe Divine Comedy written by Dante Alighieri in the early 1300s. That literary masterpiece describes the condemnation and punishment faced by a variety of sinners in their hell-spent afterlives as recompense for atrocities committed during their earthly existences. The Software Inferno is a similar account, describing a journey where “sinners against software” are encountered amidst their torment, within their assigned areas of eternal condemnation, and paying their penance.

The Software Inferno

 

 

Related:

Death by UML Fever
Coding for the Code
Software Development with Code Maps

 

Making the Web Faster with HTTP 2.0

HTTP continues to evolve

ILYA GRIGORIK

HTTP (Hypertext Transfer Protocol) is one of the most widely used application protocols on the Internet. Since its publication, RFC 2616 (HTTP 1.1) has served as a foundation for the unprecedented growth of the Internet: billions of devices of all shapes and sizes, from desktop computers to the tiny Web devices in our pockets, speak HTTP every day to deliver news, video, and millions of other Web applications we have all come to depend on in our everyday lives.

Making the Web Faster with HTTP 2.0

Related:

Improving Performance on the Internet
High Performance Web Sites
How Fast is Your Web Site?

Intermediate Representation

The increasing significance of intermediate representations in compilers

FRED CHOW

Program compilation is a complicated process. A compiler is a software program that translates a high-level source language program into a form ready to execute on a computer. Early in the evolution of compilers, designers introduced IRs (intermediate representations, also commonly called intermediate languages) to manage the complexity of the compilation process. The use of an IR as the compiler’s internal representation of the program enables the compiler to be broken up into multiple phases and components, thus benefiting from modularity.

Intermediate Representation

 

Related:
All Your Database Are Belong to Us
Stream Processors: Progammability and Efficiency
Software Development with Code Maps

The Challenge of Cross-language Interoperability

Interfacing between languages is increasingly important

DAVID CHISNALL

Interoperability between languages has been a problem since the second programming language was invented. Solutions have ranged from language-independent object models such as COM (Component Object Model) and CORBA (Common Object Request Broker Architecture) to VMs (virtual machines) designed to integrate languages, such as the JVM (Java Virtual Machine) and CLR (Common Language Runtime). With software becoming ever more complex and hardware less homogeneous, the likelihood of a single language being the correct tool for an entire program is lower than ever. As modern compilers become more modular, there is potential for a new generation of interesting solutions.

The Challenge of Cross-language Interoperability

 

Related:
The Robustness Principle Reconsidered
Erlang for Concurrent Programming
The Rise and Fall of CORBA