SlideShare a Scribd company logo
1 of 30
The Future of Database
Development
(with containers)
Steve Jones
Editor, SQLServerCentral
Redgate Software
Agenda
Who am I?
Getting Started on a Database Project
Container Primer
Branching for Experiments
Fixing Mistakes
Easy Continuous Integration
Steve Jones
DevOps Advocate, Redgate Software
Editor, SQLServerCentral
30 years SQL Server data experience
DBA, developer, manager, writer, speaker in a variety of
companies and industries
Founder, SQLServerCentral
Currently the editor in chief, with the goal of helping you learn
to be a better data professional every day
13 year Microsoft Data Platform MVP
I have been honored to be recognized by Microsoft for the
as a Data Platform MVP working with SQL Server
@way0utwest
/in/way0utwest www.voiceofthedba.com
sjones@sqlservercentral.com
Software Dev is Easy
• Git clone
• Start working
The Database Vision - Getting Started
• I got a new gig…
• They're letting me do web development!!!!
• I don’t want to worry about databases
• I don’t have SQL installed (No services running)
• I have cloned the source code (git clone)
SQL Server
Shared Account database
PostgreSQL
Todo database
.NET Core API
Frontend web
I get a login to Spawn (DBaaS)
The Database Vision – Minimal Work
• Git clone xxxx (code)
• Spawnctl auth (db service auth)
• Yarn xxxx (start the app)
What are
containers?
Or how are these different from virtual
machines?
Hardware
Operating System
Hypervisor
VM VM
Operating
System
Operating
System
Operating
System
VM
App App App
Hardware
Operating System
Container Container Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Container
Image
Docker runtime
What is a container?
• Started in Linux as a lightweight way to provide a full fledged Linux
environment without starting a full VM
• LXC were early Linux containers
• Docker built their own container engine
• Uses the host kernel
• Provides a separated environment for applications
• Virtualizes OS resources
• Namespaces
• Control groups
What are Images?
• In the container world, an image is a template of the filesystem
• We build these with layers
• A unified file system combines these layers to give a consistent view
• The layers are read only
• Images are downloaded and used to create an instance of a container
Images and Containers
• The container is an instance of the Image
• All containers share the image
• Each container gets a separate writeable layer
• Changes exist in this writeable layer
• The unified file system keeps a consistent view
• Changes made to the writeable layer persist through pause/stop
• A volume may be mounted from the host inside the container
Development
Challenges
How containers help
Containers Help with Getting Started
• Containers are self-contained
• Everything inside
• Monolithic, or multiple containers linked
• Remove the need for dependencies
• Remove (some) of the need for infrastructure
• Known versions ensure stability/repeatability
• For databases
• Smaller data sets work well inside containers
• Larger data sets are a problem
Containers help with Branching
• A typical concern is I want to try something
• However, I don’t want to disturb other’s work
• Branches allow me to experiment and commit separately
• I can discard these, recreate these as needed, which means I want the
database to do the same.
• I can merge in changes that work
Containers and Branching
• Containers are immutable
• Restarting a container means that I return to a known state
• I can branch, with a new container and make changes
• Once work is done, I can commit the code to VCS
Demo
Branching
- Checkout new branch
- Getting a new data container
Oops, I did it again
• Often, I make some mistakes in development
• Usually, I can’t remember or don’t know the code to reset the
database
• This is frustrating because app code just resets
Demo
Reset
Delete/change data
Spawnctl reset data-container
Recap
• DBaaS removes the need to manage the server component
• Offloads resources elsewhere
• Offers more features
• Containers provide a known, consistent starting point
• Integration with easy deployment as a part of app config
• Reset can speed up testing of data issues
Continuous Integration
Independent Verification and Validation
Independent Validation with CI
• We want to check changes (committed) by developers
• Avoid the "it works on my machine"
• The CI process should be simple and seamless
CI with Containers
• Known state for a database app
• Schema
• (test) data
• Start quickly
• Multiple containers for different data stores can be run in parallel
• Lighter weight than VMs
Demo
Continuous Integration
Challenges
• DBaaS
• Subsetting
• We need easy ways to get a partial set of data
• Automation and adaptation to schema changes
• Test Data
• Size (subsetting)
• Scale
• Spread
• Container Orchestration (AKS et al)
Summary
• DBaaS is the future
• Containers make development easy(-ier)
• Handle branching easily for experimentation
• Reset immediately
• Parallelize testing with a database
• Lightweight and reduce setup
• DBAs still have control
The End
www.voiceofthedba.com
sjones@sqlservercentral.com
@way0utwest
/in/way0utwest

