WebStreamer DevOps Design
DevOps deployment pipeline
DevOps workflow
DevOps best practice
Toolset as follows:
- Git : Free and open-source distributed version control system
- GitHub : A web-based hosting service for version control using Git
- Jenkins : The leading open-source automation server for CI/CD
- npm : JavaScript package manager
- Conan : C/C++ open-source package manager
- Docker : Container platform
- Vagrant : Virtual machine manager
- Gitlab : A self-hosted web-based Git-repository manager
- JFrog Artifactory : Enterprise Universal Repository Manager
- VirtualBox : Free and open-source hypervisor or virtual machine monitor for x86 computers
DevOps environment setup
1. Hardware configuration
2. Software configuration matrix
Software installed \ Computers | CI-server | Docker-tester-1/2/3 | Vagrant-tester-1 | Vagrant-tester-2 | Vagrant-tester-3 ——————————-|:———:|:——————-:|:——:|:——-:|:—-: Operating System||||| Windows 7 Service Pack 1|__|||__|__ ubuntu-16.04.5-server||__|__|| __Tools__||||| Jenkins 2.121.3|__|__|__|__|__ JFrog Artifactory Pro 6.2.0|__|||| Java SE Development Kit 8u181|__|||| Gitlab CE 11.1.4|__|||| Git 2.18.0|__|||| Docker CE 18.03.0||__||| Vagrant 2.1.1|||__|__|__ VirtualBox 5.2.12|||__|__|__ Windows PowerShell 3.0||||__|*
Each server’s role lists as follows:
- CI-server : Jenkins server, JFrog Artifactory server, GitLab repository
- Docker-tester-1/2/3 : Linux build and test machines via Docker images
- Vagrant-tester-1 : Windows build and test machine via Vagrant boxes
- Vagrant-tester-2 : Windows GUI test machine via Vagrant boxes
- Vagrant-tester-3 : Linux GUI test machine via Vagrant boxes
Docker image and vagrant box configuration matrix
General configuration matrix
Software installed \ Docker image(D) or Vagrant box(V) | Ubuntu-server(D) | Ubuntu-desktop(V) | Windows(V) | Conan(D) :——————————————————|:—————-:|:—————-:|:———-:|:——–: Operation System|||| Ubuntu ( Desktop )||__|| Ubuntu ( Server )|__||| Windows|||__| __Tool Chain__|||| Windows PowerShell|||__| .Net Framework|||__| Visual Studio|||__| Git|__|__|__| Node.js|__|__|__| Python|__|__|__| CMake|__|__|__| Selenium|||| Google ChromeDriver|__|__|__| Firefox GeckoDriver|__|__|__| Web Browser|||| Chrome|__|__|__| Firefox|__|__|__|
Docker image and vagrant box version control
Ubuntu-server(D)
Software installed \ Version | 0.1 :—————————-|:—- Ubuntu ( Server ) | 16.04.5-server Git | 2.18.0 Node.js | 10.9.0 Python | 2.7.15 CMake | 3.12.1 Google ChromeDriver | 2.41 Firefox GeckoDriver | 0.21.0 Chrome | 68.0 Firefox | 61.0.2
Ubuntu-desktop(V)
Software installed \ Version | 0.1 :—————————-|:—- Ubuntu ( Desktop ) | 16.04.5-desktop Git | 2.18.0 Node.js | 10.9.0 Python | 2.7.15 CMake | 3.12.1 Google ChromeDriver | 2.41 Firefox GeckoDriver | 0.21.0 Chrome | 68.0 Firefox | 61.0.2
Windows(V)
Software installed \ Version | 0.1 :—————————-|:—- Windows | 7 Service Pack 1 Windows PowerShell | 5.1 .Net Framework | 4.7.2 Visual Studio | 2017 CE Git | 2.18.0 Node.js | 10.9.0 Python | 2.7.15 CMake | 3.12.1 Google ChromeDriver | 2.41 Firefox GeckoDriver | 0.21.0 Chrome | 68.0 Firefox | 61.0.2
Software installed \ Version | 0.2(amd64) |
---|---|
Windows | Server 2012 R2 Standard Build 9600 |
Windows SDK | Windows 10.0.17763.132 |
Visual Studio | Community 2017 |
Git | 2.21.0 |
Python | 3.7.2 |
CMake | 3.13.4 |
Conan | 1.12.3 |
conan-package-tools | 0.23.0 |
Conan(D)
Software installed \ Version | 0.1 :—————————-|:—-