The presentation from my talk on XP Days Ukraine 2016
http://xpdays.com.ua/programs/building-continuous-delivery-pipeline-in-azure-infrastructure-tools-and-processes/
13. 13
DEPLOYING PRIVATE BUILD AGENT
• Free: 4 build hours/month. Each next agent $40 / month.
• 30 minute maximum single job duration.
• Average performance.
HOSTED
• Free: 1 agent; Each next agent $15 / month
• Pay for VM
• $$ vs. Build Time
PRIVATE
14. 14
SETUP PRIVATE BUILD SERVER IN AZURE
VM 2 x Standard_DS3_v2
CORE 4, RAM 14GB, Max DISK I/O (MBps): 12800 (192)
STORAGE
3 x Standard LRS Storage.
Storage Pool
60 MB/s
STORAGE
SSD
1 x SSD Premium Storage Disk
P10 (128 GiB, 500 IOPS (100 MB/s): $75
P20 (512 GiB, 2300 IOPS (150 MB/s): $150
P30 (1TB, 5000 IOPS (200 MB/s): $300
Free disk space matters.
180 MB/s
AGENTS 2 x Agents
1 Agent : 1 Disk
21. 21
• Build by .NET Developers for .NET Developers
• Integration with all popular CI servers:
– Jenkins,
– TeamCity,
– Visual Studio Team Services
• Installs in minutes
• Affordable prices, one-time payment
WHY OCTOPUS DEPLOY
Does one thing, does it well: Automated deployment
22. 22
• Environment management
• Life-cycle management
• Internal and external nugget package feed
• Deployment pipeline management w/ automatic
parallelization
• Built-in configuration parameters substitutions
• Approvals and manual intervention
• Comprehensive API
OCTOPUS DEPLOY MAIN FEATURES
34. 34
SQL
SERVER
DEV
TIP – USE ELASTIC DATABASE POOL
S2
50 DTU
DB1
S3
100 DTU
DB2
DB1
S3
100 DTU
DB2
S2
50 DTU
$75
$150
$75
$150
$450
SQL
SERVER
QA
SQL
SERVER
ELASTIC
POOL
S3
100 eDTU
S3
100 eDTU
DB1_QA DB2_QA
S3
100 eDTU
S3
100 DTU
DB1_QA DB2_QA
$220+
35. 36
ROLE BASES ACCESS CONTROL (RBAC)
USERS
GROUPS
MANAGEMENT
PERMISSION
SUBSCRIPTION
RESOURCE GROUP
RESOURCE
36. 37
RBAC BUILT-IN ROLES
Role name Permissions
Owner Full management rights
Contributor Full management rights except for user management
Reader View resources and their settings
None Does not see resources
CORE ROLES
Role name Permissions
*** Contributor Full management rights except for user management on
specific types of resources.
Examples: Virtual Machine Contributor, SQL DB
Contributor
RESOURCE TYPE SPECIFIC ROLES
37. 38
• Check that you use the right tool for CI and CD
• VSTS in Azure provides main features for CI process and basic
CD functionality
• Use your favorite tool with Octopus Deploy to get full control
and flexibility of both processes
• Use ARM resource groups and templated for environments
provisioning
• Leverage RBAC for control permissions on service
administration
• Leverage Elastic SQL Pool to drop cost of SQL databases
WRAP UP
Free for small teams
Cloud-based
Built-in code coverage
Extensions Marketplace
Supports most of languages
Built-in Git or other Enterprise Git Repositories
Email Alerts on events
Built-in artifact storage and package manager
Deploy the same way is not in the core of the model
VSTS Task push application binaries as nugget package to the Octopus. It defines the name and the version of the package and also creates a new release for the project
Octopus Deploy Server call Octopus Tentacles, agent application. installed on the VM. Tentacle receives the package and do the deployment and deploy-time config transformations.
For PaaS services, like WebApps and Cloud Service Roles, all transformation is performed on the Octopus Server.
Use
Resource Group (RG) contains all resources which belong to particular environment.
RG name starts with common prefix and the letter, which identifies the environment purpose: Dev, Qa, Staging and Production
RG name is included into the billing report and used to track costs.
During each iteration (sprint) development team works in two stages:
1. New feature development or bug fixing. All changes commits to the integration branch, which might be temporary unstable.
2. Preparing the release candidate and testing it, to produce the stable release code at the end of the iteration and initiate the push the new version to production environments
At the beginning of each iteration all team works on new feature to produce the value.
At the end of the sprint most of the team focused on the stabilizing and hardening the quality of iteration deliverables while some of the team members might keep working on the scope of the next iteration.
In addition to minimal model the release stage includes own DEV and QA environments, called DEV2 and QA2 respectably
DEV2 is used to test automated deployment scripts and to run automated acceptance tests.
QA2 is used for exploratory testing and running manual regression tests over the Release Candidate.
It’s good practice to have STAGE as a mirror of PROD. This allows to implement the Zero Downtime deployment strategies, like Canary Releases and Blue-Green Deployment.
Hotfix is follows the release candidate flow.