Software Engineering and Architecture Virtualization and Cloud Computing Computing as Utility
Motivation WWW has made client-server computing systems available to the average person Shopping/booking Social media Entertainment B2B Unprecedented growth of demand on computing power Facebook user count. Source: statista.com CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Utilization problem Either you Waste hardware resources or Cannot provide service during peaks CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Solution Pool the hardware, and rent it; instead of owning it NIST: CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Examples CS@AU Henrik Bærbak Christensen
Example: Private Cloud/ESXi CS@AU Henrik Bærbak Christensen
The Core Enabling Technology Virtualization The Core Enabling Technology
Henrik Bærbak Christensen A Physical Machine Hardware Processors, devices, memory, etc. Software Built to the given hardware (Instruction Set Architecture, e.g. x86) Built to given OS (App. Programming Interface, e.g. Win 10) OS controls hardware CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen A Virtual Machine Hardware Abstraction Virtual processor, memory, devices, etc. Virtualization Software Indirection: Decouple hardware and OS Multiplex physical hardware across guest VMs VMM: Virtual Machine Monitor CS@AU Henrik Bærbak Christensen
Examples CS@AU Henrik B Christensen
Packages for Students For my courses, I hand out a dedicated VM Faster ‘get going’ CS@AU Henrik B Christensen
Avoid Poluted Machine The last couple of years I have removed code development from my laptop completely... I only develop using my M1, M17, ... Virtual linux machines on my VMWare Workstation or on my ESXi hypervisors One machine per course Easier to switch No polution of my laptop CS@AU Henrik B Christensen
Moving Production Crunch3 machine was the production machine to do awesome stuff in another course I am running It runs on my local ESXI But, but – our students could not see it! Moved to the AUIT vSphere infrastructure VMWare converter… Crunch3 is highly disk IO sensitive Staff moved it ‘as we spoke’ to a pure SSD hypervisor CS@AU Henrik B Christensen
And then Steam released Titan Quest updated to run Win10 Keep Legacy Running Magnus wants to play Titan Quest On his new MSI Windows 10 gaming laptop Titan Quest does not run on Win10 Solution: Win XP SP3 installed on VMWare Player And then Steam released Titan Quest updated to run Win10 CS@AU Henrik B Christensen
Keep Legacy Running My company’s accounting system, SummaSummerum, is a legacy system, unsupported and cannot be reinstalled due to license server has been shut down. I managed to pull license files from my company machine, and ”save it” in a VM. It is called ”TheArk” CS@AU Henrik B Christensen
Process / System VM VMM: Virtual Machine Monitor = The program running VMs CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Process VMs Java VM runs across different OS and machines... CS@AU Henrik Bærbak Christensen
New Kid: Containers Example: Docker Lightweight virtualization. Programmable! Traditional VVMs Docker CS@AU Henrik Bærbak Christensen
Infrastructure-as-code Dockerfile = the OS installation procedure as code! Installing a machine using a single command in the shell ! CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Summary Virtualization: The ultimate abstraction: An executing machine is abstracted into executing software Which allows us to: Rent a virtual machine from a cloud provider Remote control it: start it, install OS and sw, monitor it Allows scaling – just rent more resources when need arises CS@AU Henrik Bærbak Christensen