Tag Archives: Docker

Why Immutable, Declerative Infrastructure is so cool (Terraform, Docker, Packer, Ansible)

Reading through  Why we use Terraform and not Chef, Puppet, Ansible, SaltStack, or CloudFormation, you should see why immutable code is so powerful.

But I would not drop Ansible altogether…

Here are some rules to look into:

  1. Build it immutable – cause you can the scale easily, recover easily and have a consistent source for testing and deploying what you actually tested
  2. Use Terraform to create immutable infrastructure setup
  3. Use Packer to create images that can be deployed anywhere – AWS, GCE, Vagrant, Openstack
  4. Use Ansible to script changes on top of your images if needed. Ansible is not immutable by itself, but allows a cleaner reusable baseline to replace your scattered scripts
  5. In Ansible use modules before you script, and Roles before you duplicate earlier effort. Playbooks are your scripts replacement.

More info:

https://Using Packer and Ansible to Build Immutable Infrastructure

Lessons from using Ansible exclusively for 2 years

Recent DockerCon EU Black Magic bits highlights, Tips and Tools

I remember how I felt years ago, when I had the first couple of Linux and Windows Virtual machines running in the lab. It was a great sense of freedom, from hardware limitations, from lost time and productivity. It was real Magic.

Then about 2 years ago, when Docker started its journey, it almost felt like black magic. The speed, the embedded versioning, the Freedom from the Operating system cage…

Looking at the new opportunities and energy at the recent DockerCon EU (2015), feels like a visit to Harry Potter’s Hogwarts castle. Anyway, enough with the story, let’s dig into some tech bits:

  1. Impressive focus on security, quality,scalability and stability (See the Keynote as well as this session)
  2. Docker Trusted Registry – Easy signing of your code using UBkey stick (a bit later AWS launched its own Docker registry service..)
  3. Remote revocation of signed code in case of compromise
  4. Nautilus- Automatic vulnerability scan of code that is uploaded into Dockerhub
  5. Internal Dockerhub on premise option including the secure code signing and Nautilus features
  6. Swarm cluster scales from 10 to 1000 nodes running 50,000 containers without any hiccups!
  7. Docker Universal Control plane – the dashboard for managing your docker swarm as well as on-the-fly secret data insertion and rotation, On-The-Fly insertion of specific Docker images across Swarm nodes.
  8. Docker Remote API that allows remote CLI, remote Compose and Docker Swarm
  9. Docker compose now
    1. Includes the network overlay system that automatically allows containers to find each other and applications merely call hostnames without worrying  about name resolution
    2. Allows you to assign volumes to specific containers, which allows mixing of both persistent and non-persistent applications
  10. Started supporting seccomp for more granular Docker permissions as well as user namespaces which allows a process inside a container to “believe” it is running as root, while in fact it’s not
  11. Docker monitoring resources
    1. A massive list of tools on Github
    2. InfluxDB – Platform for Time Series data
    3. cAdvisor
    4. Grafana
    5. VegasBrianc/docker-monitoring
    6. Prometheus
  12. Docker tools
    1. Docker Bridge: Interlock, Registrator
    2. Service Registry: etcd, consul, zookeeper
    3. Template: Interlock, confd, consul-template
  13. Reverse Proxy: HAProxy, NGINX, Traefik
  14. Docker sidekicks – special containers that provide Service Discovery, HealthChecks and orchestration through a REST API. Examples include Amazon ECS Agents, AWS Beanstalk, COREOS, Docker Ambassador
  15. DCOS – The DataCenter Operating System – The Mesosphere Datacenter Operating System (DCOS) is a new kind of operating system that spans all of the machines in your datacenter or cloud. It provides a highly elastic, and highly scalable way of deploying applications, services and big data infrastructure on shared resources including AWS, GCP, Azure.
  16. Docker for Windows
    1. Will not run Linux images
    2. Same code base as Docker for Linux
    3. Requires Windows Server 2016
    4. Includes an abstraction layer between Docker and the Windows Kernel
    5. The Docker C:\Windows maps to \Global?\C:\Windows
    6. Contains all Windows device entry points including C: and \Registry, \Device\TCP
    7. Each container has its own “chrooted” devices
    8. File system is hybrid of UnionFS and NTFS: Virtual Block Device + NTFS partition per container Symlinks to layers on host FS
  17. Sundial – Rides on top of AWS ECS (Docker on AWS) and offers aggregation of Docker JOBS / ECS into processes with dependency tree graphical representation and central logging and control
  18. Great sessions you should NOT miss
    1. Green Font, Black Background – Docker Security by Example
    2. Cgroups, namespaces, and beyond: what are containers made from?
    3. Cultural Revolution – How to Manage the Changes Docker Brings
    4. How to be successful running Docker in Production
    5. Continuous Integration with Jenkins, Docker and Compose

(Native) Docker Windows Containers Revealed

If you were wondering how exactly does Native Docker for Windows Server look, you would love this Native Docker containers on Windows walk through done by Microsoft Channel9 Visual Studio podcast.

Here is what I loved about it:

  1. General yet very good explanation of what docker is all about and why should you care
  2. What does Native Docker for Windows look like (basically the host for containers is based on Windoes Core edition)
  3. Clarifying the confusion around the mixing of Linux Windows and Docker
  4. Live Demo of launching Windows Docker containers right from Visual Studio deploying the .NET application you develop and into Azure host

Got any other great Docker resources you want to share?

Yours

Jack

Docker based Windows containers support for Windows Server and Azure

That’s it. Docker won over Windows containerization as well!

Microsoft just announced it will add to its support for Linux VMs running Docker Linux Containers, support of Docker engine inside Windows Server and Windows Azure, to support native Windows containers,

More info here: Docker based Windows containers

This means you will be able to develop and support your Windows Apps within a slim agile-to-maintain container. What happens to licensing is one question, and what happens to security is definitely another worthy question.