PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud

Page created by Linda Leonard
 
CONTINUE READING
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
PRODUCTIVITY WITH CONTINUOUS
INTEGRATION & DELIVERY
Exploring Deep Learning AI Services in the Cloud

                Tara E. Walker
                Principal Software Engineer
                Microsoft
                   @taraw

                #ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
AGENDA
WHY AND WHAT OF DEVOPS
WHAT IS CI/CD?
ENABLING DEVOPS: AZURE DEVOPS
CI/CD IN PRACTICE
SUMMARY

          #ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
WHAT IS DEVOPS?
People. Process. Technology.

   “
   DevOps is the union of
   people, process, and
   technology to enable        Continuous
                                Delivery
   continuous delivery of
   value to your end users.
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
DEVOPS CONSISTS OF CULTURE, PRACTICES, &
TOOLS
        Culture                  Practices                   Tools
•   Dev & ops coming        •   Microservices based      •   Help you automate the
    together                    architecture                 major DevOps phases
         No more “silos”
                                                             to support faster,
    •                       •   CI/CD – Continuous
                                                             smaller releases
•   Shared responsibility       integration and
                                continuous delivery          •   Source
•   Ownership                                                •   Build
                            •   Infrastructure as code
•   Visibility and                                           •   Test
    communication           •   Monitoring and logging       •   Deploy
                                                             •   Monitor
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
DEVOPS PRACTICES
Microservices

  Moving away from monolithic application architecture to many individual services
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
DEVOPS PRACTICES
Infrastructure as code
 IaC is a key DevOps practice and is used in conjunction with continuous delivery.
 Model your resources using Azure Resource Manager.
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
HIGH PERFORMANCE DEVOPS COMPANIES ACHIEVE…

    46x Deployment                                       440x Faster Lead
       Frequency                                         Time For Changes

     20% Faster                                                20% Increase
                      DevOps                     $                  Revenue
   Time to Market

    5x Lower Change                                       96x Faster Mean
      Failure Rate                                         Time to Recover
                               Source: 2017 State of DevOps Report: Presented by Puppet and DORA
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
WITHOUT DEVOPS, DEVELOPERS WASTE TIME WAITING….
                            Weeks

  Write
  Code    Wait     Build
                   Code    Wait     Deploy
                                    to Test   Wait     Deploy
                                                       to Prod

  Mins      Days   Mins      Days    Mins       Days    Mins
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
DEVOPS AT MICROSOFT
Azure DevOps is the toolchain of choice for Microsoft engineering with over 80,000 internal users

 https://azure.com/devops

2.8m                >4m                       5m
Pull requests       Builds per month          Work items viewed per
                                              day

>15m 500m 500k
Git Pushes          Test executions per day   Work items updated
                                              per day
                                                                      42,000
                                                                      Deployments per day

                                                                      Data: Internal Microsoft engineering system activity during calendar year 2017
PRODUCTIVITY WITH CONTINUOUS INTEGRATION & DELIVERY - Exploring Deep Learning AI Services in the Cloud
CI/CD BEST PRACTICES DEVELOPERS
                Embracing Automation
                    Continuous Integration/Continous Delivery is a Essential!

                Everything is code & Everything goes into a repository
                    Application, Infrastructure, Documentation

                Start with Continuous Delivery (“Gated” Promotion) &
                build up to Continuous Deployment
                    Once clear evidence of a high level of excellence in
                    testing

                Deploy small at first, then more broadly
                    Deploy to canaries; Test
                    Deploy to a Region; Test
WHAT IS CI/CD?

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM
WHAT TECHNOLOGIES DO I NEED TO SUPPORT DEVOPS?
DevOps brings together people, processes, and technology, automating software delivery to provide continuous
value to your users. Using Azure DevOps, you can deliver software faster and more reliably - no matter how big
your IT department or what tools you’re using.

          Continuous integration (CI)                      Continuous Deployment (CD)                       Continuous Learning & Monitoring

•   Improve software development quality and      •   By combining continuous integration and        •   With Azure Application Insights you can
    speed.                                            infrastructure as code (IaC), you’ll achieve       identify how your applications are
•   When you use Azure Pipeliens or Jenkins           identical deployments and the confidence           performing and test if the recent
    to build apps in the cloud and deploy to          to deploy to production at any time.               deployment made things better or worse.
    Azure, each time you commit code, it’s        •   With continuous deployment, you can            •   Using CI/CD practices, paired with monitoring
    automatically built and tested and bugs are       automate the entire process from code              tools, you’ll be able to safely deliver features
    detected faster.                                  commit to production if your CI/CD tests           to your customers as soon as they’re
                                                      are successful.                                    ready.
MAJOR PHASES OF RELEASE AND MONITOR

     Source              Build                 Test              Deploy              Monitor

