SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 1@armillz
DevOps Patterns to Enable Success with
Microservices
Richard Mills
DevOps Solution Lead, Coveros Inc.
rich.mills@coveros.com
@armillz
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 2@armillz
Who is this guy?
• Me: Mad-Software-Developer turned Mad-Software-Engineer
turned DevOps-Solution-Architect. Pragmatist. Particular
focus on tools and automation. CI, CD, Agile, DevOps …
what’s next?
• PS: Thanks for inventing the term “DevOps” to describe what I like
to do.
• Pays my bills: Coveros helps organizations accelerate the
delivery of secure, reliable software using agile methods. We
provide expert consulting, mentoring, and training in:
• Agile transformations, coaching, development,
• Agile testing and automation
• DevOps and DevSecOps transformation and implementations
• DevOps engineering
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 3@armillz
Why is he here?
• Share some of my experiences (and failures) on a journey from “classic” enterprise monolithic
systems into the “utopia” of microservices architecture
• Show some patterns for delivering highly-buzzword-compliant, microservices-based software
applications
• Give you a reference to walk away with
• NOT: Explain fundamentals of DevOps (or Agile)
• NOT: Sell you on DevOps (or Agile), necessarily
WARNING: I do everything very fast. Try to keep up.
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 4@armillz
What are we going to cover?
• Problems with (non-ideal) microservices
• Context example
• Pipeline design and implementation patterns
• Testing and quality
• Other important non-pipeline stuff (team, architecture, ...)
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 6@armillz
Microservices: utopia or nightmare?
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 7@armillz
Microservices are all the rage!
“Let’s take all of our busted monolithic systems and
split them up!” they said.
Successful microservices require a combination of
technical architecture, automation, and
development methodology that all relate closely to
Agile and DevOps
Without the right mix of these, things often don’t go
as well as you planned
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 8@armillz
Microservices in the non-ideal real world
• Federated services with hidden dependencies
• Independently changing applications, but ...
• Loosely coupled, unspecified, AND STILL-PRESENT dependencies
• Teams that don’t talk to each other
• Hide behind (poorly defined) APIs
• Freedom to move at their own pace
• Desire: Deploy small changes rapidly to production
• Problem: can’t figure out which versions work together, even in test environments
You have many things changing at different rates (fast vs. never) with
“decoupled” interfaces that are hard to verify independently
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 9@armillz
What you need
•Bring teams closer
•Continuously integrate services
•Deploy integrated services into various environments
•Frequently test still-monolithic system in pieces and as a whole
This looks suspiciously like a DevOps problem
Conclusion: your DevOps pipeline is critical to your success
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 10@armillz
Automation is Critical to Success
“If you are building microservices and you don’t have a
highly automated CI/CD pipeline in place, you’ve
already lost.”
- some really smart guy I was talking to at some point
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 13@armillz
Context:
Modern Microservices Example
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 14@armillz
Dozen-ish independent services acting as a federated product in a registration and workflow system
React/JS front-end UI, Java Spring Boot REST Services, PostgreSQL back-end
Service Architecture
NRPM
UI
REST API
DB
Page
Service
Case Mgmt
UI
REST API
DB
App Entry
UI
REST API
DB
V&A
UI
REST API
DB
Auth
UI
REST API
DB
Gateway
UI
REST API
DB
UI
PostgreSQL RDS instance in AWS
External
Services
REST API
REST API
REST API
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 15@armillz
● Docker containers of all services (application and devops)
● OpenShift Kubernetes Distribution (OKD)
● Amazon Web Services cloud platform
Operating Platform
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 16@armillz
Deployment Architecture
16
DevOps Cluster
Jenkins
Nexus
DB
Jenkins
Jenkins
Jenkins
master infra app app
Sonar
Qube
DEV Cluster
master infra app app
TEST Cluster
master infra app app
PROD Cluster
master infra app app
DBDB
Amazon Web Services
DB
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 17@armillz
DevOps Baseline – what do we mean?
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 18@armillz
The Many Things of DevOps
Notice that not many of these are PURELY the responsibility of one person or even team
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 20@armillz
Ok, But What Do We Actually Mean by DevOps?
• DevOps is the natural evolution of Agile: how to get working software into the hands of the
people who need it rapidly and reliably
• Who? Developers, Product Owners, ultimately users
• When? Now!
• Seriously … measure delivery with "minutes"
• How? Team collaboration, processes, automation, tools
• Extension of Agile
• Focus on value delivery
• Common sense
• Enable developers to be creative and do great work
• Especially important with microservices due to the rate of change and number teams and
services involved
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 21@armillz
A DevOps Solution Includes...
• Team structure and skill set across the delivery chain
• Infrastructure and tools to support automation and team collaboration
• Delivery pipeline to build, package, deploy, test for repositories and branches of code
• Test automation (lots and lots of it) capable of evaluating changes
... all wrapped up in a supporting Agile development methodology
Overall: the ability to delivery independent changes into a working environment rapidly and
reliability while maintaining a high quality system
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 22@armillz
Pipeline Design: Patterns of Success
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 24@armillz
Pipeline defines delivery process
The software delivery process is automated through a CI/CD pipeline to deliver application
microservices into various test (and eventually production) environments
Continuous MonitoringContinuous Integration
BuildCode
Continuous Delivery
commit
DEV
TEST
PROD
Compile
Test
Package
Publish
Unit Test
Integration Test
Code coverage
Code Scanning
Static Analysis
Bugs
Vulnerabilities
Technical Debt
Package
Dependency
checking
Vulnerable
components
Deploy Test
Provision
Install
Configure
Vulnerability Scanning
Deployment verification
Smoke test
Manual Testing
- Exploratory
- UAT
Functional Testing
- Behavioral
- API
- Web UI
Non-Functional Testing
- Load/Performance
- Web Security
Platform
Vulnerabilities
Test Results Defects
Change Requests
Test Promote
Operate
Monitor
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 26@armillz
Pipeline links to branching strategy
• Strive for "main line" development
• Small changes are easy to build, test, deploy, AND FIX
• Use short, small feature branches for isolated changes
• Consider Github Flow (very simple), Git Flow (complex)
• Avoid "parallel release development" at all costs
• What problems does branching cause vs. solve?
• Delivery pipeline will align with branching
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 27@armillz
Pattern: minimalist branching delivery pattern
• Features – simple CI build with compile, static analysis, unit test
• Pull Request (merge request) – pre-merge with master, deploy to on-demand ephemeral
environment, run automated tests (more on tests later)
• Use peer review to investigate impact on other services
• Master – after successful merge, build and deploy to dev-staging environment, run more
tests, promote upwards
• Remember:
SMALLER IS BETTER
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 28@armillz
Foreshadowing: branch everything with the code
• Tenet of DevOps and CI/CD: version-control everything so you can automate
everything
• We will discuss a lot of different artifacts that match your application code
• Application code
• Build scripts
• Deployment scripts
• Database scripts
• Tests
• ... more
• All of these should be stored and branched as a related code base!
Stand by for station identification...
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 29@armillz
Pattern: independent pipelines
• Each service has it’s own pipeline (later: shared pipeline code)
• Example: use “Jenkinsfile” or localized build script configuration
• Major parts of the “independent” pipelines
• Compile
• Unit test
• Static analysis (security, quality, composition analysis)
• Packaging
• Integration testing ... Pre/post deployment
• Test deployment
• Is your service independently deployable?
• How much testing can you do?
• What are your dependencies? (and what will eventually depend on you?)
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 30@armillz
Pattern: pipeline should branch with code
• Your build/delivery process will evolve with the code
• Example: Build scripts ... historically always live with code (maven, gradle, ...)
• Your “pipeline” automation code should live with code, as well.
• Pattern: Use “pipeline as code” to define your pipeline automation
• NOT: Traditional complicated UI-driven multi-job monsters (more later)
• Store pipeline definition (e.g., “Jenkinsfile”) in repository with code
• New branches of code can have local build/test pipeline updates
• Similar for deployment and configuration scripts (more later)
• Ansible/Chef – playbooks and recipes change to address code changes (new
config parameters, etc.)
• Docker/Kubernetes/Helm – orchestration and deployment YAML for containers
adjust with code
Ideally, these live in the same code repository
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 31@armillz
Pipelines run in parallel
• Each of your independent service pipelines can (will) execute in parallel
• This can be very resource intensive – plan for it
• At some point, you need to deploy your code into an “environment”
• Will these be shared/mixed environments, or dedicated to the independent pipeline?
• Note: static environment can cause issues if you are changing multiple things simultaneously
• “Dynamic” environments become VERY beneficial...
App
A
W
B
C
D
App
A
W
B
C
D
Service “A”
Service “B”
App
A
W
B
C
D
- OR -
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 32@armillz
Pattern: dynamic on-demand environments
• Microservices can have high rates of change across many services
• This can continually disrupt shared/static environments as new services are updated
• The ability to launch a new environment with all supporting services becomes valuable
• Replicate current PROD (or other) version of services
• Deploy newly changed service into replica
• Test, test, test
• Seeding data becomes important for new copies
App A
W
B
C
D
App A
W
B
C
D
PROD Replica
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 33@armillz
Sidebar: full VM’s vs. Docker containers
• Containers isolate processes and make micro-services much simpler and more efficient
• Containers enable easy on-demand test environments (much lighter weight)
• Containers allow widely disparate application architectures to be deployed on shared
infrastructure
• NOTE: You will likely NEED a container orchestration system (Kubernetes, Swarm, Mesos,
Compose, ...)
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 35@armillz
Pattern: database change management
• Microservices frequently need some form of persistence (e.g., database)
• Relational databases often require schema and data changes as the code evolves
(non-SQL databases are a different story)
• These changes need to be version controlled and managed just like everything else
• The changes may or may-not have similar change lifecycles to the code
• Schema
• Data
• Classes of test data:
• Reference data (lookup tables, workflow definitions, etc.)
• Sample data (basic data to show functionality)
• Test data (more complicated data to support testing)
• Use a tool to manage this: Liquibase, Flyway, ...
• Make sure your “data” and “development” team members understand each other
All of this can (and should) be stored and branched with the code
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 37@armillz
Pipeline join points
• At some point, your pipelines come together and
services work in a combined environment
• You will need to deploy multiple services and make
them work together
• Need some capture of “versions” to know which
versions are where and how they are verified against
each other
• Options:
• extensions of independent pipelines
• ”join” jobs that deploy lots of things together
• Note: consider “locking” shared environment during
testing to avoid blips and test failures
App
A
W
B
C
D
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 38@armillz
Side Bar: versioning … do you need it?
• Keep It Simple, (Stupid)
• Is your app a multi-version beast, or simple end-of-the line single deployment?
• All software elements need a traceable identifier
• Source Code -> Deployable Package -> Running Software
• Semantic versioning vs. unique identifier
• Integrate version control identifiers with deployed code
• Consider using git SHA version label to enable easy traceability
• Very few deployable applications need linear versioning
• Does it matter if it’s 1.2.3 or 20180317 or a3e78b19d?
• Component libraries with APIs frequently need identifiable, increasing versions
• my-util:1.2.3 vs. 1.3.1 with different capabilities that link to your code interfaces
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 39@armillz
Pattern: capturing a “product” version
• As your services progress through environments, it’s useful to know what versions of services
work with each other
• Your “promotion” mechanism might need to consider moving groups of services together
• Single service
• Group of known-good services
• This may identify your subsystem of coupled monoliths
• Capture versions of your services
• SHA, semver, whatever
• Pattern: typically capture in single “release inventory” file to feed to deployment automation scripts
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 40@armillz
• Installation and configuration automated through CM automation framework
• Docker, Kubernetes, Ansible, Chef
• Example:
• deployment of microservices is automated and version controlled through OpenShift
templates (yaml files)
• Secrets/properties injected from OpenShift (different per environment)
• Unique environment configuration specified in property configuration files
managed by deployment pipeline
• staging-staging.properties
• uat-uat.properties
• This code must align with app code
• Remember branching?
• Different but related to environment definitions
40
Pattern: deployment automation as code
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 41@armillz
Pattern: UI and REST service code integration
• Problem: UI invokes back-end services through APIs
• What happens when they need to change?
• How do you test these continuously?
• Similar to cross-service integration
• Scenario 1: Full-stack developers building UI and API
• Consider having UI and API code live together
• Aligns UI and API changes automatically
• Scenario 2: Separate UI and API teams (anti-pattern?)
• UI and API might change at different rates
• Need mechanism to alter/change APIs (deprecate, multiple versions, etc.)
• UI and API might be in different repositories
• This leads to cross-service testing issues (stay tuned for a few more slides...)
App
Aw
W
Bw
Cw
Dw
A
B
C
D
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 42@armillz
Coding Your Pipeline
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 43@armillz
Individual pipeline-as-code implementation
• Old way: complicated, multi-job, GUI-driven pipeline job structures and configuration
• Modern way (e.g., Jenkins 2.x): pipeline-as-code “Jenkinsfile” groovy scripts
• Single Jenkins job scans all repositories in a Github organization to build sub-jobs
• Each code repository has Jenkinsfile with individual pipeline definition
• Pipeline code branches/evolves with application
• Less stuff for central team to maintain
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 44@armillz
Pipeline code simplification and modularization
• Pipelines for similar services will naturally look very similar
• Complicated
• Repetitive
• Goal: centralize the bulk of the shared activities into code libraries
• Customizable for unique independent team needs
• Maintained by central DevOps architecture support team
- vs. -
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 45@armillz
Pattern: central pipeline-as-code structure
• Modularization is good ... improve understanding and avoid massive replication
• Pipeline DSL shared libraries
• Jenkins jobs – all captured as version controlled DSL, can be customized per service
• Core Pipeline Stages - build/deploy stages (overridable)
• Core Pipeline Libraries – shared utilities, tied to platform architecture (locked)
• NOTE: Must be able to branch these libraries for pipeline updates
app: Jenkinsfile
core-stages
core-library
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 46@armillz
Ensuring quality (aka: testing)
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 47@armillz
Your efforts in DevOps (and microservices)
will fail without proper automated testing
and assessment that is fully integrated into
the pipeline.
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 48@armillz
Goals for testing in DevOps (and microservices)
• Keep software in continuous working state
• Establish confidence in change (within and across services)
• Force teams to focus and build quality in (and agree it’s important)
Important: everywhere I say “Quality” I mean “Quality, Security,
Performance, and all the other –ilities” you can think of for your
software.
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 49@armillz
Test factors to consider with microservices
• Take every opportunity you can to test the code
• This will enable rapid changes throughout business cycle
• Testing paths to consider
• Testing in isolation (totally in your control)
• verify what you think your contract is
• Testing with downstream dependencies (database, other services)
• What else do you need to work properly?
• Verify what you think other contracts are
• Testing with upstream dependencies (UI, other services)
• Who needs YOU to work properly?
• Verify what other people think your contract (actually) is
• ”The Pipeline” needs enough global knowledge to orchestrate this
Pathological case: what happens when APIs change unexpectedly or don’t
fulfill their (poorly specified) contracts?
App
W
B
D
A
C
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 51@armillz
Test stages in the pipeline
• Opportunities to test services individually and together throughout the pipeline
• Scope and purpose changes as you progress through stages
Micro Service
- UI
Unit
Test
Build
Static
Analysis
Deploy
Ephem
Deploy
Dev
Staging
merge
integ test (all)
pass
Deploy
UAT
pass
Deploy
PRODPR
Security
Test
Micro Service -
API
Unit
Test
Build
Static
Analysis
Deploy
Ephem
ui func test (self)
api func test
(self)
Ext
Integr
Tests
Data
Driven T
ests
Smoke
Test
regress test
(all)
integ test:
- up (ui api)
- down
ui+api smoke
test (all)
ui+api smoke
test (all)
regress test
(self)
regress test
(self)
integ test:
- up (ui api)
- down
ui+api
smoke
test (all)
Security
Test
promote promote
ui+api
smoke
test (all)
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 52@armillz
Pattern: tests live with code and pipeline
•Tests for microservices should live with the microservice code
• Unit tests ... Part of code tree (e.g., junit) ... Duh!
• Automated REST tests ... Part of code repository (Postman, REST Assured, ...)
• UI tests ... Part of UI repository
•This allows you to easily match code version to test version
Pro tip: bundling tests in a docker container makes them easy for anyone
to execute
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 53@armillz
Challenge: cross-service and cross-branch testing
• Major problem: multiple services (e.g., UI or multiple APIs) need similar linked changes
• How do I implement this?
• Code based solutions (feature flags, API versions, ...)
• Deployment based solutions (concurrent running service versions)
• More important: how do I test this?
• Will depend on your implementation
• May require the ability to link changes between services/repositories
App
A’
W
B
C’
D
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 54@armillz
Pattern: testing simultaneous changes
• Deploy and execute simultaneous branch and cross-service testing
• Example: specify multiple builds or deployment versions during test environment creation
• Build/deploy multiple changed versions into same environment
• Minimize concurrent versions to avoid integration problems
• Force the integration problems as soon as possible
• Anti-pattern: multiple versions of all APIs deployed everywhere
• How do you wire them together?
• Do you have to develop parallel versions? ß torture
App
A’
W
B
C’
D
App
A’
W
B
C’
D
A
?
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 55@armillz
Important Non-Pipeline Aspects
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 56@armillz
Importance of team structure and communication
• Teams must align with delivery process
• Your teams are likely part of a shared product
• If not ... Great! Rock on!
• If so, don’t pretend to be separate
• Ever had problems with remote, isolated vendors?
• Communicate with each other!
• Regardless, you will likely have shared patterns (devops, testing, architecture) that can be
leveraged to avoid re-inventing the wheel in your enterprise
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 57@armillz
Example “DevOps” product team structure
Our team organization on a 50-ish person development project
Important for the vertical development teams to actually work with each other (painful at first)
Horizontal Teams
DevOps Engr
DevOps Lead
Platform Engr
Platform Lead
Platform Engr Security
Security
Security
Performance
Performance
Agile Vertical Team
Scrum master
DevOps Engr
Biz Analyst
Agile Tester
Front End
Full Stack
Agile Vertical Team
Scrum master
DevOps Engr
Biz Analyst
Agile Tester
Front End
Full Stack
Agile Vertical Team
Scrum master
DevOps Engr
Biz Analyst
Agile Tester
Front End
Full Stack
Agile Vertical Team
Scrum master
DevOps Engr
Biz Analyst
Agile Tester
Front End
Full Stack
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 58@armillz
Integrating with software architecture
• Not all software lends itself to easy build, test, and deployment
• Work directly with software architecture and development teams
• Meaningful, testable service architecture is critical
• Each software service must support:
• Rapid build
• Automated test (controllability, observability) – between services
• Data initialization
• Installation/configuration
• Monitoring/metrics
• Cross-service debugging
• Standards and "Definition of Done" should reflect this
• Development stories aren’t complete until all these things work
• Keep product value and cross-service features in mind
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 60@armillz
Take-aways
• Version control everything, automate everything
• Your pipeline implements your branching strategy
• Independent pipelines with join points
• Use dynamic environments (containers!)
• Store and branch everything together – code, tests, database, pipeline code
• Test in isolation, test with downstream, and test with upstream
• Use shared/central pipeline libraries to avoid duplication and enforce standards
• And don’t forget:
WORK TOGETHER, DAMMIT!
Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 61@armillz
Questions?
Thank you!
rich.mills@coveros.com
@armillz
https://www.coveros.com/services/devops/
Drop by our booth!

