The purpose of this initiative is to facilitate an approach for packaging and deploying JADE applications using light-weight virtualization technology called Containers. Deployment of JADE services as Containers enables the use of Cloud-Native technology and potentially integration with a Cloud-Native enterprise architecture.
The first phase of the initiative is to make it easier to containerize JADE application server and database server nodes.
A container is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another. Containers start and stop quickly, making them ideal for applications that need to rapidly adapt to changing demand.
When your application services are packaged as light-weight containers, you can scale up and scale down your services more easily. This approach can also save on infrastructure cost, because you are scaling containers rather than virtual or physical machines.
Docker became available for Linux in 2013. Starting in 2016, however, Microsoft and Docker partnered to bring the same framework to Windows 10, Windows Server 2016, and later. A Docker container image is a light-weight, standalone, executable package of software that includes everything needed to run an application: code, run time, system tools, system libraries, and configuration.
Cloud native is a twofold term. It is the name for an approach to building applications and services specifically for a cloud environment. It is also used to describe the characteristics of those applications and services.
Cloud Native Computing Foundation (CNCF) Definition
“Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.”
Container platform integration includes extensions that help a container management / orchestration platform such as Kubernetes (K8s) to observe and manage JADE containers in the best possible way. This includes:
We want to make it easier to integrate JADE’s logging subsystem with log collection tools such as Fluentd or Logstash, and integrate with tracing and metrics-gathering libraries such as OpenTracing, Prometheus, and others.
Key to this is a logging architecture that supports a pluggable logging back-end. A default logging implementation that preserves existing JOMMSG logging behavior will be provided.