Need advice about which tool to choose?Ask the StackShare community!
Concourse vs Kubernetes: What are the differences?
Introduction
In the world of DevOps and containerization, both Concourse and Kubernetes stand out as popular and widely-used tools. While they may have some similarities, there are key differences between them that make each suitable for different purposes and scenarios. Let's explore these differences in more detail.
Architecture and Focus: Concourse is a continuous integration and continuous delivery (CI/CD) tool with a pipeline-centric architecture. It focuses on automating and orchestrating software delivery pipelines. On the other hand, Kubernetes is an open-source container orchestration platform that manages and scales containerized applications across a cluster of machines.
Resource Management: Concourse is resource-centric, where each task runs in an isolated container with dedicated resources. It actively allocates and manages resources for tasks within its pipelines. In contrast, Kubernetes is workload-centric, managing the allocation and utilization of resources at a higher level, such as pods and namespaces.
Deployment and Versioning: Concourse manages application deployments through pipelines, which define the entire delivery process from source code to final deployment. Updates and versioning are done by triggering new builds and deployments. In Kubernetes, deployments are managed through declarative YAML files, allowing for easier updates and versioning by modifying the desired state of the deployment.
Scaling and High Availability: While Concourse allows for scaling resources within its pipelines, it does not inherently provide built-in mechanisms for cluster-level scaling or high availability. Kubernetes, however, excels in scaling and providing high availability by automatically distributing containerized workloads across multiple nodes within a cluster.
Service Discovery and Networking: In Concourse, service discovery and networking are primarily handled through pipelines and external tools or services. Kubernetes, on the other hand, provides built-in service discovery and networking capabilities through features like service objects, DNS-based service discovery, and network plugins.
Community and Ecosystem: Concourse is gaining popularity in the CI/CD space and has an active community, but its ecosystem of integrations and tools may be smaller compared to Kubernetes. Kubernetes, being one of the leading container orchestration platforms, has a vast ecosystem, a large community, and extensive documentation and support.
Summary
In summary, Concourse and Kubernetes differ in their architecture, focus, resource management, deployment and versioning approaches, scaling and high availability capabilities, service discovery and networking features, and the size and maturity of their respective communities and ecosystems. Understanding these differences is crucial in choosing the right tool for specific use cases and requirements.
I'm planning to setup complete CD-CD setup for spark and python application which we are going to deploy in aws lambda and EMR Cluster. Which tool would be best one to choose. Since my company is trying to adopt to concourse i would like to understand what are the lack of capabilities concourse have . Thanks in advance !
I would definetly recommend Concourse to you, as it is one of the most advanced modern methods of making CI/CD while Jenkins is an old monolithic dinosaur. Concourse itself is cloudnative and containerbased which helps you to build simple, high-performance and scalable CI/CD pipelines. In my opinion, the only lack of skills you have with Concourse is your own knowledge of how to build pipelines and automate things. Technincally there is no lack, i would even say you can extend it way more easily. But as a Con it is more easy to interact with Jenkins if you are only used to UIs. Concourse needs someone which is capable of using CLIs.
Our whole DevOps stack consists of the following tools:
- GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
- Respectively Git as revision control system
- SourceTree as Git GUI
- Visual Studio Code as IDE
- CircleCI for continuous integration (automatize development process)
- Prettier / TSLint / ESLint as code linter
- SonarQube as quality gate
- Docker as container management (incl. Docker Compose for multi-container application management)
- VirtualBox for operating system simulation tests
- Kubernetes as cluster management for docker containers
- Heroku for deploying in test environments
- nginx as web server (preferably used as facade server in production environment)
- SSLMate (using OpenSSL) for certificate management
- Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
- PostgreSQL as preferred database system
- Redis as preferred in-memory database/store (great for caching)
The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:
- Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
- Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
- Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
- Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
- Scalability: All-in-one framework for distributed systems.
- Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
Pros of Concourse
- Real pipelines16
- Containerised builds10
- Flexible engine9
- Fast6
- Open source4
- No Snowflakes3
- Simple configuration management3
- You have to do everything2
- Fancy Visualization1
Pros of Kubernetes
- Leading docker container management solution166
- Simple and powerful129
- Open source107
- Backed by google76
- The right abstractions58
- Scale services25
- Replication controller20
- Permission managment11
- Supports autoscaling9
- Simple8
- Cheap8
- Self-healing6
- Open, powerful, stable5
- Reliable5
- No cloud platform lock-in5
- Promotes modern/good infrascture practice5
- Scalable4
- Quick cloud setup4
- Custom and extensibility3
- Captain of Container Ship3
- Cloud Agnostic3
- Backed by Red Hat3
- Runs on azure3
- A self healing environment with rich metadata3
- Everything of CaaS2
- Gke2
- Golang2
- Easy setup2
- Expandable2
- Sfg2
Sign up to add or upvote prosMake informed product decisions
Cons of Concourse
- Fail forward instead of rollback pattern2
Cons of Kubernetes
- Steep learning curve16
- Poor workflow for development15
- Orchestrates only infrastructure8
- High resource requirements for on-prem clusters4
- Too heavy for simple systems2
- Additional vendor lock-in (Docker)1
- More moving parts to secure1
- Additional Technology Overhead1