Mais conteĂşdo relacionado

Mais procurados

The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)
The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)
The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)Alex Henthorn-Iwane
 
Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)Marco Corona
 
Certified professional - DevOps Foundation (CP-DOF) course information
Certified professional - DevOps Foundation (CP-DOF) course informationCertified professional - DevOps Foundation (CP-DOF) course information
Certified professional - DevOps Foundation (CP-DOF) course informationDevOps++ Alliance
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsIBM UrbanCode Products
 
Dev ops for cross platform mobile modeveast 12
Dev ops for cross platform mobile   modeveast 12Dev ops for cross platform mobile   modeveast 12
Dev ops for cross platform mobile modeveast 12Sanjeev Sharma
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCAdrian Cockcroft
 
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019ciberkleid
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppteduxfactor .com
 
What Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiWhat Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiVMware Tanzu
 
Introduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemIntroduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemKubeSphere
 
DevOps overview and tech interview tips
DevOps overview and tech interview tipsDevOps overview and tech interview tips
DevOps overview and tech interview tipsDaniel Bezerra
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonApigee | Google Cloud
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15Edureka!
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training pptKhalidQureshi31
 
DevOps on Oracle Cloud
DevOps on Oracle CloudDevOps on Oracle Cloud
DevOps on Oracle CloudMee Nam Lee
 
