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 r 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