Erik Vollebekk Application Architect

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Eralp Erat Senior Software Developer MCP,MCAD.NET,MCSD.NET.
Visual Studio Online. What it Provides Visual Studio Online, based on the capabilities of Team Foundation Server with additional cloud services, is the.
Validata Automated Build & Configuration (ABC)
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
HIGH PERFORMANCE CONTINUOUS DELIVERY VERSIONING AND RELEASE MANAGEMENT ALIGNED.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
Modern app development Continuous value delivery and rapid response to change.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Continuous Delivery on AWS
Automating Operational and Management Tasks in Microsoft Operations Management Suite and Azure
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Infrastructure as code. “Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Parasoft : Improving Productivity in IT Organizations David McCaw.
Streamlining the development of your mobile app(s) Frequently releasing value to users Constantly maintaining quality Monitoring app health and engagement.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Structured Container Delivery Oscar Renalias Accenture Container Lead (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Testing and Release Procedures/Tools Cristina Aiftimiei (INFN-CNAF) Mario David (LIP)
DevOps in the cloud Peter’s personal journey on how I found out, I need Dev skills to optimize my ‘Azure’ work… and so do you!!
Tools and technology usage in PFMS application lifecycle management process LEPL Financial-Analytical Service, Ministry of Finance October, 2015 Dimitri.
Zero to DevOps Donovan
Implementing Cloud-based Agile Team Development - Lessons Learned
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Implementing Cloud-based Agile Team Development - Lessons Learned
Stress Free Deployments with Octopus Deploy
4/24/ :07 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Develop in the Cloud, Accelerate Software Evolution
Infrastructure Orchestration to Optimize Testing
Microsoft SharePoint Server 2016
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Dmytro Mykhailov How HashiCorp platform tools can make the difference in development and deployment Target and goal of HashiCorp.
Continuous Deployment tool
Building a Continuous Integration Pipeline using VSTS
Introduction to Team Foundation Server 2010
Magento Enterprise cloud Edition had launched this year, and is a platform as a service environment designed for amazon web service and for magento 2.0.
AWS DevOps Engineer - Professional dumps.html Exam Code Exam Name.
Where can I download Aws Devops Engineer Professional Exam Study Material - Get Updated Aws Devops Engineer Professional Braindumps Dumps4downlaod.us
2018 Amazon AWS DevOps Engineer Professional Dumps - DumpsProfessor
Get Amazon AWS-DevOps-Engineer-Professional Exam Real Questions - Amazon AWS-DevOps-Engineer-Professional Dumps Realexamdumps.com
Microsoft Connect /7/ :48 PM
Continuous Integration For Databases
X in [Integration, Delivery, Deployment]
Leigh Grundhoefer Indiana University
Confidential – Oracle Internal/Restricted/Highly Restricted
Getting Started.
Simplified Development Toolkit
Automated Testing and Integration with CI Tool
Continuous deployment best practices, methods and tools.
Getting Started.
ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018
AWS Cloud Computing Masaki.
Lambda CI/CD Pipelines
SSDT and Database Project Basics
CI/CD Workflow and Event Pages
4/5/2019 2:30 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS.
HCL’s Viewpoint – DevOps on MS Cloud
DEVOPS & THE FUTURE OF TESTING
Node.js Test Automation using Oracle Developer Cloud- Simplified
SSDT, Docker, and (Azure) DevOps
Final Review 27th March Final Review 27th March 2019.
Keeping your SQL Code safe
Office 365 Development July 2014.
SSDT, Docker, and (Azure) DevOps
Empowering teams with scalable Shiny applications
SSDT, Docker, and (Azure) DevOps
Presentation transcript:

Continuous Integration and Continuous Delivery in a Hybrid Cloud Environment Erik Vollebekk Application Architect Immigration, Refugees and Citizenship Canada June 20, 2019

Background A modernized software architecture is adopted by IRCC’s eServices team for the development of online web applications. Benefits to be realized include; Team autonomy Flexibility in deployment Stability Scalability Cloud readiness Initial development following this architecture is done on-premise Updated CI/CD process is put into place AWS Cloud is selected as the desired environment for new eServices intake web applications 2

eServices CI / CD Process Plan Code Build Test Package Deploy 3

Waterfall model has traditionally been followed Plan Code Build Test Package Deploy Microsoft Team Foundation Server (TFS) is the application lifecycle management tool used by IRCC Core to all IM/IT system development and support. Provides key functionality such as; Workload Management - Intake Process / Release Planning, Reporting Creation / Tracking of change requests, tasks, and bugs Version control Automated build and release tasks Waterfall model has traditionally been followed Major production release dates and migrations to non-production environments are pre- established on a three year plan A more agile approach is being taken for new online application 4

Code is version-controlled through TFS managed git repositories Plan Code Build Test Package Deploy Code is version-controlled through TFS managed git repositories Linkage is created between code changes and assigned TFS work items Branch policies are used to promote / enforce code review and ensure changes are tracked against a work item Code review duties can be assigned to specific team members based on path 5

Plan Code Build Test Package Deploy 6

Plan Code Build Test Package Deploy 7

Builds are defined using TFS build definitions Plan Code Build Test Package Deploy Builds are defined using TFS build definitions Builds can be triggered automatically by a pull request, on a set schedule or manually A unique build id is generated for each build that is executed NPM is used for dependency management Artifactory is configured as a NPM remote repository cache Artifactory manages IRCC created dependencies and artifacts 8

Plan Code Build Test Package Deploy >_ CLI 9

TSLint is used to perform static code analysis Plan Code Build Test Package Deploy TSLint is used to perform static code analysis Code is scanned for potential functional errors and style Jasmine is used to develop easy to understand unit tests Tests are executed as part of the TFS CI process using Karma Test results are published Code coverage results are published 10

Example of TFS test results and code coverage results Plan Code Build Test Package Deploy Example of TFS test results and code coverage results 11

Application is packaged into a TAR file for server deployment Plan Code Build Test Package Deploy Application is packaged into a TAR file for server deployment TFS archive task is leveraged Filename is created using a mix of predefined build variables and user defined variables Major release Project name Hot Fix E.g. eserv-web-trv-18.00.00.19352.tgz Minor release BuildId Package is uploaded to Artifactory and build information is published 12

Amazon EC2 Container Registry Plan Code Build Test Package Deploy AWS CodeBuild is used to build Docker containers Build instructions are defined in a buildspec YAML file CodeBuild buildspec YAML file and application Dockerfile are zipped with the application TAR file and stored in Artifactory Zipped application package is provided to CodeBuild using a TFS S3 bucket task AWS CodeBuild process is triggered by TFS using AWS CLI Build variables are passed to CodeBuild Docker containers are tagged and stored in the project specific Amazon EC2 Container Registry AWS CodeBuild Amazon EC2 Container Registry 13

Example CodeDeploy buildspec YAML file Plan Code Build Test Package Deploy Example CodeDeploy buildspec YAML file 14

Release definitions and associated tasks are created in TFS Plan Code Build Test Package Deploy Release definitions and associated tasks are created in TFS Development and System Test target environments are definition Target environments can be on-premise or cloud-based Releases can be triggered manually, automatically on build completion or scheduled Release content is pulled from Artifactory Pre and post deployment approvers can be defined for each environment 15

Plan Code Build Test Package Deploy 16

TFS variables are passed to AWS CodePipeline Plan Code Build Test Package Deploy AWS CodeDeploy is used in conjunction with AWS CodePipeline to automate deployments to AWS compute services Deployments are triggered by the TFS release process using the AWS CLI task TFS variables are passed to AWS CodePipeline Containers are pulled from the project’s ECR AWS CodePipeline AWS CodeDeploy 17

Next Steps…. Begin developing infrastructure as code using Terraform Terraform is used to define/configure the infrastructure that should be provisioned Revisions and changes to infrastructure are tracked and managed by committing Terraform scripts to a git repository TFS git repository is used to perform peer review of infrastructure changes TFS CI/CD process is used to build and deploy infrastructure 18

Questions? 19

Thank you Erik Vollebekk Email: erik.vollebekk@cic.gc.ca