docker festival - dreaming about docker

Post on 22-Jan-2018

329 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Docker FestivalDreaming about Docker

Lucas van Lierop Matthias Noback@lucasvanlierop @matthiasnoback

#dockerfestival

Program for today

09:30 Introduction

10:00 Workshop

12:45 Lunch

13:45 Best Practices

14:15 Workshop

16:15 Share results

The container revolution; why is it so good?

Self-contained deployable units

Application code, configuration and dependencies, all-in-one

Instead of:

● (Manually) pre-configured server● Pulling code changes

Image-based deployments

No build steps on the production server

Instead of:

● Building the software on the production server● Non-deterministic builds

Limited abilities

Containers run in isolated environments

Instead of:

● Processes that implicitly have access to everything on the machine

Scheduling

Built-in resource management, rebalancing, scaling (even within one host)

Instead of:

● Custom tooling (Marathon, DC/OS, Consul)

What the container revolution encourages

Single Responsibility Principle

Focus on limited responsibilities per container/service.

Open/Closed Principle

Modify the behavior of a container by configuration through environment variables and secrets.

Architecture considerations

Focus on clear specifications for how the service is connected to its surroundings.

http://alistair.cockburn.us/Hexagonal+architecture

Focus on "everything in a box"

Self-contained, explicit, no loose ends.

https://12factor.net/

No attachment to servers

● No manual actions on the server● Provisioning fully automated● Pets vs kettle● Destroyable and recreatable infrastructure

What the container revolution enables

Continuous delivery

Container image: an actual build artifact

Polyglot programming

● Code● Persistence

Scaling of software units

Number of instances (horizontal scaling) versus the power of one instance (vertical scaling)

Scaling for organizational units

Number of teams, number of projects (horizontal scaling)

Monolithic and service-oriented development side-to-side

Containers encapsulate internal technologies; combine multiple programming models and paradigms in one system.

What it requires

What it requires

What it enables

Operations skills

Configuration, server management, monitoring, emergencies, recovery

Knowledge

About technologies used

Shared responsibility

Writing the code, and make it run in production (and keep it running).

Long story short: DevOps culture

DDD, BDD

Operations

UX, Design

Let’s get started

In the morning: two options

- Docker Introduction (Docker Engine, Compose, Machine, Swarm)- Your Next Step

Different stages of using Docker

1. Side project2. Development environment (e.g. instead of Vagrant)3. For Continuous Integration (CI) (stable CI environment)4. Deployment to a staging and/or production environment5. Images as build artefacts in a pipeline for Continuous Delivery6. Improve resilience of containers in a production environment

Use this day to take the next step

Time flies Pick small tasks, create issues

Check every half hour: am I still on track?

Share useful snippets, articles, etc.

Celebrate and share success

https://github.com/lucasvanlierop/docker-festival-workshop

top related