SlideShare uma empresa Scribd logo
1 de 73
Baixar para ler offline
“Let’s put Numéro into Containers on
Windows!”
This is what happened…
Callcredit
Who we are
• Credit Reference Agency
• Data Company
• Windows .NET
• “Software” Products
Protects Cardholder Data
Regulates Use & Storage of Personal Info.
Implementation of the FoI Act
Financial markets need to be honest, fair and effective so that consumers get a fair deal.
numéro
Numéro solutionNuméro solution
Some Of Our Clients
UTILITYTELECOMSRETAIL FINANCIAL GOV
Platform
 Windows
 SQL
 .Net / IIS
 Java / Tomcat
 NodeJS / IIS
 nginx
Tools
 Visual Studio
 Git
 Jenkins
 Redmine
 Grunt
 Package Managers
Headline Technical Info – Numéro Interactive
Architecture
Enterprise / Bespoke Solutions
Browser Mobile
App
Data
Platform DefinitionApp Definition – ADK
ConfigurationContent
API Based Architecture
Core
Services
API
Transactions
API
Web API
Web UI
Creation
API
API
Identity and Access Management
PUBLIC/DMZPRIVATECLIENT
JSON Store
API
Enterprise
API Process Proxy
Legacy
Services
Legacy
Services
Value Stream Mapping
Retrospective
Fact finding
Talk of the future not allowed!
Identify waste
Types of wasteRed pen
Lots of waste
Important to be open
Time for the green pen
How can we improve?
the
The Value Stream Map
• Starts with sales
Issues can be introduced long
before any technology involved
• Manual steps, waiting,
• multiple deployments
Multiple manual
deployments
Lots of waiting and
manual steps
Long builds – 8 hours
Failures common -> re run -> 16 hours
Due to tech debt, such as redundant tests
Queued builds due to hardware bottleneck
Manual deployment, often
using copy/paste over RDP
One site uses Octopus for
deployment
Multiple customers means
multiple deploys
Some customers don’t
upgrade: wait time to receive
value = infinity!
Callcredit’s requirements:
• Portable (deployable onto platform of choice)
• Push an update once to all live instances
• Quickly replicate any bespoke customer solution
• Methodology suitable for other software products
• Scalability
• Resilience
Containers were the most obvious thing to try
Before the Hackathon Started, we…
• Identified the minimum viable components
 Database
 Core Services
 Identity Component
• Built Numéro solution from scratch
• Confirmed Prerequisites
• Created a Pipeline in Octopus Deploy
• Set up Azure Sandbox
• Set up VSTS
• Imported code into VSTS from Git
Prep Work
http://www.visualstudio.com/news/release-archive-vso
Why VSTS?
• Callcredit use TFS
• Integrate Numéro with other product teams’ practices
• Useful to have a cloud service - sharing with remote teams
• Strong push to evaluate VSTS
• Updates and enhancements handled by Microsoft
• VSTS Updated before TFS
The Hack
Aims for the Hack
• Build our three components within VSTS
 Database
 Core Services
 Identity Component
• Release Process:
 Docker Containers
 Test and Live environments
 Azure
