Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps

15 views

Published on

Создавайте и тестируйте приложения на любом языке программирования, разворачивайте их в любых облачных провайдерах или локальных средах. Запускайте параллельно на Linux, macOS и Windows, разворачивайте контейнеры на отдельных узлах или в Kubernetes. Все это возможно с помощью одного инструмента - Azure DevOps Services. Он обеспечивает полное покрытие DevOps с помощью одного приложения.
В этом докладе мы рассмотрим решение Microsoft, которое позволяет избежать использования десятков различных инструментов для доставки приложения конечным пользователям

Published in: Education
  • Be the first to comment

  • Be the first to like this

DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps

  1. 1. Continuous Delivery. Continuous DevOps. KYIV, 2020 CONTINUOUS DELIVERY. CONTINUOUS DEVOPS. 5-6,JUNE 2020 KYIV, UKRAINE Serhii Abanichev Modern CICD pipeline with Azure DevOps
  2. 2. Continuous Delivery. Continuous DevOps. KYIV, 2020 Microsoft certified professional with about 5 years of work experience in building and managing high available systems. Has a deep understanding in configuration management systems, continuous integration and delivery processes, creating architecture and implementing IaaC approach in various cloud providers from scratch. Key area of technical experience and personal interests: Microsoft technologies and Azure cloud Serhii Abanichev Technology Architect @ GlobalLogic
  3. 3. Continuous Delivery. Continuous DevOps. KYIV, 2020 Executive summary Components Customers need to speed up the development and delivery of software applications without huge effort in establishing CI/CD processes with various tools, especially on initial project stage. Azure DevOps Services and Azure Kubernetes Service could help solve such problem and allow to manage all delivery process from one place.
  4. 4. Continuous Delivery. Continuous DevOps. KYIV, 2020 “DevOps is the union of people, process, and products to enable continuous delivery of value to our end users.” - Donovan Brown DevOps definition
  5. 5. Continuous Delivery. Continuous DevOps. KYIV, 2020 Why is DevOps important? • Our competition is already doing this • Increase velocity • Reduce downtime • Reduce human error
  6. 6. Continuous Delivery. Continuous DevOps. KYIV, 2020 Microsoft proposal Set of cloud-hosted DevOps services, that work for any language targeting any platform: • Plan your project with Agile tools • Manage test plans from the web • Version code using Git • Deploy code using cross-platform CICD system Azure DevOps
  7. 7. Continuous Delivery. Continuous DevOps. KYIV, 2020 What is Azure DevOps? Plan, track, and discuss work across your teams so that you can deliver value to your users faster. CI/CD that works with any language, platform, and cloud. Connect to GitHub or any Git provider and deploy continuously to any cloud. Unlimited cloud-hosted private Git repos for your project. Collaborative pull requests, advanced file management, and more. The manual and exploratory testing toolkit to ship with confidence. Create, host, and share packages with your team. Add artifacts to your CI/CD pipelines with a single click. Built by the community – access extensions from Slack to SonarCloud to 1,000 other amazing things. Visual Studio Team services (VSTS) Azure DevOps
  8. 8. Continuous Delivery. Continuous DevOps. KYIV, 2020 The Concept of Pipelines in DevOps • A pipeline enables a constant flow of changes into production via an automated software production line • Pipelines create a repeatable, reliable and incrementally improving process for taking software from concept to customer • Pipelines require infrastructure, this infrastructure will have a direct impact on the effectiveness of the pipeline Build Automation and Continuous Integration Test Automation Deployment Automation
  9. 9. Continuous Delivery. Continuous DevOps. KYIV, 2020 Pipeline flow
  10. 10. Continuous Delivery. Continuous DevOps. KYIV, 2020 Azure DevOps Pipelines • Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users • Works great with Continuous Integration and Continuous Delivery • Work with any language or platform - Python, Java, PHP, Ruby, C#, and Go • Deploy to different types of targets at the same time • Integrate with Azure deployments - container registries, virtual machines, Azure services, or any on-premises or cloud target (Microsoft Azure, Google Cloud, or Amazon cloud services) • Build on Windows, Linux, or Mac machines • Integrate with GitHub • Work with open-source projects
  11. 11. Continuous Delivery. Continuous DevOps. KYIV, 2020 Azure Pipelines and Visual Designer • Configure your pipelines with the Visual Designer • Create and configure your build and release pipelines • Push your code to your version control repository • The build creates an artifact that's used by the rest of your pipeline • Your code is now updated, built, tested, and packaged
  12. 12. Continuous Delivery. Continuous DevOps. KYIV, 2020 Old-style pipeline Engineer Visual Studio Azure Repos Azure Build Pipeline Azure Release pipeline Azure Board Azure Container Registry Azure Kubernetes Service Azure Application Insights A z u r e D e v O p s
  13. 13. Continuous Delivery. Continuous DevOps. KYIV, 2020 Pull Request flow commit Pull request initiation Code updates and test triggering Creating feature branch Triggering CI build master feature branch
  14. 14. Continuous Delivery. Continuous DevOps. KYIV, 2020 Release flow dev qa stg prodCI build Approval flow
  15. 15. Continuous Delivery. Continuous DevOps. KYIV, 2020 DEMO: Azure Pipelines and Visual Designer
  16. 16. Continuous Delivery. Continuous DevOps. KYIV, 2020 Build definition as code Why store build definitions in YAML? • Versioning • Keeping Build Definitions with Code • Branching • Peer Review • Reuse • Linting • Abstraction and Declarative Instruction The concept of a build definition as code as it relates to a build server for continuous integration means using an actual declarative language to define how your build should works instead of using a web user interface to define your build steps. You can use a general purpose programming language, a domain specific language or some other declarative construct to indicate how your build your system.
  17. 17. Continuous Delivery. Continuous DevOps. KYIV, 2020 Azure Pipelines and YAML • Configure your pipelines in a YAML file that exists alongside your code • Configure Azure Pipelines to use your Git repo • Edit your azure-pipelines.yml file to define your build • Push your code to your version control repository • Your code is now updated, built, tested, and packaged
  18. 18. Continuous Delivery. Continuous DevOps. KYIV, 2020 New-style pipeline Engineer Visual Studio Azure Repos Azure Pipeline Azure Board Azure Container Registry Azure Kubernetes Service Azure Application Insights A z u r e D e v O p s
  19. 19. Continuous Delivery. Continuous DevOps. KYIV, 2020 Pipeline Structure • Pipeline – one or more stages that describe a CI/CD process • Stage – collection of related jobs • Job – collection of steps run by an agent on a server • Step – linear sequence of operations that make up a job • Tasks – building blocks of a pipeline Azure Pipelines supports 4 kinds of templates • Stage • Job • Step • Variable
  20. 20. Continuous Delivery. Continuous DevOps. KYIV, 2020 DEMO: Azure Pipelines and YAML
  21. 21. Continuous Delivery. Continuous DevOps. KYIV, 2020 Thank you Serhii Abanichev serhii.abanichev@globallogic.com

×