Patterns

Patterns of Collaboration

Generate :
space.
Reduce :
space.
Clarify :
space.
Organize :
space.
Evaluate :
space.
Build Commitment :
space.

Networking Patterns

Needs:

Wants:

  • VLANs (OpenStack Neutron)

Storage Patterns

Image Storage

  • Packer has builders for various clouds and virtualization solutions (GCE)
  • VirtualBox: local filesystem: VDI, VMDK
  • Vagrant ‘boxes’
  • EC2 AMI
  • GCE Images
  • Docker Images / Registries
  • OpenStack Glance Images

Block Storage

  • VirtualBox supports (elastic) VDI and VMDK files
  • Latest Docker can use BTRFS
  • GCE Compute Engine Disks
  • EC2 EBS Elastic Block Store
  • RackSpace Block Storage
  • OpenStack Cinder (RBD, Gluster, Nexenta, NFS)

Object Storage

  • GCE Cloud Storage
  • AWS S3
  • OpenStack Swift
  • RackSpace Cloud Files

Remote Filesystems

While remote filesystem access is mostly the wrong pattern for production, for development, it’s nice to be able to work in local GVim with synchronous reads and writes on a networked filesystem; though, arguably, the correct deployment pattern is a commit/push CI hook.

  • SSHFS is less than consistent; even when synchronized.
  • NFS is fairly standard and supports labeling
    • Vagrant has NFS access tools
    • NFS requires at least three ports

Operating Systems

Ubuntu LTS 12.04 is widely implemented.

Ubuntu LTS 14.04 is just out with strong support for OpenStack.

Debian is Debian.

CentOS is more closely tracking RHEL than ever before.

CoreOS and etcd are designed to scale.

Configuration

TODO: fstat misses or explicit conditionals?:

1. source:
   1. salt://ntp/local_server/ntp.{{ grains['os'] }}.{{ grains['osrelease'] }}.conf
   2. salt://ntp/local_server/ntp.{{ grains['os'] }}.{{ grains['osrelease'][0] }}.conf
   3. salt://ntp/local_server/ntp.{{ grains['os'] }}
   4. salt://ntp/local_server/ntp.{{ grains['os_family'] }}.conf
   5. salt://ntp/local_server/ntp.{{ grains['kernel'] }}.conf
   6. salt://ntp/local_server/ntp.conf