Terms and definitions#
DevOps#
Dev vs Ops#
What Devs want | What Ops want |
---|---|
Deliver fast | Ensure availability |
Deliver frequently | Caution |
Deliver new features | Stability and Security |
Principles#
CAMS by D. Edwards and J. Willis
- Culture
- Automation
- Measurement
- Sharing
Continuous Everything#
coming soon
Cloud Computing#
Types of Cloud Computing Services#
Cloud Computing can be distinguished in infrastructure as a Service, Platform as a Service, Software as a Service and Function as a Service. The following picture illustrated the main differences of those types and compares them to classical on premise datacenters.
Examples in the Amazon ecosystem:
Types of Cloud Computing Delivery#
Cloud | Characteristic |
---|---|
Public Cloud | Reachable from the public internet |
Private Cloud | Dedicated cloud for a single organization manged internally or externally |
Hybrid Cloud | Mix of public and private cloud |
Advantages of Cloud Computing#
- No need to invest in data centers
- Pay as much as you consume
- Benefit from reduced costs of scaling effects
- Reduce complexity of capacity planing
- Increase speed and agility
- More focus on business instead of infrastructure
Infrastructure as Code#
Definition#
Infrastructure as Code is an approach of infrastructure automation based on practices already established in classical software development. It emphasizes consistent, repeatable routines for provisioning and changing systems as well as their configuration. Engineers use and enforce techniques commonly known in the field of software development, such as version control systems, automated testing, deployment orchestration, test driven development, and continuous integration/delivery. Therefore, infrastructure is treated as if it is software and data.
Challenges in the Cloud Age#
- Server Sprawl2
- Configuration Drift
- Snowflake Servers
- Fragile Infrastructure
- Automation Fear
- Erosion
Principles#
- Systems should be reproducible
- minimizes the overhead and costs for all stakeholders and helps to speed up team efficiency
- minimizes automation fear and risks from making changes
- Systems should be disposable
- robust, homogeneous, and well-tested infrastructure
- from unreliable software running on reliable hardware towards reliable software running on unreliable hardware
- Systems should be consistent
- prevent configuration drift
- fight against automation fear
- Processes should be repeatable
- disposable systems are easier to achieve as systems can be easily created multiple times.
- cost reduction, as IT staff does not waste time on repetitive tasks.
- Design should be flexible
- reduce the impact of a “big bang” change.
- infrastructure is able to adopt to business needs being an enabler not a showstopper
IaC and DevOps#
Infrastructure as Code provides your DevOps teams the following benefits:
- Develop and test against production-like systems
- Deploy with repeatable, reliable processes
- Monitor and validate operational quality
- Improve quality