SlideShare a Scribd company logo
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
Continuous Deployment in the Cloud
Agenda
1. Continuous Integration
2. Continuous Delivery
3. Continuous Deployment
Michał Górski
Lead Software Engineer
Northmill AB
After the work:
● Football
● Fantasy Books
● Cats
● Tea
● Traveling
michal.gorski.pl@gmail.com
michal-gorski
Mail microservice
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
Mail microservice
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Mail microservice
Continuous Integration
Continuous Integration
● Integrate early and often
● Run on every commit
● Keep the build green at all time
● Always remember about tests!
Continuous Integration
● Integrate early and often
● Run on every commit -> On feature and hotfix branches too!!
● Keep the build green at all time
● Always remember about tests!
Continuous Integration
● Write tests as part of your stories
● Write tests when fixing bugs
● Refactoring is an opportunity to add tests
● Use code coverage to find untested code
Continuous Integration
Test Pyramid by Martin Fowler
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Integration
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Integration
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Integration
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Integration
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Integration
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Integration
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
Continuous Delivery
Infrastructure as a code
{
"Description" : "A text description for the template usage",
"Parameters": {
// A set of inputs used to customize the template per deployment
},
"Resources" : {
// The set of AWS resources and relationships between them
},
"Outputs" : {
// A set of values to be made visible to the stack creator
},
"AWSTemplateFormatVersion" : "2010-09-09"
}
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
Infrastructure as a code
"ConfigBucket" : {
"Type" : "AWS::S3::Bucket"
}
"InsertEmail" : {
"Type" : "AWS::Serverless::Function",
"Properties" : {
"Runtime": "dotnetcore2.1",
"MemorySize": 1536,
"Timeout": 300,
"Description": { "Inserting email to the Queue" }
"Handler" : "Northmill.Mail::Northmill.Mail.InsertEmailLambda::InsertEmailAsync",
"CodeUri" : "bin/Release/netcoreapp2.1/publish",
"Role" : {"Fn::GetAtt" : ["LambdaBaseRole", "Arn"]}
"Environment" : {
"Variables" : {
"MailQueueUrl" : {"Ref" : "MailQueue"},
"ConfigBucket" : {"Ref" : "ConfigBucket"}
}
}
}
"LambdaBaseRole" : {
"Type" : "AWS::IAM::Role",
"Properties" : {
"ManagedPolicyArns" : [
"arn:aws:iam::aws:policy/AmazonS3FullAccess",
"arn:aws:iam::aws:policy/service-role/AWSLambdaRole",
"arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess"
],
"AssumeRolePolicyDocument" : {
"Version" : "2012-10-17",
"Statement" : [{
"Effect" : "Allow",
"Action" : ["sts:AssumeRole"],
"Principal" : {"Service" : ["lambda.amazonaws.com"]}
}]
}
}
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Delivery
Questions:
● Where is the current state?
● How to build?
● Is it really working?
● Does it compile at least?
● How to deploy?
Continuous Delivery
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
Continuous Delivery
● Small changes
● Automate everything
● Smoke Testing
● Contract Testing
Contract Tests
Continuous Deployment
Continuous Deployment
● Strong Continuous Integration
● Good test coverage
● Real-time monitoring
● Post-deployment tests
● CD culture in other departments(Product, Marketing, Analytics...)
● Feature Toggles
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
Continuous Deployment
● Small changes
● Automate everything
● Smoke Testing
● Contract Testing
● Feature Toggles
● Constant flow of new features
● No “Release day” problems
Thank you!!
Q&A
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze

More Related Content

PDF
"Wix Serverless from inside", Mykola Borozdin
PDF
"13 ways to run web applications on the Internet" Andrii Shumada
PPTX
Node.js Internals and V8 / Operating System Interaction
PDF
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
PDF
Building a deployment pipeline
PDF
JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...
PPTX
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
PDF
WebRTC - Brings Real-Time to the Web
"Wix Serverless from inside", Mykola Borozdin
"13 ways to run web applications on the Internet" Andrii Shumada
Node.js Internals and V8 / Operating System Interaction
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
Building a deployment pipeline
JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
WebRTC - Brings Real-Time to the Web

What's hot (20)

PDF
Chromium: NaCl and Pepper API
PDF
Rene Groeschke
PDF
Streams API (Web Engines Hackfest 2015)
PDF
Extensible web
PPTX
Grunt Continuous Development of the Front End Tier
PDF
Front-end development automation with Grunt
ODP
DevOps in realtime
PDF
A little nginx (1)
PDF
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
PDF
Viktor Turskyi "Effective NodeJS Application Development"
PPTX
How go makes us faster (May 2015)
PDF
High Productivity Web Development Workflow
PDF
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
PDF
Extensible web #html5j
PDF
Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRW
PPTX
Whats new in .net core 3
PDF
[Workshop] "Vuetify in practice", Alexander Stepanov
PDF
Taking containers from development to production
PDF
Things you wish you never knew about the Prometheus Remote Write API.
PDF
Statyczna analiza kodu PHP
Chromium: NaCl and Pepper API
Rene Groeschke
Streams API (Web Engines Hackfest 2015)
Extensible web
Grunt Continuous Development of the Front End Tier
Front-end development automation with Grunt
DevOps in realtime
A little nginx (1)
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
Viktor Turskyi "Effective NodeJS Application Development"
How go makes us faster (May 2015)
High Productivity Web Development Workflow
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Extensible web #html5j
Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRW
Whats new in .net core 3
[Workshop] "Vuetify in practice", Alexander Stepanov
Taking containers from development to production
Things you wish you never knew about the Prometheus Remote Write API.
Statyczna analiza kodu PHP
Ad

Similar to [Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze (20)

PDF
Designing and coding for cloud-native applications using Python, Harjinder Mi...
PPTX
4 Anguadasdfasdasdfasdfsdfasdfaslar (1).pptx
PDF
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
PDF
"Crafting a Third-Party Banking Library with Web Components and React", Germa...
PPTX
TypeScript and Angular2 (Love at first sight)
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
PDF
Enterprise Integration Patterns with Apache Camel
PDF
Frontend APIs powering fast paced product iterations
PDF
PDF
Productionalizing Models through CI/CD Design with MLflow
PDF
Porting 100k Lines of Code to TypeScript
PPTX
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
PPTX
HNDIT1022 Week 08, 09 10 Theory web .pptx
PPTX
Enterprise Integration Patterns and Apache Camel
PDF
Building data "Py-pelines"
ODP
Effective TDD - Less is more
PPTX
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
PPTX
Angular IO
PPTX
Angular Js
Designing and coding for cloud-native applications using Python, Harjinder Mi...
4 Anguadasdfasdasdfasdfsdfasdfaslar (1).pptx
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
"Crafting a Third-Party Banking Library with Web Components and React", Germa...
TypeScript and Angular2 (Love at first sight)
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Enterprise Integration Patterns with Apache Camel
Frontend APIs powering fast paced product iterations
Productionalizing Models through CI/CD Design with MLflow
Porting 100k Lines of Code to TypeScript
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
HNDIT1022 Week 08, 09 10 Theory web .pptx
Enterprise Integration Patterns and Apache Camel
Building data "Py-pelines"
Effective TDD - Less is more
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Angular IO
Angular Js
Ad

More from Future Processing (20)

PDF
DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
PDF
DPTO_QA w świecie wartości biznesowych.pdf
PDF
DPTO_Hello_Clean_Architekture.pdf
PDF
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
PDF
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
PDF
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
PDF
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
PDF
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
PDF
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
PPTX
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
PPTX
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
PDF
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
PDF
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
PDF
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
PDF
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
PDF
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
PDF
[QE 2018] Marek Puchalski – Web Application Security Test Automation
PDF
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
PDF
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
PDF
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)
DPTO_Inżynieria oprogramowania to proces uczenia się.pdf
DPTO_QA w świecie wartości biznesowych.pdf
DPTO_Hello_Clean_Architekture.pdf
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)

Recently uploaded (20)

PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
L1 - Introduction to python Backend.pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Digital Strategies for Manufacturing Companies
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
AI in Product Development-omnex systems
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
ai tools demonstartion for schools and inter college
PDF
top salesforce developer skills in 2025.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administraation Chapter 3
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
L1 - Introduction to python Backend.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Design an Analysis of Algorithms I-SECS-1021-03
CHAPTER 2 - PM Management and IT Context
Digital Strategies for Manufacturing Companies
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
AI in Product Development-omnex systems
How to Choose the Right IT Partner for Your Business in Malaysia
Which alternative to Crystal Reports is best for small or large businesses.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
ai tools demonstartion for schools and inter college
top salesforce developer skills in 2025.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PTS Company Brochure 2025 (1).pdf.......
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administraation Chapter 3

[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze

  • 5. Agenda 1. Continuous Integration 2. Continuous Delivery 3. Continuous Deployment
  • 6. Michał Górski Lead Software Engineer Northmill AB After the work: ● Football ● Fantasy Books ● Cats ● Tea ● Traveling michal.gorski.pl@gmail.com michal-gorski
  • 11. ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Mail microservice
  • 13. Continuous Integration ● Integrate early and often ● Run on every commit ● Keep the build green at all time ● Always remember about tests!
  • 14. Continuous Integration ● Integrate early and often ● Run on every commit -> On feature and hotfix branches too!! ● Keep the build green at all time ● Always remember about tests!
  • 15. Continuous Integration ● Write tests as part of your stories ● Write tests when fixing bugs ● Refactoring is an opportunity to add tests ● Use code coverage to find untested code
  • 17. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Integration
  • 18. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Integration
  • 19. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Integration
  • 20. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Integration
  • 21. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Integration
  • 22. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Integration
  • 25. Infrastructure as a code { "Description" : "A text description for the template usage", "Parameters": { // A set of inputs used to customize the template per deployment }, "Resources" : { // The set of AWS resources and relationships between them }, "Outputs" : { // A set of values to be made visible to the stack creator }, "AWSTemplateFormatVersion" : "2010-09-09" }
  • 28. Infrastructure as a code "ConfigBucket" : { "Type" : "AWS::S3::Bucket" }
  • 29. "InsertEmail" : { "Type" : "AWS::Serverless::Function", "Properties" : { "Runtime": "dotnetcore2.1", "MemorySize": 1536, "Timeout": 300, "Description": { "Inserting email to the Queue" } "Handler" : "Northmill.Mail::Northmill.Mail.InsertEmailLambda::InsertEmailAsync", "CodeUri" : "bin/Release/netcoreapp2.1/publish", "Role" : {"Fn::GetAtt" : ["LambdaBaseRole", "Arn"]} "Environment" : { "Variables" : { "MailQueueUrl" : {"Ref" : "MailQueue"}, "ConfigBucket" : {"Ref" : "ConfigBucket"} } } }
  • 30. "LambdaBaseRole" : { "Type" : "AWS::IAM::Role", "Properties" : { "ManagedPolicyArns" : [ "arn:aws:iam::aws:policy/AmazonS3FullAccess", "arn:aws:iam::aws:policy/service-role/AWSLambdaRole", "arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess" ], "AssumeRolePolicyDocument" : { "Version" : "2012-10-17", "Statement" : [{ "Effect" : "Allow", "Action" : ["sts:AssumeRole"], "Principal" : {"Service" : ["lambda.amazonaws.com"]} }] } }
  • 33. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Delivery
  • 34. Questions: ● Where is the current state? ● How to build? ● Is it really working? ● Does it compile at least? ● How to deploy? Continuous Delivery
  • 36. Continuous Delivery ● Small changes ● Automate everything ● Smoke Testing ● Contract Testing
  • 39. Continuous Deployment ● Strong Continuous Integration ● Good test coverage ● Real-time monitoring ● Post-deployment tests ● CD culture in other departments(Product, Marketing, Analytics...) ● Feature Toggles
  • 41. Continuous Deployment ● Small changes ● Automate everything ● Smoke Testing ● Contract Testing ● Feature Toggles ● Constant flow of new features ● No “Release day” problems