SlideShare a Scribd company logo
Promise of DevOps
24th meeting of Cloud Native – Kubernetes - ONLINE community
20-Oct-2021
miro.adamy@gmail.com
Agenda
● Original promise of DevOps
● 5 years later: what worked, what changed
● Tools and recommendations that survived
● Outlook - emerging themes
About me
Why I think I may have something to share on the topic / my bias
● 30+ years in IT (FEI-STU, SysAdmin, Developer, Architect, SRE, DevOps)
● C, Perl, C++, Java, C#, Python / Terraform, CFN, CDK
● Cloud - 2015+ (AWS)
● Enterprise level eCommerce: Oracle Commerce (ATG), SAP (Hybris)
● I live(d) on both sides of DevOps - Dev AND Ops:
○ design and build ecommerce site, release it, maintain / deploy / monitor / enhance / support
● Back in Bratislava after 25 years abroad (A, CH, Canada, ES)
● Currently: Cloud Platform team in Spanish subs of Canadian company
○ Cloud infrastructure building (TF / CFN / CDK)
○ DevOps - CI/CD
○ 100+ AWS accounts, 4 Orgs/SSO + ecosystem
Sincere Apologies to Slovak Language purists
● since 1991 I used almost exclusively German, English and Spanish for work
● I am sadly not familiar with the proper technical terminology in Slovak :-(
● This talk => mixture of English and Slovak
● The word DevOps == good example
Promise of DevOps
Promise of DevOps
Roots and triggers of DevOps
● Agile ~ 2001 : Ops Gap
● ~ 2008-2009 - first mention
● complexity of Apps
● Cloud - AWS (2006+)
● option to automate
● buzzword ~ 2010+
● containers / Docker ~ 2013+
DevOps motivation - and original promise
● to bridge the different mindset silos (Dev / QA / Ops)
● release any time
● automated builds and tests (CI)
● automated package and release (CD&D)
● shared ownership
● shared responsibility
● speed gain / cost savings
● cultural / org structure shift
=> tools, techniques, processes
Promise of DevOps
Promise of DevOps
Promise of DevOps
Plan + Code
● Source control in 2021 ~== Git (Mercurial, SVN, proprietary
) in cloud
● Github, Bitbucket, Gitlab / CodeCommit
○ all go beyond the source code: CI/CD, issue management, PM
○ Github (Microsoft) - leader, OS, open collaboration, best UX for code review and navigation
○ Bitbucket (Atlassian) - JIRA integration, free for small teams < 5,
○ GitLab - on Prem, focus on PM, minority
○ CodeCommit - limited functionality - fully enclosed inside AWS (security, cost etc)
● Dev Environment in the cloud:
○ manage dev configuration
○ CodeSpaces - GH, Cloud9 - AWS
●
Which to pick
See the GH - GL - BB compare:
● team structure - org structure impact
○ IDP integration
○ management cost - API
When to consider AWS CodeCommit:
● security / access management inside AWS
● cost attribution - admin overhead
○ per project account(s)
● CI/CD deeply tied to AWS services
Building and packaging, artifact management
● where you build:
○ cloud - part of the Source Code Management (GH / BB / GL / AWS)
○ cloud - 3rd party service
○ onPrem - usually Jenkins
● what you build: Java, Native (Go, C/C++), PHP, Javascript
○ dedicated systems: Java: Gradle, Maven, Ant => JAR/WAR/EAR
● what triggers build:
○ manual - user action
○ source code event: commit, PR, merge, tag
● resulting artifact: in most cases => Docker Image
○ where it is stored: DockerHub, ECR, own registry
○ naming and tagging => super important
● As part of the build:
○ code quality; Sonarqube - rule based, security checks on libraries
○ unit tests
Promise of DevOps
Tools (there are too many of them …)
● Jenkins:
○ oldest, well known, Groovy as pipeline language (maintenance cost) - Java app
○ self hosted or Jenkins as a Service
○ scalability / speed / infrastructure cost
○ plugin hell - complex, fragile
● 3rd party providers: Travis CI / CircleCI
○ important in 2016-2019, fighting for relevance and extending offer, monetization challenges
● GitLab:
○ great OOTB support for typical scenarios, largest coverage - PM + VCS + CI/CD
● BitBucket Pipelines:
○ JIRA integration (update ticket), Trello, Confluence
● GitHub Actions:
○ late to the game - 2020, modern, marketplace - https://github.com/marketplace?type=actions
and many many more
Promise of DevOps
Bitbucket Pipelines and pipes
BB pipeline example
Bitbucket pipelines ...
Github Actions and Workflows
Gitlab - .gitlab-ci.yml
●
GH/BB/GL pipeline pros and cons
● serverless and portable (Docker), scalable (often), stateless
● tied up with repo => access to code, can build (<=> Jenkins or CCI)
● OOTB integrations, community + marketplace
● awkward debugging (commit, push, observe logs, repeat)
● Variables / Secrets - maintenance
● BB - to set the variables, MUST be Admin of a repo => override the rules
● YML - not great for conditional tasks / branching
Testing
● unit testing => part of the build
● integration testing = needs deployed app
● where to deploy ?
○ depends on application - EC2, ECS, K8s
○ deployment => configuration
○ infrastructure - pre-configured or on-demand
○ OCDE example
● ROBOT framework
● ecosystem specific tools
Release and Deploy
● what you deploy: container ? JAR ? package ? function ?
● where you deploy: On-Prem ? EC2 ? ECS ? K8s ?
● post-deployment configuration
● who owns the environment configuration ? passwords ?
● deployment - pre-requisite for integration/full testing
● monitoring, alerting, performance / security scans ⇒ SRE
Tools:
● part of CI/CD pipeline
● Cloud providers - Azure / Google / AWS
● 3rd party: too many to list. ? Who will survive ?
AWS DevOps services
● CodeCommit - Git in AWS
● CodePipeline - describe the process
● CodeBuild - execute build, test
● CodeDeploy - Lambda, ECS, EC2,
On-Premises or CFN
● CodeArtifact - package mgr - JS,PY,java
● CodeStar - dashboard for projects
● Cloud9 - Dev Env in the cloud
● ElasticBeanstalk - simplified templated
environments with some CI/CD
● CloudWatch - logs
● CloudTrail - API call audit
● CFN - Infrastructure building
● Lambda + API GW
● ECS
● EKS
● ImageBuilder (Packer)
● ...
CI/CD example in AWS
AWS DevOps - To use or not to use
● low level - setup intensive
● less polished, crude UX compared to external tool
● often bumpy road compared to “works OOTB” - YMMV
Good use case:
● everything is in AWS
● all actors represented as IAM principals identities / roles
● account based cost attribution - savings of scale
● monitoring tools integration in place- CloudWatch / CloudTrail
● be prepared to invest time
What we learned
Key: automation => Everything is a Code => declarative
● scripting / procedural
● defining / declarative
Documentation matters
● more distributed / microservices => more complexity => larger teams
● distributed work environments => information sharing
Where:
● Wiki (dedicated, GH/BB)
● part of the source code
● => Documentation as a code https://www.writethedocs.org/guide/docs-as-code/
○ Markdown files
○ part of the repo - read/edit in GH, BB, GL
○ MD => HTML static site generators - Hugo, Gatsby, Jekyll
Non technical factor matter
● organization structure - silos
● org size
● process / tool overhead - ownership
● culture => next speaker
“Man lernt nie aus”
● CI/CD/CL - CL == continuous learning
● Docker/container - 6 years - redefined the workflows
● speed of change increases, complexity increases
● shelf life of skills decreases (except old fashion Unix skills ;-))
Best value for the cost providers (IMHO):
● OReilly Learning = books, courses, live events, Sandboxes/scenarios
● Linux Academy / ACloudGuru => Live Labs
● Udemy - frequent sales - PAYG
Future Themes and Challenges
GitOps == EiaC: Everything is a Code
● Code is a code => will be built and packaged as such (into Docker image)
● Config is code => must be versioned controlled
● Release and Deployment event should be a code
● => must be version controlled
● => must leave a trace
● => can be rolled back
Git is the only source of truth for deployed system
Everything uses Git repositories + operations on them
Declarative tools make it all work
Almost GitOps pipeline
Gitops pipeline
GitOps + IaaC: multiple release cycles
Cloud environment adds more challenges to GitOps:
● Environment creation
○ => must work for multiple environments (dev, qa, uat, prod)
● Environment maintenance / updates (Env release cycle)
● Application deployments and updates / deploys (app release cycle)
○ => some deployments may require environment changes
○ These environment changes must flow through environments
● Application teardown
● Environment teardown (important for QA / On Demand)
=> 2 different release cycles - different frequency / flow
=> Represented by tools used, layers and repositories involved
Immutable Infrastructure
● Create and destroy on demand
● “poor man’s serverless”
● “No server requires less maintenance that no server”
● servers: Pets - Cattle
Tools for IaaC
● Terraform - multi-destination (not only clouds)
● CFN - stacks and stacksets - AWS Specific
● CDK - becoming very important:
CDK, CDK8s, CDKtf - TS, Python - patterns
● 3rd parties - Pulami,
2 CI/CD Examples from my team
Cloud Platform Team
https://pivotree.com/
AWS account provisioning
● use case - 200+ AWS accounts => IAM management is a big deal
● AWS Organizations, SSO, external IDP (OneLogin / Okta)
● Pipeline(s) to the rescue
● Pipeline calls other pipelines
●
One-Click deployment environment (Dev + QA)
pipeline that builds environments in EKS with full CI/CD capabilties
- deployment target for app pipeline
● BB pipeline
● uses TF
● Hybris App - Helm
Links
● ALL DAY DEVOPS - alldaydevops.com - 28/29 October 2021
● OReilly - https://learning.oreilly.com/home/
● ACloudGuru - https://learn.acloud.guru/dashboard?