More Related Content

What's hot

Serve like a boss (part one)
Serve like a boss (part one)Serve like a boss (part one)
Serve like a boss (part one)Hamed Nemati
 
Eureka Moment UKLUG
Eureka Moment UKLUGEureka Moment UKLUG
Eureka Moment UKLUGPaul Withers
 
Scaling up to 30 m users
Scaling up to 30 m usersScaling up to 30 m users
Scaling up to 30 m usersYoav Avrahami
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesWesley Hales
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersYoav Avrahami
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application deliveryDoug Vanderweide
 
Java EE and Google App Engine
Java EE and Google App EngineJava EE and Google App Engine
Java EE and Google App EngineArun Gupta
 
Tech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on AzureTech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on AzureBrian Benz
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...Ido Flatow
 
Aws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and DevelopersAws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and DevelopersDylan Burris
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesUlrich Krause
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksFITC
 
Scaling wix to over 50 m users
Scaling wix to over 50 m usersScaling wix to over 50 m users
Scaling wix to over 50 m usersYoav Avrahami
 
Face Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On PremisesFace Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On PremisesGabriella Davis
 
Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web ProfileKenji HASUNUMA
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesUlrich Krause
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019Gianluca Hotz
 
Tech ED 2014 Running Oracle Databases and Application Servers on Azurev1
Tech ED 2014   Running Oracle Databases and Application Servers on Azurev1Tech ED 2014   Running Oracle Databases and Application Servers on Azurev1
Tech ED 2014 Running Oracle Databases and Application Servers on Azurev1Brian Benz
 

What's hot (20)

Serve like a boss (part one)
Serve like a boss (part one)Serve like a boss (part one)
Serve like a boss (part one)
 
Eureka Moment UKLUG
Eureka Moment UKLUGEureka Moment UKLUG
Eureka Moment UKLUG
 
Scaling up to 30 m users
Scaling up to 30 m usersScaling up to 30 m users
Scaling up to 30 m users
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devices
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M users
 
Eureka moment
Eureka momentEureka moment
Eureka moment
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application delivery
 
Javascript for Wep Apps
Javascript for Wep AppsJavascript for Wep Apps
Javascript for Wep Apps
 
Java EE and Google App Engine
Java EE and Google App EngineJava EE and Google App Engine
Java EE and Google App Engine
 
Tech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on AzureTech Ed North America 2014 - Java on Azure
Tech Ed North America 2014 - Java on Azure
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
 
Aws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and DevelopersAws 12 Month Free Tier for Web Designers and Developers
Aws 12 Month Free Tier for Web Designers and Developers
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPages
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
 
Scaling wix to over 50 m users
Scaling wix to over 50 m usersScaling wix to over 50 m users
Scaling wix to over 50 m users
 
Face Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On PremisesFace Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On Premises
 
Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web Profile
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPages
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019
 
Tech ED 2014 Running Oracle Databases and Application Servers on Azurev1
Tech ED 2014   Running Oracle Databases and Application Servers on Azurev1Tech ED 2014   Running Oracle Databases and Application Servers on Azurev1
Tech ED 2014 Running Oracle Databases and Application Servers on Azurev1
 

Similar to The Future of Database Development

Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the DatabaseMichaela Murray
 
