Introduction on Docker, Containers(ACI) –
I was not so curious to learn about Containers and Dockers until I tried it and understood what it brings to the table especially from an SAP technology perspective. Also partnership between Microsoft + Docker bringing lots of capabilities to explore from a DevOps perspective. I just picked up this topic after researching Azure Container Instances (ACI) and Azure Kubernetes Services (AKS), a little more especially running SAP Platform in new normal times.
Here is the support disclaimer by SAP in Note format available (Source: SAP Note # 2678076) “As of today Containers, instances and Docker are currently supported for use with SAP HANA Express Edition. Personally, I’m anticipating SAP will provide support for SAP Std./Enterprise editions sooner or later. (hoping Xmas Gift from SAP again!!!).
Secondly, SAP HANA cockpit is also available in docker via SAP HANA Express Edition. ”
In simple words, Docker primarily brings a new user experience to Linux/Windows containers. Once you start using Docker and enjoy this new experience, the side effect is that you will also start thinking automatically about composition and clustering that points to Kubernetes(K8s). With the HANA database, it all started with SAP, now we have Git in HANA XSA, Eclipse as IDE for HANA and SAP ABAP, virtualization of SAP systems and now the time has come to adopt containerization concepts as well. Docker provides advanced technological assistance and system to developers and users so there are no dependencies in running the application. Docker serves as a platform as a service, which is particularly designed to meet many challenges from DevOps trends. Modern developers are all attracted to Docker because it can boost the containerization process. Using the Docker platform, users can speed up runtime in the operating system, application code, runtime, system tools, system libraries, etc.
Docker provides standards and development that virtual machines might not able to bring:
- Boot time is lowered to a few seconds.
- Execution is done with the help of an execution engine instead of a hypervisor.
- Deployment is easier than VMs. You only need one image that is accessible to all the operating systems.
- Interference possibilities are higher because it has no provisions for isolation of systems.
Another thought comes to the mind, what’s the use of containerization with Docker, why do we think it matters a lot and how is it different from virtualization?
The simple answer is here, Containers offer significant startup benefits over virtual machines (VMs). Azure Container Instances(ACI) can start containers in Azure in seconds, without the need to provision and manage VMs. Speed of building the resource!!! okay, Nice!! but still not convincing yet!
The second attempt in explaining it – Use Azure Container Instances to run serverless Docker containers in Azure with simplicity and speed. Deploy an application to a container instance on-demand when you don’t need a full container orchestration platform like Azure Kubernetes Service(AKS) which I am going to demonstrate on the technical front shortly.
By the Standard definition, Containerisation is the method of packaging, distributing, and running applications. Each container encapsulates not only the application itself in the pre-set state but also the required environment for the application to run. For example, in order to run HANA DB, we usually have to install Linux in the VM environment, set it up correctly, so it meets all the prerequisites, then we have to acquire HANA binaries and then perform the HANA installation. It all takes time and resources.
In a nutshell, containerization is another type of virtualization, just not requiring hypervisor and guest OS for our software to run. A single powerful host with Docker could handle many containers with many different applications in it. Also, Containers can be deployed on virtually any cloud or on-premises environment. The enterprise orchestrates the Docker repository running the code, spins it up, and runs it. And while it does require that the organization implement strict policies governing who and what has access to the host environment. The projected market for technological containerization is expected to hit $4.3 billion in 2022 (source: Docker)
Talking about Kubernetes(K8s) It has become the de facto technology in the automation journey of containerization and orchestration. It is a powerful tool that automates deployment and container management. Using Kubernetes, you can put thousands of containers into action, from deployment to management to connection and upgrading.
What SAP components you can run on Docker/Kubernetes as per SAP?
See SAP Notes for details –
SAP Data Hub 2.7: Microsoft Azure Kubernetes Service (AKS) with Kubernetes 1.12, 1.13, 1.14, and 1.15 on Microsoft Azure (2686169 – Prerequisites for installing SAP Data Hub 2)
SAP Data Intelligence 3.0: Microsoft Azure Kubernetes Service (AKS) with Kubernetes 1.14 or higher on Microsoft Azure Container (2871970 – Prerequisites for installing SAP Data Intelligence 3)
SAP HANA Express Edition (2678076 – Support process for SAP HANA with Docker)
SAP HANA Cockpit on Docker
Technical Objective in mind
The idea is to run and simplifying the HANA Deployment & HANA cockpit implementation with minimal effort and cost using Azure Container Instance(ACI) and AKS
The requirement for running SAP HANA on Azure Container Instances (ACI)
The ACI container instance will use 4x CPUs and 14 GB memory, the current limits for an ACI container instance at present.
“Reading brings us unknown friends” – Honoré de Balzac