More Related Content

What's hot (20)

PDF
Journey of Kubernetes Scaling
Opsta
 
PDF
Accelerate your business and reduce cost with OpenStack
Opsta
 
PDF
Introduction to Kubernetes and GKE
Opsta
 
PDF
Kubernetes-native or not? When should you ditch your traditional CI/CD server...
Red Hat Developers
 
PDF
Cicd pixelfederation
Juraj Hantak
 
PDF
DevOps: The Future of Software Development
Opsta
 
PDF
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
WSO2
 
PDF
23 meetup rancher
Juraj Hantak
 
PDF
Netflix Architecture and Open Source
All Things Open
 
PDF
GPU enablement for data science on OpenShift | DevNation Tech Talk
Red Hat Developers
 
PDF
Netflix Container Scheduling and Execution - QCon New York 2016
aspyker
 
PDF
Elasticsearch Monitoring in Openshift
Lukas Vlcek
 
PDF
How to Become DevOps
Opsta
 
PDF
Netflix and Containers: Not A Stranger Thing
aspyker
 
PDF
Revisit Dependency Injection in scala
takezoe
 
PDF
GitBucket: Open source self-hosting Git server built by Scala
takezoe
 
PDF
GitBucket: Git Centric Software Development Platform by Scala
takezoe
 
