Kubernetes is a popular platform to deploy modern applications. MongoDB is a commonly used database for these cloud native applications. There is an ongoing need to deploy and use MongoDB with Kubernetes in Enterprise scale production environments. VMware provides an enterprise class Kubernetes platform in the form of VMware Enterprise PKS. MongoDB Enterprise is a production ready database platform with plugin capability for Kubernetes. The goal of this two part blog series is to showcase a robust solution that combines MongoDB Enterprise & VMware Enterprise PKS that is enterprise & production ready.
Kubernetes is an open source system for deploying, scaling, and managing containerized applications. (Source: Kubernetes handles the work of scheduling containers in compute clusters and ensures that workloads run as intended. In legacy environments, operations is an afterthought, while Kubernetes brings software development and operations together by design. Kubernetes allows for infrastructure agnostic definition of applications and their interactions. (Source: About Kubernetes)The Kubernetes platform offers IT operations, developers, and business owners great potential benefits. Some of the key benefit include:
- Scalability: Kubernetes can run on a local machine or across multiple clusters in widespread availability zones. It horizontally scales your cluster when you need it, and scales it back when you don’t.
- Workload portability: Kubernetes runs on-premise in your own datacenter, in a public cloud, or a hybrid cloud configuration, deploying containers the same way, every time.
- Bridging the Divide: Operations values stability, while developers value speed. Kubernetes resolves this conflict, so businesses can focus on what everyone wants: innovation and growth.
Figure 1: The Kubernetes Platform. Source: Introduction to Kubernetes
Installing, deploying, and managing Kubernetes is pretty complex and requires a lot of effort. Majority of users feel that it is very complex to deploy and manage and this inhibits its use in production. Aspects relating to security, multi-tenancy, and integration with existing infrastructure and applications should be considered. Though Kubernetes is a powerful project and offers businesses many advantages, some assembly is required, as it isn’t an out-of-the-box solution. In addition to requiring significant work to set roles, access controls, and multi-tenancy policies, Kubernetes on its own lacks:
Some of the current challenges with Kubernetes include:
- Installation: Container hosts must be validated with the right settings and preferred operating system during installation.
- Deployment: Kubernetes deployments require the right identity and access settings. There are also integrations with storage, networking, and container registries.
- Security: Kubernetes needs to integrated with security tools and logging solutions.
- Operational: The container host, Kubernetes, and the services hosted on Kubernetes need to be kept up to date with regular patching and updates.
- DevOps: Kubernetes is not validated with middleware & database solutions. Editors, IDEs, and development frameworks need to be integrated, along with CI/CD workflow, container build and update processes.
- Storage & Networking: Storage and networking do not come pre-packaged with Kubernetes. A robust storage and network infrastructure is needed to run containers in production. Persistent Storage and container level individualized networking should be provided by the hosting infrastructure.
The VMware Enterprise PKS platform seeks to address the challenges with running Kubernetes in production outlined earlier. VMware Enterprise PKS is a purpose-built product that enables enterprises and service providers to simplify the deployment and operations of Kubernetes clusters. (Source: VMWare Enterprise PKS Overview) It provides a production-grade Kubernetes distribution with deep NSX-T integration for advanced networking, a built-in private registry with enterprise security features and full life cycle management support of the clusters. VMware Enterprise PKS uses the latest stable open source distribution of Kubernetes with no proprietary extensions. VMware Enterprise PKS is built to support multi-cloud environments through BOSH, an open source project in the Cloud Foundry Foundation. It runs on vSphere, Google Cloud Platform, Microsoft Azure and Amazon EC2
Figure 2: VMware Enterprise PKS works with VMware SDDC. Source: VMware Enterprise PKS Overview
The major benefits offered by the platform include:
- Simplified Operations: Streamline both day-1 deployment and day-2 operations tasks with full lifecycle management of multiple clusters and enhanced isolation, security and performance.
- Built for Production: VMware PKS is built for running critical workloads in production, with enterprise features such as enhanced security, high availability, rolling upgrade, constant health monitoring and self-healing.
- Comprehensive Solution: VMware PKS addresses a broad range of Kubernetes challenges such as networking, security, storage, monitoring and logging. This is achieved by including NSX-T, Harbor and integrating with VMware Wavefront, and the vRealize suite of products for monitoring and logging.
- A Multi-Cloud World: VMware PKS runs seamlessly on vSphere, as well as on public clouds like Google Cloud Platform Microsoft Azure and Amazon EC2.
The VMware Software Defined Data Center infrastructure enables the capability to define infrastructure components as software. VMware SDDC makes it possible to centrally manage all of the data center configuration information and provides a powerful, flexible, and secure foundation for business agility that accelerates your digital transformation to hybrid cloud and success in the digital economy. The PKS solution leverages the VMware SDDC to create an enterprise class Kubernetes environment.
Figure 3: The VMware Software Defined Data Center
The VMware SDDC platform brings a lot of benefits to PKS that includes
- Higher efficiency and lower costs. Virtualized IT services and automated operations management drive new levels of resource utilization and staff productivity.
- Application provisioning in minutes. Policy-based configuration lets you deliver workloads in minutes, with resources that adjust automatically changing business demands.
- The right availability and security for every application. Automated business continuity and virtualization-aware security provide exceptional uptime and control of resources.
- Any workload delivered anywhere. Run both new and existing applications across multiple platforms and clouds, with instant delivery to any user on any desktop or mobile device.
The survey shows that after stateless services SQL and NoSQL Databases to be the most popular applications on the Kubernetes platform. MongoDB is most suited to the modern enterprise software development practices and a leading NoSQL Database used in Kubernetes environments.
Operations teams are constantly fighting fires, managing performance issues and securing the infrastructure. MongoDB Enterprise Advanced enables customers to be as agile and scalable as a startup while addressing the more demanding requirements of the modern enterprise. (Source: MongoDB Enterprise Advanced Datasheet)
- Secure Your Business: MongoDB Enterprise Advanced includes advanced security and certifications that help you to secure the data that drives your business. Authentication, authorization, encryption, and auditing features provide the capabilities required for the modern enterprise.
- Move Faster: A global telco improved time to market by over 4x with MongoDB Enterprise Advanced. Your teams can ship code in weeks or months instead of quarters or years. The expertise provided by our support teams and the advanced features get you to production faster.
- Reduce Costs: Ops Manager provides a solution for backup, recovery, and monitoring of your deployment, saving you time and money. Support helps you eliminate application downtime. A leading insurance customer found that for every hour of reduced application downtime, it saved over $150,000.
Available with MongoDB Enterprise Advanced platform the MongoDB Ops Manager provides the capability to easily, deploy, monitor, backup and scale MongoDB environments.
The operator enables a user to deploy and manage MongoDB clusters from the Kubernetes API, without having to manually configure them in Ops Manager.
With this Kubernetes integration, you can consistently and effortlessly run and deploy workloads wherever they need to be, standing up the same database configuration in different environments, all controlled with a simple, declarative configuration. Operations teams can also offer developers new services like MongoDB-as-a-Service, that could provide for them a fully managed database, alongside other products and services, managed by Kubernetes and PKS. MongoDB Enterprise Advanced with MongoDB Operator for Kubernetes was used for this solution.