11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL DevelopersIke Ellis
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the TrenchesDonald Belcham
 
Microsoft SQL Server Continuous Integration
Microsoft SQL Server Continuous IntegrationMicrosoft SQL Server Continuous Integration
Microsoft SQL Server Continuous IntegrationMark Ginnebaugh
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlEd Leighton-Dick
 
IBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and ExpansionIBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and ExpansionLetsConnect
 
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site ReviewECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site ReviewKenny Buntinx
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional testHarry Zheng
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matterTomas Doran
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that growGibraltar Software
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the thingsMat Mannion
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud ComputingITviec
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP120bi
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsAchievers Tech
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Maaz Anjum
 
Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Red Gate Software
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsIDERA Software
 

Similar to The Future of Database Development (20)

Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
 
11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers
 
Continuous database deployment
Continuous database deploymentContinuous database deployment
Continuous database deployment
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
 
Microsoft SQL Server Continuous Integration
Microsoft SQL Server Continuous IntegrationMicrosoft SQL Server Continuous Integration
Microsoft SQL Server Continuous Integration
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source Control
 
IBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and ExpansionIBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and Expansion
 
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site ReviewECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matter
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the things
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud Computing
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
manage databases like codebases
manage databases like codebasesmanage databases like codebases
manage databases like codebases
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!
 
Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure Environments
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 