PDF
Serverless stream processing of Debezium data change events with Knative | De...
Red Hat Developers
 
PDF
Introduction to Kubernetes and Google Container Engine (GKE)
Opsta
 
PDF
Beyond OpenStack
Jirayut Nimsaeng
 
Journey of Kubernetes Scaling
Opsta
 
Accelerate your business and reduce cost with OpenStack
Opsta
 
Introduction to Kubernetes and GKE
Opsta
 
Kubernetes-native or not? When should you ditch your traditional CI/CD server...
Red Hat Developers
 
Cicd pixelfederation
Juraj Hantak
 
DevOps: The Future of Software Development
Opsta
 
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
WSO2
 
23 meetup rancher
Juraj Hantak
 
Netflix Architecture and Open Source
All Things Open
 
GPU enablement for data science on OpenShift | DevNation Tech Talk
Red Hat Developers
 
Netflix Container Scheduling and Execution - QCon New York 2016
aspyker
 
Elasticsearch Monitoring in Openshift
Lukas Vlcek
 
How to Become DevOps
Opsta
 
Netflix and Containers: Not A Stranger Thing
aspyker
 
Revisit Dependency Injection in scala
takezoe
 
GitBucket: Open source self-hosting Git server built by Scala
takezoe
 
GitBucket: Git Centric Software Development Platform by Scala
takezoe
 
