23
Learning Design Standard DevOps Engineering

Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Learning Design Standard

DevOps Engineering

Page 2: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Contents

Revision history..............................................................................................................................

Exposure draft – request for feedback.............................................................................................

Using this Learning Design Standard................................................................................................

Overview of DevOps Engineering....................................................................................................

The evolution from Infrastructure Engineering to DevOps Engineering.........................................

Roles addressed in this standard....................................................................................................

1. DevOps Engineer............................................................................................................

2. DevOps Architect............................................................................................................

Glossary..........................................................................................................................................

Target learners................................................................................................................................

Primary...........................................................................................................................................

Secondary.......................................................................................................................................

Prerequisite qualification................................................................................................................

Qualifications and certifications.....................................................................................................

Capabilities needed for DevOps Engineering...................................................................................

Relevant SFIA skills........................................................................................................................

DevOps Engineer..........................................................................................................................

DevOps Architect..........................................................................................................................

References....................................................................................................................................

Key content areas..........................................................................................................................

Unit 1: The DevOps environment.................................................................................................

Unit 2: Coding, configuration and source control.........................................................................

Unit 3: Orchestration....................................................................................................................

Unit 4: Release & deployment......................................................................................................

Unit 5: Compliance.......................................................................................................................

Unit 6: Design & governance........................................................................................................

Building Digital Capability Program – Learning Design Standard – DevOps Engineering

Page 3: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Unit 7: Self-service........................................................................................................................

Building Digital Capability Program – Learning Design Standard – DevOps Engineering

Page 4: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Revision historyDate Version Contact Content

1/5/2019 0.1 Grant Nicholson Initial draft, based on desktop research and experience group workshop.

17/5/2019 0.2 Grant Nicholson Exposure draft version, incorporating feedback from experience group participants.

24/6/2019 1.0 Grant Nicholson First published version

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 4

Page 5: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Using this Learning Design Standard

The Australian Public Service Commission (APSC), in conjunction with the Digital Transformation Agency (DTA), has developed a collection of Learning Design Standards (LDSs) to assist with the development of digital capabilities needed by the Australian public service.

You should read this LDS in conjunction with the Digital Learning Design Standard Reference Guide. The reference guide contains guidance for providers and agencies and describes the context, range of uses and other relevant details about the collection of Learning Design Standards.

All queries relating to this standard should be directed to: [email protected].

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 5

Page 6: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Overview of DevOps Engineering

DevOps Engineering is the design, orchestration, automation and support of the environment that delivers a digital service. The environment is made of components that host services, software and data (including physical, virtual and cloud based platforms) as well as the processes and governance used to manage these.

A significant focus of DevOps Engineering is to speed up the delivery of changes to the environment and the services supported by it, through automation and self-service.

The evolution from Infrastructure Engineering to DevOps Engineering

The infrastructure that supports the digital services of an organisation is significantly evolving from the days of predominately in-housed and managed hardware and software to a more virtualised/cloud hosted/service based model. The job of managing the infrastructure has therefore also evolved from primarily dealing with hardware and system software to orchestrating the usage and interoperability of services to support business outcomes. At the same time, software development has moved from a traditional waterfall delivery model to more agile and rapid, iterative delivery models.

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to more effectively deliver and support digital services. DevOps Engineers implement those practices by working closely with development teams to provide (and support) the environment needed to deliver the organisation’s services quickly and efficiently.

Roles addressed in this standard

This learning design standard specifies the learning requirements for two specific roles in the DevOps Engineering discipline. The units of learning recommended for each role are:

1. DevOps EngineerUnit 1: The DevOps environmentUnit 2: Coding, configuration and source controlUnit 3: OrchestrationUnit 4: Release & deploymentUnit 5: Compliance

2. DevOps ArchitectUnit 1: The DevOps environmentUnit 2: Coding, configuration and source controlUnit 3: OrchestrationUnit 4: Release & deploymentUnit 6: Design & governanceUnit 7: Self-service

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 6

Page 7: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Glossary

Infrastructure – refers to any elements of the IT environment used to provide a service, including hardware and software, services, databases and storage. Cloud services are an increasing utilised form of infrastructure.

Environment – refers to the infrastructure that collectively enables a service to be developed and made available. In the context of this standard, the traditional software development, integration, testing and production environments are all part of ‘the environment’.

Coding – the creation of a logical sequence of actions to be carried out by a computer system. This includes the creation of new software (‘development’ or ‘software engineering’) as well as scripting and visual programming.

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 7

Page 8: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Target learners

Primary

APS employees who may be transitioning from an Infrastructure, Systems Administration, Software Engineering or automated testing role to a DevOps role.

Secondary

