javacro'14 - continuous deployment tool – aleksandar dostić and emir džaferović
Post on 20-Oct-2014
896 views
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/1.jpg)
Continuous deployment tool
www.infobip.com
Aleksandar DosticEmir Dzaferovic
![Page 2: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/2.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/3.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/4.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/5.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/6.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/7.jpg)
DEPLOYMENT PROCESS
LVS
![Page 8: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/8.jpg)
DEPLOYMENT PROCESS (STEP 1)
LVS
![Page 9: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/9.jpg)
DEPLOYMENT PROCESS (STEP 2)
LVS
![Page 10: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/10.jpg)
DEPLOYMENT PROCESS (STEP 3)
LVS
![Page 11: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/11.jpg)
DEPLOYMENT PROCESS (STEP 4)
LVS
![Page 12: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/12.jpg)
DC Environment
ssh
ssh
Artifactory
ssh
powershellgateway
session
session
![Page 13: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/13.jpg)
Demo
www.infobip.com
Demo
![Page 14: JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/14.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/15.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/16.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/17.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/18.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/19.jpg)
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ć](https://reader033.vdocuments.mx/reader033/viewer/2022052301/544510f0afaf9fe72b8b4682/html5/thumbnails/20.jpg)
Thank you for your attention.
www.infobip.com