Logo de PHP

Goals


- Understand DevOps principles

- Set up a software configuration solution based on Git

- Manage versions of data repository projects

- Implement and operate a continuous integration server

- Manage interconnections with a system? me of build and tests

Program

The Agile manifesto
From vision to delivery, the chronology of the project
The sensory system to follow the evolution of the project
Planning and management of the unknown
The rhythm: working iteratively
The mutation: progressive and continuous improvement of the project and processes
Some principles: KISS, YAGNI, empiricism, transparency, …

Lean Management: objective,
Kanban principles : principle, advantage, life cycle of a label
XP practices (eXtreme Programming)
Scrum framework, distribution of roles
Time boxes: Sprint planning, Sprint Review, Sprint Retrospective, Daily Scrum
Artifacts: Product Backlog, Sprint Backlog, Burndown chart

Source control management (SCM) principles
History, local, centralized and distributed control
How snapshots work, compare with differences
Installation (Linux, MacOS, Windows)
Manual access: man / help
Initial Git configuration: preferences, user profile
Initializing a local repository

Workshop: Installing Git – Creating a project

Concepts, working directory, index and repository
Check the status of the working copy: status
Index your modifications: add
Ignore files: .gitignore
Validate your modifications: commit
Delete and move files

Workshop: contributions and validations

View the modifications: log
Customize the format: stat, pretty,…
Filter by date, author, commit message, modified content, …
View and export a difference (native format, external tool)
Label its validations: light and annotated labels
Search with git-grep

Rewrite the last validation
Deindex a file
Reset a file

Branch principle, the HEAD pointer
Create a branch
Switch between branches, detached mode
Merge branches: fast-forward, three sources
Manage merge conflicts
External merge tool: mergetool (emerge, vimdiff, meld, …)
View the existing branches, those which have been merged
Delete a branch Branch
management strategies: long branch, thematic, …

Remote
repository, remote branches, branch tracking View and inspect remote repositories
Add, rename, remove remote repositories
Pull, push and delete a remote branch

Warning: the dangers of overwriting
Rebase a portion of a branch
When to rebase and when to merge

Check in your work in progress
Create a branch from a delivery
Clean up your working directory

Configure default editor, automatic exclusions, …
Create and use aliases
Graphical tools: Git-Gui, GitKraken, SmartGit, …
Create filters: smudge and clean
Client side hooks: pre-commit, pre-rebase, post-rewrite …
Server side hooks: pre-receive, update, post-receive

Principle of submodules
Declare, pull and update a submodule
Modify and manage conflicts on an external library
Problems with submodules

Protocols: local, HTTP, SSH, Git
Creation of a bare repository, user accounts
Single git user , SSH keys and git-shell
Git daemon

Workshop: Setting up a Git server

The different forms of virtualization and their concept
Presentation of the advantages and use cases of containers
Presentation of Docker and its architecture

Development, integration and deployment process
Continuous integration: presentation, positioning in an agile approach
Management of environments: development, acceptance, production
Panorama of management tools: versioning, build, tests, quality
Presentation of continuous integration tools: Jenkins, GitLab-CI, Bamboo, …

Workshop: Publish a PHP project on a continuous integration platform

Loading a PHP CLI Docker image
Setting up the pipeline: internships and jobs
Running the pipeline and viewing the output
Configuring the dependencies between jobs
Managing the triggering of the integration according to the branches or tags

Workshop: Config st and launches integration

Quality tools, types and interests
Cold analysis: php_cs_fixer, PHP_CodeSniffer
Overview of test types: unitary, functional, e2e Test
strategies, TDD, BDD, StoryBDD, non-regression
What to and not to test

Workshop: Set up a writing convention control

Presentation of PHPUnit
Classes and methods of tests, assertion
Provision in data: fixtures
The liners: stoppers, mock
The results: success, failure, error, risky, incomplete

Workshop: Set up automated tests, control scenarios

Presentation of the DevOps movement DevOps
values: Culture, Automation, Lean, Measurement, Sharing
DevOps culture: presentation, characteristics, implementation
Principle of infrastructure as code
Presentation of Ansible

Duration

5 days

Price

£ 2590

Audience

System Administrators - DevOps - Senior Developers

Prerequisites

Systems administration concepts

Reference

PHP101039-F

Sessions

Contact us for more informations about session date