Continuous integration is a practice where developers integrate code into a shared repository frequently, such as daily, and automated builds and tests are used to detect errors. Continuous deployment is an approach where teams release software in short cycles to ensure it can be reliably released at any time. The principles of continuous integration and continuous deployment (CI/CD) include automating all build, test and deployment processes; keeping everything in version control; committing code frequently; and not merging broken code. CI/CD aims to release software faster through automation and frequent integration and deployment.
PE 459 LECTURE 2- natural gas basic concepts and properties
Lets talk about CI CD Pipeline in Agile
1.
2. Continuous Integration
“ Continuous Integration is a software development
practice where members of a team integrate their work
frequently, usually each person integrates at least daily
- leading to multiple integrations per day.
Each integration is verified by an automated build
(including test) to detect integration errors as quickly as
possible ”
– Martin Fowler
3. What does it really mean
At a regular frequency (ideally at every commit), the system is :
Integrated
Built
Tested
Achieved
Deployed
4. Continuous Deployment
Software Engineering approach in which teams
produce software's in a short cycles, ensuring that the
software can be reliable released at any time.
It aims at releasing software faster and more frequently.
- [don't know author name]
5. Benefits of CI CD
CI
Did I built it right
Did I break something
CD
Did we built the right thing
Did the changes cause any issue
6. Principles of CI CD
Automate everything : build, test & deployment
Keep everything in a source code management system
(like Github)
Keep absolutely everything in source code management
system
Use CI tool that integrates tightly (webhooks) with your
source code repository
Commit your code to the repository frequently
7. Principles of CI CD
Don’t commit directly to a delivery branch; use a feature
branch and PR workflow
Don’t ignore failing CI tests even on feature branches
Don’t merge broken code to a delivery branch; it must
pass the CI system first
Deploy the same way to every environment
No-downtime deployments; stateless frontend, load
balancer and se
8. Principles of CI CD
Automated feedback on the entire process
Use a container technology (Docker) if possible as
makes deployment simple
If the process is painful, you’re doing it wrong
9. What all do we need ?
Source Control
E.G GITLAB, GITHUB, BITBUCKET ETC
Automation Server
E.G JENKINS, MICROSOFT APP CENTER ETC
10. Automation server
What am I going to use today ?
Jenkins is a self-contained open source automation server which
can be used to automate all sorts of tasks related to building
testing and delivering or deploying software.
Jenkins can be installed through native system packages Docker
or even run standalone by any machine with a Jave Runtime
Environment (JRE) installed.
USAGE ? CONTINUOUS INTEGRATION AND CONTINUOUS
DELIVERY
11. Source code
What am I going to use today ?
Github is a code sharing and publishing service