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

Cloud-Native: Endlich (Voll)Automatisierung

Thorsten Hans
February 03, 2023

Cloud-Native: Endlich (Voll)Automatisierung

Ein essenzieller Kernaspekt von Cloud-Native ist die ganzheitliche Automatisierung. Angefangen mit der Automatisierung der Infrastruktur unter Verwendung von Infrastructure-as-Code (IaC), über das kontinuierliche Bereitstellen von Anwendungsartefakten durch Continuous Delivery oder GitOps, bis hin zur bedarfsgerecht automatisierten Skalierung von individuellen Bausteinen. Sämtliche Aspekte sollten vollautomatisiert sein.
In diesem Webinar erklärt Cloud-Native-Enthusiast Thorsten Hans, welche Technologien Sie verwenden können, und zeigt, wie Sie und Ihr Team die Vollautomatisierung meistern.

Thorsten Hans

February 03, 2023
Tweet

More Decks by Thorsten Hans

Other Decks in Technology

Transcript

  1. Chances are quite good, that you have already heard something

    like “If you do it more than once, automate it!” This (quite dated) sentence describes the essence of how to survive in the cloud. Introduction
  2. • That said, teams must identify all areas where they

    can benefit from automation • Treat your automation as first-class citizen • Schedule time to select your tools / stacks • Schedule time to implement automation Introduction
  3. • Typical areas for automation are • Inner-Loop (day-to-day tasks

    done by devs locally) • Infrastructure • Continuous Integration / Deployment • User Feedback (Bugs / Feature Requests) • Incident management • Self-Service / Onboarding / Offboarding • Billing / Invoicing Introduction P
  4. • How can you run your app locally? • Do

    not consider anything. Although your peers may know the CLIs you need to get things done. • Use tools / languages that run on all operating systems that are used in the team • Track your tasks for a representative time (a month, a sprint, … ) to see what must be automated Inner-Loop Automation
  5. • Do not use interpreted languages (e.g. JavaScript to automate

    your inner-loop) • Languages like C#, Go, Rust offer frameworks to build automation CLIs • Shell-Scripts and Makefiles work everywhere • For Windows-Developers, WSL2 is a must Inner-Loop Automation
  6. • Infrastructure is not just the server / service •

    Identify proper Infrastructure-as-Code (IaC) tooling for your needs • Deal with the fact that multiple technologies must be used to automate everything • Cloud-Providers do not expose everything as API • Design your IaC with repetitive deployments in mind • Unique name constraints • Different authorization requirements per environment Infrastructure Automation
  7. • Enforce shared ownership and reviews for IaC • This

    could be achieved using well-known strategies in Source Control (e.g. Git Flow) • Many teams struggle with the consistent usage of IaC • IaC means every! infrastructure modification is done via code • Discuss in the team if they’re aware of the impact • Ultimately, you may prevent all human users from modifying cloud resource by enforcing corresponding RBAC rules Infrastructure Automation
  8. • Deploy individual components independently • In Kubernetes you can

    use GitOps as alternative to classical Continuous Deployment • Use dedicated Service Principal (or federated Identity when using GitHub and Azure) Deployment Automation
  9. • Only use shared templates if deployment is identical across

    components • Do not start adding configuration parameters that allow pipelines or actions to control template behaviour • Use concurrency groups to control concurrent executions (especially when automating IaC) • Inline Scripts are great for simple commands, if your scripts get more complicated, use dedicated script files and use them in your pipeline / actions Deployment Automation
  10. • Inner-Loop • Identify all day-to-day tasks and automate them

    • Build your inner-loop automation for all platforms • Document and Dog-Food it • Infrastructure as Code • Choose your toolset and stick with it • Try to build re-usable components • Decide if IaC is a one-time shot for you and your team or not! Conclusion
  11. • Deployment Automation • Buy / rent enough parallel agents

    when doing Continuous Deployment • Pin tool versions explicitly • Trim your triggers / especially in mono-repos Conclusion