Skip to main content

DevOps

·588 words·3 mins·
devops cloud my experience
Table of Contents

Terms and definitions
#

This page describes certain aspects in the area of DevOps. If not marked these statements are my own wording based upon my own thinking and experience without any engagement with respect to correctness and other opinions.

DevOps
#

An enterprise culture aiming to deliver high quality software within a short lead time and high efficiency taking all the stakeholders into account.

Dev vs Ops
#

What Devs wantWhat Ops want
Deliver fastEnsure availability
Deliver frequentlyCaution
Deliver new featuresStability and Security

Principles
#

CAMS by D. Edwards and J. Willis

  • Culture
  • Automation
  • Measurement
  • Sharing

Continuous Everything
#

coming soon

Cloud Computing
#

Utilization of dynamic IT resources offered by a cloud service platform through a network.

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.

Cloud Computing

Examples in the Amazon ecosystem:

ServiceAmazon Product
IaaSAmazon Web Services Elastic Compute Cloud (AWS EC2)
PaaSAmazon Web Services Elastic Compute Cloud Container Service (AWS ECS)
FaaSAmazon Web Services Lambda (AWS Lambda)
SaaS1Amazon Web Services SaaS

Types of Cloud Computing Delivery
#

CloudCharacteristic
Public CloudReachable from the public internet
Private CloudDedicated cloud for a single organization manged internally or externally
Hybrid CloudMix 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
#

Automated management of the life cycle of all infrastructure components in their entirety by utilization of methods and best practices from the area of software engineering.

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
#

  1. Server Sprawl2
  2. Configuration Drift
  3. Snowflake Servers
  4. Fragile Infrastructure
  5. Automation Fear
  6. Erosion

Principles
#

  1. 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
  1. Systems should be disposable
  • robust, homogeneous, and well-tested infrastructure
  • from unreliable software running on reliable hardware towards reliable software running on unreliable hardware
  1. Systems should be consistent
  • prevent configuration drift
  • fight against automation fear
  1. 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.
  1. 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:

  1. Develop and test against production-like systems
  2. Deploy with repeatable, reliable processes
  3. Monitor and validate operational quality
  4. Improve quality

  1. Better known examples for SaaS solutions are Gmail or Office365 ↩︎

  2. According to “Infrastructure as Code - Managing Servers in the Cloud” by Kief Morris - an excellent book ↩︎