Serverless stream processing of Debezium data change events with Knative | De...
Red Hat Developers
 
Introduction to Kubernetes and Google Container Engine (GKE)
Opsta
 
Beyond OpenStack
Jirayut Nimsaeng
 

Similar to Promise of DevOps (20)

PPTX
Devops
JyothirmaiG4
 
PDF
How open source is driving DevOps innovation: CloudOpen NA 2015
Gordon Haff
 
PPTX
Devops on AWS
AWS Riyadh User Group
 
PPTX
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Weaveworks
 
PPTX
Devops CI-CD pipeline with Containers
NuSpace
 
PDF
DevOps and AWS
Shiva Narayanaswamy
 
PDF
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
PDF
Getting Started with DevOps on AWS [Mar 2020]
Dhaval Nagar
 
PPT
icebreakerwithdevops-150218112943-conversion-gate02
Manohar Kumar
 
PPTX
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Robert van Mölken
 
PDF
Devops Online Training.pdf
SpiritsoftsTraining
 
PDF
Devops Online Training.pdf
SpiritsoftsTraining
 
PDF
Devops Online Training.pdf
SpiritsoftsTraining
 
PDF
Devops Online Training.pdf
SpiritsoftsTraining
 
PDF
Devops Online Training.pdf
SpiritsoftsTraining
 
PDF
Getting to Walk with DevOps
Eklove Mohan
 
ODP
Deploying your SaaS stack OnPrem
Kris Buytaert
 
PDF
The Self-Service Developer - GOTOCon CPH
Laszlo Fogas
 
PPTX
Cloud Native Apps with GitOps
Weaveworks
 
PDF
Innovative DevOps Project Ideas for Students to Practice with Industry.pdf
rose
 
Devops
JyothirmaiG4
 
How open source is driving DevOps innovation: CloudOpen NA 2015
Gordon Haff
 
Devops on AWS
AWS Riyadh User Group
 
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Weaveworks
 
Devops CI-CD pipeline with Containers
NuSpace
 
DevOps and AWS
Shiva Narayanaswamy
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
Getting Started with DevOps on AWS [Mar 2020]
Dhaval Nagar
 
icebreakerwithdevops-150218112943-conversion-gate02
Manohar Kumar
 
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Robert van Mölken
 
Devops Online Training.pdf
SpiritsoftsTraining
 
Devops Online Training.pdf
SpiritsoftsTraining
 
Devops Online Training.pdf
SpiritsoftsTraining
 
Devops Online Training.pdf
SpiritsoftsTraining
 
Devops Online Training.pdf
SpiritsoftsTraining
 
Getting to Walk with DevOps
Eklove Mohan
 
Deploying your SaaS stack OnPrem
Kris Buytaert
 
The Self-Service Developer - GOTOCon CPH
Laszlo Fogas
 
Cloud Native Apps with GitOps
Weaveworks
 
Innovative DevOps Project Ideas for Students to Practice with Industry.pdf
rose
 
Ad

More from Juraj Hantak (20)

PDF
Kubernetes day 2_jozef_halgas_pf
Juraj Hantak
 
PDF
Kubernetes day 2 @ zse energia
Juraj Hantak
 
PDF
Dev ops culture_final
Juraj Hantak
 