Any employees with systems administration, software development or testing experience.

Prerequisite qualification

Learners should be familiar with the content of the Digital Foundations Learning Design Standard and have had experience with Systems Administration or Software Engineering

Qualifications and certifications

None identified.

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 8

Page 9: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Capabilities needed for DevOps Engineering

The skills, knowledge and attributes described in this section are recommended for someone to be effective in the identified roles. A person undertaking the learning defined by this standard should already have the listed prerequisites and attributes, and by the completion of their learning, they should have all the knowledge and skills described below as well. They may need experience of these in a workplace environment to embed the learning and become effective.

Knowledge: Engineer Architect Topic Reference

Organisational context Business functions and architecture 1.1 Incident management process Prerequisite Change management process Prerequisite

Methodologies Lean 1.2 Agile 1.2 Systems development lifecycle Prerequisite

Tools Cloud services Prerequisite Containerisation 6.1 Operating systems Prerequisite Automation 2.x Release & build 4.2

Theory/theoretical Design patterns 6.1 Release patterns 4.1 Artefact definition 2.4

Concepts Logging vs. monitoring 4.3 APIs 1.1 Application & network security 1.1

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 9

Page 10: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Skills: Engineer Architect Topic Reference

Technological Continuous Integration / Continuous

Development 4.1

DevOps pipeline 4.1 Testing 2.2 Scripting and source control 2.2, 2.3 Configuration management 2.4 Automation 2.x System integration Prerequisite Software installation / integration Prerequisite

Analytical Data analysis 4.3 Value stream mapping 6.1, 7.3 Monitoring 4.3

Communication Documentation – creating strategic plans 2.2, 7.2 Co-design 7.2

Planning and organising Delivery management 4.x Source code management 2.3 Systems thinking 1.2 Release management 4.x Solution architecture 4.1

Relationships Negotiation Prerequisite Stakeholder management Prerequisite

Leadership and management Leading change Prerequisite

Attributes: Engineer Architect

Professional

Systems thinking

Business outcome focused

Team player

Optimisation

Continuous improvement

Personal

Collaborative

Multitasking

Detailed

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 10

Page 11: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Creative

Calm under pressure

Continuous learning / growth mindset

Problem solving

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 11

Page 12: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Relevant SFIA skills

The Skills Framework for the Information Age (SFIA) is a global standard that defines Digital and other ICT related skills. A person possessing the following SFIA skills at the levels indicated would be capable of performing the roles described by this standard.

Code SkillApplicable

LevelsCaveats*

DevOps Engineer

PROG Programming/software development 3 -

SINT Systems integration and build 4 -

DESN Systems design 4 -

AVMT Availability management 4 -

METL Methods and tools 4 -

DevOps Architect

PROG Programming/software development 4 -

SINT Systems integration and build 5 -

DESN Systems design 5 -

AVMT Availability management 4 -

METL Methods and tools 5 -

DLMG Systems development management 5 -

*Caveats identify a variation to the components of a SFIA skill. For the purpose of this Learning Design Standard the SFIA skill description should be read as though the caveats were applied to it.

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 12

Page 13: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

References

The reference list below provides locations for sources referred to in this standard so that readers can easily locate and use them if required.

The DevOps pipeline

Blog: DevOps Best Practices

Book: The Phoenix Project

Book: The DevOps Handbook

Book: Accelerate: Building and Scaling High-Performing Technology Organizations The Goal

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 13

Page 14: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Key content areas

The following table outlines content areas that need to be addressed.

Unit = area of learning. Topic = component of area of learning.

Unit 1: The DevOps environment

Learning objective: Describe the components of a DevOps environment and the benefits they provide to an organisation

Topic title Topic learning objectives

Critical content

1.1 Business context Understand the business context

1. Identify the business objectives and main functions of the agency

2. Identify the policies, procedures, standards and business rules pertaining to the IT environment, including:

‒ enterprise architecture

‒ design patterns and standards

‒ release and deployment

‒ security policy and access control

‒ archiving and backup

‒ auditing requirements

‒ standard operating procedures

‒ automation framework

‒ available APIs

1.2 DevOps fundamentals

Define DevOps – what it is and is not

1. DevOps principles, terminology and common practices

2. The importance of systems thinking

3. The DevOps culture

4. DevOps and other frameworks

‒ Agile

‒ Lean

‒ IT Service management (ITSM & ITIL)

‒ DevSecOps

5. Tools that facilitate DevOps

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 14

Page 15: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Unit 2: Coding, configuration and source control

Learning objective: Create, register, test, modify and use a script to deploy an infrastructure component.

Topic title Topic learning objectives

Critical content

2.1 Infrastructure as Code

