Docker supporting COVID-19 genomic monitoring
(26 January 2022)

Other recent news...

Google Announces Flutter for Windows
Flutter 2.10 enables the development of high-quality Windows apps that also run as native apps on Android and iOS devices as well as web platforms - all from the same codebase!
4 February 2022
Google launches new Bumblebee version of Android Studio
Android Studio is the officially supported IDE for developing Android apps and building app packages for installation on Android devices.
25 January 2022
Discontinued Long Term Support for AngularJS
AngularJS is a JavaScript-based open-source front-end web framework for developing web applications. It was created by Google and maintained by a community of app developers.
11 January 2022
Docker supporting COVID-19 genomic monitoring
The highly portable, scaleable, and efficient nature of containerisation has transformed how public health disease monitoring is performed. The implementation of containerised workflows have enabled laboratories to quickly adopt complex analytical workflows, which in turn has grown the scale of the viral monitoring effort.

Many laboratories across the globe have moved towards using a dedicated workflow language like WDL or Nextflow for their analytical workflows. Combining a workflow language with dockerised software allows for the creation and routine usage of workflows that are highly portable and easily adapted to a variety of compute environments. This gives laboratories the ability to run small datasets on a laptop or scale to a high performance compute cluster or cloud environment for large datasets.

Microservices are small, modular, and independently deployable services. Docker containers (for Linux and Windows) simplify deployment and testing by bundling a service and its dependencies into a single unit, which is then run in an isolated environment.

Microservices can be a good way to modernise existing legacy software applications by replacing parts of those systems incrementally with microservices rather than completely replacing an old system with a new system. However, organisations are increasingly adopting microservices because they not only want to replace their large legacy applications, but they also want to enable faster app deployments and updates.

Docker allows our app developers to containerise microservices and simplify the delivery and management of those microservices. Containerisation provides individual microservices with their own isolated workload environments, making them independently deployable and scalable. Docker Desktop and Docker Hub lets us standardise and automate the way we build, share and run microservices-based applications.

New Media Aid has been developing web apps using the .Net Framework since it was first released in 2001 and therefore our web app developers and app engineering team would look to use one of the two .Net supported frameworks for building server-side containerised Docker applications, .NET Framework and .NET 6. Whilst these two .Net frameworks share many .NET platform components and our app developers can share code across the two, there are fundamental differences between them so which framework our app engineers use will depend on what needs to be accomplished.

The modularity and lightweight nature of .NET 6 makes it perfect for containers. When you deploy and start a container, its image is far smaller with .NET 6 than with .NET Framework. In contrast, to use .NET Framework for a container, you must base your image on the Windows Server Core image, which is a lot heavier than the Windows Nano Server or Linux images that you use for .NET 6.

Additionally, .NET 6 is cross-platform, so you can deploy server apps with Linux or Windows container images. However, if you are using the traditional .NET Framework, you can only deploy images based on Windows Server Core.

While .NET 6 offers significant benefits for new applications and application patterns, .NET Framework will continue to be a good choice for many existing scenarios.

You might want to use Docker containers just to simplify deployment, even if you are not creating microservices. For example, perhaps you want to improve your DevOps workflow with Docker—containers can give you better isolated test environments and can also eliminate deployment issues caused by missing dependencies when you move to a production environment. In cases like these, even if you are deploying a monolithic application, it makes sense to use Docker and Windows Containers for your current .NET Framework applications.

In most cases for this scenario, you will not need to migrate your existing applications to .NET 6; you can use Docker containers that include the traditional .NET Framework. However, a recommended approach is to use .NET 6 as you extend an existing application, such as writing a new service in ASP.NET Core.

Enterprises are increasingly realising cost savings, solving deployment problems, and improving DevOps and production operations by using containers. Microsoft has been releasing container innovations for Windows and Linux by creating products like Azure Kubernetes Service and Azure Service Fabric, and by partnering with industry leaders like Docker, Mesosphere, and Kubernetes. These products deliver container solutions that help companies build and deploy applications at cloud speed and scale, whatever their choice of platform or tools.

Docker is becoming the de facto standard in the container industry, supported by the most significant vendors in the Windows and Linux ecosystems. (Microsoft is one of the main cloud vendors supporting Docker.) In the future, Docker will probably be ubiquitous in any datacenter in the cloud or on-premises.

In addition, the microservices architecture is emerging as an important approach for distributed mission-critical applications. In a microservice-based architecture, the application is built on a collection of services that can be developed, tested, deployed, and versioned independently.

Containerisation is an approach to software development in which an application or service, its dependencies, and its configuration (abstracted as deployment manifest files) are packaged together as a container image. The containerised application can be tested as a unit and deployed as a container image instance to the host operating system (OS).

Just as shipping containers allow goods to be transported by ship, train, or truck regardless of the cargo inside, software containers act as a standard unit of software deployment that can contain different code and dependencies. Containerising software this way enables developers and IT professionals to deploy them across environments with little or no modification.

Containers also isolate applications from each other on a shared OS. Containerised applications run on top of a container host that in turn runs on the OS (Linux or Windows). Containers therefore have a significantly smaller footprint than virtual machine (VM) images.

Docker is an open-source project for automating the deployment of applications as portable, self-sufficient containers that can run on the cloud or on-premises. Docker is also a company that promotes and evolves this technology, working in collaboration with cloud, Linux, and Windows vendors, including Microsoft.

Docker containers can run anywhere, on-premises in the customer datacenter, in an external service provider or in the cloud, on Azure. Docker image containers can run natively on Linux and Windows. However, Windows images can run only on Windows hosts and Linux images can run on Linux hosts and Windows hosts (using a Hyper-V Linux VM, so far), where host means a server or a VM.

App developers can use development environments on Windows, Linux, or macOS. On the development computer, the app developer runs a Docker host where Docker images are deployed, including the app and its dependencies. Developers who work on Linux or on macOS use a Docker host that is Linux based, and they can create images only for Linux containers. Developers working on macOS can edit code or run the Docker CLI from macOS but containers don't run directly on macOS. Developers who work on Windows can create images for either Linux or Windows Containers.

more news...