PDF
CNCF opa
Juraj Hantak
 
PDF
Introductiontohelmcharts2021
Juraj Hantak
 
PDF
19. stretnutie komunity kubernetes
Juraj Hantak
 
PDF
16. meetup sietovy model v kubernetes
Juraj Hantak
 
PDF
16.meetup uvod
Juraj Hantak
 
PDF
14. meetup
Juraj Hantak
 
PDF
Terraform a gitlab ci
Juraj Hantak
 
PDF
Monitoring with prometheus at scale
Juraj Hantak
 
PDF
Kubernetes monitoring using prometheus stack
Juraj Hantak
 
PDF
12.cncfsk meetup observability and analysis
Juraj Hantak
 
PDF
Grafana 7.0
Juraj Hantak
 
PDF
Nginx app protect-for-meetup-v1.0-202006_lk
Juraj Hantak
 
PDF
10. th cncf meetup - Routing microservice-architectures-with-traefik-cncfsk
Juraj Hantak
 
PDF
10.cncfsk en-story
Juraj Hantak
 
PDF
Ingress controller present, past and future
Juraj Hantak
 
PDF
Cncf meetup-service-mesh-sk
Juraj Hantak
 
PDF
Kubernetes ingress-pixelfederation
Juraj Hantak
 
Kubernetes day 2_jozef_halgas_pf
Juraj Hantak
 
Kubernetes day 2 @ zse energia
Juraj Hantak
 
Dev ops culture_final
Juraj Hantak
 
CNCF opa
Juraj Hantak
 
Introductiontohelmcharts2021
Juraj Hantak
 
19. stretnutie komunity kubernetes
Juraj Hantak
 
16. meetup sietovy model v kubernetes
Juraj Hantak
 
16.meetup uvod
Juraj Hantak
 
14. meetup
Juraj Hantak
 
Terraform a gitlab ci
Juraj Hantak
 
Monitoring with prometheus at scale
Juraj Hantak
 
Kubernetes monitoring using prometheus stack
Juraj Hantak
 
12.cncfsk meetup observability and analysis
Juraj Hantak
 
Grafana 7.0
Juraj Hantak
 
Nginx app protect-for-meetup-v1.0-202006_lk
Juraj Hantak
 
10. th cncf meetup - Routing microservice-architectures-with-traefik-cncfsk
Juraj Hantak
 
10.cncfsk en-story
Juraj Hantak
 
Ingress controller present, past and future
Juraj Hantak
 
Cncf meetup-service-mesh-sk
Juraj Hantak
 
Kubernetes ingress-pixelfederation
Juraj Hantak
 
Ad

Recently uploaded (20)

PDF
Beginning-Laravel-Build-Websites-with-Laravel-5.8-by-Sanjib-Sinha-z-lib.org.pdf
TagumLibuganonRiverB
 
PPTX
Introduction-to-the-AWS-Solution-Architect.pptx
Prince391830
 
PDF
ContextForge MCP Gateway - the missing proxy for AI Agents and Tools
Mihai Criveti
 
PDF
Learning Exemplar_Technology and Livelihood Education 7 Q1_W2.pdf
mjhiludo16
 
PPTX
My Mother At 66! (2).pptx00000000000000000000000000000
vedapattisiddharth
 
PPTX
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
PDF
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
PPTX
Class_4_Limbgvchgchgchgchgchgcjhgchgcnked_Lists.pptx
test123n
 
PPTX
原版一样(毕业证书)法国蒙彼利埃大学毕业证文凭复刻
Taqyea
 
PPTX
CHAPTER 1 - PART 3 FOR GRADE 11 STUDENTS
FSBTLEDNathanVince
 
PPTX
Meloniusk_Communication_Template_best.pptx
howesix147
 
PDF
web application development company in bangalore.pdf
https://dkpractice.co.in/seo.html tech
 
PDF
Materi tentang From Digital Economy to Fintech.pdf
Abdul Hakim
 
