Jenkins World Tour 2015 Santa Clara, CA, September 2-3

23 

Loading....

Loading....

Loading....

Loading....

Loading....

Full text

(1)

Jenkins World Tour 2015

Santa Clara, CA, September 2-3

(2)

Confidential – © 2015 Equinix Inc. Equinix.com 2

Continuous Delivery with Container Ecosystem

CAD @ Platform Equinix - Overview

CAD Current Industry - Opportunities

Monolithic to Micro Service

Continuous Delivery with Containers

Demo

Q&A

Prepared By: Global SAE, Global IT

Presenters:

Ramchandra Koty

Kalidas Ganesan

Venkat Rangasamy

(3)

Confidential – © 2015 Equinix Inc. Equinix.com 3

3

Platform Equinix

Overview

Experience as Global Market

Maker

17+ years Data Center Operational Excellence

Global Innovator & Thought

Leader

Interconnection / Peering exchanges

Global Portals based on multiple patents

Supporting Key

Communities of Interest

Network, cloud, content, financial services, and enterprise

(4)

Confidential – © 2015 Equinix Inc. Equinix.com 4

Data Science Digital Marketing Mobile Apps Web App

Big Data & Analytics

Cloud

APIs

Microservices

Open Source Contribution

& more…

Product Ecosystem

Continuous Delivery Ecosystem

Technology Ecosystem

Infrastructure Ecosystem

(5)

Confidential – © 2015 Equinix Inc. Equinix.com 5

How a Continuous Delivery Process can be Visualized?

(6)

Confidential – © 2015 Equinix Inc. Equinix.com 6

CAD @ Equinix

Continuous Delivery

Business Objectives

Continuous Integration

Continuous Innovation Configuration Management

Application Accelerators (Dev-2-Deploy)

Continuous Application Delivery (CAD) Platform

• Continuous Integration

• Automated Environment Orchestration • Dev Plugins & Adapters

• Artifacts Management • Custom Monitoring • Application Monitoring Tools • Standard Monitoring

• Software Code & Configurations • Code Administration

• Code & Configuration Deployments • Quality of Services

• Centralized Code Governance • Runbook Execution • Agility Practices in Dev

Success Factors

• Enable Agile & Self-Service Application

Development

• E-2-E Automation of Dev-2-Deploy

processes

• Intelligence in Business as usual

• Integrate Dev Tools for high developer

productivity

• Continuous Delivery Support for Mobile, Cloud & Big Data Platforms

CAD

Team (

CADBees

) is

platform enabler

that provides tools & frameworks to

accelerate application delivery

,

automate Dev-2-Deploy cycles &

(7)

Confidential – © 2015 Equinix Inc. Equinix.com 7

Micro-services

Containers

Cloud

(8)

Confidential – © 2015 Equinix Inc. Equinix.com 8

Current Industry Trends

Cloud

Private Cloud

Public Cloud

nodjs Play

Redis

nodjs nodjs

Tomcat Redis

Redis Play

Play nodjs

nodjs

Angular JS Angular

JS Angular

JS

+

Globalize your workload

On-Demand and rapid Elasticity

Cloud bursting

(9)

Confidential – © 2015 Equinix Inc. Equinix.com 9

Current Industry Trends

Containers

App Artifacts

Binaries

(Sys Utils / App Runtime)

OS templates Docker Source Code

(Application)

Source Code (Sys Utils / App Runtime)

+

=

App Source Code

Pull the Source code in target machine

Compile

make install

App Artifacts

Compile the Source code in Build Box

Pull the App artifacts from target machine

Install

Sys Utils / App Runtime

Pull the Source code in target machine & Compile it

Install rpm / bin package

Install via yum (package manger ) to handle the dependencies

OS templates

Install all the s/w and create template

Create a cookbook make the server to level what we want (Phoenix Servers)

Use packers to move OS image to different Hypervisors

Docker

OS + utilities + App Runtime + App artifacts

Changes are versioned

Immutable Servers

(10)

Confidential – © 2015 Equinix Inc. Equinix.com 10

Current Industry Trends

Micro-services

Monolithic application

puts all its functionality

into single deployable

application

Microservice architecture

puts each elements of

functionality into separate

service

Small, easy to understand

code base

Loosely coupled

service

with bounded contexts

(Modularity)

Each micro-service can be

deployed

independently

.

Suitable to implement and

support multiple versions

of APIs

Scaling

can be done @

individual modules level

Ability to use a different

technology stack (

polyglot

)

Key Highlights

Microservices + Containers – a convergence of perfectly matched technical

approaches to building scalable systems

(11)

Confidential – © 2015 Equinix Inc. Equinix.com 11

(12)

Confidential – © 2015 Equinix Inc. Equinix.com 12

Cloud: Multi-Cloud Application Deployment Prototype @ Equinix

Equinix

1

• Build Docker Container for the App

• Ship the Container to the required Cloud Environments

2

• Provision Cloud Exchange Ports • Setup User Access

• Move App specific Docker Containers to Multi-Cloud leveraging Cloud Exchange

3

PROTOTYPE Steps

• Validate the Multi-Cloud Deployment

(13)

Confidential – © 2015 Equinix Inc. Equinix.com 13

nodjs

Containerization in Action @ Equinix - Build , Ship, Run

Major Tools/ Approaches

lmctfy

App runtime

1

2

ConfigurationChange Build Image

Push Image

App Container Repo

Pull Image

+

2

1

3

4

AppC

Internal Execution unit

5

Redis nodjs Build Box Base Image

B

U

I

L

D

D

E

P

L

O

Y

nodjs Play

Redis My Application nodjs OCP RunC Jetpack

Cloud Native readiness

Changes are versioned

