Using Redgate, AKS and Azure
to bring DevOps to your
Database
By Rob Sewell & Hamish Watson
Hi there, we’re…
Hamish Watson
Rob Sewell
https://sqldbawithabeard.com/
@sqldbawithbeard
https://hybriddbablog.com/
@theHybridDBA
Rob = Somerset, UK
Hamish = Christchurch, NZ
https://devops.pass.org/default.aspx
Agenda
• How was life before DevOps?
• What is this DevOps thing you talk of?
• Why use Redgate tools?
• Why use Azure?
• Why use containers
• Why use Azure Kubernetes Services
Database Development Cycle:
• Manual
• Inconsistently tested
• Plagued with poor or NO source control
• Slowed down by lengthy processes and daunting deployments
• Application code breaks our database!!
“….never say the word DevOps”
The first rule of DevOps…….
Hamish Watson, circa 2013
“Let’s use our tools and create a process
that allows us to automate the reliable
deployment of business value to our
clients.”
Hamish Watson, circa 2016
#MakeStuffGo
Culture
Automation
Lean
Measurement
Sharing
What is DevOps?
#Only The Name Is New
#Common business goal
#Everyone working together
Tools
The four pillars of DevOps
Process People Culture
https://www.red-gate.com/blog/database-devops/the-four-pillars-of-devops
Enhanced customer
experience
DevOps Benefits
Increased capacity
to innovate
Faster time to value
DevOps tools – yours might differ
Issue, bug and task tracking
Source control
Integrated Development Environment
Automated build server
Automated testing
Automated release
Ways you can start your DevOps journey
1. Source Control
2. Unit Testing
3. Infrastructure as Code
4. Continuous Integration
5. Continuous Delivery
6. Continuous Monitoring & Testing
Storing our database in source control
The what now…?
Ways to get our database into Source Control
(SQL Source Control)
Ways to get our database into Source Control
(SQL Source Control)
Ways to get our database into Source Control
(SQL Source Control)
Unit Testing for Databases
Yeah, nah…
…..that’s kinda non-existent.
Why we need to do unit testing
The client actually wanted a ‘g’
Consider this application developer
Skills: C#, .NET, java, PowerShell
Experience: 8 years
Platforms: Windows Server, Azure, AWS, docker
Databases: Microsoft SQL Server, MySQL, Oracle
Unit Testing: Nah, don’t really believe in it mate….
X
Consider this database developer
Skills: T-SQL, Entity Framework, PowerShell
Experience: 8 years
Platforms: Windows Server, Azure, RDS
Databases: Microsoft SQL Server 2000 - 2017
Unit Testing: I write beautiful stored procs mate….
P
Introducing tSQLt
https://tsqlt.org/
22
Introducing tSQLt
Open Source Database Unit Testing Framework (free!!)
http://tsqlt.org/
Write unit tests in TSQL and can be written/run in SSMS
Very similar to NUnit & JUnit
There are a lot of methods for asserts
23
Introducing tSQLt
Use of fake tables/views isolates code while testing
Self Contained tests – isolated transactions
We can choose to run all, some or one test
Tests grouped in their own schema
Does require CLR – this is OK for DEV and some TEST
24
tSQLt is easy as to run…
EXEC tsqlt.runall
SQL Test makes it even easier and standard..
Infrastructure as Code
Getting what you want, how you want it, when you
want it….
…with code that is.
Infrastructure as Code – solving inertia
More of this
LESS of this
Learn how to write in YAML…
Continuous, Continuous, Continuous!!
Let’s do all the things…
….continuously
Continuous Integration
“Continuous Integration (CI) is a development practice that requires developers to
integrate code into a shared repository several times a day.
Each check-in is then verified by an automated build, allowing teams to detect problems
early.
By integrating regularly, you can detect errors quickly, and fix them more easily.”
https://www.thoughtworks.com/continuous-integration
http://workingwithdevs.com/t-sql-tuesday-90-you-are-doing-continuous-integration-wrong
Continuous Integration
TDD DEVELOPER – Steve Jones
WRITES CODE
COMMIT SOURCE CONTROL
SYSTEM
O.S DEVELOPER – Rob WatsonWRITES CODE
POLLING
NOTIFICATIONS
CONTINUOUS
INTEGRATION &
TESTING
TEST
FAILURE
TEST AGAIN PACKAGE &
DEPLOY
1
2
3 4
56
7
8
910
11
12
NOTIFY
13
14
15 16
Unit
testing
Unit
testing
CI isn’t the whole story for reliable deployments
Dev
Dev BUILD
SERVER
Build
testing
UAT
User
testing
PRODUCTION EXPLOSION
Continuous
integration
1
2
3
4
5
6
3 Months of
changes
Feedback on 3 Months of changes7
Wasteful rework & manual intervention8
Unit
testing
Continuous Delivery – shifting everything left
Feedback
Dev
Dev Build
server
Build
tests
Continuous integration
Build
Continuous testing
Integration tests Functional tests
User acceptance
tests
Feedback
Integration
Feedback
Functional
Feedback
UAT
Final
test
Feedback
Pre prod
Small iterative changes
CONTINUOUS DELIVERY
Feedback
‘SHIFT LEFT’ OPERATIONAL FEEDBACK
PROD
Continuous
monitoring
Unit
testing
CONTINUOUS MONITORING
Containers, Azure and AKS
The Data Platform has evolved….
… have you?
Why move to the Cloud?
• Elasticity
• Pay for
what you
need
• Fail fast
• Fast time to
market
• Secure
• Reliable
• Business
SLA
Less of this
More of this
My datacentre in the cloudMy datacentre in the cloud – all via this:
SQL Server 2017
• SQL Server 2017 and above can run on Linux
• Which means it can now run in a container
• This is quite a game changer for our industry..
SQL Server in containers
Container Container Container
Portable
Run anywhere Docker is supported
Lightweight
Reduced disk, CPU, and memory footprint
Consistent
Consistent image of SQL Server, scripts, and
tools
Efficient
Faster deployment, reduced patching, and
less downtime
Container configuration
Database
Persisted storage
Switch for
simple
upgrades
Bare Metal Server
Infrastructure Layer
Operating System (OS)
Physical
Hypervisor (VMs)
Containers
Hypervisor
Applications Guest 1 OS
Guest 1
Applications
Guest 2 OS
Guest 2
Applications
Orchestration Platform
Container 1 Container 2
SAN Storage
Operating System (OS)
Worker Node 1 Worker Node 2
Container 1 Container 2
Orchestrated
Containers
Networking
The cake layers of Kubernetes
Persistent Volume Storage
Kubernetes
Built-in HADR orchestration with no clustering required
User
Shared storage HA in Kubernetes
Node
Pod
SQL Server
Node
Load Balancer Service
Node
Pod
SQL Server
Pod
SQL Server
Managed Kubernetes means less stress…
Making Kubernetes easier for the masses
This is almost too easy…
Bringing it all together – DevOps/Redgate/AKS
Bringing it all together – Continuous Integration
Bringing it all together – Continuous Delivery
Bringing it all together – Continuous Delivery
Summary
• You need to look at DevOps for your database
• Redgate make some fantastically ingenious and simple
solutions to help you #MakeStuffGo
• We love Azure and we love containers
• Azure Kubernetes Services lets you scale out and protect your
applications and database
• You can use the same methods and TOOLS to play with AKS
https://datamindsconnect.be/
Questions?
Thank you for tuning in for our webinar!!
Hamish Watson
@theHybridDBA
hamish@morphit.co.nz
Rob Sewell
@sqldbawithbeard
mrrobsewell@outlook.com

