Get ready for application modernization, Docker style


Containerization is eating software everywhere. Containers — simple, portable wrappers for applications — today are driving change in all major technology platforms, from the data center to the cloud to the Internet of Things.

As both a beneficiary and catalyst of this trend, the Docker ecosystem continues to expand the range of platforms on which containerized applications may be developed and deployed. Increasingly, modernization of all applications for cloud-native deployment will involve, at the very least, containerizing them — aka “Dockerizing.”

The recently completed DockerCon 2017 conference focused on various approaches for modernizing applications through the use of open-source Docker technologies as well as the commercial solutions that leverage those technologies. What follows is a discussion of how several key announcements from the event make it easier for developers to accelerate modernization of their organizations’ applications, Docker-style:

  • Add Linux, hence Docker, containerization support to existing platforms: Docker containers natively leverage Linux container technology, which has long been a core feature of that widely adopted open-source OS. At DockerCon, Docker Inc. announced and open-sourced the collaborative LinuxKit project. This provides developers with a toolkit for building secure, portable, lean and custom Linux subsystems that run container platforms — especially Docker — on Windows, Mac and other non-Linux platforms, including desktop, server, Internet of Things, mainframe, bare metal and virtualized systems. Over the past year, Docker developed and extensively tested LinuxKit with hardware partners (e.g., ARM), infrastructure providers (e.g., Hewlett Packard Enterprise Co.) and cloud service providers (e.g., Microsoft Corp.  and IBM Corp.). At DockerCon 2017, Docker both announced the kit and open-sourced it for management and open governance by the Linux Foundation. All LinuxKit processes, including system daemons, run in containers, thereby enabling users to assemble minimal Linux subsystems (35 megabytes) with only the needed services. This enables development of fast-boot container subsystems with smaller attack surfaces than found on general-purpose Linux systems. The kit also provides a read-only root file system for an immutable-infrastructure deployments enabled by the Docker-developed InfraKit. All LinuxKit system services are containers, which allows developers to remove or replace any of them, even with containerized components that are not Docker-centric.
  • Containerize applications from the get-go using Docker: Containerization, leveraging Docker, should be a core feature of developers’ primary toolkits. At DockerCon, Docker Inc. announced and open-sourced the collaborative Moby Project, which provides developers with an open framework, library and reference assembly for building customized container systems from modular, reusable, interchangeable components. The project provides a library of more than 80 standard, container-platform components, including operating systems, orchestration frameworks, infrastructure management and networking, storage, security, build and image distribution components. Moby includes tools for assembling containerized components into runnable artifacts for various platforms and architectures: bare metal (both x86 and Arm); executables for Linux, Mac and Windows; and VM images for popular cloud and virtualization providers. The project includes a reference assembly called Moby Origin that can be used as is, modified or used as inspiration for developing one’s own custom container system. Moby uses containerd as the default container runtime. With Moby, developers can leverage well-tested common components to rapidly build specialized container systems while differentiating on features. Developers can also add any container-packaged component for innovation and differentiation within the Moby framework. Creating new Moby components is as simple as building a new Open Containers Initiative-compatible container. Developers can use Moby to describe all components of a containerized application, from the high-level configuration files down to the kernels for easy build and deployment.
  • Repackage, port and migrate legacy applications into Dockerized platform environments: Modernization involves bringing legacy assets into the new era. At DockerCon, Docker Inc. announced the Modernize Traditional Applications program, which helps developers repackage legacy applications to run securely, efficiently and with portability in any containerized platform that implements Docker technologies. The MTA Program uses consulting services, automation tooling, Docker Enterprise Edition and Docker’s Containers-as-a-Service offering to help developers modernize existing .NET Windows or Java Linux applications. It enables information technology operations teams to securely containerize existing legacy systems and then, in as little as a few weeks, deploy onto partners’ hybrid cloud infrastructure without needing to modify code or rearchitect the applications. Docker’s partners in the MTA program include Avanade Inc., Cisco Systems Inc., HPE and Microsoft Azure. Under the MTA program, providers’ consultants can repackage designated pilot applications into containers for a fixed fee, with customers assessing how well the migrated containerized application performs prior to commit to more wide-reaching migrations.
  • Run Docker containers alongside target platforms’ native containerization features: Considering that Linux and Docker are not the only platforms that natively support containerization, developers should ensure that new container technologies play well alongside any non-Linux/non-Docker containers on target platforms. At DockerCon, Microsoft announced that it will soon provide expanded support for running Docker and other Linux containers natively on Windows Server platforms.  Microsoft said it is adapting the resource isolation feature in its Hyper-V virtualization software to support Linux-based containers on the platform. Though Windows Server 2016 already provides support for Docker containers, developers of Linux containers currently need to target Windows specifically. Going forward, Linux containers will provide same isolation and management experience as native Windows Server containers that may run on the same host. This feature will enable simplified development and management of Linux and Windows containers hosted on the same Windows platform. In addition to Docker, Microsoft’s partners in this initiative include major Linux platform providers, including Canonical Ltd., Intel Corp., Red Hat Inc. and SUSE. Microsoft is adding each of these companies’ Linux distributions to the list of compatible options that containers will be able to run natively in Windows Server. Separately, Microsoft also announced a new overlay networking driver for Windows Server 2016 that enables developers to create orchestrated Docker Swarms with multiple Windows Server and Linux hosts without the need to separately configure the underlying network fabric. This coincides with the recent announcement that Microsoft is acquiring Deis Inc. to improve its Kubernetes orchestration capabilities surrounding containerized applications.
  • Upgrade to Dockerized versions of commercial enterprise applications: When an enterprise has made significant investments in commercial solutions, modernization often involves upgrading to the newest versions that, in addition to adding fresh functionality, implement the latest, greatest platform and middleware technology. At DockerCon, Oracle Corp. announced that it is teaming with Docker to make its most popular products available for containerized deployment through inclusion in Docker Store. Effective immediately, Oracle has released its flagship databases, middleware and developer tools into the Docker Store marketplace via the Docker Certification Program. Developers can now pull images of more than 100 Oracle products in Docker and quickly start developing, testing and deploying modern enterprise applications. Solutions offered include Oracle Database, Oracle MySQL, Oracle Java 8 SE Runtime Environment, Oracle WebLogic Server, Oracle Coherence, Oracle Instant Client, OpenJDK and Oracle Linux. All of these are now available in the Docker Store as enterprise-ready containers. Together, Oracle and Docker enable developers to quickly build cloud-native applications using Docker Enterprise Edition as their container platform and containerized, enterprise-ready versions of Oracle’s databases and developer tools. With Oracle Cloud, developers can deploy these images on the cloud infrastructure of their choice: virtual, bare metal or managed containers. Note that Oracle already has more than 100 containerized images of its products available on the Docker Hub; the latest announcement concerns their availability on Docker Store, which is a newer marketplace specifically geared for enterprise customers.

For further details on announcements and buzz at DockerCon, check out the following SiliconANGLE articles:

Here’s a wrap-up of DockerCon from theCUBE, SiliconANGLE Media’s streaming video studio:

(* Disclosure: TheCUBE was a paid media partner at DockerCon. Neither Docker nor other conference sponsors have editorial influence on content on SiliconANGLE or theCUBE.)

Photo: olafpictures/Pixabay