PDF
Empowering Local Language Email with IDN & EAI – Powered by XgenPlus
XgenPlus Technologies
 
PDF
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
PDF
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
PDF
The Hidden Benefits of Outsourcing IT Hardware Procurement for Small Businesses
Carley Cramer
 
PPTX
美国电子毕业证帕克大学电子版成绩单UMCP学费发票办理学历认证
Taqyea
 
PDF
AI security AI security AI security AI security
elite44
 
PDF
google promotion services in Delhi, India
Digital Web Future
 
Beginning-Laravel-Build-Websites-with-Laravel-5.8-by-Sanjib-Sinha-z-lib.org.pdf
TagumLibuganonRiverB
 
Introduction-to-the-AWS-Solution-Architect.pptx
Prince391830
 
ContextForge MCP Gateway - the missing proxy for AI Agents and Tools
Mihai Criveti
 
Learning Exemplar_Technology and Livelihood Education 7 Q1_W2.pdf
mjhiludo16
 
My Mother At 66! (2).pptx00000000000000000000000000000
vedapattisiddharth
 
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
Class_4_Limbgvchgchgchgchgchgcjhgchgcnked_Lists.pptx
test123n
 
原版一样(毕业证书)法国蒙彼利埃大学毕业证文凭复刻
Taqyea
 
CHAPTER 1 - PART 3 FOR GRADE 11 STUDENTS
FSBTLEDNathanVince
 
Meloniusk_Communication_Template_best.pptx
howesix147
 
web application development company in bangalore.pdf
https://dkpractice.co.in/seo.html tech
 
Materi tentang From Digital Economy to Fintech.pdf
Abdul Hakim
 
Empowering Local Language Email with IDN & EAI – Powered by XgenPlus
XgenPlus Technologies
 
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
The Hidden Benefits of Outsourcing IT Hardware Procurement for Small Businesses
Carley Cramer
 
美国电子毕业证帕克大学电子版成绩单UMCP学费发票办理学历认证
Taqyea
 
AI security AI security AI security AI security
elite44
 
google promotion services in Delhi, India
Digital Web Future
 