Using Infrastructure as an Accelerator of DevOps Maturity
Using Infrastructure as an Accelerator of DevOps MaturityUsing Infrastructure as an Accelerator of DevOps Maturity
Using Infrastructure as an Accelerator of DevOps MaturityJosh Atwell
 

Mais procurados (19)

The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)
The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)
The Carrier DevOps Trend (Presented to Okinawa Open Days Conference)
 
Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)
 
Certified professional - DevOps Foundation (CP-DOF) course information
Certified professional - DevOps Foundation (CP-DOF) course informationCertified professional - DevOps Foundation (CP-DOF) course information
Certified professional - DevOps Foundation (CP-DOF) course information
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
Dev ops for cross platform mobile modeveast 12
Dev ops for cross platform mobile   modeveast 12Dev ops for cross platform mobile   modeveast 12
Dev ops for cross platform mobile modeveast 12
 
DevOps Hand On Workshop
DevOps Hand On WorkshopDevOps Hand On Workshop
DevOps Hand On Workshop
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCC
 
Top DevOps tools
Top DevOps toolsTop DevOps tools
Top DevOps tools
 
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019
 
How to Build a DevOps Toolchain
How to Build a DevOps ToolchainHow to Build a DevOps Toolchain
How to Build a DevOps Toolchain
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
What Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiWhat Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun Bakshi
 
Introduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemIntroduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystem
 
DevOps overview and tech interview tips
DevOps overview and tech interview tipsDevOps overview and tech interview tips
DevOps overview and tech interview tips
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at Amazon
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
DevOps on Oracle Cloud
DevOps on Oracle CloudDevOps on Oracle Cloud
DevOps on Oracle Cloud
 
Using Infrastructure as an Accelerator of DevOps Maturity
Using Infrastructure as an Accelerator of DevOps MaturityUsing Infrastructure as an Accelerator of DevOps Maturity
Using Infrastructure as an Accelerator of DevOps Maturity
 

Semelhante a DevOps Patterns to Enable Success in Microservices

Engineering DevOps and Cloud
Engineering DevOps and CloudEngineering DevOps and Cloud
Engineering DevOps and CloudMarc Hornbeek
 
Made for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSMade for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSVMware Tanzu
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Stormy Peters
 
GitOps, Jenkins X &Future of CI/CD
GitOps, Jenkins X &Future of CI/CDGitOps, Jenkins X &Future of CI/CD
GitOps, Jenkins X &Future of CI/CDRakuten Group, Inc.
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker XebiaLabs
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems
 
Improve productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryImprove productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryAmazon Web Services
 
Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...
Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...
Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...CA Technologies
 
