Home Blog Page 285

LF Edge: Bringing Complementary Initiatives Together to Advance Emerging Applications at the Edge

Earlier today, we announced the launch of LF Edge, a new umbrella organization designed to establish an open, interoperable framework for edge computing independent of hardware, silicon, cloud, or operating system. The goal is to foster a unified, open framework that brings complementary projects under one central umbrella to create collaborative solutions that are compatible and support the ecosystem.

LF Edge is comprised of five anchor projects, which includes the existing Akraino Edge Stack, EdgeX Foundry, and Open Glossary of Edge Computing, as well as two new projects – Home Edge Project, and Project EVE, with seed code and initial architecture donated by Samsung and ZEDEDA, respectively. (More details on these projects are available on the new LF Edge website.)

Everyone is talking about Edge computing, but what does it really mean?

That is the million dollar question. Here’s how I like to define “Edge computing”: it’s a distributed computing paradigm in which computation is largely or completely performed on distributed device nodes known as “smart devices” or “edge devices,”  with between five and 20 milliseconds of latency (as opposed to primarily taking place in a centralized cloud environment). Edge represents a convergence of technologies that have recently matured or are coming to market, including: 5G, Artificial Intelligence, Deep Learning, Analytics, and Hardware. Related, emerging edge applications and convergence of these technologies are also demanding and fueling lower latency and accelerated processing.

Another way to answer the “what is edge” question is: anything that is non-traditional video,or  anything that is not connected that moves (e.g., drones, cars etc). These emerging technologies are really driving the market.  

All that said, there is a strong market opportunity for edge applications, and this spans industrial, enterprise and consumer use cases in complex environments across multiple edges and domains. Primary examples include industrial manufacturing, energy (oil and gas), retail, homes (including B2B2C use cases), automotive, with interest also from sectors such as  fleet/transportation, logistics, building automation, cities and governments, healthcare, and more.

Another leading use case for edge applications is video. Several months ago, IHS Markit interviewed edge computing thought leaders to discover which applications run on edge, deployment timing, revenue potential and the existing and expected barriers and difficulties of deployment. The survey found that 92 percent of the respondents cited video as the top edge application for edge computing, and that 82 percent of edge traffic will be occupied by video applications by 2020. (More details on this research are available in my blog post from September, 2018.)

LF Edge – Why Now?

The current edge market is heavily fragmented, with multiple proprietary stacks for each public cloud. Every application and hardware manufacturer has to certify for individual cloud platforms such as AWS and Microsoft Azure. The open source market for edge is also currently fragmented, with a proliferation of groups working in silos towards similar goals. By adopting the umbrella formula utilized by other existing LF projects such as CNCF and LF Networking, LF Edge will provide an open framework to address market needs for edge and IoT by combining new and existing stacks and consolidating them into one singular, customizable framework.

Additional benefits LF Edge brings to the ecosystem include the establishment of an edge framework that is independent of hardware, silicon, cloud, or operating system protocol and introduces location and latency differentiation to edge applications. LF Edge is well-positioned to collaborate across standards bodies and consortiums (e.g., IIC, AECC, OEC, TIP) by developing code that complements existing industry specifications. The project will also complement existing ecosystems such as AWS and Azure by introducing standard APIs.  

In sum, LF Edge was established to create a common framework for hardware and software specifications and best practices critical to sustaining current and future generations of IoT and edge devices. This new community-forged organization will will help ensure greater harmonization to accelerate deployment among the rapidly growing number of edge devices slated to exceed 20 billion by 2020.

To learn more about LF Edge, read the press release and visit the new website, www.lfedge.org. You can also follow the project on Twitter at @lf_edge.

Understanding Angle Brackets in Bash

Bash provides many important built-in commands, like ls, cd, and mv, as well as regular tools such as grep, awk, and sed. But, it is equally important to know the punctuation marks — the glue in the shape of dots, commas, brackets. and quotes — that allow you to transform and push data from one place to another. Take angle brackets (< >), for example.

