Costa Rica
Last updated: 2024-12-13
Has his roots in agile and iterative
Code + systems
Table of Wiki (Click to expand)
- DevOps Foundations
- Agile Software Development: Kanban for Developers
- DevOps Foundations: Lean and Agile
- Agile Software Development: Scrum for Developers
- Transitioning from Waterfall to Agile Project Management
- Azure DevOps - How to create a Azure Devops Story Template
- Azure DevOps - How to leave from a Azure DevOps Organization
- Azure DevOps - Create Release Pipelines
- Project Management - What are Functional and Non-Functional Requirements and How to Document These
- GitHub - Building and testing Python, for more information about how to run it on PR click here
- For the CI part, it's related to the
yml
file, find an example here - For the CD part, we can use Azure DevOps pipelines, find here a guide.
- How to automate the testing, and Running python tests on GitHub using github actions
- Culture
- Automation
- Measurement
- Sharing
*More feedback loops
Considering:
- People, process, tools
- Continuous delivery coding, testing small parts
- Lean management feedback loops, visualization
- Change control
- infrastructure code - checked into source control
- Uncident command system
- Developers on call
- Public status pages
- Blameless postmortems
- Embedded teams
- Cloud - control infrastructure
- Andon Cords - someone stops the production because catch something
- Dependency injection
- Blue/ Green Deployment load balancer one is live, set - system
- Chaos Monkey - high reliable - making caos for testing
The car or the horse?
Series of tools to address out needs like pipeline Reviewing logistic tail which is related to a cost
A tool criteria is:
- programmable
- Verifiable -> exposes what is doing
- Well behaved operation point of view and deploy view
- Blameless postmortems
48 hours
everything in time line - Transparent uptime:
admit failure, sound like a human, communication channel, authentic
.
- Pathological (power oriented)
- Bereaucratic (rule-oriented)
- Generative (performance oriented)
Change for the better.
gemba
(locus the real place)
Going to the code to see gemba
Focus on symptoms: causes - effects
. People don't fail, processes do. Don't blame.
- Requirements
- Design
- Implementation
- Verification
- Maintenance
--> Sprint 1, 2, 3 (plan, desing, buil, test, review, launch)
A sample value stream map:
And the Scrum life cycle:
Collaborations - Increase productivity and more ideas
Systematic software:
- Eliminate waste
muda
Work that absorb resources add no valuemuri
Unreasonable work imposed on worker and machinesmura
Work coming in unevenly instead of the constant or regular flowValue stream
Value information flows with the costumers
Important to consider lean principles:
itsm
--- IT service managementitil
--- IT infrastructure library
-
Information Technology Infrastructure Library (ITIL): Provides a comprehensive process model based the approach of designing, managing and controlling
-
IT processes. Government standard
ITIL.11
- Service strategy
- Service design
- Service transition
- Service operation
2000 pages or more :)
And know ... calms with L of leans
- Lean management
- Amplify learning
- Decide as late as possible
- Decide as fast as possible
- Empower the team
- Build-in integrity
- See the whole
Important for Prod and Stage | |||
---|---|---|---|
Continuous delivery pipeline | Version control | Application code | Infrastructure code |
Amazon has cloud formation and azure has azure resource manager templates and so on one model for my systems, another for os system and other applications
Efficiency reasons:
- nodes 1000
- OS dependecies
- Docker
- Maven deb file and Docker containers
CMDB - Configuration Management Data Base
Zookeeper service as a central coordinated. Combining actions like Kubernetes and Mesos. The container is basically the app configuration management:
- Chef
- Puppet
- Ansible
- Salt
- Cfengine
- Services directory tools
- Etcd
- Zookeeper
- Consul
Docker - kubernetes - mesos
Private container services
- Rancher
- Google Cloud Platform
- Amazon web services ecs
- Blue live
- Green IDLE
Continuos Deploy
Continous Delivery
Continuos Integration
- Time to market goes down
- Quality increases
- Continuous Delivery limits your work in progress
- Shortens lead times for changes
- Improves mean time to recover
Annotations:
- Builds should pass the coffee test <5 minutes
- Commit small bits
- Don't leave the build broken
- Use a trunk - bases development flow
- No flaky tests
- The build should return a status, a log, and an artifact
Important:
- Only build artifacts once
- Should be immutable
- Deployment should go to a copy of the production
- Stop deploys if a previous step fails
- Deployments should be idempotent
Types of testing
- Unit testing
- Code hygiene
- Liting
- Code formatting
- Banned function checks
- Integration testing
- Security testing
- Given I have a website
- When I try to attack it with XSS
- Then it should not be vulnerable
- TDD Test Driven Development
- State desired outcome as a test
- Write code to pass the test
- Repeat
- BDD Behavior Driven Development
- Work with stakeholders
- Describe business functionality
- Test is based on natural language
- ATDD Acceptance Test Driven Development
- End user perpective
- Use case automated testing
- Testing is continuous during development
- Infrastructure testing
- Performance testing - types of performance
Annotations | |||
---|---|---|---|
Version control GitHub |
CI systems jenkins bamboo |
Build make/rake , maven , gulp , packer |
Test j unit , golint / gofmt / rubocop |
- Robot
- Protractor
- Cucumber
- Selenium
- Artifact repository
- Kitchen ci
Performace testing apachebench, meter
Security testing brakeman, veracode
Where?
- Artifactory
- Nexus
- Docker hub
- AWS s3
Deployment:
- Rundeck
- Urbancode
- Thoughtworks
- Deployinator
- Circuit breaker functionality
dm_control
if inside - Design for operation practice
- Chaos monkey --- avoid failure by making fail it
- Cassandra 3 replicas
How complex systems fail?
- Change introduces new forms of failure
- Complex system contain changing mixtures of failures latent within them
- All complex system is always running in degraded mode
Lean approach:
- Build
- Measure
- Learn
- Repeat
So:
- Service performance and uptime
- Software component metrics
- System metrics
- App metrics
- Performance: Linting, code formatting, banned function checks
- Security systems
- What happend?
- When
- Where
- Who
- Where did that ebtuty come from?
Remainders:
- Do not collect log data if you never plan to use it
- Retain log data for as long as it is conceivable that it can be used
- Log all you can but alert only what you must respond to
- Don't try to make your logging more available or more secure than your production stack
- Logs change
Software as a service monitoring:
Pingdom
Datadog
Netuitive
Ruxit
Librato
New relic
App dynamics
- Graphite
- Grafana
- Statsd
- Ganglia
- InfluxDB
- OpenTSDB
prometeus
paperduty
flapjack
- SAAS providers