Development and Operations (DevOps)¶
Table of contents
Introduction¶
(From Canvas) You define how you are going to support all stakeholders’ needs in your software development process, especially regarding inevitable changes involving the application (for instance reporting, Service Level Agreements, changes in requirements, releases, end user wishes).
You define environments which will be used by developers in the development and creation of software (for instance test and production environments). These infrastructure environments are defined using ‘Infrastructure as code’ principles.
You make parts of your application independently deployable (for instance using containers). You support automatic testing and measurements which prove the quality of the application (for instance code coverage, security assessment, support for monitoring). You automate all the above as much as possible (for instance using CI/CD principles).
Learning focuses¶
Devops has become an integrated part of Software Development.¶
In order to shape the upcoming curriculum, I’ve chosen various learning focuses for Development and Operations. These are work in progress, and have to be developed out further.
With an automated software build, often called Continuous Integration (CI) and Deployment (CD), one can automate a large part of the software development process. Think about building, testing, deploying, and so on. (Security) defects can be detected easier and sooner. Deploying a new version of the software will also become much easier when using the right tools.
A fairly common scenario with automated software builds is that the software is pulled from a version control system like Git right after a new commit or merge action. The tooling will build the latest version of the code and run the designated tests. When one or more tests fail it will notify the team about this. Otherwise, it will continue the build and eventually deploy the executable onto the right server.
Category¶
T = Technical skills
N = Non-technical skills
R = Research & development skills
P = Professional skills
Learning tasks¶
Task# |
Category |
Requirement |
Status |
Description |
|---|---|---|---|---|
T |
Should |
Done |
Setup Portainer as a container manager |
|
T |
Must |
Done |
Setup Jenkins & make it publicly accessible |
|
T |
Should |
Done |
Setup Rancher |
|
T |
Must |
Done |
Setup SonarQube |
|
T+R |
Should |
Done |
Integrate automatic SonarQube static analysis testing |
|
T+R |
Must |
Done |
Expand Jenkins pipeline with Docker.io publishing |
|
#6 |
P |
Should |
Done |
Share CI/CD knowledge to the team |