Using Redgate, AKS and Azure to bring DevOps to your database

  • 1.
    Using Redgate, AKSand Azure to bring DevOps to your Database By Rob Sewell & Hamish Watson
  • 2.
    Hi there, we’re… HamishWatson Rob Sewell https://sqldbawithabeard.com/ @sqldbawithbeard https://hybriddbablog.com/ @theHybridDBA
  • 3.
    Rob = Somerset,UK Hamish = Christchurch, NZ
  • 4.
  • 5.
    Agenda • How waslife before DevOps? • What is this DevOps thing you talk of? • Why use Redgate tools? • Why use Azure? • Why use containers • Why use Azure Kubernetes Services
  • 6.
    Database Development Cycle: •Manual • Inconsistently tested • Plagued with poor or NO source control • Slowed down by lengthy processes and daunting deployments • Application code breaks our database!!
  • 7.
    “….never say theword DevOps” The first rule of DevOps……. Hamish Watson, circa 2013
  • 8.
    “Let’s use ourtools and create a process that allows us to automate the reliable deployment of business value to our clients.” Hamish Watson, circa 2016 #MakeStuffGo
  • 9.
    Culture Automation Lean Measurement Sharing What is DevOps? #OnlyThe Name Is New #Common business goal #Everyone working together
  • 10.
    Tools The four pillarsof DevOps Process People Culture https://www.red-gate.com/blog/database-devops/the-four-pillars-of-devops
  • 11.
    Enhanced customer experience DevOps Benefits Increasedcapacity to innovate Faster time to value
  • 12.
    DevOps tools –yours might differ Issue, bug and task tracking Source control Integrated Development Environment Automated build server Automated testing Automated release
  • 13.
    Ways you canstart your DevOps journey 1. Source Control 2. Unit Testing 3. Infrastructure as Code 4. Continuous Integration 5. Continuous Delivery 6. Continuous Monitoring & Testing
  • 14.
    Storing our databasein source control The what now…?
  • 15.
    Ways to getour database into Source Control (SQL Source Control)
  • 16.
    Ways to getour database into Source Control (SQL Source Control)
  • 17.
    Ways to getour database into Source Control (SQL Source Control)
  • 18.
    Unit Testing forDatabases Yeah, nah… …..that’s kinda non-existent.
  • 19.
    Why we needto do unit testing The client actually wanted a ‘g’
  • 20.
    Consider this applicationdeveloper Skills: C#, .NET, java, PowerShell Experience: 8 years Platforms: Windows Server, Azure, AWS, docker Databases: Microsoft SQL Server, MySQL, Oracle Unit Testing: Nah, don’t really believe in it mate…. X
  • 21.
    Consider this databasedeveloper Skills: T-SQL, Entity Framework, PowerShell Experience: 8 years Platforms: Windows Server, Azure, RDS Databases: Microsoft SQL Server 2000 - 2017 Unit Testing: I write beautiful stored procs mate…. P
  • 22.
  • 23.
    Introducing tSQLt Open SourceDatabase Unit Testing Framework (free!!) http://tsqlt.org/ Write unit tests in TSQL and can be written/run in SSMS Very similar to NUnit & JUnit There are a lot of methods for asserts 23
  • 24.
    Introducing tSQLt Use offake tables/views isolates code while testing Self Contained tests – isolated transactions We can choose to run all, some or one test Tests grouped in their own schema Does require CLR – this is OK for DEV and some TEST 24
  • 25.
    tSQLt is easyas to run… EXEC tsqlt.runall
  • 26.
    SQL Test makesit even easier and standard..
  • 27.
    Infrastructure as Code Gettingwhat you want, how you want it, when you want it…. …with code that is.
  • 28.
    Infrastructure as Code– solving inertia More of this LESS of this
  • 29.
    Learn how towrite in YAML…
  • 30.
    Continuous, Continuous, Continuous!! Let’sdo all the things… ….continuously
  • 31.
    Continuous Integration “Continuous Integration(CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. By integrating regularly, you can detect errors quickly, and fix them more easily.” https://www.thoughtworks.com/continuous-integration http://workingwithdevs.com/t-sql-tuesday-90-you-are-doing-continuous-integration-wrong
  • 32.
    Continuous Integration TDD DEVELOPER– Steve Jones WRITES CODE COMMIT SOURCE CONTROL SYSTEM O.S DEVELOPER – Rob WatsonWRITES CODE POLLING NOTIFICATIONS CONTINUOUS INTEGRATION & TESTING TEST FAILURE TEST AGAIN PACKAGE & DEPLOY 1 2 3 4 56 7 8 910 11 12 NOTIFY 13 14 15 16 Unit testing Unit testing
  • 33.
    CI isn’t thewhole story for reliable deployments Dev Dev BUILD SERVER Build testing UAT User testing PRODUCTION EXPLOSION Continuous integration 1 2 3 4 5 6 3 Months of changes Feedback on 3 Months of changes7 Wasteful rework & manual intervention8 Unit testing
  • 34.
    Continuous Delivery –shifting everything left Feedback Dev Dev Build server Build tests Continuous integration Build Continuous testing Integration tests Functional tests User acceptance tests Feedback Integration Feedback Functional Feedback UAT Final test Feedback Pre prod Small iterative changes CONTINUOUS DELIVERY Feedback ‘SHIFT LEFT’ OPERATIONAL FEEDBACK PROD Continuous monitoring Unit testing CONTINUOUS MONITORING
  • 35.
    Containers, Azure andAKS The Data Platform has evolved…. … have you?
  • 36.
    Why move tothe Cloud? • Elasticity • Pay for what you need • Fail fast • Fast time to market • Secure • Reliable • Business SLA
  • 37.
  • 38.
  • 39.
    My datacentre inthe cloudMy datacentre in the cloud – all via this:
  • 40.
    SQL Server 2017 •SQL Server 2017 and above can run on Linux • Which means it can now run in a container • This is quite a game changer for our industry..
  • 41.
    SQL Server incontainers Container Container Container Portable Run anywhere Docker is supported Lightweight Reduced disk, CPU, and memory footprint Consistent Consistent image of SQL Server, scripts, and tools Efficient Faster deployment, reduced patching, and less downtime Container configuration Database Persisted storage Switch for simple upgrades
  • 42.
    Bare Metal Server InfrastructureLayer Operating System (OS) Physical Hypervisor (VMs) Containers Hypervisor Applications Guest 1 OS Guest 1 Applications Guest 2 OS Guest 2 Applications Orchestration Platform Container 1 Container 2 SAN Storage Operating System (OS) Worker Node 1 Worker Node 2 Container 1 Container 2 Orchestrated Containers Networking
  • 43.
    The cake layersof Kubernetes
  • 45.
    Persistent Volume Storage Kubernetes Built-inHADR orchestration with no clustering required User Shared storage HA in Kubernetes Node Pod SQL Server Node Load Balancer Service Node Pod SQL Server Pod SQL Server
  • 46.
  • 47.
  • 48.
    This is almosttoo easy…
  • 49.
    Bringing it alltogether – DevOps/Redgate/AKS
  • 50.
    Bringing it alltogether – Continuous Integration
  • 51.
    Bringing it alltogether – Continuous Delivery
  • 52.
    Bringing it alltogether – Continuous Delivery
  • 53.
    Summary • You needto look at DevOps for your database • Redgate make some fantastically ingenious and simple solutions to help you #MakeStuffGo • We love Azure and we love containers • Azure Kubernetes Services lets you scale out and protect your applications and database • You can use the same methods and TOOLS to play with AKS
  • 54.
  • 55.
  • 56.
    Thank you fortuning in for our webinar!! Hamish Watson @theHybridDBA hamish@morphit.co.nz Rob Sewell @sqldbawithbeard mrrobsewell@outlook.com