/container-devops

How Containers are Disrupting Devops

container-devops

#How Containers are Disrupting Devops DevOps is implemented through continuous delivery software pipeline. Continuous delivery encompasses continuous development, integration and deployment. With the rapid adoption of containers we asked ourselves, “How do containers redefine DevOps?”

##Containers Make Environments Consistent Containers provide a common set of building blocks that can be reused in any stage of development to recreate identical environments for development, testing, staging, and production. Containers extend the idea of write once; deploy anywhere, to an infrastructure abstraction that application developers can easily consume and operations professionals can predictably manage.

##Containers Make Tooling Consistent Containers provide a disposable, reusable unit that can execute a segment of a delivery pipeline. Critical code quality, analysis, build, and test functions can be consistently reused within developer workspaces, continuous integration systems, and release management tools. Service injection into containers allows developers to code more productively and tooling vendors to provide value throughout the pipeline.


##Code & Image Lifecycle with Containers Containers defined by recipes allow developers to edit, version and commit changes in the same way they do code leading to a similar (and sometimes dependent) image lifecycle. ###The Code Lifecycle ####1) Clone ####2) Edit ####3) Analyze ####4) Build ####5) Package (artifacts and source injected) ####6) Run ####7) Debug ####8) Commit ####9) Push

###The Image Lifecycle ####1) Clone ####2) Edit ####3) Build (dependency) ####4) Label ####5) Push


##Continuous Delivery and DevOps with Containers Containers are being used by the products below to evolve and revolutionize the continuous delivery and DevOps pipelines.

1st Column ###Continuous Delivery: Continuous Development

Continuous Integration

Continuous Deployment

2nd column ###DevOps Pipeline:

  1. Author Code & Check-In

  2. Check Out & Build Code

  3. Unit Test

  4. Quality Control

  5. Package and Archiving

  6. Integration Testing

  7. Deploy to Test Environment

  8. Deploy to Pre-Production

  9. Acceptance Testing

  10. Deploy to Production

  11. Management & Monitoring


###Continuous Development

####Developer Workspace Codenvy (RESTful workspaces built with Docker containers)

Eclipse Che (hosted workspaces using containers for microservices)

JetBrains IntelliJ IDEA (manages Docker containers from IDE)

Nitrous (Docker containers as workspaces)

Vagrant (Docker provisioner)

VMware AppCatalyst (desktop hypervisor optimized for containers)

####Source Code Management Containers have not yet significantly changed source code management.

###Continuous Integration

####Continuous Integration CircleCi (supports Docker-based dev, test and deploy workflow)

CloudBees Jenkins CI (build slaves runnable within containers)

Codefresh Codefresh (Docker-based continuous integration for NodeJS)

Codeship (Docker-based continuous integration and delivery)

Drone.io (open source continuous integration built on Docker)

Electric Cloud (plug-in to invoke containers while building)

Shippable (automated DevOps with Docker)

Travis CI (Docker-based continuous integration and delivery)

Wercker (Docker-based dev, build and deploy automation)

XebiaLabs Overcast (Docker for integration testing with other services)

####Code Quality Analysis Code Climate (static analysis with containers)

SonarQube (code quality with containers)

####Packaging and Build Automation Atlassian Bamboo(uses Docker containers to create build agents)

Bitnami (image cloud hosting)

Gradle (build management through Docker)

####Testing Frameworks PhantomJsEnv (can be run through Docker instead of installed)

RoboCI (aimed to run Travis CI builds locally inside Docker containers)

Salt (allows unit testing within container)

SeleniumEnv (can be run through Docker instead of installed)

###Continuous Deployment

####Artifact and Image Registry Amazon EC2 Container Registry (managed hosted registry service)

Docker Hub (hosted registry service)

Docker Trusted Registry (private dedicated image registry)

Google Container Registry (secure Docker image storage)

JFrog Artifactory (doubles as Docker and artifact registry)

Quay.io (secure hosting for Docker registries)

Tutum Registry (private Docker registry)

####Release Automation Ansible (playbooks will generate consistent app in containers & VMs)

Chef (container management, provisioning and automation)

Amazon OpsWorks (application management for container & VM infrastructure)

PuppetLabs Puppet Forge (Docker management)

Salt (container management, provisioning and automation)

####Operations Tools AppDynamics (extension for Docker monitoring)

CenturyLink Labs Panamax (tools to visualize & manage containers)

New Relic (distributed container monitoring and analytics)

SignalFx (streaming analytics of Docker apps)

Sysdig Cloud (distributed container monitoring)


##Container Infrastructure

Alpine Linux (lightweight operating system container-optimized)

Amazon EC2 Container Service (Docker extension tools)

Apache Mesos (distributed systems and container kernel)

Apache Zookeeper (centralizes container configurations)

Brightbox(high performance and flexible cloud servers and storage)

CenturyLink Cloud (cloud management service with container support)

Ceph (distributed block storage for Docker)

ClusterHQ Flocker (open source container data volume manager)

CoreOS Tectonic (kubernetes cluster for Docker)

CoreOS flannel (cross-container communication)

Datawise.io Project 6 (deploy and manage Docker containers across clusters)

Docker Compose (define and running multi-container applications)

Docker Machine (automated Docker provisioning)

Docker Swarm (native clustering for Docker)

EngineYard Deis (open source PaaS for Docker)

Joyent Triton (elastic container infrastructure)

Giant Swarm (native container infrastructure)

Google Compute Engine (PaaS with container managed service)

Google Kubernetes (orchestration of services running pods of containers)

HashiCorp Packer (image construction automation)

HashiCorp Consul (finds and configure infrastructure services)

IBM Bluemix (hybrid PaaS based upon CloudFoundry and Docker)

Jelastic (multi-container orchestration platform)

Microsoft Azure (PaaS with container-managed services)

Mesosphere [DCOS] (https://mesosphere.com/product/) (data center OS works with Docker)

Nirmata (application deployment and operations with Docker)

OpenStack Nova (launches containers on a massive scale)

Pertino (builds container-level VPC networks)

Portworx PWX (scale out block storage for Docker)

Rackspace Managed Cloud (management software)

RancherLabs Rancher (infrastructure platform for Docker)

RancherLabs RancherOS (Linux distribution that runs OS as Docker containers)

Red Hat Atomic (lightweight immutable platform for running containers)

Red Hat OpenShift (hybrid PaaS based on Docker)

VMware Photon (lightweight Linux host for containers)

Weave (creates a network of Docker containers)


##Footer Codenvy connects developer workspaces to the continuous delivery pipeline with on-demand developer environments that are replicable, collaborative and constraint-free. www.codenvy.com

Have ideas or feedback? Submit pull requests on GitHub: http://github.com/codenvy/container-devops