Recently uploaded (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 

The Future of Database Development

  • 1. The Future of Database Development (with containers) Steve Jones Editor, SQLServerCentral Redgate Software
  • 2. Agenda Who am I? Getting Started on a Database Project Container Primer Branching for Experiments Fixing Mistakes Easy Continuous Integration
  • 3. Steve Jones DevOps Advocate, Redgate Software Editor, SQLServerCentral 30 years SQL Server data experience DBA, developer, manager, writer, speaker in a variety of companies and industries Founder, SQLServerCentral Currently the editor in chief, with the goal of helping you learn to be a better data professional every day 13 year Microsoft Data Platform MVP I have been honored to be recognized by Microsoft for the as a Data Platform MVP working with SQL Server @way0utwest /in/way0utwest www.voiceofthedba.com sjones@sqlservercentral.com
  • 4. Software Dev is Easy • Git clone • Start working
  • 5.
  • 6. The Database Vision - Getting Started • I got a new gig… • They're letting me do web development!!!! • I don’t want to worry about databases • I don’t have SQL installed (No services running) • I have cloned the source code (git clone)
  • 7. SQL Server Shared Account database PostgreSQL Todo database .NET Core API Frontend web
  • 8. I get a login to Spawn (DBaaS)
  • 9.
  • 10. The Database Vision – Minimal Work • Git clone xxxx (code) • Spawnctl auth (db service auth) • Yarn xxxx (start the app)
  • 11. What are containers? Or how are these different from virtual machines?
  • 12. Hardware Operating System Hypervisor VM VM Operating System Operating System Operating System VM App App App Hardware Operating System Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Container Image Docker runtime
  • 13. What is a container? • Started in Linux as a lightweight way to provide a full fledged Linux environment without starting a full VM • LXC were early Linux containers • Docker built their own container engine • Uses the host kernel • Provides a separated environment for applications • Virtualizes OS resources • Namespaces • Control groups
  • 14. What are Images? • In the container world, an image is a template of the filesystem • We build these with layers • A unified file system combines these layers to give a consistent view • The layers are read only • Images are downloaded and used to create an instance of a container
  • 15. Images and Containers • The container is an instance of the Image • All containers share the image • Each container gets a separate writeable layer • Changes exist in this writeable layer • The unified file system keeps a consistent view • Changes made to the writeable layer persist through pause/stop • A volume may be mounted from the host inside the container
  • 17. Containers Help with Getting Started • Containers are self-contained • Everything inside • Monolithic, or multiple containers linked • Remove the need for dependencies • Remove (some) of the need for infrastructure • Known versions ensure stability/repeatability • For databases • Smaller data sets work well inside containers • Larger data sets are a problem
  • 18. Containers help with Branching • A typical concern is I want to try something • However, I don’t want to disturb other’s work • Branches allow me to experiment and commit separately • I can discard these, recreate these as needed, which means I want the database to do the same. • I can merge in changes that work
  • 19. Containers and Branching • Containers are immutable • Restarting a container means that I return to a known state • I can branch, with a new container and make changes • Once work is done, I can commit the code to VCS
  • 20. Demo Branching - Checkout new branch - Getting a new data container
  • 21. Oops, I did it again • Often, I make some mistakes in development • Usually, I can’t remember or don’t know the code to reset the database • This is frustrating because app code just resets
  • 23. Recap • DBaaS removes the need to manage the server component • Offloads resources elsewhere • Offers more features • Containers provide a known, consistent starting point • Integration with easy deployment as a part of app config • Reset can speed up testing of data issues
  • 25. Independent Validation with CI • We want to check changes (committed) by developers • Avoid the "it works on my machine" • The CI process should be simple and seamless
  • 26. CI with Containers • Known state for a database app • Schema • (test) data • Start quickly • Multiple containers for different data stores can be run in parallel • Lighter weight than VMs
  • 28. Challenges • DBaaS • Subsetting • We need easy ways to get a partial set of data • Automation and adaptation to schema changes • Test Data • Size (subsetting) • Scale • Spread • Container Orchestration (AKS et al)
  • 29. Summary • DBaaS is the future • Containers make development easy(-ier) • Handle branching easily for experimentation • Reset immediately • Parallelize testing with a database • Lightweight and reduce setup • DBAs still have control

Editor's Notes

  1. DevOps is a hot topic in today’s software development world. However most of the knowledge and experience with DevOps is based around application software and ignores the database. We will examine how the concepts and principles of DevOps can be applied to database development by looking at both automated comparison analysis as well as migration script management. Automated building, testing, and deployment of database changes will be shown. https://unsplash.com/photos/IMUwe-p1yqs
  2. steve
  3. This is a recording of a demo system on my laptop. Notice at the beginning, I don't have any SQL Servers running. In fact, I have no data stores, including PostgreSQL, which this app uses. I have downloaded a repo prior to this, but I can use the yarn package manager to start my application.  Once I do that, the yarn configuration starts to look for containers, doesn't find them and creates them. Notice there are MSSQL, SQL Server, images and PostgreSQL images, These are used to create new containers. This does take a little time, as this is a proof of concept, running in the UK, and not a lot of resources are allocated. Once up, notice that credentials and connection strings are returned. These are plain text, but they are also generated for this container, for this user. Once we have containers created, there is an upgrade, as migrations, or new SQL Scripts in the repository, are applied to the databases. Flyway is used to check the scripts and apply them to the schemas in the databases. Both SQL Server and PostgreSQL databases are migrated. As migrations are finished, the app then is started, and a URL returned. I can then switch to a browser and see the app running. I can connect, and begin working. Each time I start the app, the container status is checked, and if they are available, they are reused. If I need to reset my data store for some reason, say I removed or changed data, I can just remove a container with a command line call and a new one will be recreated the next time the app starts. If I add new SQL code for objects in a file, the new migration script is executed the next time the app starts up. If I branch, I get a new set of containers. If I switch back to my old branch, the old containers are there. Each one starting from the same, immutable image. At the end, we see this is from the Spawn project, from Redgate, which is a beta proof of concept for doing database development with the Database as a Service.
  4. https://hub.docker.com/_/microsoft-mssql-server
  5. https://hub.docker.com/_/microsoft-mssql-server
  6. https://foundry-labs.visualstudio.com/spawn-demo-app/_build/results?buildId=17516&view=logs&s=6884a131-87da-5381-61f3-d7acc3b91d76