Developing Cloud Native Applications Using the Cisco’s Open Source Shipped and Mantl Platforms
Software engineering and developer communities are driving the market for cloud consumption and leading each industry into a new era of software-defined disruption. There are no longer questions about elastic and flexible agile development as the way to innovate and reduce time to market for businesses. Open source software plays a key role in the transformation taking place to cloud native and understanding how your business strategy needs to address this next disruption in software development is crucial to the success of your business. The first key area is to automate your Software Development Life Cycle (SDLC). The modern SDLC for Software Disruption is shown below.
Cisco Shipped Developer Experience
The core of Cisco Shipped is modern, simple developer experience for cloud native development that addressed the modern SDLC. The project addresses both the developer needs in the build and deploy phases as well as the operations users in the run (monitor and metering) capabilities. Shipped leverages another open source project called Mantl for multi-cloud/data center deployments for a full container platform that supports Kubernetes and Mesos side by side.
I like to call this Hybrid Devops as developers will be developing in a mixed application mode for some time as they move from traditional and cloud models to containers. Also, there will always be a next generation capability that needs to be integrated to this model, so in effect, we are always moving from existing to next gen continuously. Shipped was designed to address this new hybrid model.
Cloud Native Model
The open source project Mantl provides a complete container platform. I use the term platform to represent both the hardware and software associated with delivering the software disruption transformation the enterprise is undertaking. A platform can only be a strong as the physical systems that comprise the hardware architecture of the platform. The security and performance of the underlying physical infrastructure is how your business differentiates. The infrastructure layer is still important to the overall experience as performance and security aspects of the stack require full integration of the physical and logical security components. Being able to optimize the network, compute, and storage resources in a fully automatic and consumption based economic model has been optimized to meet the business requirements.
The mantl curated container stack is shown below.
Mantl is an open source, end to end, integrated stack for running container workloads across multiple clouds. Mantl includes deployment automation and assurance and monitoring. We designed the project to be pluggable and grow into a hybrid platform to support application development and data services. With Mantl, enterprise grade networking (L2-4 and overlay), security (secret, AAA, network), and storage (persistent, object, and ephemeral) capabilities built in.
Mantl address a common problem in application orchestration – multi-orchestrator capabilities. There are several use cases and different types of orchestrators that address these use cases. Mantl’s design is extensible and today supports Mesos/Marathon, and/or Kubernetes, and/or Docker Swarm. What is important in a multi-orchestrator model is unification across the service discovery and load balancing to enable multi-cloud deployments – customer choice.
As I looked at the expanding gap between business requirements and infrastructure configuration components, a thought occurred to me to address the business SLAs by understanding the sensitivity of the application called Application Intent. In the definition here, we introduce the business goal of sensitivity. Sensitivity is defined as the degree to which the performance and response time of the application is to these parameters influencing the end users perception of the application performance. It’s best to consider it a scale of no sensitivity to high sensitivity that can be adjusted in real time by the perceptions of the performance being measured by the system and end users.
The Application Intent sensitivities are defined as:
- CPU Sensitivity
- Memory Sensitivity
- Storage Latency Sensitivity or Volume Sensitivity
- Latency Sensitivity
- Throughput Sensitivity
- Thresholds (Optional numerical value – ie 80 connections/sec)
- Recovery Sensitivity
- Availability Sensitivity
- Scale Sensitivity
- Accounting – Cost Sensitivity
The configuration is shown below:
Given these sensitivities, the policy system can create an SLA for the business objectives defined here. In addition to these sensitivities, there are hints that the policy system would like to understand. The first one has to do with dependencies:
- Service Affinity
- Service Anti-Affinity
- Security Policies (Data Classification)
- Placement Policies
- Host Affinity
- Host Anti-Affinity
- Availability Zones
- Constraints – non-coexistence
The second has to do with limits and understanding the constraints on the policy
- Metering Limits
- Security Governance
- Organizational Constraints (IE, HR, Legal, Engineering)
- Data Type Constraints (Public, Sensitive, Confidential, Top Secret)
- Operational Constraints
- Log Retention
Given the sensitivities, dependencies, and limits, the developer can set initial application intent, measure the performance of this initial intent, and make changes based on the actual performance. The Data platform will then be able to enhance the application capabilities in almost real-time to provide the performance and scale the business requires. Over time, the community will continue to add more intelligence into the intent model and enforcement engine.
The runtime view is shown below:
Come Join Us
We hare hosting several sessions at Cisco Live in the Devnet zone (see below). If your attending Cisco Live US in Las Vegas, please sign up for the sessions of interest as space fills up quickly!
Developing Cloud Native Applications Using the Shipped and Mantl Platforms – A Technical Overview
Session ID: DEVNET-1065 Kenneth Owens, CTO, Cisco
SCHEDULE Tuesday, Jul 12, 12:00 p.m.
Introducing Cloud Development with Project Shipped and Mantl: A Deep Dive
Session ID: DEVNET-1202 Brian Hicks, Cisco
SCHEDULE Tuesday, Jul 12, 9:00 a.m.
Shipped & Mantl – The Business Case for Using an Integrated Cloud Development Platform Session ID: BRKDEV-1003 Kenneth Owens, CTO, Cisco
SCHEDULE Wednesday, Jul 13, 1:30 p.m
Deploying Applications with Cisco Shipped and Mantl – A Technical Deep Dive
Session ID: DEVNET-2027 Fabio Giannetti, Principal Engineer, Cisco Systems
SCHEDULE Thursday, Jul 14, 11:00 a.m.
Tenant Container Monitoring in Shipped
Session ID: DEVNET-2031 Fabio Giannetti, Principal Engineer, Cisco Systems
SCHEDULE Wednesday, Jul 13, 9:00 a.m
Devnet Workshop – Deploying Applications with Cisco Shipped and Mantl
Session ID: DEVNET-2028 Kenneth Owens, CTO, Cisco
SCHEDULE Monday – Thursday, Jul 11, 9:00 a.m
Devnet Workshop – Mantl: How to use it
Session ID: DEVNET-2030 Ken Owens, CTO, Cisco
SCHEDULE Monday-Thursday, Jul 11, 10:00 a.m.