SlideShare ist ein Scribd-Unternehmen logo
1 von 29
your cloud
journey together!”
“Let’s start
Jochen Zehnder
Partner & Site Reliability Engineer
Email: jz@56k.cloud
Twitter / GitHub / GitLab: @elft3r
15. Dezember 2021
Die Verwendung von IaC
im DevOps Prozess
15. Dezember 2021 2
Agenda
• Who is 56K.Cloud?
• DevOps
• Infrastructure as Code (IaC)
• IaC in the DevOps Process
• Summary
15. Dezember 2021 3
Who is 56K.Cloud?
15. Dezember 2021 4
Our Vision: Why are we here?
• We Solve: "Time to Market Problem" for innovators by breaking​
down technical barriers.​
• We Build: A "Technical strategy" and building that alignment
with Business strategy​.
• We Execute: Enabling new technologies that accelerate the
technical strategy.
15. Dezember 2021 5
Show core competencies of 56K.Cloud team
• Methodologies: DevOps, DevSecOps, SRE
• Cloud Infrastructure Automation (IaC)
• CI/CD Application Automation (SDLC)
• Cloud Security & Monitoring
• Cloud Design & Architecture
• Machine Learning
• Data Analytics & Data Lake
• 5G & Edge Cloud Application Development
15. Dezember 2021 6
Partner Network
15. Dezember 2021 7
Cloud Native Network​
Main Business Partners
DevOps
15. Dezember 2021 8
DevOps
15. Dezember 2021 9
http://dev2ops.org/2010/02/what-is-devops/
DevOps
15. Dezember 2021 10
https://agileboost.io/blog/what-is-dev-ops/
Infrastructure as Code
(IaC)
15. Dezember 2021 11
Infrastructure Management vs. Configuration
Management
• Infrastructure management
• Terraform, Pulumi, AWS CloudFormation, Azure Resource Templates (ARM),
Google Cloud Deployment Manager, …
• Configuration Management with infrastructure management
• SaltStack, Ansible, Puppet, Chef, …
• Configuration Management
• CFEngine, …
15. Dezember 2021 12
Infrastructure as Code (IaC)
• Define Infrastructure in Code
• Leverage APIs of the Cloud Providers and other Infrastructure
Manufacturers
• Automation via CI/CD pipelines
• “No more” manual provisioning and management
15. Dezember 2021 13
Terraform Providers
15. Dezember 2021 14
https://registry.terraform.io/browse/providers
Terraform Examples
15. Dezember 2021 15
resource "aws_rds_cluster" "default" {
cluster_identifier = "aurora-cluster-demo”
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
database_name = "mydb”
master_username = "foo”
master_password = "barbut8chars”
}
resource "aws_rds_cluster_instance" "cluster_instances" {
count = 2
identifier = "aurora-cluster-demo-${count.index}”
cluster_identifier = aws_rds_cluster.default.id
instance_class = "db.r4.large”
engine = aws_rds_cluster.default.engine
engine_version = aws_rds_cluster.default.engine_version
}
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/rds_cluster_instance
Terraform Examples
15. Dezember 2021 16
resource "aws_ssm_parameter" "db_user" {
name = "/${var.name}-${var.account_name}/DB_USER”
type = "SecureString”
value = aws_rds_cluster.default.master_username
}
resource "aws_ssm_parameter" "db_pass” {
name = "/${var.name}-${var.account_name}/DB_PASS”
type = "SecureString”
value = aws_rds_cluster.default.master_password
}
Terraform Modules
15. Dezember 2021 17
https://github.com/terraform-aws-modules
Terraform Modules
15. Dezember 2021 18
https://gruntwork.io/
IaC in the DevOps Process
15. Dezember 2021 19
DevOps
15. Dezember 2021 20
https://agileboost.io/blog/what-is-dev-ops/
Example Voting App
15. Dezember 2021 21
https://github.com/dockersamples/example-voting-app
Example Voting App in AWS
• Showcase deployment in AWS
• Automation with GitHub Actions
15. Dezember 2021 22
PostgreSQL
15. Dezember 2021 23
module "cluster" {
source = "git::git@github.com:terraform-aws-modules/terraform-aws-rds-aurora?ref=v6.1.3”
name = "test-aurora-db-postgres96”
engine = "aurora-postgresql”
engine_version = "11.12”
instance_class = "db.r6g.large”
...
}
resource "aws_ssm_parameter" "cluster_endpoint” {
name = "/CLUSTER_ENDPOINT”
type = "String”
value = module.cluster. cluster_endpoint
}
PostgreSQL - Deploy
15. Dezember 2021 24
- name: Terraform Validate
run: |
cd ${GITHUB_WORKSPACE}/infra
terraform validate
- name: Terraform Plan
run: |
cd ${GITHUB_WORKSPACE}/infra
terraform plan
- name: Terraform Apply
run: |
cd ${GITHUB_WORKSPACE}/infra
terraform apply
Build & Push App Containers
15. Dezember 2021 25
- name: Build the Docker container
shell: bash
run: |
docker build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} .
- name: AWS ECR Log In
run: |
$(aws ecr get-login --registry-ids ${{ env.ACCOUNT_ID }} --no-include-email --region ${{ secrets.AWS_DEFAULT_REGION }})
- name: Push the Docker container
shell: bash
run: |
docker push ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
Deploy Application Containers
15. Dezember 2021 26
- uses: Bardavon-Health/actions-aws-ssm-params-to-env@v1.2
env:
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
with:
ssm-path: /CLUSTER_ENDPOINT
prefix: SSM_
- name: Trigger ECS deployment
run: |
aws --region us-east-1 ecs update-service --cluster $CLUSTER_NAME --service $VOTING_APP_SERVICE
aws --region us-east-1 ecs update-service --cluster $CLUSTER_NAME --service $RESULT_APP_SERVICE
aws --region us-east-1 ecs update-service --cluster $CLUSTER_NAME --service $WORKER_SERVICE
Summary
15. Dezember 2021 27
Summary
• DevOps aims to bring Developers and Operations together
• IaC leverages APIs to provision and configure infrastructure
• Example of how IaC can be integrated in the DevOps process
• Full demo available soon on GitHub: https://github.com/elft3r/example-
voting-app
15. Dezember 2021 28
Contact, Follow and Subscribe
W:https://56k.cloud
E: info@56k.cloud
T: twitter.com/56kcloud
JochenZehnder
Partner&SiteReliabilityEngineer
jz@56k.cloud
15. Dezember 2021 29

