Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Source Code Management in the Era of GenAI-Evol...

yuriemori
February 20, 2025

Source Code Management in the Era of GenAI-Evolution Of DevOps

With the advent of generative AI tools such as GitHub Copilot, it is now possible to provide interactive support in code and to develop using an organisation's code base. Now, developers are required to cultivate a code base that can enhance collaboration with generative AI.

In this session, we will look back at the history of DevOps, and overview how concepts such as ‘X as Code’ (e.g. IaC, Infrastructure as Code) came about, and how the codification of infrastructure, pipelines, and configuration management has changed the development process. We will also explore the potential of a development culture called GitOps, which makes Git the single source of truth, and discuss technical practices and organisational issues for configuring and operating code bases suitable for the era of generative AI.

yuriemori

February 20, 2025
Tweet

More Decks by yuriemori

Other Decks in Technology

Transcript

  1. Source Code Management in the Era of GenAI: The Evolution

    of DevOps from 'X as Code' to GitOps 2025/02/01 Yurie Mori
  2. What I talk about today • History of ‘X as

    Code’ in DevOps • Evolution to GitOps with the code base as ‘the single source of truth’. • How should we manage our codebase in the era of generative AI? • What should we codify and how should we operate?
  3. Agenda. • Introduction • History of 'X as Code' (codify

    something) in DevOps • From ‘X as Code’ to GitOps. • Source Code Management for Enhanced Collaboration with GenAI • Code base and Engineering Organisation • Summary • References
  4. Yurie Mori • DevOps Engineer (Sr. Consultant)@Avanade • Microsoft MVP

    for Developer Technologies (DevOps) 2024-. • Writing articles for Zenn (e.g. Agile/DevOps practices with Azure DevOps, using GiHub in the enterprise). • Speaking at TFSUG • Book writing (AZ-400 exam preparation book) • work • Supporting Agile and DevOps practices • Implementing and building DevOps solutions (Azure DevOps/GitHub) in the enterprise. • DevOps/DevSecOps transformation • technology stack • Azure DevOps, GitHub, Azure, .NET, C# • Please follow me
  5. What is DevOps? DevOps is the union of people, process,

    and technology to continually provide value to customers. Totality of people, processes and technology to continuously deliver value https://azure.microsoft.com/ja-jp/resources/cloud-computing-dictionary/what-is-devops
  6. 2000’s: Birth of Agile/DevOps, and Cloud Cloud-enabling technologies, the need

    for faster infrastructure configuration derived from them, and the emergence of Infrastructure as Code. Agile and DevOps movements also emerged around this time. • 2001 • Agile Development Manifesto • 2006 • Team Foundation Server (later Azure DevOps) released • Amazon Web Service released • Liquibase released • Describe and manage database changes in XML/YAML/JSON • Practical application of Schema as Code. • 2008 • Patrick Debois, Agile Infrastructure and Operations Presentation • Although the concept of IaC is not explicitly stated, agile methods are also applied to infrastructure configuration, advocating the need for rapid and efficient infrastructure operations. • Google App Engine (later Google Cloud) released • GitHub released • 2009 • DevOps Days held: Beginning of the DevOps movement • Chef released • Managing infrastructure configuration with code Practical application of Infrastructure as Code *See Appendix for chronological tables.
  7. First half of 2010s': The Rise of DevOps and The

    Development of ‘X as Code’ DevOps spreads and CI/CD becomes increasingly popular. Pipelines as Code due to this, budding of Observability as Code (monitoring as code) due to the emergence of the SRE movement. • 2010 • Windows Azure (later Microsoft Azure) released • 2011 • Jenkins 1.0 released • Widespread use of CI/CD; foundation laid for Pipeline as Code • 2012 • Ansible released • YAML-based configuration management Practical application of Configuration as Code • 2013 • Team Foundation Services released • Cloud version of Team Foundation Server, predecessor to Azure DevOps Services. • The Phoenix Project Publication • DevOps classic; accelerating the DevOps movement. • 2014 • HashiCorp Terraform released • 2016 • Site Reliability Engineering published • Sprouting of Observability as Code. *See Appendix for chronological tables.
  8. Late 2010s’: The Age of Cloud Native With the spread

    of Kubernetes, the concept of GitOps emerged. Practical application of Policy as Code, and the emergence of the concept of Everything as Code, which "codes everything". • 2017 • Weavework, advocates GitOps • Advocacy for an operational approach to automate the operation of the system's infrastructure and applications, using the Git repository as the 'Single Source of Truth'. • 2018 • Open Policy Agent (OPA) Release. • Practical application of Policy as Code. • The concept of 'Everything as Code' was proposed around this time. • GitHub Actions release • 2019 • GitHub users exceed 400,000+. *See Appendix for chronological tables.
  9. The Age of Cloud Native • Policy as Code •

    GitOps • Everything as Code The rise of DevOps and the development of ‘X as Code’ Birth of Agile/DevOps, and Cloud The Development of 'X as Code' in DevOps As DevOps evolves, the concept of ‘X as Code’ extends from infrastructure management to software development, operations, security and observability, becoming the new standard in a cloud-native world. 2000s' First half of 2010s' Late 2010’s • Infrastructure as Code • Schema as Code • Pipeline as Code. • Configuration as Code • Observability as Code
  10. GitOps • A software delivery approach that utilises a Git

    repository as the Single Source of Truth for defining and managing infrastructure, configuration and application code. • All changes to the system, such as provisioning infrastructure, updating configurations and deploying applications, are made via Git commits and pull requests As in source code, as in cloud. Any change (app or infrastructure) that occurs in software development starts with a change in the code base and is applied via code review and CI/CD. Azure App Service Storage Account App Service Plan Define infrastructure configuration as code. Triggering code changes in Git and automatically applying changes in the cloud with CI/CD tools.
  11. GitOps Flow GitOps tools such as Flux monitor Git changes.

    Automatically applied when there are configuration changes Based on the declarative configuration described in the Git repository, the Deploy Service reflects changes to the cloud environment and orchestration tools such as Kubernetes. Orchestrators such as Kubernetes automatically adjust the environment based on the state of Git Automated configuration management and deployment processes with Git as the sole source of trust https://qiita.com/ozora/items/80c913b0790c88c24f67
  12. Codification • Well, the term "codify" is very straightforward; it

    means you're going to capture a process, routine or algorithm in a textual format. It's basically "write something as text." https://www.hashicorp.com/resources/everything-as-code-the-future-of-ops-tools
  13. Benefits from Codification • Automation • Everything can be written

    as code to automate various processes. • Increased agility in deployment, scaling and tool set-up • Version control/traceability • Improved tracking of changes through version control • Can 'turn back time' if necessary. • Reproducibility/consistency • Similar environments can be easily reproduced. • Ensure stability and avoid manual configuration errors • Scalability and flexibility • Easier to add, expand or reduce resources and respond to changing needs • Collaboration and knowledge sharing • Developers, operations and other partners can work together, share code, review and comment on changes • Promotes the idea of working together and sharing information • Can also be used as a knowledge base
  14. Over 50+ 'X as Code'. Patrick Debois (the father of

    DevOps) blogged in 2022, 'In depth research and trends analysed from 50+ different concepts as code'. Many X as Code, introduced in the
  15. Everything as Code Coding everything • Include in the repository

    not only the application code, but also all files required to build, test, deploy and run the application, such as configuration files and documentation, pipeline definitions, data schema definitions, infrastructure configuration and provisioning scripts • Eliminate manual operations and maximise reliability, efficiency and speed by writing everything in code • Ensuring consistency, reproducibility and traceability of composition • 'Who changed this and when did this happen?' Avoiding the • CI/CD, automation starts with 'coding it' Scripts for Ops automation Data schema Docs of design, and other knowledge for developers(publishable to AzDO Wiki) IaC Pipeline definition(yml) Application code
  16. 2020s’~: The Rise of Generative AI OpenAI's ChatGPT release, GitHub

    Copilot's GA and the emergence of Azure Open AI have increased the use of generative AI in the development process • 2021 • GitHub Copilot preview launched. • 2022 • Azure Open AI Announced • GitHub Copilot release (GA) • ChatGPT Release. • 2023 • Gitlab Duo Announcement • Azure Open AI Service release (GA) • GitHub launches Copilot Workspace, Code scanning Autofix and GitHub Copilot Enterprise at Universe 2023. Collaboration with generative AI via codebase *See Appendix for chronological tables.
  17. The Emergence of GenAI and The Change in The Developer

    Experience. • The advent of AI pair programmers such as GitHub Copilot has enabled collaboration with generative AI via a codebase • Knowledge Base: the organisation's code base as an input for GitHub Copilot. • → Enables collaboration based on the knowledge contained in the organisation's code base • The better the codebase (high readability, rich domain knowledge, good architecture), the better quality proposals from Copilot you will receive • The better the quality codebase, the stronger the collaboration.
  18. GenAI-Friednly Coding Design patterns for utilising GitHub Copilot. • Naming

    that gives a concrete idea of what kind of processing and data structure is involved. • Context-independent architecture • Split into loosely coupled, independent components. Specific and descriptive naming Context-less architecture • If the scope of the code provided is very limited, it is better to include it internally than to rely on external sources Elimination of micro OSS dependencies. Code chunks are small. • KISS principle, Single Responsibility Principle awareness High-level architecture first • Design the high-level architecture of the programme first and then comment on the function and purpose of each part of the code AI-friendlydocumentation • In the age of AI, files such as Infrastructure as Code, database table specifications, testing requirements, etc. have the potential to be instantly converted into real code • To text-based documents rather than complex Excel, PowerPoint files, PDF and image formats https://patterns.hattori.dev/
  19. Synergy in GenAI x Quality of Codebase x Knowledge of

    Engineering Team Growing a good codebase will enhance collaboration with the generative AI through the codebase, Knowledge of the development organisation will also be strengthened. Traditional 'collaboration' in DevOps refers to collaboration between people and between organisations, but now we also need to consider collaboration/affinity with generative AI. • Organisational knowledge, domain- based suggestions • Organisational knowledge, domain as input. • Learning the code • Input company-specific documents and repositories as training data. • Highly readable coding • Coding domain knowledge. • Everything as Code developer GenAI Codebase
  20. Design as Code • Documentation required for development is also

    coded. • markdown, mermaid diagram, etc. • Specifications, design documents, etc. • By coding these, the generative AI can input the prerequisite knowledge required for the system. • PDFs, complex Excel design documents (so called ‘God Excel’ in Japanese) make it difficult to ensure change management and traceability. • But markdown and mermaid are expensive to learn! For those who want to learn... • Recently, tools such as the Copilot Workspace have been developed, which allows the Copilot described in an Issue to create markdown designs and specifications from natural language.
  21. Challenges for Engineering Team: The Gap between Technological Development and

    Culture • Practices to code specifications, requirements and designs such as Design as Code, and the development of technologies and concepts such as IaC, GitOps and Everything as Code, and collaboration with generative AI via codebases. • We feel that we are getting closer to what Agile was aiming for, which was to remove the gap between the business layer (client) and development, and what DevOps was aiming for, which was to remove the gap between development and operations. • However, I personally feel that although the technology that makes these things possible is developing, the organisational culture is not yet ready to adapt to it (technology is advancing too rapidly) • Learning costs and resource issues: it costs a good deal to code everything. • Organisational issues: organisational silos of developers, operators and business layers • To maximise the value of technology, efforts should be focused on fostering an organisation and culture in line with technological developments • Suddenly GitOps! Automate everything! It's difficult to do that, so why don't you start by promoting "coding" as a foundation and developing a good code base?
  22. • What should be coded has changed in response to

    the evolution of technologies supporting development, such as the evolution of the cloud • Everything as Code, which developed into the concept of GitOps, with the code base as the single source of truth. • Collaboration with generative AI and the quality of the codebase interact. • If you have a good code base, a generative AI can learn from it • Developer learning and knowledge is enhanced if the generative AI is inputting good quality codebase information. • Is it easy for the generative AI to interpret? Collaboration with the generative AI is enhanced by growing a codebase that takes into account (code everything, easy-to-interpret component sizes, follow SOLID principles). • Adjusting organisational culture to technological developments. Summary
  23. • What is DevOps? • https://azure.microsoft.com/ja-jp/resources/cloud-computing-dictionary/what-is-devops • History of X

    as Code in DevOps. • The DevOps Handbook (https://amzn.asia/d/7ChR899) • https://medium.com/@bijit211987/the-evolution-of-x-as-code-in-2024-9e4e559635a2 • https://lesia-topol.medium.com/x-as-a-code-close-your-engineering-strategy-gaps-today-6ab9251b239d • https://www.hashicorp.com/resources/everything-as-code-the-future-of-ops-tools • Agile Development Manifesto (2001). • https://agilemanifesto.org/iso/ja/manifesto.html • Agile Infrastructure and Operations: How Infra-gile are You? • https://www.computer.org/csdl/proceedings-article/agile/2008/3321a202/12OmNCxbXIB • More than 50 X as Code • https://www.jedi.be/blog/2022/02/23/trends-and-inventory-of-50-as-code-concepts • Everything as Code • https://www.bairesdev.com/blog/everything-as-code-approaches-software-development/ • https://learn.microsoft.com/ja-jp/compliance/assurance/assurance-microsoft-security-development-lifecycle • https://zenn.dev/yuriemori/articles/330d53c96d72e3 • GitOps • https://qiita.com/ozora/items/80c913b0790c88c24f67 • https://speakerdeck.com/michmuch/infrastructure-as-code-gitops • GitHub Copilot design patterns • https://patterns.hattori.dev/ References.
  24. • 2001 • Agile Development Manifesto • https://agilemanifesto.org/iso/en/manifesto.html • 2006

    • Team Foundation Server (later Azure DevOps) released • https://ja.wikipedia.org/wiki/Team_Foundation_Server • Amazon Web Service Release • https://ja.wikipedia.org/wiki/Amazon_Web_Services • Liquibase Release. • https://ja.wikipedia.org/wiki/Liquibase • 2008 • Patrick Debois, Agile Infrastructure and Operations Presentation • https://ieeexplore.ieee.org/document/4599477 • Google App Engine (later Google Cloud) released • https://ja.wikipedia.org/wiki/Google_App_Engine • GitHub released • https://github.blog/news-insights/the-library/we-launched/ • 2009 • DevOps Days held • https://everythingdevops.dev/a-brief-history-of-devops-and-its-impact-on-software-development/#the-history-of-devops • Chef released • https://ja.wikipedia.org/wiki/Chef_%28%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2 %29 2000’s: Birth of Agile/DevOps, and Cloud
  25. • 2010 Windows Azure release • https://ja.wikipedia.org/wiki/Microsoft_Azure • 2011 •

    Jenkins release • https://ja.wikipedia.org/wiki/Jenkins • 2012 • Ansible release • https://ja.wikipedia.org/wiki/Ansible_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2) • 2013 • Team Foundation Services release • https://ja.wikipedia.org/wiki/Team_Foundation_Server • 2014 • Terraform release • https://ja.wikipedia.org/wiki/Terraform • 2016 • Google, Site Reliability Engineering publication. • https://amzn.asia/d/awvymOk First half of 2010s': The Rise of DevOps and The Development of ‘X as Code’
  26. Late 2010s’: The Age of Cloud Native • 2016 •

    Open Policy Agent release • https://github.com/open-policy-agent/opa/releases?page=17 • 2017 • Weavework advocates GitOps. • https://devops-blog.virtualtech.jp/entry/20230228/1677552290 • 2018 • GitHub Actions release • https://github.blog/news-insights/company-news/a-few-favorite-ships-2018/ • 2019 • GitHub users exceed 400,000+. • https://octoverse.github.com/2019/
  27. 2020s’~: The Rise of Generative AI. • 2021 • GitHub

    Copilot preview launched. • https://github.blog/news-insights/product-news/introducing-github-copilot-ai-pair-programmer/ • 2022 • Azure Open AI Service announced • https://news.microsoft.com/ja-jp/2023/01/23/230123-general-availability-of-azure-openai-service-expands-access-to-large- advanced- ai-models-with-added-enterprise-benefits/ • GitHub Copilot GA • https://github.blog/news-insights/product-news/github-copilot-is-generally-available-to-all-developers/ • ChatGPT Release. • https://metaversesouken.com/ai/chatgpt/from-when/#GPT-35ChatGPT202211 • 2023 • Azure Open AI Service, GA • https://news.microsoft.com/ja-jp/2023/01/23/230123-general-availability-of-azure-openai-service-expands-access-to-large- advanced- ai-models-with-added-enterprise-benefits/ • Copilot Workspace, Copilot Autofix announced. • https://github.blog/news-insights/product-news/universe-2023-copilot-transforms-github-into-the-ai-powered-developer- platform/