DevOps KANOKWATT SHIANGJEN COMPUTER SCIENCE SCHOOL OF INFORMATION AND COMMUNICATION TECHNOLOGY UNIVERSITY OF PHAYAO

Size: px
Start display at page:

Download "DevOps KANOKWATT SHIANGJEN COMPUTER SCIENCE SCHOOL OF INFORMATION AND COMMUNICATION TECHNOLOGY UNIVERSITY OF PHAYAO"

Transcription

1 DevOps KANOKWATT SHIANGJEN COMPUTER SCIENCE SCHOOL OF INFORMATION AND COMMUNICATION TECHNOLOGY UNIVERSITY OF PHAYAO

2 Contents What is DevOps? The Rapid Flow Benefits of DevOps Q & A References 2

3 The wall of confusion Development vs. Operations PHP Angular Java Node.js Object-C Programmer Selenium Appium DB Server MySQL NoSQL Distributed Graphic Designer Tester Web Server Administrator Developer Operations 3

4 The setting you need Get together and collaborate - Flow will never breakout if a virtual wall remains between Dev and Ops. The only way to break down this wall is to actually talk to each other and collaborate. Recognize the past and move forward - You might need to recognize the tensions between Dev and Ops from the past and use it as a learning opportunity to understand each others perspectives. Lower your defenses, listen, learn and then move forward. Pick at least one common outcome - The collaboration and flow can start if you can find at least one common outcome that helps the company move towards its business goals. 4

5 What is DevOps? DevOps is the combination of cultural philosophies, practices, and tools that increase an organization s ability to deliver applications and services at high velocity. Evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market. 5

6 DevOps: Goal Rapid flow of business ideas to working solutions Add new features and keep the system stable, fast and available 6

7 DevOps: Practices CONTINUOUS INTEGRATION APPROVED DEPLOY (MANUALLY) CONTINUOUS DELIVERY CONTINUOUS DEPLOYMENT AUTOMATIC DEPLOY AUTOMATED AUTOMATED SOURCE CONTROL COMMIT CHANGES BUILD STAGING PRODUCTION RUN BUILD AND UNIT TESTS DEPLOY TO TEST ENVIRONMENT DEPLOY TO PRODUCTION ENVIRONMENT RUN INTEGRATION TESTS, LOAD TESTS, AND OTHER TESTS 7

8 The Rapid Flow (1/3) The Rapid Flow goes straight through your solution delivery teams (Dev) and the folks responsible for making sure those solutions run exceptionally well: Operations (Ops). At most companies, these most likely two different organizations- for lots of good and not so good reasons. Dev - whom is increasingly under pressure to deliver more faster, better, stronger - to flow solutions with Ops - whom feels a do or die responsibility for stability of production systems? 8

9 The Rapid Flow (2/3) In true agile environments, our setting is painted with the right cultural elements consisting of Collaboration Commitment Continuous Improvement Continuous Learning 9

10 The Rapid Flow (3/3) Are your Dev and Ops teams talking to each other (collaboration) or has there been adversarial relationships between these two group? These two teams need to be committed to bring the right people, process and tools to continuously improve the speed AND stability of solution delivery. Each of those teams must be curious enough to learn about each others concerns 10

11 Benefits of DevOps Speed Rapid Delivery Reliability Scalability Improved Collaboration Security Automated 11

12 DevOps: Speed Move at high velocity so you can innovate for customers faster, adapt to changing markets better, and grow more efficient at driving business results. The DevOps model enables your developers and operations teams to achieve these results. For example, microservices and continuous delivery let teams take ownership of services and then release updates to them quicker. 12

13 DevOps: Rapid Delivery Increase the frequency and pace of releases, so you can innovate and improve your product faster. The quicker you can release new features and fix bugs, the faster you can respond to your customers needs and build competitive advantage. Continuous integration and continuous delivery and practices that automate the software release process, from build to deploy. 13

14 DevOps: Reliability Ensure the quality of application updates and infrastructure changes, so you can reliably deliver at a more rapid pace while maintaining a positive experience for end users. Use practices like continuous integration and continuous delivery to test that each change is functional and safe. Monitoring and logging practices help you stay informed of performance in real-time. 14