Weitere ähnliche Inhalte

Was ist angesagt?

Helm – The Kubernetes Package Manager
Helm – The Kubernetes Package ManagerHelm – The Kubernetes Package Manager
Helm – The Kubernetes Package Managerinovex GmbH
 
Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkQAware GmbH
 
Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services AWS Germany
 
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickeln
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickelnDie Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickeln
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickelnQAware GmbH
 
Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017oraclebudb
 
Architecture Best Practices für Webanwendungen auf AWS
Architecture Best Practices für Webanwendungen auf AWSArchitecture Best Practices für Webanwendungen auf AWS
Architecture Best Practices für Webanwendungen auf AWSAWS Germany
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?OPEN KNOWLEDGE GmbH
 
In-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesIn-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesQAware GmbH
 
Erweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud ServicesErweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud ServicesAWS Germany
 
Webinar Windows auf AWS (Deutsch)
Webinar Windows auf AWS (Deutsch)Webinar Windows auf AWS (Deutsch)
Webinar Windows auf AWS (Deutsch)AWS Germany
 
Clusterless mit AWS Fargate
Clusterless mit AWS FargateClusterless mit AWS Fargate
Clusterless mit AWS FargateQAware GmbH
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusOPEN KNOWLEDGE GmbH
 
Amazon Lightsail Webinar
Amazon Lightsail WebinarAmazon Lightsail Webinar
Amazon Lightsail WebinarAWS Germany
 
Webinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteWebinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteAWS Germany
 
Infrastructure as Code mit Terraform
Infrastructure as Code mit TerraformInfrastructure as Code mit Terraform
Infrastructure as Code mit TerraformHarald Schmaldienst
 
Vorlesung - Cloud Infrastrukturen - Clusterbau | anynines
Vorlesung - Cloud Infrastrukturen - Clusterbau  | anyninesVorlesung - Cloud Infrastrukturen - Clusterbau  | anynines
Vorlesung - Cloud Infrastrukturen - Clusterbau | anyninesanynines GmbH
 
Einführung in NoSQL-Datenbanken
Einführung in NoSQL-DatenbankenEinführung in NoSQL-Datenbanken
Einführung in NoSQL-DatenbankenTobias Trelle
 

Was ist angesagt? (20)

Helm – The Kubernetes Package Manager
Helm – The Kubernetes Package ManagerHelm – The Kubernetes Package Manager
Helm – The Kubernetes Package Manager
 
Leveraging the Power of Solr with Spark
Leveraging the Power of Solr with SparkLeveraging the Power of Solr with Spark
Leveraging the Power of Solr with Spark
 
Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services
 
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickeln
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickelnDie Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickeln
Die Leichtigkeit des Seins: Bindings für Eclipse SmartHome entwickeln
 
Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017
 
Architecture Best Practices für Webanwendungen auf AWS
Architecture Best Practices für Webanwendungen auf AWSArchitecture Best Practices für Webanwendungen auf AWS
Architecture Best Practices für Webanwendungen auf AWS
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
 
In-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesIn-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und Kubernetes
 
Erweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud ServicesErweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud Services
 
Webinar Windows auf AWS (Deutsch)
Webinar Windows auf AWS (Deutsch)Webinar Windows auf AWS (Deutsch)
Webinar Windows auf AWS (Deutsch)
 
Clusterless mit AWS Fargate
Clusterless mit AWS FargateClusterless mit AWS Fargate
Clusterless mit AWS Fargate
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Amazon Lightsail Webinar
Amazon Lightsail WebinarAmazon Lightsail Webinar
Amazon Lightsail Webinar
 
Webinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteWebinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute Dienste
 
Infrastructure as Code mit Terraform
Infrastructure as Code mit TerraformInfrastructure as Code mit Terraform
Infrastructure as Code mit Terraform
 
Vorlesung - Cloud Infrastrukturen - Clusterbau | anynines
Vorlesung - Cloud Infrastrukturen - Clusterbau  | anyninesVorlesung - Cloud Infrastrukturen - Clusterbau  | anynines
Vorlesung - Cloud Infrastrukturen - Clusterbau | anynines
 
Einführung in NoSQL-Datenbanken
Einführung in NoSQL-DatenbankenEinführung in NoSQL-Datenbanken
Einführung in NoSQL-Datenbanken
 
Amazon Web Services
Amazon Web ServicesAmazon Web Services
Amazon Web Services
 

Ähnlich wie HashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess

Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?MT AG
 
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungMit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungQAware GmbH
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzQAware GmbH
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)QAware GmbH
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesQAware GmbH
 
Cloud Connectivity - Herausforderungen und Loesungen
Cloud Connectivity - Herausforderungen und LoesungenCloud Connectivity - Herausforderungen und Loesungen
Cloud Connectivity - Herausforderungen und LoesungenDaniel Steiger
 
2008 - Basta!: DAL DIY
2008 - Basta!: DAL DIY2008 - Basta!: DAL DIY
2008 - Basta!: DAL DIYDaniel Fisher
 
MongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererMongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererUwe Printz
 
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)Uwe Printz
 
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)Trivadis
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysQAware GmbH
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...QAware GmbH
 