•   Check-in      •   Compile code     •   Integration     •   Deployment to   •   Monitor code
    source code   •   Unit tests           tests with          production          in production
    such as .cs   •   Style checkers       other systems       environments        to quickly
    files.        •   Code metrics     •   Load testing                            detect unusual
•   Peer review   •   Create           •   UI tests                                activity or
    new code          container        •   Penetration                             errors
                      images               testing
RELEASE PROCESS LEVELS

   Source      Build     Test   Deploy
RELEASE PROCESS LEVELS

    Source                Build   Test   Deploy

 Continuous integration
RELEASE PROCESS LEVELS

   Source                  Build   Test   Deploy

  Continuous integration

  Continuous delivery
RELEASE PROCESS LEVELS

    Source                 Build   Test   Deploy

  Continuous integration

  Continuous delivery
RELEASE PROCESS LEVELS

    Source                 Build   Test   Deploy

  Continuous integration

  Continuous delivery

  Continuous deployment
Azure DevOps
AZURE DEVOPS SUCCEEDS VSTS

                  Azure DevOps

  Visual Studio
 Team Services
INTRODUCING AZURE DEVOPS

                        https://azure.com/devops
DEVOPS ON AZURE

                            Azure     Application
                Log
                           Monitor     Insights
              Analytics

               Azure      Azure Key
             Automation     Vault
AZURE PIPELINES
Cloud-hosted pipelines for Linux, Windows and
macOS, with unlimited minutes for open source

       Any language, any platform, any cloud
       Build, test, and deploy Node.js, Python, Java, PHP,
       Ruby, C/C++, .NET, Android, and iOS apps. Run in
       parallel on Linux, macOS, and Windows. Deploy to
       Azure, AWS, GCP or on-premises

       Extensible
       Use a range of build, test, and deployment tasks –
       hundreds of extensions from Slack to SonarCloud.
       Support for YAML, reporting and more

       Containers and Kubernetes
       Build and push images to container registries like
       Docker Hub and Azure Container Registry. Deploy
       containers to individual hosts or Kubernetes.

       Best-in-class for open source
       Fast CI/CD for every open source project. Azure
       Pipelines gives 10 free concurrent jobs with unlimited
       build minutes to all open source projects.

 https://azure.com/pipelines
Integrated with GitHub

Azure Pipelines available now to
any developer from the GitHub
Marketplace
Azure Boards
Flexible work tracking with Kanban boards,
backlogs, team dashboards, and custom reporting

       Connected from idea to release
       All your code changes are linked directly to your work
       items, so you can track all your ideas at every stage in
       the development process to keep your team aligned.

       Scrum ready
       Use built-in scrum boards and planning tools to help
       your teams run sprints, stand-ups, and planning
       meetings.

       Project insights
       Use our analytics tools and dashboard widgets to
       bring you and your team new insights into the health
       and status of your project.

 https://azure.com/devops
Azure Repos
Unlimited private Git repo hosting and support for
TFVC that scales from a hobby project to the
world’s largest Git repositories

       Works with your Git client
       Securely connect with, and push code into, unlimited
       free private Git repos from any IDE, editor or Git client

       Web hooks and API integration
       Add validations and extensions from the marketplace
       or build your own using web hooks and REST APIs.

       Semantic code search
       Quickly get to what you’re looking for with code-
       aware search that understands classes and variables.

 https://azure.com/devops
Azure Test Plans
Get end-to-end traceability. Run tests and log
defects from your browser. Track and assess quality
throughout your testing lifecycle.

        Capture rich data
        Make your defects actionable by capturing rich
        scenario data as you execute tests. Explore user
        stories without test cases or test steps. You can create
        test cases directly from your exploratory test sessions.

        Hybrid testing
        Test your application where it lives. Complete scripted
        tests across desktop or web scenarios. Test on-
        premises application from the cloud and vice-versa

        On demand user acceptance testing
        Leverage the same test tools across your engineers
        and user acceptance testing stakeholders. Pay for the
        tools only when you need them.

 https://azure.com/devops
Azure Artifacts
Share Maven, npm, and NuGet packages from
public and private sources with your team –fully
integrated into CI/CD pipelines

        For all package types
        Universal artifact management for Maven, npm, and
        NuGet

        For any DevOps pipeline
        Built-in CI/CD, versioning, and testing for your
        packages

        For teams of any size
        Leverage the same test tools across your engineers
        and user acceptance testing stakeholders. Pay for the
        tools only when you need them.

 https://azure.com/devops
SUMMARY

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM
Azure DevOps: Choose the tools and clouds you love
DevOps Pipelines in Minutes
Self-Service Dev/Test Environments
Deploy repeatedly & reliably
Continuous Security

   Gain full visibility and control of
   your cloud security state

   Leverage ML to Proactively
   identify and mitigate risks to
   reduce exposure to attacks

   Quickly detect and respond
   to threats with advanced
   analytics
Smarter Insights, Faster
Thank You!
Tara E. Walker
@taraw

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM
You can also read