Pushing Around

If you are familiar with other programming and scripting languages, you may have used < and > as logical operators to check in a condition whether one value is larger or smaller than another. If you have ever written HTML, you have used angle brackets to enclose tags.

In shell scripting, you can also use brackets to push data from place to place, for example, to a file:

ls > dir_content.txt

In this example, instead of showing the contents of the directory on the command line, > tells the shell to copy it into a file called dir_content.txt. If dir_content.txt doesn’t exist, Bash will create it for you, but if dir_content.txt already exists and is not empty, you will overwrite whatever it contained, so be careful!

You can avoid overwriting existing content by tacking the new stuff onto the end of the old stuff. For that you use >> (instead of >):

ls $HOME > dir_content.txt; wc -l dir_content.txt >> dir_content.txt

This line stores the list of contents of your home directory into dir_content.txt. You then count the number of lines in dir_content.txt (which gives you the number of items in the directory) with wc -l and you tack that value onto the end of the file.

After running the command line on my machine, this is what my dir_content.txt file looks like:

Applications 
bin 
cloud 
Desktop 
Documents 
Downloads 
Games 
ISOs 
lib 
logs 
Music 
OpenSCAD 
Pictures 
Public 
Templates 
test_dir 
Videos 
17 dir_content.txt

The mnemonic here is to look at > and >> as arrows. In fact, the arrows can point the other way, too. Say you have a file called CBActors containing some names of actors and the number of films by the Coen brothers they have been in. Something like this:

John Goodman 5
John Turturro 3
George Clooney 2
Frances McDormand 6
Steve Buscemi 5
Jon Polito 4
Tony Shalhoub 3
James Gandolfini 1

Something like

sort < CBActors # Do this
Frances McDormand 6 # And you get this
George Clooney 2 
James Gandolfini 1 
John Goodman 5 
John Turturro 3 
Jon Polito 4 
Steve Buscemi 5 
Tony Shalhoub 3

Will sort the list alphabetically. But then again, you don’t need < here since sort already expects a file anyway, so sort CBActors will work just as well.

However, if you need to see who is the Coens’ favorite actor, you can check with :

while read name surname films; do echo $films $name $surname > filmsfirst.txt; done < CBActors

Or, to make that a bit more readable:

while read name surname films; 
 do 
   echo $films $name $surname >> filmsfirst; 
 done < CBActors

Let’s break this down, shall we?

  • the while ...; do ... done structure is a loop. The instructions between do and done are repeatedly executed while a condition is met, in this case…
  • … the read instruction has lines to read. read reads from the standard input and will continue reading until there is nothing more to read…
  • … And as standard input is fed in via < and comes from CBActors, that means the while loop will loop until the last line of CBActors is piped into the loop.
  • Getting back to read for a sec, the tool is clever enough to see that there are three distinct fields separated by spaces on each line of the file. That allows you to put the first field from each line in the name variable, the second in surname and the third in films. This comes in handy later, on the line that says echo $films $name $surname >> filmsfirst;, allowing you to reorder the fields and push them into a file called filmsfirst.

At the end of all that, you have a file called filmsfirst that looks like this:

5 John Goodman 
3 John Turturro 
2 George Clooney 
6 Frances McDormand 
5 Steve Buscemi 
4 Jon Polito 
3 Tony Shalhoub 
1 James Gandolfini

which you can now use with sort:

sort -r filmsfirst

to see who is the Coens’ favorite actor. Yes, it is Frances McDormand. (The -r option reverses the sort, so McDormand ends up on top).

We’ll look at more angles on this topic next time!

Working with the Container Storage Library and Tools in Red Hat Enterprise Linux

How containers are stored on disk is often a mystery to users working with the containers. In this post, we’re going to look at how containers images are stored and some of the tools that you can use to work with those images directly –Podman, Skopeo, and Buildah.

Evolution of Container Image Storage

