Containers for Developers
In a Star Systems, from a developer’s desktop to a testing machine to a set of production machines, a Docker image can be created that will deploy identically across any environment in seconds. Containers are then created from this image as you need them. You can also use an image as a baseline to create another image, making image creation even faster. Multiple containers can share the same image, which means containers start very quickly and use fewer resources. With containers, developers can build an app in any language. These apps are completely portable and can run anywhere - laptop, desktop, server, private cloud, public cloud or service provider - without any code changes. you can use containers to spin up light-weight and portable app components – or ‘micro-services’ – for distributed apps and quickly scale each service separately.
Container orchestration has become an exciting new area of innovation with multiple options and solutions. Container orchestrators are assigned a pool of servers (VMs or bare metal servers), commonly called a “cluster,” and “schedule” deployment of containers onto those servers. Some orchestrators go further and configure networking between containers on different servers, while some include load balancing, container name resolution, rolling updates and more. Docker Compose enables the definition of simple multi-container applications. Docker Swarm manages and organizes Docker containers across multiple hosts via the same API used by a single Docker host. Kubernetes is an open-source solution built by Google offering container grouping into “Pods” for management across multiple hosts.
Microservices is an approach to application development where every part of the application is deployed as a fully self-contained component, called a microservice that can be individually scaled and updated. When the application is constructed using microservices, each subsystem is a microservice. In a dev/test environment on a single box, the microservices might each have one instance, but when run in production each can scale out to different numbers of instances across a cluster of servers depending on their resource demands as customer request levels rise and fall.
Provisioning and Configuration Management
Through the use of applications like Chef, Puppet and Razor, you can keep tight and centralized control over the composition of your platform. You manage the configuration of systems and software from a single interface and can modify if automatically across your entire platform. You save time and increase both security and reliability.
Continuous Delivery and Integration
In the past, the implementation of changes to applications from a development environment to production was a complex and time-consuming process. With applications such as Jenkins, Hudson, Anthill Pro and Maven you can automate testing and applying updates in any environment you want through a centralized system.
Technology that you can use to build, run, test, and deploy distributed applications inside software containers. Because containers are lightweight, pared-down virtual machines that can be easily provisioned, developers have created them sporadically as a solution to support their continuous delivery.
- Container: The technology that allows the deployment and execution of an application and includes its dependencies, user files settings, and the operating system.
- Docker daemon, engine, or server: Responsible for managing and instantiating Docker containers.
- Docker command-line client: Allows a user to communicate and control the Docker server daemon.
- Dockerfile: A set of instructions to run over a base image. Docker follows these instructions to build a customized image.
- Docker image: Blueprint or template used to launch the Docker container.