CI/CD for Containers: A Way Forward for Your DevOps Pipeline
CI/CD for Containers: A Way Forward for Your DevOps PipelineCI/CD for Containers: A Way Forward for Your DevOps Pipeline
CI/CD for Containers: A Way Forward for Your DevOps PipelineAmazon Web Services
 
What is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptxWhat is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptxCalidad Infotech
 
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...OW2
 
First Caracas MuleSoft Meetup Slides
First Caracas MuleSoft Meetup SlidesFirst Caracas MuleSoft Meetup Slides
First Caracas MuleSoft Meetup SlidesFernando Silva
 
AWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the CloudAWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the CloudCobus Bernard
 
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the CloudCobus Bernard
 
AWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the CloudAWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the CloudCobus Bernard
 
Untangling DevOps - A high-level overview and how we got here
Untangling DevOps -  A high-level overview and how we got hereUntangling DevOps -  A high-level overview and how we got here
Untangling DevOps - A high-level overview and how we got hereBarton George
 
IBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEIBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEFilipe Miranda
 
Build 12-Factor apps with Docker
Build 12-Factor apps with DockerBuild 12-Factor apps with Docker
Build 12-Factor apps with DockerJohn Zaccone
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics sbbabu
 
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...Yves LE CLEACH
 

Semelhante a DevOps Patterns to Enable Success in Microservices (20)

Engineering DevOps and Cloud
Engineering DevOps and CloudEngineering DevOps and Cloud
Engineering DevOps and Cloud
 
Made for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSMade for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaS
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016
 
GitOps, Jenkins X &Future of CI/CD
GitOps, Jenkins X &Future of CI/CDGitOps, Jenkins X &Future of CI/CD
GitOps, Jenkins X &Future of CI/CD
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a Startup
 
Improve productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryImprove productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & Delivery
 
Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...
Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...
Securing Your Enterprise Continuous Delivery Pipelines with CA Automation Sol...
 
CI/CD for Containers: A Way Forward for Your DevOps Pipeline
CI/CD for Containers: A Way Forward for Your DevOps PipelineCI/CD for Containers: A Way Forward for Your DevOps Pipeline
CI/CD for Containers: A Way Forward for Your DevOps Pipeline
 
What is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptxWhat is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptx
 
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
 
First Caracas MuleSoft Meetup Slides
First Caracas MuleSoft Meetup SlidesFirst Caracas MuleSoft Meetup Slides
First Caracas MuleSoft Meetup Slides
 
AWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the CloudAWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the Cloud
 
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
 
AWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the CloudAWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the Cloud
 
Untangling DevOps - A high-level overview and how we got here
Untangling DevOps -  A high-level overview and how we got hereUntangling DevOps -  A high-level overview and how we got here
Untangling DevOps - A high-level overview and how we got here
 
IBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONEIBM Think 2020 Openshift on IBM Z and LinuxONE
IBM Think 2020 Openshift on IBM Z and LinuxONE
 
Build 12-Factor apps with Docker
Build 12-Factor apps with DockerBuild 12-Factor apps with Docker
Build 12-Factor apps with Docker
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
 

