Containers-as-a-Service is a model where IT organizations and developers can work together to build, ship and run their applications anywhere.
There were traditional methods to build, test, package and run applications : Baremetal Deployment or Virtual deployment.
BareMetal Deployment: Difficult to manage migration/clone/scale/backup etc but better performance and reliability
Virtual Deployment: Easy to migrate/clone/scale/backup etc but issues with portability, performance and management
Although these deployments, use and sell were simplified by ready-to-use cloud services from various vendors in the form of IaaS, PaaS and SaaS, but still there were gaps.
IaaS provide API access to compute, storage, and network resources and configuration to automate Datacenter infrastructure. e.g. AWS(EC2), Google Cloud Platform, Azure, Jyoent
PaaS providers uses IaaS. A PaaS provides a self-service portal for managing computing infrastructure. PaaS allowing developers to develop, deploy and test applications. PaaS increases developer productivity.e.g. Google App Engine, Heroku, openshift, salesforce.
Below are some of the benefits of PaaS to application developers:
- They don’t have to invest in physical infrastructure
- Makes development possible for ‘non-experts’; with some PaaS offerings anyone can develop an application. PaaS provide OS, server software, DB, storage, network tools for design and develop and hosting.
- Flexibility; customers can have control over the tools that are installed within their platforms and can create a platform that suits their specific requirements.
- Adaptability; Features can be changed if circumstances dictate that they should.
- Teams in various locations can work together; as an internet connection and web browser are all that is required, developers spread across several locations can work together on the same application.
SaaS uses the web to deliver applications that are managed by a third-party vendor and whose interface is accessed on the clients’ side. e.g. Google Apps, Cisco WebEx etc. SaaS replaces traditional on-device softwares.
Docker CaaS (Containers-as-a-Service), allowing any Docker container to run on their platform, filling a void between IaaS (Infrastructure-as-a-Service) that requires a lot more system administration and configuration, and PaaS (Platform-as-a-Service) that is typically very limiting in terms of language support and libraries.
Containers are here to transform how build, test, ship and run applications securely on any infrastructure.
Containers as a service (CaaS) is a paid offering from cloud providers that includes compute resources, a container engine, and container orchestration tools.
Developers can use the framework, via API or a web interface, to facilitate and manage containers and application deployment.
There are two keyword in Container world :-
– Container Orchestration
– Container as a Service
Also there are many overlapping projects available in market to provide both keywords
e.g. To provide Container Orchestration we can use below
Azure Container Service (ACS supports two orchestration engines – Docker Swarm and Mesosphere DCOS)
To Provide CaaS we can use below projects
Amazon ECS (Docker or Kubernetes)
Google Container Engine (Kubernetes based)
Docker Universal Control Plane (Docker swarm/compose based)
CoreOS Tectonic (Rocket based)
Project Magnum (OpenStack)
Joyent’s Triton (Zones based)
Rackspace’s Carina (Docker swarm Based)
Cisco buys CaaS startup ContainerX
Oracle acquired StackEngine
Enterprise-grade on-premises service for managing and deploying dockerized distributed application in any on-premises or virtual cloud environments. It’s built-in security features like LDAP/AD integration and rolebased access control (RBAC) allow IT teams to be in compliance with industry security regulations.
• GUI management for apps, containers, nodes, networks, images and volumes / built in Docker Compose
• Out of the box High Availability
• LDAP/AD Integration
• Role based access control for teams & orgs
• SSO and push/pull images from DTR(Docker Trusted Registry), directly from w/in UCP
• Out of the box TLS
• Docker native stack with Swarm, Compose, CS engine and DTR
• Monitoring and logging of UCP users & events
GKE (Google Container Engine)
• Users can interact with Google Container Engine using the gcloud command line interface or the Google Cloud Platform Console. • A Container Engine cluster is a group of Compute Engine instances running Kubernetes. • Google Cloud includes Google Cloud Platform (GKE+Kubernetes + GCR (Google container registry)+ Google Cloud Shell($ gcloud)) + GSuites (gmail, map, machine learning tool, android apis etc)
• Google Container Engine users organize one or more containers into pods that represent logical groups of related containers. Similarly, network proxies, bridges and adapters might be organized into the same pod. • Google Container Engine includes a replication controller that allows users to run their desired number of pod duplicates at any given time.