• Monitoring
DevTest Labs Azure DevTest
Labs
First output of the hack…
Container ecosystem
DevOps process with containers
IIS with .NET 4.5 (numerocr.azurecr.io/iis-net45)
FROM microsoft/windowsservercore
SHELL ["powershell"]
RUN Add-WindowsFeature Web-Server,NET-Framework-45-Core,NET-Framework-45-
ASPNET,Web-Net-Ext45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Asp-Net45
COPY waitservice.ps1 /
CMD c:waitservice.ps1 -ServiceName W3SVC -AllowServiceRestart
Tomcat & Java in addition to IIS
(numerocr.azurecr.io/tomcat-java-iis)
FROM numerocr.azurecr.io/iis-net45
SHELL ["powershell"]
COPY /drop /drop
RUN /drop/scripts/install.ps1
Reusing existing
PowerShell
Core Services
(numerocr.azurecr.io/core)
FROM numerocr.azurecr.io/tomcat-java-iis
COPY /drop/smartagent/ /drop/smartagent/
COPY /drop/scripts/ /drop/scripts/
COPY /drop/certs/ /drop/certs/
SHELL ["powershell"]
#dns fix due to bug
RUN set-itemproperty -path 'HKLM:SYSTEMCurrentControlSetServicesDnscacheParameters'
-Name ServerPriorityTimeLimit -Value 0 -Type DWord
RUN .dropscriptsinstall.ps1
EXPOSE 80
node.js on IIS
FROM numerocr.azurecr.io/iis-net45:279
SHELL ["powershell"]
## Install IIS RewriteModule
RUN Invoke-WebRequest -Uri http://go.microsoft.com/fwlink/?LinkID=615137 -OutFile
rewrite.msi
RUN Start-Process -Wait -FilePath .rewrite.msi -ArgumentList /quiet, /norestart
RUN Remove-Item rewrite.msi
## Install IISNode
COPY iisnode-core_x64.msi iisnode.msi
RUN Start-Process -Wait -FilePath .iisnode.msi -ArgumentList /quiet, /norestart
RUN Remove-Item iisnode.msi
MS SQL Server
FROM microsoft/windowsservercore
ENV sql_express_download_url "https://go.microsoft.com/fwlink/?linkid=829176"
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN Invoke-WebRequest -Uri $env:sql_express_download_url -OutFile sqlexpress.exe ; 
Start-Process -Wait -FilePath .sqlexpress.exe -ArgumentList /qs, /x:setup ; 
.setupsetup.exe /q /ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLEngine /UPDATEENABLED=0
/SQLSVCACCOUNT='NT AUTHORITYSystem' /SQLSYSADMINACCOUNTS='BUILTINADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0
/IACCEPTSQLSERVERLICENSETERMS ; 
Remove-Item -Recurse -Force sqlexpress.exe, setup
RUN stop-service MSSQL`$SQLEXPRESS ; 
set-itemproperty -path 'HKLM:softwaremicrosoftmicrosoft sql
servermssql13.SQLEXPRESSmssqlserversupersocketnetlibtcpipall' -name tcpdynamicports -value '' ; 
set-itemproperty -path 'HKLM:softwaremicrosoftmicrosoft sql
servermssql13.SQLEXPRESSmssqlserversupersocketnetlibtcpipall' -name tcpport -value 1433 ; 
set-itemproperty -path 'HKLM:softwaremicrosoftmicrosoft sql servermssql13.SQLEXPRESSmssqlserver' -name
LoginMode -value 2;
HEALTHCHECK CMD [ "sqlcmd", "-Q", "select 1" ]
What about data?
nginx
FROM microsoft/windowsservercore
SHELL ["powershell"]
RUN mkdir /drop
RUN wget -uri 'http://nginx.org/download/nginx-1.11.12.zip' -OutFile /drop/nginx.zip
RUN Expand-Archive -Path /drop/nginx.zip -DestinationPath /nginx -Force
COPY nginx.conf /nginx/nginx-1.11.12/conf/
COPY certs/hack.numerotraining.com.key /nginx/nginx-1.11.12/conf/
COPY certs/hack.numerotraining.com.cer /nginx/nginx-1.11.12/conf/
#dns fix due to bug
RUN set-itemproperty -path 'HKLM:SYSTEMCurrentControlSetServicesDnscacheParameters' -
Name ServerPriorityTimeLimit -Value 0 -Type Dword
EXPOSE 80
EXPOSE 443
WORKDIR /nginx/nginx-1.11.12
ENTRYPOINT ["nginx.exe"]
nginx for SSL offload
and routing
Build
Build Definition
Flag: we set tests to continue on error
Docker tasks once build is complete
Build the image
Push the image to Azure Container Registry
• acr
View verbose logs for
each build stage
View build output
including test and
deployment status
Release
Release using Docker Compose
• Why Compose & Swarm?
• Needed to deploy to single VM
• Swarm provides a Windows only solution
• No Linux servers required
• What's in the compose file?
• Services and their configuration
• Image
• Ports
• Environment variables
• Dependencies
• Networking details
Release Pipeline
Used docker-compose up to run
containers. If using Swarm would
use docker deploy
For the hack, two
environments Test &
LV (live)
Release triggers
It Works!!
Monitoring
• Microsoft Operations Management Suite
• Collects logs from Docker hosts
• Integrates into the Azure portal
• Allows export of logs to external platforms such
as ELK
• Right now…
• Map and Script everything we did
• Shout about it
• Orchestration: Kubernetes? Swarm?
• Recreate it in a fully automated way from scratch – on Azure
• Within a Year
• Prove Portability – Callcredit environment – AWS
• Add Customer config
• Fully functional, Live customer solution running in containers
• Begin containerisation of next Software product
Next steps
Callcredit’s requirements:
• Portable (deployable onto platform of choice)
• Push an update once to all live instances
• Quickly replicate any bespoke customer solution
• Methodology suitable for other software products
• Scalability
• Resilience
• Right now…
• Map and Script everything we did
• Shout about it
• Orchestration: Kubernetes? (Marcus - Swarm?)
• Recreate it in a fully automated way from scratch – on Azure
• Within a Year
• Prove Portability – Callcredit environment – AWS
• Add Customer config
• Fully functional, Live customer solution running in containers
• Begin containerisation of next Software product
Next steps
Resources
Alex Carter
System Build Engineer
Callcredit Information Group
Email: Alexandra.carter@callcreditgroup.com
Twitter: @smileandeliver
• DevOps Fundamentals:
https://channel9.msdn.com/Series/DevOps-Fundamentals
• DevOps Dimensions:
https://channel9.msdn.com/Shows/DevOps-Dimension
• Lots of videos about Azure and containers
https://channel9.msdn.com/
• Get access to free online training:
https://mva.microsoft.com/training-topics/devops
• Numero Interactive:
http://www.thisisnumero.com/
• Callcredit
http://www.callcredit.co.uk/
Want access to Azure, VSTS and more for FREE?
Visual Studio Dev Essentials - https://www.visualstudio.com/dev-essentials/

Mais conteúdo relacionado

Mais procurados

Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample applicationAnil Allewar
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Amazon Web Services
 
5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipelineMichel Schildmeijer
 
DevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codeDevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codesriram_rajan
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinLeanIX GmbH
 
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...BizTalk360
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entityToni Jara
 
Practical Approaches to Cloud Native Security
Practical Approaches to Cloud Native SecurityPractical Approaches to Cloud Native Security
Practical Approaches to Cloud Native SecurityKarthik Gaekwad
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Julien SIMON
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesAtlassian
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAmazon Web Services
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019J V
 
Zure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training dayZure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training dayOkko Oulasvirta
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Gilad Garon
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing MicroservicesAnil Allewar
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsSunil Dalal
 

Mais procurados (20)

Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample application
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
 
5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline5 steps to take setting up a streamlined container pipeline
5 steps to take setting up a streamlined container pipeline
 
DevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codeDevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as code
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
 
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
 
Practical Approaches to Cloud Native Security
Practical Approaches to Cloud Native SecurityPractical Approaches to Cloud Native Security
Practical Approaches to Cloud Native Security
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket Pipelines
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 
Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019Alfresco Transform Service DevCon 2019
Alfresco Transform Service DevCon 2019
 
Zure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training dayZure Azure PaaS Zero to Hero - DevOps training day
Zure Azure PaaS Zero to Hero - DevOps training day
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
 
WebLogic and GraalVM
WebLogic and GraalVMWebLogic and GraalVM
WebLogic and GraalVM
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 

Semelhante a Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill - Dec 2017

How (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSHow (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSRyan Crawford
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Emerson Eduardo Rodrigues Von Staffen
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyRightScale
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGAlan Renouf
 
Tooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure StackTooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure StackMicrosoft Tech Community
 
Automating Security in your IaC Pipeline
Automating Security in your IaC PipelineAutomating Security in your IaC Pipeline
Automating Security in your IaC PipelineAmazon Web Services
 
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...Amazon Web Services
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf
 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containersactualtechmedia
 
VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...
VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...
VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...VMworld
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconMario-Leander Reimer
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesPatrick Chanezon
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB
 
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...Amazon Web Services
 

Semelhante a Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill - Dec 2017 (20)

How (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSHow (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaS
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUG
 
Tooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure StackTooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
 
Automating Security in your IaC Pipeline
Automating Security in your IaC PipelineAutomating Security in your IaC Pipeline
Automating Security in your IaC Pipeline
 
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containers
 
VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...
VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...
VMworld 2013: Keep it Simple and Integrated - Out-of the Box Cross-System Aut...
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
 
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
 

Último

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
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
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
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
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill - Dec 2017

  • 1. “Let’s put Numéro into Containers on Windows!” This is what happened…
  • 2. Callcredit Who we are • Credit Reference Agency • Data Company • Windows .NET • “Software” Products
  • 3. Protects Cardholder Data Regulates Use & Storage of Personal Info. Implementation of the FoI Act Financial markets need to be honest, fair and effective so that consumers get a fair deal.
  • 4.
  • 6. Some Of Our Clients UTILITYTELECOMSRETAIL FINANCIAL GOV
  • 7. Platform  Windows  SQL  .Net / IIS  Java / Tomcat  NodeJS / IIS  nginx Tools  Visual Studio  Git  Jenkins  Redmine  Grunt  Package Managers Headline Technical Info – Numéro Interactive
  • 9. Enterprise / Bespoke Solutions Browser Mobile App Data Platform DefinitionApp Definition – ADK ConfigurationContent API Based Architecture Core Services API Transactions API Web API Web UI Creation API API Identity and Access Management PUBLIC/DMZPRIVATECLIENT JSON Store API Enterprise API Process Proxy Legacy Services Legacy Services
  • 11. Fact finding Talk of the future not allowed!
  • 12. Identify waste Types of wasteRed pen
  • 14. Time for the green pen How can we improve?
  • 16. • Starts with sales Issues can be introduced long before any technology involved
  • 17. • Manual steps, waiting, • multiple deployments Multiple manual deployments Lots of waiting and manual steps
  • 18. Long builds – 8 hours Failures common -> re run -> 16 hours Due to tech debt, such as redundant tests Queued builds due to hardware bottleneck
  • 19. Manual deployment, often using copy/paste over RDP One site uses Octopus for deployment Multiple customers means multiple deploys Some customers don’t upgrade: wait time to receive value = infinity!
  • 20. Callcredit’s requirements: • Portable (deployable onto platform of choice) • Push an update once to all live instances • Quickly replicate any bespoke customer solution • Methodology suitable for other software products • Scalability • Resilience Containers were the most obvious thing to try
  • 21. Before the Hackathon Started, we… • Identified the minimum viable components  Database  Core Services  Identity Component • Built Numéro solution from scratch • Confirmed Prerequisites • Created a Pipeline in Octopus Deploy • Set up Azure Sandbox • Set up VSTS • Imported code into VSTS from Git Prep Work
  • 22.
  • 24. Why VSTS? • Callcredit use TFS • Integrate Numéro with other product teams’ practices • Useful to have a cloud service - sharing with remote teams • Strong push to evaluate VSTS • Updates and enhancements handled by Microsoft • VSTS Updated before TFS
  • 26. Aims for the Hack • Build our three components within VSTS  Database  Core Services  Identity Component • Release Process:  Docker Containers  Test and Live environments  Azure • Monitoring
  • 27. DevTest Labs Azure DevTest Labs
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. First output of the hack…
  • 37. DevOps process with containers
  • 38.
  • 39. IIS with .NET 4.5 (numerocr.azurecr.io/iis-net45) FROM microsoft/windowsservercore SHELL ["powershell"] RUN Add-WindowsFeature Web-Server,NET-Framework-45-Core,NET-Framework-45- ASPNET,Web-Net-Ext45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Asp-Net45 COPY waitservice.ps1 / CMD c:waitservice.ps1 -ServiceName W3SVC -AllowServiceRestart
  • 40. Tomcat & Java in addition to IIS (numerocr.azurecr.io/tomcat-java-iis) FROM numerocr.azurecr.io/iis-net45 SHELL ["powershell"] COPY /drop /drop RUN /drop/scripts/install.ps1 Reusing existing PowerShell
  • 41. Core Services (numerocr.azurecr.io/core) FROM numerocr.azurecr.io/tomcat-java-iis COPY /drop/smartagent/ /drop/smartagent/ COPY /drop/scripts/ /drop/scripts/ COPY /drop/certs/ /drop/certs/ SHELL ["powershell"] #dns fix due to bug RUN set-itemproperty -path 'HKLM:SYSTEMCurrentControlSetServicesDnscacheParameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord RUN .dropscriptsinstall.ps1 EXPOSE 80
  • 42. node.js on IIS FROM numerocr.azurecr.io/iis-net45:279 SHELL ["powershell"] ## Install IIS RewriteModule RUN Invoke-WebRequest -Uri http://go.microsoft.com/fwlink/?LinkID=615137 -OutFile rewrite.msi RUN Start-Process -Wait -FilePath .rewrite.msi -ArgumentList /quiet, /norestart RUN Remove-Item rewrite.msi ## Install IISNode COPY iisnode-core_x64.msi iisnode.msi RUN Start-Process -Wait -FilePath .iisnode.msi -ArgumentList /quiet, /norestart RUN Remove-Item iisnode.msi
  • 43. MS SQL Server FROM microsoft/windowsservercore ENV sql_express_download_url "https://go.microsoft.com/fwlink/?linkid=829176" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] RUN Invoke-WebRequest -Uri $env:sql_express_download_url -OutFile sqlexpress.exe ; Start-Process -Wait -FilePath .sqlexpress.exe -ArgumentList /qs, /x:setup ; .setupsetup.exe /q /ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLEngine /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITYSystem' /SQLSYSADMINACCOUNTS='BUILTINADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ; Remove-Item -Recurse -Force sqlexpress.exe, setup RUN stop-service MSSQL`$SQLEXPRESS ; set-itemproperty -path 'HKLM:softwaremicrosoftmicrosoft sql servermssql13.SQLEXPRESSmssqlserversupersocketnetlibtcpipall' -name tcpdynamicports -value '' ; set-itemproperty -path 'HKLM:softwaremicrosoftmicrosoft sql servermssql13.SQLEXPRESSmssqlserversupersocketnetlibtcpipall' -name tcpport -value 1433 ; set-itemproperty -path 'HKLM:softwaremicrosoftmicrosoft sql servermssql13.SQLEXPRESSmssqlserver' -name LoginMode -value 2; HEALTHCHECK CMD [ "sqlcmd", "-Q", "select 1" ] What about data?
  • 44. nginx FROM microsoft/windowsservercore SHELL ["powershell"] RUN mkdir /drop RUN wget -uri 'http://nginx.org/download/nginx-1.11.12.zip' -OutFile /drop/nginx.zip RUN Expand-Archive -Path /drop/nginx.zip -DestinationPath /nginx -Force COPY nginx.conf /nginx/nginx-1.11.12/conf/ COPY certs/hack.numerotraining.com.key /nginx/nginx-1.11.12/conf/ COPY certs/hack.numerotraining.com.cer /nginx/nginx-1.11.12/conf/ #dns fix due to bug RUN set-itemproperty -path 'HKLM:SYSTEMCurrentControlSetServicesDnscacheParameters' - Name ServerPriorityTimeLimit -Value 0 -Type Dword EXPOSE 80 EXPOSE 443 WORKDIR /nginx/nginx-1.11.12 ENTRYPOINT ["nginx.exe"] nginx for SSL offload and routing
  • 45. Build
  • 46. Build Definition Flag: we set tests to continue on error Docker tasks once build is complete
  • 48. Push the image to Azure Container Registry • acr
  • 49. View verbose logs for each build stage
  • 50. View build output including test and deployment status
  • 51.
  • 53. Release using Docker Compose • Why Compose & Swarm? • Needed to deploy to single VM • Swarm provides a Windows only solution • No Linux servers required • What's in the compose file? • Services and their configuration • Image • Ports • Environment variables • Dependencies • Networking details
  • 54. Release Pipeline Used docker-compose up to run containers. If using Swarm would use docker deploy For the hack, two environments Test & LV (live)
  • 57. Monitoring • Microsoft Operations Management Suite • Collects logs from Docker hosts • Integrates into the Azure portal • Allows export of logs to external platforms such as ELK
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70. • Right now… • Map and Script everything we did • Shout about it • Orchestration: Kubernetes? Swarm? • Recreate it in a fully automated way from scratch – on Azure • Within a Year • Prove Portability – Callcredit environment – AWS • Add Customer config • Fully functional, Live customer solution running in containers • Begin containerisation of next Software product Next steps
  • 71. Callcredit’s requirements: • Portable (deployable onto platform of choice) • Push an update once to all live instances • Quickly replicate any bespoke customer solution • Methodology suitable for other software products • Scalability • Resilience
  • 72. • Right now… • Map and Script everything we did • Shout about it • Orchestration: Kubernetes? (Marcus - Swarm?) • Recreate it in a fully automated way from scratch – on Azure • Within a Year • Prove Portability – Callcredit environment – AWS • Add Customer config • Fully functional, Live customer solution running in containers • Begin containerisation of next Software product Next steps
  • 73. Resources Alex Carter System Build Engineer Callcredit Information Group Email: Alexandra.carter@callcreditgroup.com Twitter: @smileandeliver • DevOps Fundamentals: https://channel9.msdn.com/Series/DevOps-Fundamentals • DevOps Dimensions: https://channel9.msdn.com/Shows/DevOps-Dimension • Lots of videos about Azure and containers https://channel9.msdn.com/ • Get access to free online training: https://mva.microsoft.com/training-topics/devops • Numero Interactive: http://www.thisisnumero.com/ • Callcredit http://www.callcredit.co.uk/ Want access to Azure, VSTS and more for FREE? Visual Studio Dev Essentials - https://www.visualstudio.com/dev-essentials/