Ubuntu Xenial (16.04 LTS)

for Web development

Created by Anthony ARNAUD / @bluelogon - 10/06/2016

Why Linux ?

Server Usage Statistics 06/2016

trends.builtwith.com/server

Strengths

  • Free
  • Open Source
  • Customisable
  • Secured
  • Stability
  • Large Community
  • Software Repositories
  • No Blue Screen of Death

Weakness

  • Microsoft Office
  • Difficult for newbie (format by school)
  • Property driver/protocol support
  • Graphical Interface

So, Docker on Microsoft Windows ?

Docker Benchmarking

  • Host Ubuntu 16.04
  • Host Windows 10 with Linux in VirtualBox
  • Host Windows 10 with Linux in Hyper-V Guest (Docker Beta)

Docker disk benchmarking through a volume mount

Docker disk benchmarking through a volume mount

Windows errors

  • Hyper-V
    ln: failed to create symbolic link 'symlink': Operation not supported
  • VirtualBox
    ln: failed to create symbolic link 'symlink': Protocol error

Docker and the security

Docker and the security

Docker benchmarking conclusion

  • Using Linux Virtual Machine on Windows
    • Insignificant overhead CPU and Memory
    • The shared between Windows and Linux is the problem:
      • VBoxSF protocol with Boot2Docker (VirtualBox)
      • CIFS protocol with Docker Beta (Hyper-V)
    • Some Linux filesystems features don't work (Symbolic link, Inotify)
  • Native performance on Linux host

GNU/Linux distribution :

Ubuntu

  • Ubuntu : humanity towards others
  • Initial release : 20 October 2004
  • License : Free software licenses (mainly GPL)
  • User interface : Unity
  • Development led by UK-based Canonical Ltd
  • Canonical is owned by South African entrepreneur, Mark Shuttleworth
  • Microsoft would support Ubuntu Bash
  • Enterprise support
  • Long Time Support (LTS): 3 years on Ubuntu Desktop and 5 years on Ubuntu Server

New features and changes

Linux kernel 4.4

  • LTS version
  • TCP code has been refactore
  • Improved BTRFS (Used by Facebook)
  • ZFS support
  • Improved Cgroups
  • Improved Apparmor
  • Secure boot support

Python

  • Python 3 on server
  • Python 2 on desktop
  • Python 2 and 3 can coexist

Applications and libs

  • LXD 2.0 Stable: container "hypervisor" and a new user experience for LXC
  • umake: command line tool which allows you to download the latest version of popular developer tools
  • Native support of GPG SmartCards and U2F
  • Docker 1.10
  • PHP 7.0
  • MySQL 5.7

Security

GPG : Gnu PGP

  • for encryption/decryption files
  • for encrypt/decrypt emails
  • for sign emails and the git commits
  • for authentification (Example: SSH)
  • Enigmail extension for Thunderbird

GPG : with SmartCard

  • ~/.gnupg/gpg.conf
    use-agent
                                
  • ~/.gnupg/gpg-agent.conf
    # for enable SSH support
    enable-ssh-support
    default-cache-ttl-ssh 21600
    # for GPG
    default-cache-ttl 300
    max-cache-ttl 3000
                                

GPG - Thunderbird/Enigmail

GPG - Thunderbird/Enigmail

GPG - Thunderbird/Enigmail

dm-crypt and luks

  • Disk encryption
  • Before filesystem access
  • You need to unlock disk for start Ubuntu

dm-crypt and luks

dm-crypt and luks

Thanks