When I first started working with containers, one of the things I did not like about Docker’s architecture was that the daemon hid the information about the image store within itself. The only realistic way someone could use the images was through the daemon. We were working on theatomic tool and wanted a way to mount the container images so that we could scan them. After all a container image was just a mount point under devicemapper or overlay.

The container runtime team at Red Hat created the atomic mountcommand to mount images under Docker and this was used within atomic scan. The issue here was that the daemon did not know about this so if someone attempted to remove the image while we mounted it, the daemon would get confused. The locking and manipulation had to be done within the daemon. …

Container storage configuration is defined in the storage.conf file. For containers engines that run as root, the storage.conf file is stored in /etc/containers/storage.conf. If you are running rootless with a tool like Podman, then the storage.conf file is stored in $HOME/.config/containers/storage.conf.

Read more at Red Hat blog

High Reliability Infrastructure Migrations

On Tuesday I gave a talk at KubeCon called High Reliability Infrastructure Migrations. The abstract was:

For companies with high availability requirements (99.99% uptime or higher), running new software in production comes with a lot of risks. But it’s possible to make significant infrastructure changes while maintaining the availability your customers expect! I’ll give you a toolbox for derisking migrations and making infrastructure changes with confidence, with examples from our Kubernetes & Envoy experience at Stripe.

Here are a few links & notes about things I mentioned in the talk.

skycfg: write functions, not YAML

I talked about how my team is working on non-YAML interfaces for configuring Kubernetes. The demo is at skycfg.fun, and it’s on GitHub here. It’s based on Starlark, a configuration language that’s a subset of Python.

My coworker John has promised that he’ll write a blog post about it at some point, and I’m hoping that’s coming soon 🙂

no haunted forests

I mentioned a deploy system rewrite we did. John has a great blog post about when rewrites are a good idea and how he approached that rewrite called no haunted forests.

Read more at Julia Evans

Watch all the presentations from KubeCon +CloudNativeCon, including Kelsey Hightower’s keynote.

CoreDNS Joins the Ranks of CNCF Graduates

Created just three years ago and admitted to the Cloud Native Computing Foundation (CNCF) as an incubating project a year later, DNS server CoreDNS has come a long way. Last month, CoreDNS was named the default DNS for Kubernetes and now the CNCF has announced that the project will join the ranks of Kubernetes, Prometheus, and Envoy as a CNCF graduate — the first of 2019. CoreDNS will graduate just a year shy of its anniversary of becoming an incubating project with CNCF.

The CNCF incubates projects according to a three tier progression of maturity, starting first at the sandbox, then moving on to incubation, and finally graduation. The criteria for graduation include a number of qualifications, such as “committers from at least two organizations,” which signals that a project will not fail if a single individual or company pulls out, but also several more meant to help ensure the future success of the project.

A CNCF statement details the project’s further qualifications, which include not only the basic requirements such as the adoption of the CNCF Code of Conduct, but also various other signals of maturity. 

Read more at The New Stack

Ubuntu Core Slims Down, Offers 10-Year LTS Support

Canonical released Ubuntu Core 18, based on Ubuntu 18.04 LTS, bringing 10-year support to the embedded Linux platform. Other enhancements include a reduced attack surface and easier porting of Ubuntu apps.



Canonical’s stripped-down, container-like Ubuntu Core version of Ubuntu for embedded IoT has reached version 18. The most significant benefit is that the distro is based on Ubuntu 18.04 LTS (Bionic Beaver), which was released in early 2018. The release’s long-term support (LTS) status means Canonical promises to support it for 10 years, improving the chance of warding off malware attacks throughout the product lifespan.

Ubuntu Core, which runs on a variety of devices including Lime SDR boards such as the LimeNET Micro board, is already notable for being one of the more secure embedded Linux distros around. Its “snap” apps are containerized, and it offers transactional updates, among other security features.

In addition to the LTS status, the new release should be even more secure because the already minimalist distro has the smallest footprint yet, fitting into 260MB, according to the ZDNet story that alerted us to the release.

Read more at LinuxGizmos