HashiTalks: DACH - CDK für Terraform
HashiTalks: DACH - CDK für TerraformHashiTalks: DACH - CDK für Terraform
HashiTalks: DACH - CDK für TerraformJochen Zehnder
 
4×4: Big Data in der Cloud
4×4: Big Data in der Cloud4×4: Big Data in der Cloud
4×4: Big Data in der CloudDanny Linden
 

Ähnlich wie HashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess (20)

Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?
 
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungMit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue Schwarz
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Cloud Connectivity - Herausforderungen und Loesungen
Cloud Connectivity - Herausforderungen und LoesungenCloud Connectivity - Herausforderungen und Loesungen
Cloud Connectivity - Herausforderungen und Loesungen
 
2008 - Basta!: DAL DIY
2008 - Basta!: DAL DIY2008 - Basta!: DAL DIY
2008 - Basta!: DAL DIY
 
MongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererMongoDB für Java-Programmierer
MongoDB für Java-Programmierer
 
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
 
Per Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API GatewaysPer Anhalter zu Cloud-nativen API Gateways
Per Anhalter zu Cloud-nativen API Gateways
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
 
HashiTalks: DACH - CDK für Terraform
HashiTalks: DACH - CDK für TerraformHashiTalks: DACH - CDK für Terraform
HashiTalks: DACH - CDK für Terraform
 
4×4: Big Data in der Cloud
4×4: Big Data in der Cloud4×4: Big Data in der Cloud
4×4: Big Data in der Cloud
 