15 DevOps: Scalability Operate and manage your infrastructure and development processes at scale. Automation and consistency help you manage complex or changing systems efficiently and with reduced risk. For example, infrastructure as code (IaC) helps you manage your development, testing, and production environments in a repeatable and more efficient manner. Source: 15 Source:

16 DevOps: Improved Collaboration Build more effective teams under a DevOps cultural model, which emphasizes values such as ownership and accountability. Developers and operations teams collaborate closely, share many responsibilities, and combine their workflows. This reduces inefficiencies and saves time (writing code that takes into account the environment in which it is run) 16

17 17 Source: DevOps: Security Move quickly while retaining control and preserving compliance. You can adopt a DevOps model without sacrificing security by using automated compliance policies, fine-grained controls, and configuration management techniques. For example, using infrastructure as code (IaC) and Policy as code, you can define and then track compliance at scale.

18 Popular DevOps Technology 18

19 Popular DevOps Technology Configuration Management: Ansible, Puppet, Chef, SaltStack Continuous Integration (CI) / Continuous Delivery (CD): Ansible, Jenkin / Hudson, Rundeck Version Control: Git, Perforce, Subversion Virtualization: Docker, Vagrant Build & Functional Testing: Gradle, Puppet, Jenkin / Hudson Binary Management: Artifactory, Nexus 19

20 DevOps: Practices Continuous Integration (CI) Continuous Delivery (CD) Microservices Infrastructure as Code (IaC) Monitoring and Logging Communication and Collaboration 20

21 DevOps: Practices CONTINUOUS INTEGRATION CONTINUOUS DELIVERY CONTINUOUS DEPLOYMENT APPROVED DEPLOY (MANUALLY) AUTOMATIC DEPLOY AUTOMATED AUTOMATED SOURCE CONTROL COMMIT CHANGES BUILD STAGING PRODUCTION RUN BUILD AND UNIT TESTS DEPLOY TO TEST ENVIRONMENT DEPLOY TO PRODUCTION ENVIRONMENT RUN INTEGRATION TESTS, LOAD TESTS, AND OTHER TESTS 21

22 Continuous Integration (CI) A software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. The key goals of continuous integration are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates. 22

23 Continuous Delivery (CD) A software development practice where code changes are automatically built, tested, and prepared for a release to production. It expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage. When Continuous Delivery is implemented properly, developers will always have a deployment-ready build artifact that has passed through a standardized test process. 23

24 Microservices A design approach to build a single applications as a set of small services. Each service runs in its own process and communicates with other services through a well-defined interface using a lightweight mechanism, typically an HTTPbased application programming interface (API). Microservices are built around business capabilities; each service is scoped to a single purpose. You can use different frameworks or programming languages to write microservices and deploy them independently, as a single service, or as a group of services. 24

25 Infrastructure as Code (IaC) A practice in which infrastructure is provisioned and managed using code and software development techniques, such as version control and continuous integration. The cloud s API-driven model enables developers and system administrators to interact with infrastructure programmatically, and at scale, instead of needing to manually setup and configure resources. Thus, engineers can interface with infrastructure using code-based tools and treat as application code. Source: 25

26 Configuration Management Source: 26

27 Configuration Management Developers and system administrators use code to automate operating system and host configuration, operational tasks, and more. The use of code makes configuration changes repeatable and standardized. It frees developers and systems administrators from manually configuring operating systems, or server software. Source: 27

28 Policy as Code With infrastructure and its configuration codified with the cloud, organizations can monitor and enforce compliance dynamically and at scale. Infrastructure that is described by code can thus be tracked, validated, and reconfigured in an automated way. This makes it easier for organizations to govern changes over resources and ensure that security measures are properly enforced in a distributed manner. 28

29 Monitoring and Logging Organizations monitor metrics and logs to see how application and infrastructure performance impacts the experience of their product s end user. By capturing, categorizing, and then analyzing data and logs generated by applications and infrastructure Organizations will understand how changes or updates impact users, shedding insights into the root causes of problems or unexpected changes. The active monitoring as services must be available 24/7 29

30 Communication and Collaboration Increased communication and collaboration in an organization is one of the key cultural aspects of DevOps. The use of DevOps tools and automation of the software delivery process establishes collaboration by physically bringing together the workflows and responsibilities of development and operations. 30

31 Q & A 31

32 References [1] [2] [3] Implementing DevOps on AWS, Veselin Kantsev, ISBN , Packt Publishing,