On Monday, September 15th, a session about container based software
took place in SAP Office in Ra'anana, Israel.
Among the participants were IT Professionals, IT DevOps team as well as
Developers.
The session was coordinated by SAP Labs IT Developer Workspace Services team
and the instructor was 3rd party consultant*.
During the session, the concept of Software Containers and its
evolution was introduced, via a walk-through on Linux/Unix based OS features:
chroot - Allows isolating a process on a Unix/Linux File System
CGroup (s) - Enables allocation of system resources explicitly
to a group of processes
Network Stack Manipulations (using iptables) enables process
isolation on a network level from other processes
These features (and some others: LXC, AuFS), allow
containing a process or a process group.
Common example for such implementation is LAMP – Linux, Apache, MySQL, PHP/Perl/Python
Using Container based Setup, dramatically reduces the amount of adjustments
needed when deploying from Development to Production comparing to VM based
Setup.
Normally, on VM based Setups, Development environments uses an ‘all-in-one’ VM
- unlike Production Environment which uses separate VMs due to security and
performance considerations.
As we can see in the example diagram below, containers structure persist on
both Development and Production Environments. This is also applicable for
scaling applications on a Server or Multiple servers and reduces the overhead
when designing Automatically Scaling Systems
Following the technical overview, we continued to a
discussion about possible implementation within SAP.
Some of the ideas were to use this technology in the
development process for shipment of Jenkins slave systems for developers.
Other ideas were within IT infrastructure area. Isolation
components of the end user environment such as Quest Authentication Services
and shipping them as a software container.
It was even suggested to ship SAP Hana within a container,
within and outside of SAP…..
Container based architecture VS Virtual Machine based
architecture
Pros :
- Smaller Storage footprint
- Smaller RAM/CPU footprint
- Instant Initialization
- Direct access to Container FS
- Enables Cross-Distribution
Configuration - (Docker) Has a brilliant API and
an implementation of Source Control
Cons
- “Guest” processes run on the same
kernel as the host - (Docker) Can only run Linux
Docker use cases range from Continuous Deliver, Testing, Development Environments, Backbone of Micro-Services architecture and PaaS.
The technology is being vastly adopted and being contributed
to by the largest Tech Sector companies in the world.
see: https://www.docker.com/resources/usecases/
* Shay Cohen of G.S.R. IT consulting (shayco@gmail.com)