HashiTalks: DACH - Die Verwendung von IaC im DevOps Prozess

  • 1. your cloud journey together!” “Let’s start Jochen Zehnder Partner & Site Reliability Engineer Email: jz@56k.cloud Twitter / GitHub / GitLab: @elft3r 15. Dezember 2021
  • 2. Die Verwendung von IaC im DevOps Prozess 15. Dezember 2021 2
  • 3. Agenda • Who is 56K.Cloud? • DevOps • Infrastructure as Code (IaC) • IaC in the DevOps Process • Summary 15. Dezember 2021 3
  • 4. Who is 56K.Cloud? 15. Dezember 2021 4
  • 5. Our Vision: Why are we here? • We Solve: "Time to Market Problem" for innovators by breaking​ down technical barriers.​ • We Build: A "Technical strategy" and building that alignment with Business strategy​. • We Execute: Enabling new technologies that accelerate the technical strategy. 15. Dezember 2021 5
  • 6. Show core competencies of 56K.Cloud team • Methodologies: DevOps, DevSecOps, SRE • Cloud Infrastructure Automation (IaC) • CI/CD Application Automation (SDLC) • Cloud Security & Monitoring • Cloud Design & Architecture • Machine Learning • Data Analytics & Data Lake • 5G & Edge Cloud Application Development 15. Dezember 2021 6
  • 7. Partner Network 15. Dezember 2021 7 Cloud Native Network​ Main Business Partners
  • 9. DevOps 15. Dezember 2021 9 http://dev2ops.org/2010/02/what-is-devops/
  • 10. DevOps 15. Dezember 2021 10 https://agileboost.io/blog/what-is-dev-ops/
  • 12. Infrastructure Management vs. Configuration Management • Infrastructure management • Terraform, Pulumi, AWS CloudFormation, Azure Resource Templates (ARM), Google Cloud Deployment Manager, … • Configuration Management with infrastructure management • SaltStack, Ansible, Puppet, Chef, … • Configuration Management • CFEngine, … 15. Dezember 2021 12
  • 13. Infrastructure as Code (IaC) • Define Infrastructure in Code • Leverage APIs of the Cloud Providers and other Infrastructure Manufacturers • Automation via CI/CD pipelines • “No more” manual provisioning and management 15. Dezember 2021 13
  • 14. Terraform Providers 15. Dezember 2021 14 https://registry.terraform.io/browse/providers
  • 15. Terraform Examples 15. Dezember 2021 15 resource "aws_rds_cluster" "default" { cluster_identifier = "aurora-cluster-demo” availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"] database_name = "mydb” master_username = "foo” master_password = "barbut8chars” } resource "aws_rds_cluster_instance" "cluster_instances" { count = 2 identifier = "aurora-cluster-demo-${count.index}” cluster_identifier = aws_rds_cluster.default.id instance_class = "db.r4.large” engine = aws_rds_cluster.default.engine engine_version = aws_rds_cluster.default.engine_version } https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/rds_cluster_instance
  • 16. Terraform Examples 15. Dezember 2021 16 resource "aws_ssm_parameter" "db_user" { name = "/${var.name}-${var.account_name}/DB_USER” type = "SecureString” value = aws_rds_cluster.default.master_username } resource "aws_ssm_parameter" "db_pass” { name = "/${var.name}-${var.account_name}/DB_PASS” type = "SecureString” value = aws_rds_cluster.default.master_password }
  • 17. Terraform Modules 15. Dezember 2021 17 https://github.com/terraform-aws-modules
  • 18. Terraform Modules 15. Dezember 2021 18 https://gruntwork.io/
  • 19. IaC in the DevOps Process 15. Dezember 2021 19
  • 20. DevOps 15. Dezember 2021 20 https://agileboost.io/blog/what-is-dev-ops/
  • 21. Example Voting App 15. Dezember 2021 21 https://github.com/dockersamples/example-voting-app
  • 22. Example Voting App in AWS • Showcase deployment in AWS • Automation with GitHub Actions 15. Dezember 2021 22
  • 23. PostgreSQL 15. Dezember 2021 23 module "cluster" { source = "git::git@github.com:terraform-aws-modules/terraform-aws-rds-aurora?ref=v6.1.3” name = "test-aurora-db-postgres96” engine = "aurora-postgresql” engine_version = "11.12” instance_class = "db.r6g.large” ... } resource "aws_ssm_parameter" "cluster_endpoint” { name = "/CLUSTER_ENDPOINT” type = "String” value = module.cluster. cluster_endpoint }
  • 24. PostgreSQL - Deploy 15. Dezember 2021 24 - name: Terraform Validate run: | cd ${GITHUB_WORKSPACE}/infra terraform validate - name: Terraform Plan run: | cd ${GITHUB_WORKSPACE}/infra terraform plan - name: Terraform Apply run: | cd ${GITHUB_WORKSPACE}/infra terraform apply
  • 25. Build & Push App Containers 15. Dezember 2021 25 - name: Build the Docker container shell: bash run: | docker build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} . - name: AWS ECR Log In run: | $(aws ecr get-login --registry-ids ${{ env.ACCOUNT_ID }} --no-include-email --region ${{ secrets.AWS_DEFAULT_REGION }}) - name: Push the Docker container shell: bash run: | docker push ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
  • 26. Deploy Application Containers 15. Dezember 2021 26 - uses: Bardavon-Health/actions-aws-ssm-params-to-env@v1.2 env: AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} with: ssm-path: /CLUSTER_ENDPOINT prefix: SSM_ - name: Trigger ECS deployment run: | aws --region us-east-1 ecs update-service --cluster $CLUSTER_NAME --service $VOTING_APP_SERVICE aws --region us-east-1 ecs update-service --cluster $CLUSTER_NAME --service $RESULT_APP_SERVICE aws --region us-east-1 ecs update-service --cluster $CLUSTER_NAME --service $WORKER_SERVICE
  • 28. Summary • DevOps aims to bring Developers and Operations together • IaC leverages APIs to provision and configure infrastructure • Example of how IaC can be integrated in the DevOps process • Full demo available soon on GitHub: https://github.com/elft3r/example- voting-app 15. Dezember 2021 28
  • 29. Contact, Follow and Subscribe W:https://56k.cloud E: info@56k.cloud T: twitter.com/56kcloud JochenZehnder Partner&SiteReliabilityEngineer jz@56k.cloud 15. Dezember 2021 29