Nebraska.Code() Sessions tagged docker

Automating Docker-based Tasks in the Cloud using AWS Batch

Batch processing is a common, powerful pattern for high-CPU background workloads. Companies often use it for advanced simulations, rendering, media transcoding and processing, deep learning, and more. At Hudl, we're using AWS Batch to manage a video processing pipeline that includes a GPU-based deep learning algorithm.

AWS Batch is a recent addition to Amazon's cloud platform that makes it very simple to define and execute tasks without worrying about the infrastructure needed to make it happen. Once you define a task by providing a Docker image and necessary parameters, you can create hundreds of thousands of jobs, and let Batch deal with scaling, parallelization, and managing dependencies.

In this talk I'll walk through setting up Batch jobs (including some basic Docker images and everything on the Batch side), how Batch handles scheduling and dependencies, describe scenarios where Batch excels, and touch on some pain points we've experienced so far.

Hudl is still early in the stages of using it, but so far it’s proven easy to use and very adaptable to what we need. We’re planning to move more of our workloads into batch, including thumbnail generation, video transcoding and processing, PDF generation, and more.

Speaker

Ryan Versaw

Ryan Versaw

Software Engineer, Hudl

Dockerize Your .NET Development Environment

It works on my machine. We’ve all heard it. Most of us have said it. It’s been impossible to get around it… until now. Not only can Docker-izing your .NET development environment solve that issue, but it can make it drop-dead simple to onboard new developers, keep a team working forward and allow everyone on the team use their desired tools! I will show you how to get Docker set up to use as the run environment for your .NET projects, how to maintain the docker environment, and even how easy it will be to deploy the whole environment to production in a way that you are actually developing in an environment that isn’t just “like” production. It IS the production environment! You will learn the basics of Docker, how to use it to develop and how deploy your “development” environment as the production environment!

Speaker

Lee Brandt

Lee Brandt

Developer Evangelist, Okta

Workshop: Getting Started with Docker Swarm Mode

Docker makes it incredibly easy to run software. A single call to docker run can startup just about anything. In seconds you go from not even having the software installed, to up and running. Combine this with docker-compose and you can easily launch complex infrastructure and applications at the push of a button. For example, I can launch things like an ELK stack, a LAMP stack, or a TeamCity cluster in seconds.

Docker revolutionized launching software on a single machine. But, what happens when we move beyond the resources available on a single machine? Do we lose the benefits when we move to deploying software across a cluster of machines?

Thanks to Docker's new integrated Swarm Mode, launching software across a cluster of machines is just as easy as a single machine. In this workshop you'll learn how to setup a swarm and how easy it is to run and manage software across a cluster of machines. We'll cover these topics and more:

  • Creating a swarm
  • Launching software on the cluster with declarative service definitions that lead to tasks that lead to running apps in containers
  • Updating software using rolling updates
  • How to visually monitor the state of the cluster
  • Adding nodes (including how to spin up VMs on your local machine if you bring a laptop to follow along)
  • Self healing services - We'll simulate failures (of nodes and containers) and see how desired state reconciliation kicks in to maintain a desired state
  • How to give users access to an application deployed on the swarm with published ports and the swarm mode routing mesh
  • How to network together internal dependencies (container to container traffic) - for example if your app (in a container) needs to talk to a databse (in another container) or needs to talk to another internal api (in another container)
  • DNS based Service Discovery
  • How to scale everything with a single command and how integrated load balancing routes traffic across new instances
  • How to use integrated health checking to avoid sending traffic to unhealthy applications
  • How to protect sensitive information like database passwords

I'll have a variety of hands on examples for you to work through.

In advanced please: * Install Docker 17.04+ (Docker for Windows, Docker for Mac, or Docker on Linux)

Speaker

Wes Higbee

Wes Higbee

Owner, Full City Tech Co.

Containers Aren't That Big of a Deal

There's something much more important than containers and yet nobody is talking about it. The buzz is all around containers.

In this talk, I'll get at the heart of what a container is by looking at recent, and not so recent, Operating System features that led to the modern container. And I say "not so recent" because many of these features have been around for a long time now. And have been in use in containerization tools for a long time as well. Containers aren't new.

So what is it that led to the recent explosion of interest in Docker?

Well, you'll have to come to the talk to find out.

Before the hour is up: - I'll demonstrate how we can take containers out of the equation and use highly optimized VMs to achieve the same benefits. - You'll leave with a much better understanding of what a container is and most importantly see the value of other pieces of the puzzle. - And as an added bonus, I will not only dispell the myth that containers are merely a replacement for Virtual Machines, I'll show how both can peacefully co-exist. And how future innovation will lead to further, complimentary technologies.

Speaker

Wes Higbee

Wes Higbee

Owner, Full City Tech Co.

Docker for Developers

Most discussions about Docker are from the deployment point of view – how to get your app to run in a container, and spread those containers out, turn them on and off to make your application more scalable. But Docker is a very useful tool for developers, too, and that purpose gets lost in the DevOps discussions. Want to play with Mongo? Want to test your app with a new version of the database? Or maybe you just want to use something else instead of the always-in-flux dev database server? You can do that locally, and easily, with Docker. And then turn those services on and off with one command. You don’t have to add all those extra dependencies on your machine either. You may never do brew install some-large-package ever again.

Speaker

Mike Hostetler

Mike Hostetler

Principal Consultant, Object Partners, Inc