Last year we experienced huge enterprise demand for Cloud Foundry, a fully integrated cloud-native platform solution (which will be on full display at the Cloud Foundry Summit in May), but using Cloud Foundry has been a bit of an all or nothing proposition, until now.
The Cloud Foundry Elastic Runtime depends on a purpose-built, application-centric Linux container scheduler. On top of the core container scheduler, Cloud Foundry provides a pipeline for building container root filesystems, in addition to an integrated multi-tenant platform with role based access and isolation policies, an embedded OS, and full data services cluster and platform provisioning and update tooling (BOSH). This functionality might not always be required or optimal, especially for individuals or small teams.
Lattice combines the container scheduling, per application dynamic routing and log aggregation components from Cloud Foundry as a stand-alone package for deploying and operating clustered applications. Lattice’s goal is to be convenient and accessible to developer-produced infrastructure components that are small enough to be deployed on a laptop, but capable of scaling to manage resilient cloud native applications on any infrastructure.
Today, VMware has also announced their new open source, cloud native solution – Photon. Together, Photon and Lattice offer the ability to run and manage containers, in a lightweight package.
Accessibility to Key Cloud Foundry Components
Lattice provides easy and accessible single-tenant, clustered container management, but also exposes components from Cloud Foundry as stand alone services. The key Cloud Foundry components comprising Lattice are Diego, Loggregator and Gorouter. These components could theoretically be deployed independently, but Lattice offers a middle ground providing both accessibility and utility.
Lattice features scheduling, HTTP routing and log aggregation; running the same code as Cloud Foundry. Scheduling ensures the container processes are balanced across the infrastructure, even as the infrastructure changes. The dynamic routing offers configurable routing for HTTP traffic to ensure requests get routed to the right applications as they are scaled up or down. Log Aggregation gives developers visibility into real-time events of the running containers.
A Lattice cluster includes a number of Lattice Cells and a Lattice Brain. Cells provide capacity to host the container processes and the Brain works to ensure the running state of the cluster matches the declared state. Lattice containers can be scheduled as long-running processes, or one off temporary tasks. The Linux containers root filesystems are pulled by name from a Docker repository. Future support will likely extend support to other backends such as simple rootfs, nspawn, Rocket, and Windows.
Easy On-Ramp for Containerized Workloads
Lattice can be easily deployed on a laptop or most cloud providers, allowing developers to get started with Lattice in minutes. The Terraform included in the project allows you to easily start a Lattice cluster on your cloud of choice. Anyone can get started locally with Vagrant, or deploy a cluster of machines to AWS, Digital Ocean or Google Cloud.
Lattice offers a simple interface to launch and manage applications through a CLI (referred to as ltc). The ltc provides a wrapper around a RESTful API, enabling an easy connection to schedule tasks and long-running processes.
An easy to use dashboard is also under development, called X-Ray. X-Ray can be pointed at a Lattice deployment to quickly view the status and distribution of your containers. X-Ray will be available via an open source repo in the near future, but in the meantime you can enter your Lattice receptor URL on the X-Ray site to test drive the dashboard now.
Easily Manage Containers at Scale Today, Tomorrow the World
Lattice allows developers to quickly manage containerized workloads with an application centric abstraction and mature operational tooling. By decomposing Cloud Foundry, these independent services are easier to consume, and lower the barrier to entry for experimentation with features, both for us and the Cloud Foundry community.
Lattice makes a great tool for developers and small teams to leverage the engineering in Cloud Foundry without the need for multi-tenancy and sophisticated access control, but Lattice is also the beginning of a process to expose Cloud Foundry capabilities outside of Cloud Foundry. We’re already discussing future projects that follow the same principle of exposing isolated functionality from Cloud Foundry to be useful in other contexts.
- Read more about Lattice, and check out the FAQs
- Check out the Lattice Git repo, and participate in the community
- Attend CF Summit and hear a session on Lattice
- Learn about how you can run Spring Cloud on Lattice
About the Author