DHS Issues Security Alert About Recent DNS Hijacking Attacks

The US Department of Homeland Security (DHS) has published today an “emergency directive” that contains guidance in regards to a recent report detailing a wave of DNS hijacking incidents perpetrated out of Iran.

The emergency directive [1, 2] orders government agencies to audit DNS records for unauthorized edits, change passwords, and enable multi-factor authentication for all accounts through which DNS records can be managed.

The DHS documents also urges government IT personnel to monitor Certificate Transparency (CT) logs for newly-issued TLS certificates that have been issued for government domains, but which have not been requested by government workers (a sign that a malicious actor has hijacked a government domain’s DNS records, and is now requesting TLS certificates in its).

Read more at ZDNet

How to Set Up SELinux Right, the First Time

When you need to run Linux in an especially secure environment, SELinux is the answer. But it takes some know-how to get the hypersecure Linux version up and running.

Twenty years ago, when it became apparent how important Linux would become, the U.S. National Security Agency created a mandatory access control (MAC) architecture for Linux. As in other realms, security is always important, but sometimes it’s especially important. From its creation and extending to today, Security-Enhanced Linux (SELinux) has blocked tampering threats and prevented attempts to bypass application security.

I hasten to stress that you should not adopt SELinux just because the extra-robust security functionality exists. Yes, I know how much security matters to your business, but SELinux isn’t for everyone. Running SELinux takes extra time, requires far more hands-on involvement than other Linux distributions, and demands deep knowledge about Linux architecture.

In fact, if you set it up haphazardly, you are asking for trouble. 

Read more at HPE

4 Open-Source Network Management Tools Improve Usability, Performance

Network management tools have come a long way from the early command-line products with arcane, text-based configuration files that kept everyone except the resident (typically Linux) guru in the dark. Today’s management tools, replete with desktop or web-based GUIs, easy installs and configuration wizards, are far more accessible. With each iteration vendors find ways to make these tools more powerful and easier to use. 

For this review, we evaluated newer versions of three established open-source network management products – OpenNMS, Zenoss Core and NetXMS – as well as a relative newcomer, Sensu Core. All four products are free and open source.

Here’s what we found:

OpenNMS provides a range of management options, from simple to complex, and it’s available for both Windows and Linux environments. Customizable dashboard options are a plus, but configuration can be tricky.

Zenoss Core stands out for its flexible reporting and wide range of preconfigured plugins, however it’s only available for two versions of Linux.

Read more at ITWorld

How Blockchain Changes the Nature of Trust

Blockchains have to be trusted in order for them to succeed, and public blockchains can cause problems you may not think about, according to Bruce Schneier, a fellow and lecturer at the Harvard Kennedy School, in his keynote address at December’s Hyperledger Global Forum on “Security, Trust and Blockchain.”

Schneier began his talk by citing a quote from Bitcoin’s anonymous developer, Satoshi Nakamoto, who said “We have proposed a system for electronic transaction without relying on trust.”

“That’s just not true,’’ Schneier said. “Bitcoin is not a system that doesn’t rely on trust.” It eliminates certain trust intermediaries, but you have to somehow trust Bitcoin, he noted. Generally speaking, the Bitcoin system changes the nature of trust.

Schneier called himself a big fan of “systems thinking,” which is what the issue boils down to, he said. This is something that is in too short supply in the tech world right now,’’ he maintained, and “we need a lot more of it.”

Trust relationships

Schneier’s talk focused on the data structures and protocols that make up a public blockchain. He called private blockchains “100 percent uninteresting,” explaining that they’re easy to create and secure, they don’t need any special properties, and they’ve been around for years.

Public blockchains are what’s new, he noted. They have three elements that make them work:

  • The ledger, which is the record of what happened and in what order
  • The consensus algorithm, which ensures all copies of the ledger are the same
  • The token, which is the currency

All the pieces fit together as a single system, and whether they can achieve anything gets back to the issue of trust, he said.

Read more and watch the complete presentation at The Linux Foundation.