Último

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Último (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

DevOps Patterns to Enable Success in Microservices

  • 1. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 1@armillz DevOps Patterns to Enable Success with Microservices Richard Mills DevOps Solution Lead, Coveros Inc. rich.mills@coveros.com @armillz
  • 2. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 2@armillz Who is this guy? • Me: Mad-Software-Developer turned Mad-Software-Engineer turned DevOps-Solution-Architect. Pragmatist. Particular focus on tools and automation. CI, CD, Agile, DevOps … what’s next? • PS: Thanks for inventing the term “DevOps” to describe what I like to do. • Pays my bills: Coveros helps organizations accelerate the delivery of secure, reliable software using agile methods. We provide expert consulting, mentoring, and training in: • Agile transformations, coaching, development, • Agile testing and automation • DevOps and DevSecOps transformation and implementations • DevOps engineering
  • 3. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 3@armillz Why is he here? • Share some of my experiences (and failures) on a journey from “classic” enterprise monolithic systems into the “utopia” of microservices architecture • Show some patterns for delivering highly-buzzword-compliant, microservices-based software applications • Give you a reference to walk away with • NOT: Explain fundamentals of DevOps (or Agile) • NOT: Sell you on DevOps (or Agile), necessarily WARNING: I do everything very fast. Try to keep up.
  • 4. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 4@armillz What are we going to cover? • Problems with (non-ideal) microservices • Context example • Pipeline design and implementation patterns • Testing and quality • Other important non-pipeline stuff (team, architecture, ...)
  • 5. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 6@armillz Microservices: utopia or nightmare?
  • 6. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 7@armillz Microservices are all the rage! “Let’s take all of our busted monolithic systems and split them up!” they said. Successful microservices require a combination of technical architecture, automation, and development methodology that all relate closely to Agile and DevOps Without the right mix of these, things often don’t go as well as you planned
  • 7. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 8@armillz Microservices in the non-ideal real world • Federated services with hidden dependencies • Independently changing applications, but ... • Loosely coupled, unspecified, AND STILL-PRESENT dependencies • Teams that don’t talk to each other • Hide behind (poorly defined) APIs • Freedom to move at their own pace • Desire: Deploy small changes rapidly to production • Problem: can’t figure out which versions work together, even in test environments You have many things changing at different rates (fast vs. never) with “decoupled” interfaces that are hard to verify independently
  • 8. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 9@armillz What you need •Bring teams closer •Continuously integrate services •Deploy integrated services into various environments •Frequently test still-monolithic system in pieces and as a whole This looks suspiciously like a DevOps problem Conclusion: your DevOps pipeline is critical to your success
  • 9. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 10@armillz Automation is Critical to Success “If you are building microservices and you don’t have a highly automated CI/CD pipeline in place, you’ve already lost.” - some really smart guy I was talking to at some point
  • 10. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 13@armillz Context: Modern Microservices Example
  • 11. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 14@armillz Dozen-ish independent services acting as a federated product in a registration and workflow system React/JS front-end UI, Java Spring Boot REST Services, PostgreSQL back-end Service Architecture NRPM UI REST API DB Page Service Case Mgmt UI REST API DB App Entry UI REST API DB V&A UI REST API DB Auth UI REST API DB Gateway UI REST API DB UI PostgreSQL RDS instance in AWS External Services REST API REST API REST API
  • 12. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 15@armillz ● Docker containers of all services (application and devops) ● OpenShift Kubernetes Distribution (OKD) ● Amazon Web Services cloud platform Operating Platform
  • 13. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 16@armillz Deployment Architecture 16 DevOps Cluster Jenkins Nexus DB Jenkins Jenkins Jenkins master infra app app Sonar Qube DEV Cluster master infra app app TEST Cluster master infra app app PROD Cluster master infra app app DBDB Amazon Web Services DB
  • 14. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 17@armillz DevOps Baseline – what do we mean?
  • 15. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 18@armillz The Many Things of DevOps Notice that not many of these are PURELY the responsibility of one person or even team
  • 16. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 20@armillz Ok, But What Do We Actually Mean by DevOps? • DevOps is the natural evolution of Agile: how to get working software into the hands of the people who need it rapidly and reliably • Who? Developers, Product Owners, ultimately users • When? Now! • Seriously … measure delivery with "minutes" • How? Team collaboration, processes, automation, tools • Extension of Agile • Focus on value delivery • Common sense • Enable developers to be creative and do great work • Especially important with microservices due to the rate of change and number teams and services involved
  • 17. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 21@armillz A DevOps Solution Includes... • Team structure and skill set across the delivery chain • Infrastructure and tools to support automation and team collaboration • Delivery pipeline to build, package, deploy, test for repositories and branches of code • Test automation (lots and lots of it) capable of evaluating changes ... all wrapped up in a supporting Agile development methodology Overall: the ability to delivery independent changes into a working environment rapidly and reliability while maintaining a high quality system
  • 18. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 22@armillz Pipeline Design: Patterns of Success
  • 19. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 24@armillz Pipeline defines delivery process The software delivery process is automated through a CI/CD pipeline to deliver application microservices into various test (and eventually production) environments Continuous MonitoringContinuous Integration BuildCode Continuous Delivery commit DEV TEST PROD Compile Test Package Publish Unit Test Integration Test Code coverage Code Scanning Static Analysis Bugs Vulnerabilities Technical Debt Package Dependency checking Vulnerable components Deploy Test Provision Install Configure Vulnerability Scanning Deployment verification Smoke test Manual Testing - Exploratory - UAT Functional Testing - Behavioral - API - Web UI Non-Functional Testing - Load/Performance - Web Security Platform Vulnerabilities Test Results Defects Change Requests Test Promote Operate Monitor
  • 20. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 26@armillz Pipeline links to branching strategy • Strive for "main line" development • Small changes are easy to build, test, deploy, AND FIX • Use short, small feature branches for isolated changes • Consider Github Flow (very simple), Git Flow (complex) • Avoid "parallel release development" at all costs • What problems does branching cause vs. solve? • Delivery pipeline will align with branching
  • 21. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 27@armillz Pattern: minimalist branching delivery pattern • Features – simple CI build with compile, static analysis, unit test • Pull Request (merge request) – pre-merge with master, deploy to on-demand ephemeral environment, run automated tests (more on tests later) • Use peer review to investigate impact on other services • Master – after successful merge, build and deploy to dev-staging environment, run more tests, promote upwards • Remember: SMALLER IS BETTER
  • 22. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 28@armillz Foreshadowing: branch everything with the code • Tenet of DevOps and CI/CD: version-control everything so you can automate everything • We will discuss a lot of different artifacts that match your application code • Application code • Build scripts • Deployment scripts • Database scripts • Tests • ... more • All of these should be stored and branched as a related code base! Stand by for station identification...
  • 23. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 29@armillz Pattern: independent pipelines • Each service has it’s own pipeline (later: shared pipeline code) • Example: use “Jenkinsfile” or localized build script configuration • Major parts of the “independent” pipelines • Compile • Unit test • Static analysis (security, quality, composition analysis) • Packaging • Integration testing ... Pre/post deployment • Test deployment • Is your service independently deployable? • How much testing can you do? • What are your dependencies? (and what will eventually depend on you?)
  • 24. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 30@armillz Pattern: pipeline should branch with code • Your build/delivery process will evolve with the code • Example: Build scripts ... historically always live with code (maven, gradle, ...) • Your “pipeline” automation code should live with code, as well. • Pattern: Use “pipeline as code” to define your pipeline automation • NOT: Traditional complicated UI-driven multi-job monsters (more later) • Store pipeline definition (e.g., “Jenkinsfile”) in repository with code • New branches of code can have local build/test pipeline updates • Similar for deployment and configuration scripts (more later) • Ansible/Chef – playbooks and recipes change to address code changes (new config parameters, etc.) • Docker/Kubernetes/Helm – orchestration and deployment YAML for containers adjust with code Ideally, these live in the same code repository
  • 25. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 31@armillz Pipelines run in parallel • Each of your independent service pipelines can (will) execute in parallel • This can be very resource intensive – plan for it • At some point, you need to deploy your code into an “environment” • Will these be shared/mixed environments, or dedicated to the independent pipeline? • Note: static environment can cause issues if you are changing multiple things simultaneously • “Dynamic” environments become VERY beneficial... App A W B C D App A W B C D Service “A” Service “B” App A W B C D - OR -
  • 26. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 32@armillz Pattern: dynamic on-demand environments • Microservices can have high rates of change across many services • This can continually disrupt shared/static environments as new services are updated • The ability to launch a new environment with all supporting services becomes valuable • Replicate current PROD (or other) version of services • Deploy newly changed service into replica • Test, test, test • Seeding data becomes important for new copies App A W B C D App A W B C D PROD Replica
  • 27. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 33@armillz Sidebar: full VM’s vs. Docker containers • Containers isolate processes and make micro-services much simpler and more efficient • Containers enable easy on-demand test environments (much lighter weight) • Containers allow widely disparate application architectures to be deployed on shared infrastructure • NOTE: You will likely NEED a container orchestration system (Kubernetes, Swarm, Mesos, Compose, ...)
  • 28. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 35@armillz Pattern: database change management • Microservices frequently need some form of persistence (e.g., database) • Relational databases often require schema and data changes as the code evolves (non-SQL databases are a different story) • These changes need to be version controlled and managed just like everything else • The changes may or may-not have similar change lifecycles to the code • Schema • Data • Classes of test data: • Reference data (lookup tables, workflow definitions, etc.) • Sample data (basic data to show functionality) • Test data (more complicated data to support testing) • Use a tool to manage this: Liquibase, Flyway, ... • Make sure your “data” and “development” team members understand each other All of this can (and should) be stored and branched with the code
  • 29. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 37@armillz Pipeline join points • At some point, your pipelines come together and services work in a combined environment • You will need to deploy multiple services and make them work together • Need some capture of “versions” to know which versions are where and how they are verified against each other • Options: • extensions of independent pipelines • ”join” jobs that deploy lots of things together • Note: consider “locking” shared environment during testing to avoid blips and test failures App A W B C D
  • 30. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 38@armillz Side Bar: versioning … do you need it? • Keep It Simple, (Stupid) • Is your app a multi-version beast, or simple end-of-the line single deployment? • All software elements need a traceable identifier • Source Code -> Deployable Package -> Running Software • Semantic versioning vs. unique identifier • Integrate version control identifiers with deployed code • Consider using git SHA version label to enable easy traceability • Very few deployable applications need linear versioning • Does it matter if it’s 1.2.3 or 20180317 or a3e78b19d? • Component libraries with APIs frequently need identifiable, increasing versions • my-util:1.2.3 vs. 1.3.1 with different capabilities that link to your code interfaces
  • 31. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 39@armillz Pattern: capturing a “product” version • As your services progress through environments, it’s useful to know what versions of services work with each other • Your “promotion” mechanism might need to consider moving groups of services together • Single service • Group of known-good services • This may identify your subsystem of coupled monoliths • Capture versions of your services • SHA, semver, whatever • Pattern: typically capture in single “release inventory” file to feed to deployment automation scripts
  • 32. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 40@armillz • Installation and configuration automated through CM automation framework • Docker, Kubernetes, Ansible, Chef • Example: • deployment of microservices is automated and version controlled through OpenShift templates (yaml files) • Secrets/properties injected from OpenShift (different per environment) • Unique environment configuration specified in property configuration files managed by deployment pipeline • staging-staging.properties • uat-uat.properties • This code must align with app code • Remember branching? • Different but related to environment definitions 40 Pattern: deployment automation as code
  • 33. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 41@armillz Pattern: UI and REST service code integration • Problem: UI invokes back-end services through APIs • What happens when they need to change? • How do you test these continuously? • Similar to cross-service integration • Scenario 1: Full-stack developers building UI and API • Consider having UI and API code live together • Aligns UI and API changes automatically • Scenario 2: Separate UI and API teams (anti-pattern?) • UI and API might change at different rates • Need mechanism to alter/change APIs (deprecate, multiple versions, etc.) • UI and API might be in different repositories • This leads to cross-service testing issues (stay tuned for a few more slides...) App Aw W Bw Cw Dw A B C D
  • 34. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 42@armillz Coding Your Pipeline
  • 35. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 43@armillz Individual pipeline-as-code implementation • Old way: complicated, multi-job, GUI-driven pipeline job structures and configuration • Modern way (e.g., Jenkins 2.x): pipeline-as-code “Jenkinsfile” groovy scripts • Single Jenkins job scans all repositories in a Github organization to build sub-jobs • Each code repository has Jenkinsfile with individual pipeline definition • Pipeline code branches/evolves with application • Less stuff for central team to maintain
  • 36. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 44@armillz Pipeline code simplification and modularization • Pipelines for similar services will naturally look very similar • Complicated • Repetitive • Goal: centralize the bulk of the shared activities into code libraries • Customizable for unique independent team needs • Maintained by central DevOps architecture support team - vs. -
  • 37. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 45@armillz Pattern: central pipeline-as-code structure • Modularization is good ... improve understanding and avoid massive replication • Pipeline DSL shared libraries • Jenkins jobs – all captured as version controlled DSL, can be customized per service • Core Pipeline Stages - build/deploy stages (overridable) • Core Pipeline Libraries – shared utilities, tied to platform architecture (locked) • NOTE: Must be able to branch these libraries for pipeline updates app: Jenkinsfile core-stages core-library
  • 38. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 46@armillz Ensuring quality (aka: testing)
  • 39. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 47@armillz Your efforts in DevOps (and microservices) will fail without proper automated testing and assessment that is fully integrated into the pipeline.
  • 40. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 48@armillz Goals for testing in DevOps (and microservices) • Keep software in continuous working state • Establish confidence in change (within and across services) • Force teams to focus and build quality in (and agree it’s important) Important: everywhere I say “Quality” I mean “Quality, Security, Performance, and all the other –ilities” you can think of for your software.
  • 41. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 49@armillz Test factors to consider with microservices • Take every opportunity you can to test the code • This will enable rapid changes throughout business cycle • Testing paths to consider • Testing in isolation (totally in your control) • verify what you think your contract is • Testing with downstream dependencies (database, other services) • What else do you need to work properly? • Verify what you think other contracts are • Testing with upstream dependencies (UI, other services) • Who needs YOU to work properly? • Verify what other people think your contract (actually) is • ”The Pipeline” needs enough global knowledge to orchestrate this Pathological case: what happens when APIs change unexpectedly or don’t fulfill their (poorly specified) contracts? App W B D A C
  • 42. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 51@armillz Test stages in the pipeline • Opportunities to test services individually and together throughout the pipeline • Scope and purpose changes as you progress through stages Micro Service - UI Unit Test Build Static Analysis Deploy Ephem Deploy Dev Staging merge integ test (all) pass Deploy UAT pass Deploy PRODPR Security Test Micro Service - API Unit Test Build Static Analysis Deploy Ephem ui func test (self) api func test (self) Ext Integr Tests Data Driven T ests Smoke Test regress test (all) integ test: - up (ui api) - down ui+api smoke test (all) ui+api smoke test (all) regress test (self) regress test (self) integ test: - up (ui api) - down ui+api smoke test (all) Security Test promote promote ui+api smoke test (all)
  • 43. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 52@armillz Pattern: tests live with code and pipeline •Tests for microservices should live with the microservice code • Unit tests ... Part of code tree (e.g., junit) ... Duh! • Automated REST tests ... Part of code repository (Postman, REST Assured, ...) • UI tests ... Part of UI repository •This allows you to easily match code version to test version Pro tip: bundling tests in a docker container makes them easy for anyone to execute
  • 44. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 53@armillz Challenge: cross-service and cross-branch testing • Major problem: multiple services (e.g., UI or multiple APIs) need similar linked changes • How do I implement this? • Code based solutions (feature flags, API versions, ...) • Deployment based solutions (concurrent running service versions) • More important: how do I test this? • Will depend on your implementation • May require the ability to link changes between services/repositories App A’ W B C’ D
  • 45. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 54@armillz Pattern: testing simultaneous changes • Deploy and execute simultaneous branch and cross-service testing • Example: specify multiple builds or deployment versions during test environment creation • Build/deploy multiple changed versions into same environment • Minimize concurrent versions to avoid integration problems • Force the integration problems as soon as possible • Anti-pattern: multiple versions of all APIs deployed everywhere • How do you wire them together? • Do you have to develop parallel versions? ß torture App A’ W B C’ D App A’ W B C’ D A ?
  • 46. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 55@armillz Important Non-Pipeline Aspects
  • 47. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 56@armillz Importance of team structure and communication • Teams must align with delivery process • Your teams are likely part of a shared product • If not ... Great! Rock on! • If so, don’t pretend to be separate • Ever had problems with remote, isolated vendors? • Communicate with each other! • Regardless, you will likely have shared patterns (devops, testing, architecture) that can be leveraged to avoid re-inventing the wheel in your enterprise
  • 48. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 57@armillz Example “DevOps” product team structure Our team organization on a 50-ish person development project Important for the vertical development teams to actually work with each other (painful at first) Horizontal Teams DevOps Engr DevOps Lead Platform Engr Platform Lead Platform Engr Security Security Security Performance Performance Agile Vertical Team Scrum master DevOps Engr Biz Analyst Agile Tester Front End Full Stack Agile Vertical Team Scrum master DevOps Engr Biz Analyst Agile Tester Front End Full Stack Agile Vertical Team Scrum master DevOps Engr Biz Analyst Agile Tester Front End Full Stack Agile Vertical Team Scrum master DevOps Engr Biz Analyst Agile Tester Front End Full Stack
  • 49. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 58@armillz Integrating with software architecture • Not all software lends itself to easy build, test, and deployment • Work directly with software architecture and development teams • Meaningful, testable service architecture is critical • Each software service must support: • Rapid build • Automated test (controllability, observability) – between services • Data initialization • Installation/configuration • Monitoring/metrics • Cross-service debugging • Standards and "Definition of Done" should reflect this • Development stories aren’t complete until all these things work • Keep product value and cross-service features in mind
  • 50. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 60@armillz Take-aways • Version control everything, automate everything • Your pipeline implements your branching strategy • Independent pipelines with join points • Use dynamic environments (containers!) • Store and branch everything together – code, tests, database, pipeline code • Test in isolation, test with downstream, and test with upstream • Use shared/central pipeline libraries to avoid duplication and enforce standards • And don’t forget: WORK TOGETHER, DAMMIT!
  • 51. Š COPYRIGHT 2019 COVEROS, INC. ALL RIGHTS RESERVED. 61@armillz Questions? Thank you! rich.mills@coveros.com @armillz https://www.coveros.com/services/devops/ Drop by our booth!