A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline...

23
Automating Your Network Starts with A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali Waterford Institute of Technology

Transcript of A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline...

Page 1: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Automating Your Network Starts with A Continuous Deployment Pipeline

Wenjing ChuFuturewei Technologies, Inc.

@wenjing

Junaid AliWaterford Institute of Technology

Page 2: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

An AnalogyAutomating a complex interconnected network bears some similarity to colonizing Mars, you begin first with a delivery vehicle that you can Launch, Land, Repeat reliably and cheaply.

“The Falcon 9 explained using the 1000 words people use most regularly”Image credit: https://imgur.com/nCqs3EQ

Payload: containerized software package.

Fuel: the non-reusable cost of each deployment.

Vehicle: the Continuous Deployment system.

Page 3: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

• CI focuses primarily on automating the development process

• It manages code, test cases, bugs etc.

• At the end of CI pipeline, you get a package ready for deployment (Delivery)

The Comparison between CI and CD• CD focuses primarily on automating the operation process of maintaining services

• It manages services, resources, upgrades, data etc.

• CI and CD are closely related

Page 4: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Continuous Deployment is a Strategic Capability

• CD is the modern link between a Service Provider’s services, operational processes, and resources (networks), with Vendors’ software products (outputs of CIs).

• As the rocket analogy suggests, it is a lever that can result in sustained competitive advantage.

Page 5: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

A Few Quick Words about Clover• Clover is a Cloud Native for Networking open source project

• under Linux Foundation Networking’s OPNFV• Clover focuses on software stack that help Networking to adopt

Micro-services via Service Mesh, achieve Visibility, Operability, and Continuous Deployment

• For further interests:• Wiki: https://wiki.opnfv.org/display/CLOV• Slack: #clover-project, or follow the join link in the above wiki page.

Page 6: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Core Capabilities to Look For in a CD tool

• Take Deployment as the first priority• Focus squarely on Services, and Frequent Updates as Normal

Operations• Support Multi-Cloud as a principle• Can easily integrate into the rest of your operation process• Support best practices such as A/B, Green/Blue, Canary, by default• Reproducibility: Pipeline as code• In Clover, we have adopted Spinnaker for helping implement CD

Page 7: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

The CD Pipeline is Much More than a Toolchain

• The software needs be architected with Cloud Native methodology (See also ONS EU Tutorial on Tuesday morning)

• Automated test tools can sufficiently validate a live system• Real time data points can be collected, analyzed, to reach statistically

valid conclusions• Software and services are designed in a way that if we make a mistake,

damage is controlled and can be reversed automatically• … you see the point

Page 8: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

… But if We Do Accomplish the Feat,

We get Zero Touch, the real deal.OrLow Touch, and a known path to reduce the degree of Touch further and further iteratively.

Page 9: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

• OPNFV• Initially, CI has long time lag, deploy (by

installers) is day-1 only and very complicated and slow

• XCI (cross project CI) helps to address the source lag problem

• Clover-CD, together with CNWG, is to help address the deployment problem

• Many testing projects can be containerized and used for automated validation in the CD pipeline.

Some Experiences from Communities

• ONAP• ONAP has a large number of containers

covering orchestration and management.• Targets Kubernetes and packaged with

Helm charts• CD is a great fit for ONAP

• Easier system test• Upgradability of individual parts• Multi-cloud, multi-provider• Focus on operation and zero touch

• Had several discussions - we hope to report more in the future.

Page 10: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

A Demo to Walk Through the Concepts

• We will use an example originated from Kubernetes and adopted by the Clover project for training purposes.

• Clover uses Spinnaker as part of the toolchain to implement CD, and that’s what we will show in the demo.

Page 11: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Application Delivery Pipeline

Code Changes

Continuous Integration/Delivery

Pipeline

Artifacts Repository

Continuous Deployment Pipeline

Page 12: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Developer

Jenkins

DockerHub

Spinnaker Kubernetes

Agents and Resources

GitHub

Page 13: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Kubernetes

● A GKE cluster provided by Linux Foundation● 1.10.6

Spinnaker

● A high level continuously delivery and release platform● Deployed via Halyard● 1.8.6

Page 14: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes
Page 15: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Developer

commitscode

SpinnakerCI P

ipelin

e

Commit is detected by Spinnaker

Configuration

GitHub

Clone and

Build

JenkinsThe Jenkins job clones the repo, builds the Docker

image and performs tests

Push Image

DockerHubThe Jenkins job builds the image and pushes it

to Docker Registry

Page 16: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes
Page 17: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

ConfigurationCD Pipeline

The new image is detected

Spinn

aker

DockerHub

Page 18: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

ConfigurationCD Pipeline

Deploy to Canary

Kubernetes

Spinn

aker

Page 19: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

ConfigurationCD Pipeline

Functional Tests

Deploy to Canary

Kubernetes

Spinn

aker

Page 20: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

ConfigurationCD Pipeline

Manual Approval

Deploy to Canary

Functional Tests

Kubernetes

Spinn

aker

Page 21: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

ConfigurationCD Pipeline

Deploy to Production

Deploy to Canary

Manual Approval

Functional Tests

Kubernetes

Spinn

aker

Page 22: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Key Takeaways

• If you are a service provider• Start thinking about Continuous Deployment at the beginning goal

setting stage of your network automation initiative• If you are vendors/developers

• Think about Continuous Deployment at product definition stage (i.e. with Customers and Product Owners), before designing software

• Find more at Clover: https://wiki.opnfv.org/display/CLOV

Page 23: A Continuous Deployment Pipeline Automating Your Network ......A Continuous Deployment Pipeline Wenjing Chu Futurewei Technologies, Inc. @wenjing Junaid Ali ... • Targets Kubernetes

Questions?

● Junaid’s work is supported by an Linux Foundation Networking internship in the OPNFV Clover project.

● Clover: https://wiki.opnfv.org/display/CLOV