Eliminate

inconsistencies

between development, test,

production environments (

Immutable

)

Faster

Env setup

CLI + REST API

Significantly improves the

speed & reliability

of

continuous deployment

(14)

Confidential – © 2015 Equinix Inc. Equinix.com 14

Microservices in Action @ Equinix

Orch e strat o r M icr o se rv ice CSP

NSP Enterprise Developers

Workflow Manager and Execution Engine

Portal

API

Equinix SDN

E x te rna l S y ste m s

Microservice Management Capabilities (Discovery, Config,

Routing, etc.)

Simple design focused on

one business capability

Can be developed

independently by different

teams

Published integration model

Granular independent

components

Smart endpoints and dumb

pipes

Utilize HW and OS resources

to maximum

Key Highlights

Cloud aware services

Tagging and Branching

strategy

Continuous deployment

New Micro-service CI/CD

onboarding

Micro-service endpoints

management

(15)

Confidential – © 2015 Equinix Inc. Equinix.com 15

NO

more single Artifact

• Number of artifacts are increased due to micro-services architecture

NO

centralized Release Repository

• Keeping records of different artifact promotion is cumbersome.

NO

Artifact Rollback from strategy

• Not having option to deploy the PROD Artifact in the lower environment

NO

Single Jenkins job / Pipeline

• Most of the time Micro-services code are resides in multiple code repo. With the default option of Jenkins,

we can’t go with single Jenkins job to build and deploy it

• NO

Service Decommission (Self-serviceable)

• Micros-services can co-exist with multiple version . Some time, later we need to decommission the services

manually

• NO

Second Line Service Deployment

• There is no Blue-Green line deployment to have minimized Production deployment downtime window.

&

Yes

, we need all the above mentioned features to empower and

govern the overall Micro-services CI & CD Platform

Micro-services @ Equinix – What we learned from Monolithic App Deployments

(16)

Confidential – © 2015 Equinix Inc. Equinix.com 16

Micro-services @ Equinix – Build & Deployment Approach

Approach ( Deployment Job will take the artifact from Nexus Artifactory)

Workspace

Build - Job

Execution Log

Workspace

INT - Job

Execution Log

Workspace

Production- job

Execution Log

INT (3)

Artifactory

QA (3) PRODUCTION (Never)

Tools

Same Build job for all Micro-services

Store Artifacts in centralized Release

Repo

Predictable Storage growth to store

Artifacts

Blue-

Green

line deployment

Zero downtime Deployment

Decommission

(17)

Confidential – © 2015 Equinix Inc. Equinix.com 17

3.

App

Containers

2.

App

Artifact

1.

Docker

Image

CI/CD Docker @ Equinix –

Step by Step Guide to Deploy an Application via Docker

1. How to Build a

Docker Image

• Take the Base RHEL 7.0 image from RedHat

• Install needed utilities ( wget , tar)

• Install App Components

• Inject startup scripts

• Push to Internal Docker Registry

2. Building

Application Artifact

• Check-out the code from SVN/Github

• Build the Artifact using Build Tool

• Bundle Along with SSI / properties

3. Running an

App Container

• Pull the latest Docker (App) Image

• Run the Docker container with

• Jenkins Job ID to pull the artifact Bundle

• Pass the SSI specific Values

• Expose the App Port to Host Image

• Mount the Log Volume

• Allocate the shared CPU / Memory

• Start Container

• Same Steps will be followed for all Environment.

• No Release Specific Images

(18)

Confidential – © 2015 Equinix Inc. Equinix.com 18

Security

o

Authentication

o

Permission management

o

Role Management

o

Accountability of Actions

performed

o

Auditable Action

Self- serviceable

o

Employ the Resources for

better tasks

o

Cut down the wait time for

regular Work

o

More Automation, less

human mistake

Operational Analytics

o

Ecosystem Current

State in terms of release

o

Usage Metrics

o

Deviation metrics

User Experience

o

CSS – Skinning (Branding)

o

Keep the information what

they want

o

Simple outside; complex

inside

(19)

Confidential – © 2015 Equinix Inc. Equinix.com 19

Jenkins Customization @ Equinix

CAD Branding

• CSS Skinning done to Jenkins to look like Equinix portals

Authentication / Authorization

• Used “JIRA crowd plugin” to integrate the user authentication /authorization.

Multiple Git Repository Support

• Default Jenkins support One Repo, Customized to support multiple repositories

Configuration history and Audit

• Used job configuration history, Audit 2 database , Audit Trial Plugins

Dynamic Parameter Choice Support

• Used Uno Choice Plugin

Jenkins Build Status

• Used “Green Ball Plugin” to Show the success build status in Green in color

Hidden input filed

• Used JavaScript to hide the input fields

Jenkins Build Name

• Override the Build Name to identify what micro service/ tag got built/deployed

Jenkins Pipeline

• This Help us to visualize and enforce the SDLC. And helps in avoiding direct deployment to production.

Groovy scripts

(20)

Confidential – © 2015 Equinix Inc. Equinix.com 20

Continuous Integration & Continuous Delivery

Nightly Integration

QA & UAT Production Build Integration

Self-Serviceable

Auditable

Enforces Deployment process

User Notification

Test Coverage Code Coverage Build Code Analysis

Scheduled job

Results / report published to DEV team

Enforces Code Quality

User Notification

(21)

Confidential – © 2015 Equinix Inc. Equinix.com 21

(22)

Footer

#jenkinsconf

(23)

Confidential – © 2015 Equinix Inc. Equinix.com 27

Reach out to us

Ramchandra Koty

rkoty@equinix.com

Kalidas Ganesan

kalganesan@equinix.com

Figure

Updating...

References

Updating...