Skip to Content
Author's profile photo Ofer Yehuda

Container based software and infrastructure design

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*.

/wp-content/uploads/2014/11/1_576889.jpg

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

/wp-content/uploads/2014/11/2_576891.jpg

CGroup (s) – Enables allocation of system resources explicitly
to a group of processes

/wp-content/uploads/2014/11/3_576892.jpg

Network Stack Manipulations (using iptables) enables process
isolation on a network level from other processes/wp-content/uploads/2014/11/4_576893.png

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

/wp-content/uploads/2014/11/5_576896.png

Following the technical overview, we continued to a
discussion about possible implementation within SAP.

/wp-content/uploads/2014/11/6_576897.jpg

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)

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.