Lacking the traditional fanfare associated with any technology that can use the word "container" or mention "Docker" in its press release, Ubuntu Core and its new Snappy system management scheme was introduced late last year. Since then, it's been gaining steam with Microsoft and Amazon and Google announcing support for the stripped-down version of the operating system.
Ubuntu Core is what's being called a "micro-OS"; a stripped down, lean container-supporting machine that's becoming more popular for web and hyper-scale environments like cloud and mobile devices and even networking devices. At Mobile World Congress in March, the Canonical team put together what they called the cheapest X86 with 6 ports to become the smartest switch at the show. Networking, IoT and refrigerators came together all thanks to Ubuntu core and its snappy new system.
While that might not be your cup of tea (not being a big networking fan), it's what it demonstrates that's important to DevOps: the ability to reach beyond apps and into the broader application infrastructure with a new software management system, Snappy.
Snappy differentiates itself from other software management systems by being transactional. That means there's essentially a big red "rollback" button available that, in the event of an issue with an update, can restore the software to its previous (working) state. It manages this because a Snappy system is broken up into three partitions; two of which are not writable and are managed exclusively by Snappy. The third partition is writeable and is where all persistent data is stored. The two read-only partitions are used by Snappy to manage updates. As the frameworks and apps in a system are updated, they are automatically backed up, if you will, using the read-only partitions and if something goes wrong, the images on those partitions can be used to restore the active (writeable) partition.
Snappy also differentiates frameworks like Docker from the apps deployed using that framework through different security and isolation policies. Frameworks extend the base system, so they're governed by security policies while apps are isolated and have limited ability to poke around the system.
Ubuntu Core and Snappy are being touted as designed for microservices, which are growing in popularity as the basis for web and hyper-scaled applications and which tend to incorporate notions of immutability that fit well with this new update paradigm.
Snappy is particularly well suited, then, to those implementing DevOps-driven processes not necessarily because of its stripped down size or suitability to fit into a containerized environment, but because of the way it manages updates (and thus maintains state of the system). Snappy's transactional system fits well into the world of continuous delivery, particularly as CD continues to push outside its traditional boundaries of app dev and into the infrastructure owned by operations, as noted by DZone's Guide to Continuous Delivery.
A significant percentage (57%) of respondents interested in DevOps and specifically, continuous delivery, want to implement CD for infrastructure. Systems like Ubuntu Core with Snappy are making that desire feasible not only by extending CD to application infrastructure but even further into the application affine networking components like load balancers and application proxies.
That's critical as microservices, microsegmentation and cloud architectures continue to push the envelope in terms of scale of infrastructure required but also how fast the elements within those architectures change. Manual processes that don't scale along with the architectures can be significant obstacles in realizing business goals of faster time to market and higher levels of responsiveness to customer demand in addition to maintaining stability in the face of extreme growth.
The ability to standardize toolsets and processes makes it easier to extend CD in a wider circle of influence around the application, and that's one of the (perhaps unintended) advantages Ubuntu's Snappy brings to the table.