Container Orchestration with Docker Swarm, Marathon, Kubernetes

You need orchestration when transitioning from deploying containers individually on a single host to deploying complex multi-container apps on many machines.

The following describes some of the most popular:

  • Docker Swarm
  • Mesos DC/OS
  • Kubernetes

The purpose of this post is to define the terms and to surface the main features. The goal of the post is not to compare, but to provide definitions of the container technologies.

In general, these container solutions run and support Linux containers.

Continue reading “Container Orchestration with Docker Swarm, Marathon, Kubernetes”

Docker Container Concepts, Architecture, Overview

Containers are key to the modern datacenter.

Docker is an open platform for developing, shipping, and running applications in containers.
This post describes the conceptual parts that you will use in setting up Docker. Here are the primary parts:

  • Docker Image is a read-only template for creating a Docker container. You can create your own Dockerfile to define the steps to create an image.
  • Docker Container is a runnable instance of an image. You can create, start, stop, move, or delete a container using the Docker API or CLI.
  • You talk to the Container through the Docker Engine that provides the Docker client which talks to the Docker daemon. The Docker daemon listens for Docker API requests and manages Docker objects such as images, containers, networks, and volumes.
  • Docker Registries stores Docker images. You pull Docker images from the registries. There are public registries and private registries. One private registry is Azure Container Registry provides a private registry for your containers.
  • Task of automating and managing a large number of containers and how they interact is known as orchestration.

Continue reading “Docker Container Concepts, Architecture, Overview”

The Value Proposition of Containers

Containers are key to the modern datacenter.

There’a a lot of buzz around containers. At its core, containers provides a way for you to deploy your app with all of its depenencies. Your container run on premises the same way it will in the cloud.

For the application in its container, it has no knowledge of any other applications or processes that exist outside of its box. Everything the application depends on to run successfully also lives inside this container. Wherever the box may move, the application will always be satisfied because it is bundled up with everything it needs to run.

For developers, it means that you no longer have to say, “Well it ran on my machine.” And it means that when you have larger apps, you can deploy in smaller chunks of code, where the dependencies do not need to cascade between teams. For IT Pros, it means that you can more effectively use those virtual machines. Instead of having one virtual machine for each app, you use the same VM for multiple apps. And when the VM is being used, you can quickly scale based on user demand.

Continue reading “The Value Proposition of Containers”

Installing your line of business application into Azure Active Directory for Single Sign On

Azure Active Directory is Microsoft’s comprehensive Identity as a Service (IDaaS) solution that:

  • Enables Identity Access Management as a cloud service.
  • Provides central access management, single-sign on (SSO), and reporting.
  • Supports integrated access management for thousands of applications in the application gallery, including Salesforce, Google Apps, Box, Concur, and more.

To get started learning about how you can manage applications, see Managing Applications with Azure Active Directory.
Continue reading “Installing your line of business application into Azure Active Directory for Single Sign On”

Best Practices for Designing a Fluent API

imageA fluent API can be incredibly helpful when sharing your application with other developers.

Fluent methods are a hot design idea and they can improve the readability of your code. However, they only make sense in specific scenarios.

A fluent interface (as first coined by Eric Evans and Martin Fowler) is a method for constructing object oriented APIs, where the readability of the source code is close to that of ordinary written prose.
Continue reading “Best Practices for Designing a Fluent API”