NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
1. Introduction to DevOps
Part I
Fundamental (CI/CD)
March 11th, 2021
@12:45 PM (EST)
Hui (Henry) Chen
Senior Computer Science
Tech Lead
@NYIT | @DSC
Join the Workshop: https://bit.ly/intro_devops
Join NYIT DSC: https://bit.ly/3srQCGV
6. What’s DevOps?
“The combination of cultural philosophies, practices, and tools that increases an organization’s ability to
deliver applications and services at high velocity”
Deliver high-quality code from the development machine(s) to the real world rapidly.
7.
8. Why DevOps?
Market, competition, and client.
Nielsen: every two minutes, a new product is released in the US marketplace in 2019.
DevOps team utilizes practices and tools to automate processes that historically have been manual and
slow. Therefore, it narrows the gap between development and operations, and speeds up SDLC.
10. Cont.
1. Plan - Everything before the developers start writing the code.
a. Requirements and feedback from the stakeholders and customers.
b. PM gets involved.
2. Code - Software development team(s) utilizes tools/ software implement the application.
a. Senior DevOps Engineer/ Team defines which tools/ technologies and architecture to use.
3. Build - Merge the new code, testing, and peer review the code.
a. Compile everything together.
b. DevOps gets involved.
4. Test - Deploy to staging environment automatically.
a. Include: System, Performance, Acceptance, Alpha/ Beta, Regression, Smoke, and Security.
b. Infrastructure as Code (IaC)
c. QA gets involved.
11. Cont.
5. Release - a specific build version is ready for production environment.
a. Schedule, manual, or automatic multiple build version.
b. Developers can turn off new features that not ready for action.
c. Operation gets involved.
6. Deploy
a. Blue-green deployment
7. Operate - make sure the application/ service runs smoothly.
a. Gather feedback from the customers to help shape the future development of the product.
8. Monitor - in all phases and processes.
a. Collecting data and providing analytics on customer behaviour, performance, errors, and etc.
b. Loop back to Plan and Code phases to restart the cycle.
14. Tools/ Technologies
1. OS fundamentals and Scripting: Linux, DOS, UNIX, shell, and cli
2. Infrastructure as Code (IaC): Terraform, Chef, Puppet, Ansible, and etc.
3. Cloud Platforms and Solutions: AWS, Azure, GCP, Alibaba Cloud, IBM Cloud, and etc.
15. Cont.
4. Communication and Collaboration: Slack, Jira, Trello, and etc.
5. Continuous Integration and Delivery: Jenkins, TeamCity, GitLab, Containerization, and etc.
6. Additional tools/ technologies: read more here.
Remember, use your NYIT credentials to access enterprise licenses for these tools!
16. Why so many tools?
Unfortunately, there’s no one tool that can do everything from the start to the end!
17. DevOps Best Practices
1. Continuous Integration (CI): See in the upcoming slides
2. Continuous Delivery (CD): See in the upcoming slides
3. Continuous Deployment (CD): See in the upcoming slides
4. Microservices
a. A design approach to build a single application as a set of small services that can independently run
on different hardware/ servers.
b. Traditional application: deploy into a single hosted machine
c. After applying Microservices: scalable, deployable, and distributed computing
18. Cont.
5. Infrastructure as Code (IaC)
a. “A practice in which infrastructure is provisioned and managed using code.”
b. Traditional approach: manually configure VMs/ nodes from scratch
c. Automate all tasks end to end
6. Monitoring and Logging
a. Monitor metrics and logs to see how application and infrastructure performance.
b. Utilizing the data that was collected on the Operate phase.
7. Communication and Collaboration
a. “Two heads are better than one.” - C.S. Lewis
19. Practice: CI
“A process of automating the build and testing of code for every time a team member commits changes to
a version.”
23. Cont.
Benefits: find and address bugs quicker, improve software quality, and reduce the time it takes to validate
and release new software updates.
24. Practice: Continuous Delivery (CD)
“A process where code changes are automatically built, tested, and prepared for a release to production.”
25. Cont.
Mock Server: an open source
mocking framework for
HTTP and HTTPS, which
handles the situations where
a module of your application
might not be available for
testing/ demonstrating.
30. Continuous Delivery (CD) - Benefits
● Focus on the production and actual testing.
● Scale a single application to enterprise level
● Automated the integrate of development, test, and production through a pipeline.
● Ship both cloud-native and traditional applications in a unified pipeline.
● Improve overall productivity.
39. DevOps - Not Feasible
● No continuous updates are needed for the systems.
○ Government
● Industry Regulations:
○ Aerospace
○ Telecom
○ Medical
Not all companies use CI/CD. Some of them use CI but not CD.
40. Part II: Hands-On (CI/CD)
Stay connect with us, here, for the second part of DevOps workshop, Hands-On (CI/CD).
Est date: before the spring break