get ship done! microservices cloud development made easy · microservice-1 microservice-1...

Post on 25-Mar-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Get Ship Done! Microservices Cloud

Development Made Easy Charles Eckel and David Tootill

Cisco Systems

• Microservices Architecture

• Get Ship Done! – Microservices in the Cloud

• Cisco Shipped Introduction and Demo

• DevNet – Cisco’s Developer Program

Agenda

Microservices Architecture

• Complex application developed as a suite of small services

• Services run in their own process

• Communicate with lightweight, language-agnostic APIs

• Build around business capabilities

• Bare minimum of centralized management

• “Fine-grained SOA”

• Goes back to design principles of Unix

What is Microservices Architecture?

• Traditional application usually has three main parts:

• Client-side UI

• Database (usually relational)

• Server-side application

• Server side app is called a monolith

• Natural way to build an application

• Any changes involve building and deploying a new app

• Scales horizontally by running many instances behind a load balancer

Microservices vs Monolithic

Comparison - Monolithic vs Microservice From Martin Fowler (http://martinfowler.com/articles/microservices.html)

Three Dimensions of Scaling From The Art of Scalability (http://theartofscalability.com/)

• Componentization via services

• Organized around business capabilities

• Products not projects

• Smart endpoints and dumb pipes

• Decentralized governance

• Decentralized data management

• Design for failure

Characteristics of a Microservices Architecture

Microservice Advantages

Scalability

Resilience / fault isolation

Individual service deployment

Small code base with well defined boundaries.

Flexibility to choose best languages and technologies

Independent development, build and deployment cycles

Faster features iteration

Less resistance path to adopt newer technology in future

Microservice Disadvantages

Developers need substantial DevOps skills

Significant operations overhead

Remote calls are more expensive than internal process calls

Memory consumption usually increases

Testability challenges

Get Ship Done! Microservice Architecture

in the Cloud

Microservices Infrastructure (MI)

Microservices Infrastructure in the Cloud

Service Discovery and Load Balancer

MicroService-1 MicroService-1 MicroService-1

(Github repo)

MicroService-1 MicroService-1 MicroService-2

(Github repo)

MicroService-1 MicroService-1 Dependency-1 (Marketplace

App)

MicroService-1 MicroService-1 Dependency-2 (Marketplace

App)

Docker containers

Mesos – Marathon (MS-infra)

Deploy Env. (Staging)

(MS-Infra)

(MS-Infra)

Consul Template

HAProxy

Consul (DNS)

Registrator

1. Registrator monitors Docker events

2. Registrator adds docker instances host:port to service-name mapping to consul.

3. Consul exposes information via inbuilt DNS

4. Consult templates watches changes in Consul

5. HAProxy configuration is updated based on changes in consul

6. Namespace naming convention environment.project.service.shipped.com

Deployment Environment Flexibility

MicroService-1 MicroService-1 MicroService-1

(Github repo)

MicroService-1 MicroService-1 MicroService-2

(Github repo)

MicroService-1 MicroService-1 Dependency-1

(Marketplace App)

MicroService-1 MicroService-1

Dependency-2 (Marketplace App)

Deploy Env. (Prod2)

MicroService-1

(Github repo)

MicroService-2

(Github repo)

Dependency-1 (Marketplace App)

Dependency-2 (Marketplace App)

Project

MicroService-1 MicroService-1 MicroService-1

(Github repo)

MicroService-1 MicroService-1 MicroService-2

(Github repo)

MicroService-1 MicroService-1 Dependency-1

(Marketplace App)

MicroService-1 MicroService-1

Dependency-2 (Marketplace App)

Deploy Env. (Prod1)

MicroService-1 MicroService-1 MicroService-1

(Github repo)

MicroService-1 MicroService-1 MicroService-2

(Github repo)

MicroService-1 MicroService-1 Dependency-1

(Marketplace App)

MicroService-1 MicroService-1

Dependency-2 (Marketplace App)

Deploy Env. (Staging)

Docker containers

Mesos – Marathon (MS-Infra)

Release [ Build Tag +

Config Snapshot ]

Not Just Where Cisco is Going – It’s a Movement

Partner with leading DevOps tool producers

Hashicorp, Mesosphere, OpenShift

App and developer centric design

Community projects

Spark and DevNet

Introducing Shipped

Software Defined Developer Challenges

Develop

• Run multiple services.

• Multiple language /technology stack.

• Run multiple storage backend.

Build

• SDLC admin control CI flow bottleneck.

• Flexible/dynamic build slaves.

• Consistent packaging and version.

Deploy

• Increased deployment complexity.

• Traditional ops to Devops.

• Distributed systems.

• Service discovery.

• Internal load balancing

• Multiple tech stack.

• Cloud-native product

• Build, deploy, run

• Compose project by adding microservices

• Bootstrap to developer laptop

• Create GitHub source repositories

• Deploy and run each service in individual VM synced to source repo

• Set up CI build for each service

• Deploy to Cisco cloud

Shipped

Shipped Ten Thousand Foot View

Project

Management Continuous

Integration

Shipped Alpha Release

Source

Control Continuous

Deployment

Application

Orchestration

Developer

Tools Service

Assurance

Consul

Elasticsearch

Issue

Management

Mesos

Consul Terraform

Drone GitHub GitHub

Collaboration

Spark

Build Packs

Eclipse

Vagrant

Docker Compose GitHub

Shipped Demo

DevNet: Cisco’s Developer Program

Enabling a Robust Developer Ecosystem

Engineering Platform APIs

SDKs and Tools

Developer Support

Community Management

To Build Compelling and Innovative Apps

Make the internet a platform for innovation for developers

The Secret is Out

• Cisco’s developer program • https://developer.cisco.com

Open Source Dev Center Your Source for Open Source at Cisco

https://developer.cisco.com/opensource

• Contributions to open source

• Use in products/solutions

• Community forums, blogs

• Developer VMs

• Developer Events

• IETF Hackathon

• Newcomer Training for OpenStack

• Building Apps on OpenDaylight

OpenStack

• Cloud computing platform for public/private clouds

• Abstracts data centers into pools of resources

• Provides management layer for efficient, automated allocation of resources

• Empowers operators, admins, users via self service portals

• Provides APIs to develop cloud-aware applications

• https://developer.cisco.com/openstack

OpenStack

Service Abstraction Layer/Core

Base Network

Functions

- Lithium

OpenFlow Enabled

Devices

DLUX VTN

Coordinator OpenStack

Neutron SDNI

Wrapper

Network Applications

Orchestrations &

Services

Open vSwitches Additional Virtual &

Physical Devices

Data Plane Elements

(Virtual Switches,

Physical Device

Interfaces)

Controller Platform

Services/Applications

OpenFlow Stats Manager

OVSDB NETCONF PCMM/CO

PS SNBI

LISP BGP PCEP SNMP SXP Southbound

Interfaces &

Protocol Plugins

OpenFlow

OpenFlow Switch Manager

USC CAPWAP OPFLEX CoAP HTTP

OpenFlow Forwarding Rules

Mgr

L2 Switch

Host Tracker

Topology Processing

AAA AuthN Filter

OpenDaylight APIs REST/RESTCONF/NETCONF

Data Store (Config & Operational) Messaging (Notifications / RPCs)

LACP

Network Services

Service Function Chaining

Reservation

Virtual Private Network

Virtual Tenant Network Mgr.

Unified Secure Channel Mgr

OVSDB Neutron

Device Discovery, Identification

& Driver Management

LISP Service

DOCSIS Abstraction

SNMP4SDN

Network Abstractions

(Policy/Intent)

ALTO Protocol Manager

Network Intent Composition

Group Based Policy Service

Platform Services

Authentication, Authorization &

Accounting

Neutron Northbound

Persistence

SDN Integration Aggregator

Time Series Data Repository Link Aggregation Ctl Protocol

Open SDN Controller Cisco’s Commercial distribution of OpenDaylight

Common Content

“Helium” Open SDN Controller

Incremental

Cisco

Value

Precluded

OpenDaylight

Content

SDNi

Defense4all

PacketCable

PCMM

VTN Project

OpenContrail

Plugin

SNMP4SDN

LISP Flow

Mapping

AD-SAL

Logs

Metrics

Monitoring

Central Mgmt &

Admin

OVA Distribution

One Click Install

Plug-in Clustering

BGP-LS

Secure Network

Bootstrap Infra

MD-SAL

Developer Support

PCEP

Basic

Clustering

AAA

Group Policy

L2 Switch

Openflow

Plugin

OVSDB

Controller

DLUX

Service Function

Chaining

Yang Tools

https://learninglabs.cisco.com/

Learning Labs

Key Takeaways

• Cisco has a developer program - DevNet

• Project Shipped makes building cloud apps easy;

demo https://www.youtube.com/watch?v=V_Ff85o_KmM

• DevNet makes it easy for developers to use Cisco technologies

https://developer.cisco.com/

https://developer.cisco.com/shipped/

Key Takeaways

Questions?

Thank you

top related