javacro'14 - continuous deployment tool – aleksandar dostić and emir džaferović

20
Continuous deployment tool www.infobip.com Aleksandar Dostic Emir Dzaferovic

Post on 20-Oct-2014

895 views

Category:

Technology


2 download

DESCRIPTION

Continuous Integration has improved software development process, while deployment of software often does not get as much attention. In this presentation we describe an approach for efficient cloud deployment of highly distributed system which can be quite complex to deal with. DeploymentManager(DM) tool is developed as internal project of Infobip company for managing large number(cca. 250 instances) of internal services in our data centers using automated deployment and controling load balancing software(Apache, HaProxy). With DM tool it is possible to deploy build(jar, war, egg…) on any environment(Windows, Linux) in max 5 minutes, without technical knowledge about deployment process, making Continuous Delivery process fast and simple.

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