Weave Cloud is an ops platform for app developers. It acts like an extension of your container orchestration framework, providing Deploy: continuous delivery, Explore: visualization and troubleshooting and Monitor: Prometheus monitoring. These features work together to help you ship features faster and fix problems faster. This helps you iterate on your app by going round this loop as quickly as possible:
Whether you are embarking on a cloud migration or designing a greenfield cloud native app from scratch, Weave Cloud helps you achieve modern production operations as quickly and simply as possible.
Designed to work with any containerized application, Weave Cloud adds advanced capability for monitoring, troubleshooting, management, security, continuous release management and more. It provides these features in a hosted, integrated ‘platform’, with the goal of easier setup, faster delivery, better observability and operationalization.
Weave Cloud is unique in that it doesn’t provide a bundled orchestrator, and by integrating with many different orchestrators and platforms, it enables developer choice. In other words, Weave Cloud can be added to your development pipeline without requiring you to ‘replatform’. You can pick Kubernetes, Docker, Amazon ECS, Rancher, Cloud Foundry, OpenShift, Mesosphere DC/OS, or wire up apps by hand, although note that some platforms are better supported than others. In particular, the Deploy feature only currently works with Kubernetes.
Weave Cloud adds value through an opinionated and integrated set of user experiences that solve problems for production use. These are powered by a combination of Weave’s open source tools and cloud native (CNCF) technologies.
For example, Weave Flux provides Continuous Release Management, Weave Scope for container visualization and troubleshooting, Weave Cortex for scalable Prometheus monitoring and Weave Net for container networking and policy based security.
Workflows, Roles and DevOps Activities
The Weave Cloud dashboard discovers and integrates with your application. It acts much like a monitoring tool, but instead is arranged around a broader set of DevOps activities including release management, troubleshooting and monitoring.
The Weave Cloud features: Deploy, Explore, and Monitor assists you in your job as a developer responsible for delivering a cloud native app.
Weave Cloud aims to get you into a production-operable state fast and then it helps you iterate your code quickly from that point on. You can use Weave Cloud to observe, understand and validate the different aspects of your application and infrastructure, and drill down into the system at key points all from a single dashboard. The ability to navigate through your app in a visual way provides the basis for rich workflows that straddle multiple stages of the lifecycle from image to deployment to runtime operation.
Weave Cloud provides production workflows for incident management, interactive visual troubleshooting, monitoring and alerts, continuous release management and CI integration. We are opinionated about operationalization observability, but not app platforms, and we work with most of the latter.
The “ABCDE” Development Lifecycle
Weave Cloud helps you build a flexible, modern app lifecycle that speeds up the delivery of containerized apps to the cloud. What is the development pipeline model that we assume? We call this the ABCDE of development.
With an ABCDE approach to app development: Apps are developed and tested locally, Built and tested in your CI system; Container images are pushed to your registry and then automatically Deployed to the cloud Environment of your choice.
With Weave Cloud developers can continue working on code and develop new features instead of maintaining cloud infrastructure.
Develop and Iterate Code Faster
While microservices and containers makes it easy for developers to create code in whatever language they choose, rapidly deploying those to the cloud and without errors can be both challenging and error prone.
Explore, Visualize and Debug Microservices
The first step in deploying an app is to ensure that what you tested on your development environment appears the same in production.
Weave Cloud provides a top-down view into your application and infrastructure, showing the dependencies and communication links between containers. It automatically detects your processes, containers, and hosts, allowing you to interact with them in real-time.
You can verify, troubleshoot, and debug your containerized microservices applications from your laptop to production. It also visualizes Kubernetes and Amazon ECS clusters, displays Kubernetes pods and namespaces, and shows ECS services, and tasks all from within the same dashboard.
Deploy to a Streamlined Development Pipeline
Modern software often has many moving parts and connecting them altogether into a seamless workflow across a team can be labour intensive. For example, not all of your developers on a team are Kubernetes experts and nor should they be.
Continuous Release Management is a Weave Cloud feature that automates and streamlines the cloud deployment process. It does this by connecting to your source control system, your CI and Docker registries and from a single dashboard developers can deploy containerized code changes to Kubernetes clusters automatically and continuously. This helps your team develop and iterate on code faster and with less errors.
Connect the Output of your CI system into your Container Cluster
Continuous integration (CI) is a critical component of modern software delivery, and is a precursor to getting the most from microservices and containers. CI systems automate build, integration and testing of such software.
Weave Cloud does not provide CI capability but it works with CI systems to provide end-to-end automation. You can use any CI system you like, eg. Travis, Jenkins, Gitlab, Shippable, and CircleCI. CI systems push Docker images to a container registry, and that’s where Weave Cloud hooks in. Weave Cloud observes changes to images in a container image registry, and based on a deployment policy, can deploy changes to your cluster while version controlling the changes in a centralized configuration repository in Git.
Weave Cloud integrates and manages the mapping between your image build systems, and the orchestrators to which you deploy applications. Weave fits into your pipeline without you having to adjust your entire toolset.
Monitor, Diagnose and Correct App Problems
Cloud native applications are by nature dynamic and in a state of constant change. Prometheus is the leading solution for monitoring, alerting and analyzing apps running in the cloud.
It is common to use container orchestration to build Cloud Native apps. Besides portability, one of the advantages of containers and orchestration is ‘self-healing’, meaning that when a container dies it automatically spins back up. But when it does so, it may not appear on the same host. To further complicate matters, applications may be spread across multiple availability zones, security groups, cloud providers or even span both data centers and cloud providers (hybrid clouds). Because of these factors, traditional server-focused monitoring systems don’t work well with containerized applications.
Weave Cloud provides an advanced monitoring and alerting capability that is tuned for cloud native operations, and it integrates with standard cloud native tools.
Weave Cloud’s monitoring is powered by the popular open source project Prometheus and adds several valuable capabilities. These include a GUI for running Prometheus Queries and supporting incident management tools; a self service multi-tenant hosted solution that developers can use without having to set up Prometheus themselves; a scalable data store that stores unlimited time series while keeping the power of the Prometheus query engine. Weave Cloud also cross references metrics with other events such as releasing a new version of a service so that you can correlate, for example, a spike in latency with the release of a new version of a service.
Network, Encrypt & Secure Sensitive Microservices
Weave Cloud provides a number of valuable services in relation to managing security for a cloud native application, and monitoring associated user behaviours.
Weave Cloud does not mandate the network your application uses, but if you use Weave Net as your container network overlay, you can enjoy the following extra benefits:
- Automatic policy enforcement (Kubernetes only)
- Built-in encryption
- Visualization of the network
- Multicast support
In Kubernetes, Weave Net can enforce network policy to isolate sensitive microservices. Specifically Weave Net with Kubernetes implements Network Policy to enforce firewall rules between containers. Policy is simple to set up and it uses Kubernetes labels and namespaces defined in a .yaml file and once applied, those policies and firewall rules are enforced by Weave Net.
Built-in encryption with Weave Net ensures that communication between containers and microservices running across untrusted networks is also secure.
Finally, Weave Cloud provides a view onto your network, so that you can see at a glance whether your network is operating correctly and that encryption is enabled.