Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
CI/CD on Windows-based
Environments
Your Social Investment Network
eToro©2015 Presentation materials are confidential and ...
● The world’s largest social investment network
● Founded in 2007, raised $60M
● >200 employees (~half in Engineering)
● O...
5M registered users. 140 Countries.
150M Trades.
9 different Apps!
eToro’s Legacy Technology
● HTML/ASP, Flash, iOS & Android clients
● 2 Geo-distributed data centers
● >130 Services
● > 50...
CI / CD ingredient
CI / CD
Code commit
Deploy and tests in
Production Build,
Unit tests
Different OS’s
5 different
environments
Different development
languages
Manage all with Jenkins
CI / CD Pipeline
Check-In
GitHub
Mercurial
Build
MSBuild
Unit tests
NUnit
Integratio
n tests
UI Testing
Prod
Deployment
Ma...
Jenkins Cross Platform Orchestration
Jenkins master
Build your flow with Jenkins
● Build Flow plugin
● WorkFlow plugin
Inside Jenkins Job
Script languages:
● Batch
● Powershell
● Shell
● Ruby
Auditing and reporting
● Graphite
● Splunk
● Slack
Provisioning servers and
Deploy with Puppet
Things we’re doing with puppet
define general::web_service(
$artifact_source,
$config_file_name='web.config',
$configerb_p...
Orchestration with
mcollective
Mcollective architecture
Mcollective
Client
RabbitMQ
Server
Servers
Trigger Mcollective
Tools for Key Value
store
Hiera
● Developed by Puppet labs, there for fully integrated with
puppet
● Key value store
● Configuration file per enviro...
ETCD
acl to the office acl to the office
Azure North Europe
server 1 server 2
APP1
DLL
APP2
DLL
APP3
DLL
CCM 2
UI -
Admin
...
CI / CD on Azure
Cloud
PAAS in Azure
● Cloud service
● Slots
● Uploading Packages
● Integration with github
(Git Hook)
IAAS on Azure
● Jenkins agent
● Puppet master
● Mcollective client
● Mcollective server and puppet agent on all servers.
Summaries
● Jenkins - Main CI / CD tool
● Puppet - Provisioning and deployment
● Mcollective - Orchestrate
● PowerShell Az...
Wish List
● Automate the creation of new Jobs and Flows in
Jenkins.
● More self service
Noam Shochat, Sr. DevOps Engineer | noamsh@etoro.com
CI/CD on Windows-Based Environments - Noam Shochat, eToro - DevOpsDays Tel Aviv 2015
CI/CD on Windows-Based Environments - Noam Shochat, eToro - DevOpsDays Tel Aviv 2015
Prochain SlideShare
Chargement dans…5
×

CI/CD on Windows-Based Environments - Noam Shochat, eToro - DevOpsDays Tel Aviv 2015

441 vues

Publié le

CI/CD on Windows-Based Environments - Noam Shochat, eToro - DevOpsDays Tel Aviv 2015

Publié dans : Technologie
  • Soyez le premier à commenter

CI/CD on Windows-Based Environments - Noam Shochat, eToro - DevOpsDays Tel Aviv 2015

  1. 1. CI/CD on Windows-based Environments Your Social Investment Network eToro©2015 Presentation materials are confidential and should not be copied, distributed or passed on, directly or indirectly, to any other person. Noam Shochat, Sr. DevOps Engineer | noamsh@etoro.com
  2. 2. ● The world’s largest social investment network ● Founded in 2007, raised $60M ● >200 employees (~half in Engineering) ● Offices in IL, UK, CY, RU and expending Some Basic Facts... eToro©2015 Presentation materials are confidential and should not be copied, distributed or passed on, directly or indirectly, to any other person.
  3. 3. 5M registered users. 140 Countries. 150M Trades.
  4. 4. 9 different Apps!
  5. 5. eToro’s Legacy Technology ● HTML/ASP, Flash, iOS & Android clients ● 2 Geo-distributed data centers ● >130 Services ● > 500 Servers ● Hybrid MS tech stack & Open Source Server technologies (Redis, RabbitMQ, HAProxy, etc…) eToro©2015 Presentation materials are confidential and should not be copied, distributed or passed on, directly or indirectly, to any other person.
  6. 6. CI / CD ingredient CI / CD Code commit Deploy and tests in Production Build, Unit tests
  7. 7. Different OS’s 5 different environments Different development languages
  8. 8. Manage all with Jenkins
  9. 9. CI / CD Pipeline Check-In GitHub Mercurial Build MSBuild Unit tests NUnit Integratio n tests UI Testing Prod Deployment Managed by Jenkins QA Deployment
  10. 10. Jenkins Cross Platform Orchestration Jenkins master
  11. 11. Build your flow with Jenkins ● Build Flow plugin ● WorkFlow plugin
  12. 12. Inside Jenkins Job Script languages: ● Batch ● Powershell ● Shell ● Ruby
  13. 13. Auditing and reporting ● Graphite ● Splunk ● Slack
  14. 14. Provisioning servers and Deploy with Puppet
  15. 15. Things we’re doing with puppet define general::web_service( $artifact_source, $config_file_name='web.config', $configerb_path, $erb_config_file_name='web.config.erb', $deploy_destination, $zipfile_mount_name, $port=80, $enableanonymousauthentication=false, $template_config={} ) { include general::7zip include general::remotesign include general::basicfoldersinstall addwebsite {"${name}": port => $port, require => Class['enableiis'] } addwebsite::enablewindowsauthentication{"${name}": site_name => $name, require => [Class['enableiis'],Addwebsite["${name}"]], } addwebsite::enableanonymousauthentication{"${name}": site_name => $name, enable => $enableanonymousauthentication, require => [Class['enableiis'],Addwebsite["${name}"]], } ● Enable features ● Install 3rd party apps ● Creating folders ● Installing / Configure win services ● Installing / Configure websites (IIS)
  16. 16. Orchestration with mcollective
  17. 17. Mcollective architecture Mcollective Client RabbitMQ Server Servers
  18. 18. Trigger Mcollective
  19. 19. Tools for Key Value store
  20. 20. Hiera ● Developed by Puppet labs, there for fully integrated with puppet ● Key value store ● Configuration file per environment on the same puppet master
  21. 21. ETCD acl to the office acl to the office Azure North Europe server 1 server 2 APP1 DLL APP2 DLL APP3 DLL CCM 2 UI - Admin server 3 server 4 CCM 4 Azure West Europe ILB LBS ILB LBS CCM 3CCM 1
  22. 22. CI / CD on Azure Cloud
  23. 23. PAAS in Azure ● Cloud service ● Slots ● Uploading Packages ● Integration with github (Git Hook)
  24. 24. IAAS on Azure ● Jenkins agent ● Puppet master ● Mcollective client ● Mcollective server and puppet agent on all servers.
  25. 25. Summaries ● Jenkins - Main CI / CD tool ● Puppet - Provisioning and deployment ● Mcollective - Orchestrate ● PowerShell Azure SDK - For deploying Web/worker roles ● This is all just tools - DevOps is a lot more
  26. 26. Wish List ● Automate the creation of new Jobs and Flows in Jenkins. ● More self service
  27. 27. Noam Shochat, Sr. DevOps Engineer | noamsh@etoro.com

×