Transcript
Page 1: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Continuous deployment tool

www.infobip.com

Aleksandar DosticEmir Dzaferovic

Page 2: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Introduction

• Software development

• Test Driven Development

–Unit Testing and Integration Testing

• Built goes through compiling and testing phases

• Continuous Integration

• Data Centers and virtualization

Page 3: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

CI Environment

• Source Code Management (SCM)

GIT, TFS, Subversion …

• CI Build Server

Apache Continuum, Hudson/Jenkins ...

• Maven Repository Manager

Archiva, Nexus, Artifactory ...

Page 4: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

CI Environment

SCM (Git)

CI server (Jenkins)

Maven Repository Manager(Atrifactory)

...

...

DC Artifactory:

Servers:

...

DC Artifactory:

...

DC Artifactory:

Servers:

......

Servers:

...

Data Center 1 Data Center 2 Data Center N

Page 5: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Manual Deployment Drawbacks

• Can be performed only by specialized people, usually engineers

• The incorrect versions of software can be shipped

• Quick rollback to old versions can be challenging

• Complex maintenance of security across servers

• Difficult or impossible to track who deployed what, when and where• Difficult or impossible to track who deployed what, when and where

Page 6: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Deployment Manager

• Internal tool for maintaining high level of service availability

• Manage of load balancing in private cloud

• Automated deploys on cross-platform environment

• Inter service connectivity configurator

• Properties file management

Page 7: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

DEPLOYMENT PROCESS

LVS

Page 8: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

DEPLOYMENT PROCESS (STEP 1)

LVS

Page 9: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

DEPLOYMENT PROCESS (STEP 2)

LVS

Page 10: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

DEPLOYMENT PROCESS (STEP 3)

LVS

Page 11: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

DEPLOYMENT PROCESS (STEP 4)

LVS

Page 12: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

DC Environment

ssh

ssh

Artifactory

ssh

powershellgateway

session

session

Page 13: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Demo

www.infobip.com

Demo

Page 14: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Main Features

•¸Load Balancing:

−HAProxy (High Availability Proxy)

−Apache Httpd Load Balancer (Apache Module)

−MML Load Balancer (internal service)

• Operating Systems:

−CentOS−CentOS

−Windows Server

−Windows Failover Cluster

Page 15: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Main Features

• Service types:

−WAR

−NodeJS

−Java standalone

−Python

−DotNet−DotNet

−Infobip application bundles(internal package format)

Page 16: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Main Features

• Actions:

−Enable/Disable balancer route

−Start

−Stop

−Deploy

−Deploy configuration−Deploy configuration

−Revert

−Edit configuration

−View application log files

Page 17: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Infobip numbers

• 8 Data Centers

• 100+ Physical Servers

• 250+ Virtual Servers

• 98 Applications

• 284 Application Instances

FrankfurtWashington

Zagreb

Moscow

Lagos

Kinshasa

• 44 Balancers

• 569 Balancer Routes

• 100+ Developers

• 60+ Deployers

Page 18: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Evaluation

• 12785 enable/disable routes (every 2.47 minutes)

• 1770 Deployments (every 17.89 minutes)

• 18 days of deployment (manual 74 days) out of 66 in Q3

284300848900

37 39

71

150 156

July August September

0

50

100

150

200

250

300

Total savings in July/August/September 2013: ~ 440 hours

ho

urs

sp

en

t

DM

Manual

445 447

July August September

0

100

200

300

400

500

600

700

800

An evident increase in the number of deployments in September 2013

# deployments

Page 19: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Future steps

• Deployment into Amazon Web Services

• Smoke test support

• JBoss deployment

• Live log streaming

• Access to server terminal

Page 20: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović

Thank you for your attention.

www.infobip.com


Top Related