What must networks deliver to deploy application containers with enterprise-class reliability? How can network fabrics provide the best infrastructure for containers in production?
Most new applications are designed in a microservices based architecture, allowing complex applications to be deployed as small, independent modules which are easily composable. This approach, which has dramatically accelerated application time to market, is further enhanced with the evolution from virtual machines (VMs) to Containers.
Containers are more resource efficient since they do not have the overhead of a hypervisor and guest OS. Containers are deployed on the same host OS and share those resources, and are ideally suited for large, scale out microservices deployments. However, because they share the same host OS, any vulnerability could spill over into all containers. The risk is magnified with business demands for workload isolation.
Because containers are very easy to spin up, stop and restart, they have a much shorter lifespan than virtual machines. This agile deployment model is crucial for cloud based offerings. The agile deployment and scheduling of containers can be done through numerous orchestration platforms such as Docker UCP, Kubernetes or Mesosphere.
Application developers love the flexibility of the container format, because they can develop once and deploy their applications seamlessly across multiple platforms. Once packaged as containers, using Docker software), applications can be deployed in private and public clouds, within VMs or on bare metal hosts running Linux with no additional customization effort.
Docker, and other container deployment solutions have seen rapid growth, including in large enterprises, who are starting to pilot newer applications with Docker software and containers. As enterprises look to rollout containers in production, they are looking for a proven and reliable networking infrastructure. For production-ready container deployment, we believe it will need at least the following five characteristics:
Containers are used to deploy large, scale out, microservices-based applications. Network fabrics need to scale out easily, and provide efficient, reliable, distributed data transport to accommodate rapid growth.
Containers have strong isolation and security requirements, and network fabrics need to support multi-tenancy and security (e.g. ACLs) while offering a choice of connectivity. This enables container deployments of various applications tiers e.g. development, QA, production, or across security zones. Fabrics with options for Layer 2 or Layer 3 connectivity, and choices for controller-based and controller-less overlays would provide flexibility in connecting networking applications deployed in containers. The ability to switch architectures in the future would also add investment protection.
Containers follow an agile deployment model and network fabrics need be programmable for dynamic network configuration as containers are updated and deployed. Support for REST/NETCONF and scripting tools can simplify integration with container orchestration platforms to provide provisioning and visibility from the network as containers are rapidly spun up and restarted.
As with all distributed workloads, container management spans IT domains. A network that is siloed from the rest of the IT organization is ripe for inefficiency and error. Networks that can orchestrate and integrate with workflows across IT will be critical in container-based architectures.
Containers allow for easy portability and network fabrics need to be complemented with a software networking portfolio which can enable container migration and connectivity across public and private clouds.
This is far from an exhaustive list, and every organization will have unique requirements as they move towards container technologies, but we believe these five will be critical across the board to drive maximum benefit from container adoption.
Brocade provides a choice of data center fabric architectures today; VCS and IP Fabrics. Both architecture options are available on the VDX data center switching platform, and deliver L2, L3, controller-based, and controller-less overlay options. Both fabrics dramatically reduce deployment times and risk of error through automation, including support for popular tools and APIs such as Python, Ansible, Puppet, REST, and Netconf. Brocade’s automation capabilities go beyond provisioning and maintaining the network in isolation, providing integrations across IT domain processes and workflows.
Brocade also offers software networking solutions including a virtual router and an application delivery controller (vADC) to ensure secure hybrid cloud connectivity.
This all adds up to an ideal formula for Enterprises taking the containers path.