Promise of DevOps

  • 1. Promise of DevOps 24th meeting of Cloud Native – Kubernetes - ONLINE community 20-Oct-2021 [email protected]
  • 2. Agenda ● Original promise of DevOps ● 5 years later: what worked, what changed ● Tools and recommendations that survived ● Outlook - emerging themes
  • 3. About me Why I think I may have something to share on the topic / my bias ● 30+ years in IT (FEI-STU, SysAdmin, Developer, Architect, SRE, DevOps) ● C, Perl, C++, Java, C#, Python / Terraform, CFN, CDK ● Cloud - 2015+ (AWS) ● Enterprise level eCommerce: Oracle Commerce (ATG), SAP (Hybris) ● I live(d) on both sides of DevOps - Dev AND Ops: ○ design and build ecommerce site, release it, maintain / deploy / monitor / enhance / support ● Back in Bratislava after 25 years abroad (A, CH, Canada, ES) ● Currently: Cloud Platform team in Spanish subs of Canadian company ○ Cloud infrastructure building (TF / CFN / CDK) ○ DevOps - CI/CD ○ 100+ AWS accounts, 4 Orgs/SSO + ecosystem
  • 4. Sincere Apologies to Slovak Language purists ● since 1991 I used almost exclusively German, English and Spanish for work ● I am sadly not familiar with the proper technical terminology in Slovak :-( ● This talk => mixture of English and Slovak ● The word DevOps == good example
  • 7. Roots and triggers of DevOps ● Agile ~ 2001 : Ops Gap ● ~ 2008-2009 - first mention ● complexity of Apps ● Cloud - AWS (2006+) ● option to automate ● buzzword ~ 2010+ ● containers / Docker ~ 2013+
  • 8. DevOps motivation - and original promise ● to bridge the different mindset silos (Dev / QA / Ops) ● release any time ● automated builds and tests (CI) ● automated package and release (CD&D) ● shared ownership ● shared responsibility ● speed gain / cost savings ● cultural / org structure shift => tools, techniques, processes
  • 12. Plan + Code ● Source control in 2021 ~== Git (Mercurial, SVN, proprietary ) in cloud ● Github, Bitbucket, Gitlab / CodeCommit ○ all go beyond the source code: CI/CD, issue management, PM ○ Github (Microsoft) - leader, OS, open collaboration, best UX for code review and navigation ○ Bitbucket (Atlassian) - JIRA integration, free for small teams < 5, ○ GitLab - on Prem, focus on PM, minority ○ CodeCommit - limited functionality - fully enclosed inside AWS (security, cost etc) ● Dev Environment in the cloud: ○ manage dev configuration ○ CodeSpaces - GH, Cloud9 - AWS ●
  • 13. Which to pick See the GH - GL - BB compare: ● team structure - org structure impact ○ IDP integration ○ management cost - API When to consider AWS CodeCommit: ● security / access management inside AWS ● cost attribution - admin overhead ○ per project account(s) ● CI/CD deeply tied to AWS services
  • 14. Building and packaging, artifact management ● where you build: ○ cloud - part of the Source Code Management (GH / BB / GL / AWS) ○ cloud - 3rd party service ○ onPrem - usually Jenkins ● what you build: Java, Native (Go, C/C++), PHP, Javascript ○ dedicated systems: Java: Gradle, Maven, Ant => JAR/WAR/EAR ● what triggers build: ○ manual - user action ○ source code event: commit, PR, merge, tag ● resulting artifact: in most cases => Docker Image ○ where it is stored: DockerHub, ECR, own registry ○ naming and tagging => super important ● As part of the build: ○ code quality; Sonarqube - rule based, security checks on libraries ○ unit tests
  • 16. Tools (there are too many of them …) ● Jenkins: ○ oldest, well known, Groovy as pipeline language (maintenance cost) - Java app ○ self hosted or Jenkins as a Service ○ scalability / speed / infrastructure cost ○ plugin hell - complex, fragile ● 3rd party providers: Travis CI / CircleCI ○ important in 2016-2019, fighting for relevance and extending offer, monetization challenges ● GitLab: ○ great OOTB support for typical scenarios, largest coverage - PM + VCS + CI/CD ● BitBucket Pipelines: ○ JIRA integration (update ticket), Trello, Confluence ● GitHub Actions: ○ late to the game - 2020, modern, marketplace - https://github.com/marketplace?type=actions and many many more
  • 21. Github Actions and Workflows
  • 23. GH/BB/GL pipeline pros and cons ● serverless and portable (Docker), scalable (often), stateless ● tied up with repo => access to code, can build (<=> Jenkins or CCI) ● OOTB integrations, community + marketplace ● awkward debugging (commit, push, observe logs, repeat) ● Variables / Secrets - maintenance ● BB - to set the variables, MUST be Admin of a repo => override the rules ● YML - not great for conditional tasks / branching
  • 24. Testing ● unit testing => part of the build ● integration testing = needs deployed app ● where to deploy ? ○ depends on application - EC2, ECS, K8s ○ deployment => configuration ○ infrastructure - pre-configured or on-demand ○ OCDE example ● ROBOT framework ● ecosystem specific tools
  • 25. Release and Deploy ● what you deploy: container ? JAR ? package ? function ? ● where you deploy: On-Prem ? EC2 ? ECS ? K8s ? ● post-deployment configuration ● who owns the environment configuration ? passwords ? ● deployment - pre-requisite for integration/full testing ● monitoring, alerting, performance / security scans ⇒ SRE Tools: ● part of CI/CD pipeline ● Cloud providers - Azure / Google / AWS ● 3rd party: too many to list. ? Who will survive ?
  • 26. AWS DevOps services ● CodeCommit - Git in AWS ● CodePipeline - describe the process ● CodeBuild - execute build, test ● CodeDeploy - Lambda, ECS, EC2, On-Premises or CFN ● CodeArtifact - package mgr - JS,PY,java ● CodeStar - dashboard for projects ● Cloud9 - Dev Env in the cloud ● ElasticBeanstalk - simplified templated environments with some CI/CD ● CloudWatch - logs ● CloudTrail - API call audit ● CFN - Infrastructure building ● Lambda + API GW ● ECS ● EKS ● ImageBuilder (Packer) ● ...
  • 28. AWS DevOps - To use or not to use ● low level - setup intensive ● less polished, crude UX compared to external tool ● often bumpy road compared to “works OOTB” - YMMV Good use case: ● everything is in AWS ● all actors represented as IAM principals identities / roles ● account based cost attribution - savings of scale ● monitoring tools integration in place- CloudWatch / CloudTrail ● be prepared to invest time
  • 30. Key: automation => Everything is a Code => declarative ● scripting / procedural ● defining / declarative
  • 31. Documentation matters ● more distributed / microservices => more complexity => larger teams ● distributed work environments => information sharing Where: ● Wiki (dedicated, GH/BB) ● part of the source code ● => Documentation as a code https://www.writethedocs.org/guide/docs-as-code/ ○ Markdown files ○ part of the repo - read/edit in GH, BB, GL ○ MD => HTML static site generators - Hugo, Gatsby, Jekyll
  • 32. Non technical factor matter ● organization structure - silos ● org size ● process / tool overhead - ownership ● culture => next speaker
  • 33. “Man lernt nie aus” ● CI/CD/CL - CL == continuous learning ● Docker/container - 6 years - redefined the workflows ● speed of change increases, complexity increases ● shelf life of skills decreases (except old fashion Unix skills ;-)) Best value for the cost providers (IMHO): ● OReilly Learning = books, courses, live events, Sandboxes/scenarios ● Linux Academy / ACloudGuru => Live Labs ● Udemy - frequent sales - PAYG
  • 34. Future Themes and Challenges
  • 35. GitOps == EiaC: Everything is a Code ● Code is a code => will be built and packaged as such (into Docker image) ● Config is code => must be versioned controlled ● Release and Deployment event should be a code ● => must be version controlled ● => must leave a trace ● => can be rolled back Git is the only source of truth for deployed system Everything uses Git repositories + operations on them Declarative tools make it all work
  • 38. GitOps + IaaC: multiple release cycles Cloud environment adds more challenges to GitOps: ● Environment creation ○ => must work for multiple environments (dev, qa, uat, prod) ● Environment maintenance / updates (Env release cycle) ● Application deployments and updates / deploys (app release cycle) ○ => some deployments may require environment changes ○ These environment changes must flow through environments ● Application teardown ● Environment teardown (important for QA / On Demand) => 2 different release cycles - different frequency / flow => Represented by tools used, layers and repositories involved
  • 39. Immutable Infrastructure ● Create and destroy on demand ● “poor man’s serverless” ● “No server requires less maintenance that no server” ● servers: Pets - Cattle Tools for IaaC ● Terraform - multi-destination (not only clouds) ● CFN - stacks and stacksets - AWS Specific ● CDK - becoming very important: CDK, CDK8s, CDKtf - TS, Python - patterns ● 3rd parties - Pulami,
  • 40. 2 CI/CD Examples from my team Cloud Platform Team https://pivotree.com/
  • 41. AWS account provisioning ● use case - 200+ AWS accounts => IAM management is a big deal ● AWS Organizations, SSO, external IDP (OneLogin / Okta) ● Pipeline(s) to the rescue ● Pipeline calls other pipelines ●
  • 42. One-Click deployment environment (Dev + QA) pipeline that builds environments in EKS with full CI/CD capabilties - deployment target for app pipeline ● BB pipeline ● uses TF ● Hybris App - Helm
  • 43. Links ● ALL DAY DEVOPS - alldaydevops.com - 28/29 October 2021 ● OReilly - https://learning.oreilly.com/home/ ● ACloudGuru - https://learn.acloud.guru/dashboard?