Describe the fundamentals of Infrastructure as Code

1. What is infrastructure as code?

2. Examples, such as Infrastructure-as-a-Service (IaaS)

2.2 Scripting Create and test a script to create and deploy an infrastructure component

1. Using a scripting tool to manipulate infrastructure

2. Documenting your scripts

3. Testing scripts safely

2.3 Source control Explain how a code repository is used in software builds

Use a code repository to source control a script

1. Principles of source/version control

2. Using a code repository tool

3. Advanced source control concepts such as branching

2.4 Configuration management

Manage the configuration of infrastructure through code

1. Modelling the configuration of infrastructure components

2. Using scripts to manipulate the configuration of infrastructure components.

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 15

Page 16: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Unit 3: Orchestration

Learning objective: Create a DevOps workflow that orchestrates the creation of an environment for a digital service.

Topic title Topic learning objectives

Critical content

3.1 DevOps orchestration

Describe DevOps orchestration

Create a DevOps workflow

1. What is DevOps orchestration?

‒ the difference between automation and orchestration

‒ benefits to the business through re-use and self-service

2. Planning and creating an orchestration workflow

3. Advanced orchestration

‒ decision logic and user selectable options

‒ optimising through performance monitoring

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 16

Page 17: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Unit 4: Release & deployment

Learning objective: Create and monitor the deployment pipeline for a specific service to determine the status of deployments.

Topic title Topic learning objectives

Critical content

4.1 DevOps release & deployment concepts

Explain the difference between continuous integration and continuous delivery

1. What is/are:

‒ release packages & patterns

‒ continuous integration (CI)

‒ continuous delivery (CD)

‒ the deployment pipeline

‒ automated testing

4.2 Release & deployment tools

Describe various release and deployment tools

1. Tools for:

‒ software builds

‒ continuous integration

‒ continuous delivery

‒ automated testing

4.3 Deployment monitoring

Identify the status of a deployment

1. Monitoring tools

2. Events, logs and workflows

3. Analysing logs and processing output from monitoring tools

‒ identifying issues / opportunities for improvement

‒ feedback to improve build process and monitoring

‒ automating feedback

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 17

Page 18: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Unit 5: Compliance

Learning objective: Determine whether a project team is using their environment appropriately.

Topic title Topic learning objectives

Critical content

5.1 DevOps Compliance

Analyse logs to determine compliance

1. Identifying all compliance requirements

2. Analysing logs

3. Ensuring code repository is being used correctly

4. Ensuring CMDB is updated appropriately

5. Automating compliance checks

6. Performing corrective action where non-compliant

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 18

Page 19: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Unit 6: Design & governance

Learning objective: Design a DevOps solution to meet the environment needs of a service.

Topic title Topic learning objectives

Critical content

6.1 DevOps architecture

Design a DevOps solution

1. Concepts such as:

‒ the DevOps pipeline

‒ design patterns and anti-patterns

‒ containerisation

‒ self-service

2. Determining design requirements and limitations

‒ determining the needs of current and future services

‒ interfacing with Enterprise Architecture

‒ monitoring technology and methodology changes

3. Design considerations

‒ key components of a solution

‒ designing for reusability and extensibility

‒ ensuring monitoring facilitates compliance and continuous improvement

4. Optimising through value stream mapping

6.2 DevOps governance

Design a governance model for a DevOps environment

1. Features of appropriate governance for DevOps include:

‒ tuned for rapid delivery

‒ encourages continuous improvement

‒ integrates with other governance requirements

2. Automating governance

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 19

Page 20: Building Digital Capability Program – Learning … · Web viewBuilding Digital Capability Program – Learning Design Standard – DevOps Engineering3 Building Digital Capability

Unit 7: Self-service

Learning objective: Create a self-service infrastructure offering.

Topic title Topic learning objectives

Critical content

7.1 Self-service fundamentals

Describe self-service in a DevOps environment

1. Understanding the customer

‒ developers vs. other users

2. Governance and management of a self-service service

‒ catalogue of available services

‒ resource management, such as cost attribution and/or billing

‒ monitoring usage and capacity

7.2 Self-service offering

Create a self-service offering

1. Determining likely customer requirements

2. Designing a self-service offering

‒ co-design with users

3. Building a self-service

‒ using orchestration

‒ incorporating monitoring

4. Documenting a self-service

‒ lifecycle management of the catalogue (add/remove/update)

‒ creating guidelines for users

7.3 Improving a self-service offering

Identify an improvement opportunity in a self-service offering

1. Reviewing monitoring to identify usage and/or issues

2. Identifying improvement opportunities

‒ using value stream mapping

Building Digital Capability Program – Learning Design Standard – DevOps Engineering 20