At some point, the code you write today will be deleted and replaced with something new. This talk will discuss the life cycle of a large code base, and how to manage it over time to accommodate rewrites, giving examples from a major rewrite of the Firefox build and release pipeline over the last two years. You'll learn how to replace components of a running distributed system while keeping it operational, the proverbial replacing the wing of an airplane in flight.
Continuous delivery of embedded systems embedded meetupMike Long
Continuous Delivery is all the rage, but many of the practices are not applied in the embedded world because the literature seems to focus on the web development community. That is a great shame, because there is a great deal we can apply on our embedded software development projects. This talk will show you how to apply some of the key techniques, such as embedded versioning and software traceability, embedded continuous delivery pipelines, acceptance testing with hardware, automatic deployment to hardware, continuous deployment. Beyond that, the talk will show some real-life examples of companies who are at the leading edge of this adoption.
Talk given at the Oslo Embedded Software meetup group.
DevOps aims to break down silos between development and operations teams through collaboration, automation, and continuous delivery. It addresses issues with traditional software development like long release cycles, bugs in production, and conflicts between teams. DevOps promotes integrating development and operations, establishing agile workflows, automating testing, treating infrastructure as code, and monitoring applications in production. While sometimes seen as a buzzword, DevOps is a philosophy that can help organizations reduce risks and improve their ability to rapidly deliver value to customers.
The document provides an agenda for the Culture track at PuppetConf, which will take place from 19-21 October in San Diego. It includes descriptions of 8 sessions that will cover topics like scaling Puppet at large organizations, the future direction of the Puppet platform, managing large Puppet installations, and giving back to open source communities from within large companies. Brief biographies are provided for 10 speakers who will present on these topics, such as engineers from GitHub, Puppet, Twitter, Google, and Wells Fargo. The document encourages attendees to register for the full conference.
The document discusses the relationship between developers and operations in a DevOps environment. It notes that the author has experience both as an operations engineer and developer. Some key aspects of DevOps covered include having a culture of collaboration between dev and ops, using the same tools and languages, treating all problems as shared responsibilities, and establishing modern software project foundations like continuous integration/delivery pipelines. The author is happy to answer any questions about DevOps.
This document provides an overview and schedule for a Puppet conference taking place from October 19-21 in San Diego. It outlines 8 sessions that will be presented on automating Windows environments with Puppet. The sessions will cover topics like configuring Windows settings and services with Puppet, managing conflicts between Puppet and Group Policy, securing Windows environments in Azure, building Nano Server images, writing Puppet modules for Windows, and deploying multi-tier Windows applications. Brief biographies are also provided for each of the 8 session speakers.
JavaLand 2022 - Software architecture in a DevOps worldBert Jan Schrijver
The document discusses how software architects can work with DevOps teams by applying DevOps principles to software architecture. Some key points made are:
1) DevOps principles like gradual changes, customer orientation, automation, ownership, collaboration, experimentation and continuous improvement can be applied to software architecture practices.
2) Architects should focus on the business needs, involve developers as stakeholders, evolve architectures through feedback rather than upfront design, and embrace failure through experiments.
3) Flexible architectures that can change based on needs are preferable to rigid pre-defined architectures in a DevOps context.
The document discusses principles of continuous delivery (CD) and DevOps. It defines CD as integrating work frequently through automated builds and tests so software can be released at any time. DevOps is described as development and operations teams working together across the entire product lifecycle to quickly and reliably deliver higher quality software. The document provides examples of how not to implement DevOps and emphasizes that CD and DevOps are about culture, freedom, responsibility and empathy rather than just tools or processes.
This document discusses PhoneGap, an open-source framework that allows developers to build mobile applications using standardized web APIs for accessing native device functions on various mobile platforms. It provides an overview of PhoneGap's history and goals of supporting web apps as first-class platforms, outlines its licensing and commitment to open web standards, and describes how it uses a bridge technique to enable calling native device APIs from JavaScript. The document also discusses PhoneGap's platform support, upcoming roadmap priorities around plugins, performance, security and tooling, and how it aims to support common development tasks through tools and automation.
Continuous delivery of embedded systems embedded meetupMike Long
Continuous Delivery is all the rage, but many of the practices are not applied in the embedded world because the literature seems to focus on the web development community. That is a great shame, because there is a great deal we can apply on our embedded software development projects. This talk will show you how to apply some of the key techniques, such as embedded versioning and software traceability, embedded continuous delivery pipelines, acceptance testing with hardware, automatic deployment to hardware, continuous deployment. Beyond that, the talk will show some real-life examples of companies who are at the leading edge of this adoption.
Talk given at the Oslo Embedded Software meetup group.
DevOps aims to break down silos between development and operations teams through collaboration, automation, and continuous delivery. It addresses issues with traditional software development like long release cycles, bugs in production, and conflicts between teams. DevOps promotes integrating development and operations, establishing agile workflows, automating testing, treating infrastructure as code, and monitoring applications in production. While sometimes seen as a buzzword, DevOps is a philosophy that can help organizations reduce risks and improve their ability to rapidly deliver value to customers.
The document provides an agenda for the Culture track at PuppetConf, which will take place from 19-21 October in San Diego. It includes descriptions of 8 sessions that will cover topics like scaling Puppet at large organizations, the future direction of the Puppet platform, managing large Puppet installations, and giving back to open source communities from within large companies. Brief biographies are provided for 10 speakers who will present on these topics, such as engineers from GitHub, Puppet, Twitter, Google, and Wells Fargo. The document encourages attendees to register for the full conference.
The document discusses the relationship between developers and operations in a DevOps environment. It notes that the author has experience both as an operations engineer and developer. Some key aspects of DevOps covered include having a culture of collaboration between dev and ops, using the same tools and languages, treating all problems as shared responsibilities, and establishing modern software project foundations like continuous integration/delivery pipelines. The author is happy to answer any questions about DevOps.
This document provides an overview and schedule for a Puppet conference taking place from October 19-21 in San Diego. It outlines 8 sessions that will be presented on automating Windows environments with Puppet. The sessions will cover topics like configuring Windows settings and services with Puppet, managing conflicts between Puppet and Group Policy, securing Windows environments in Azure, building Nano Server images, writing Puppet modules for Windows, and deploying multi-tier Windows applications. Brief biographies are also provided for each of the 8 session speakers.
JavaLand 2022 - Software architecture in a DevOps worldBert Jan Schrijver
The document discusses how software architects can work with DevOps teams by applying DevOps principles to software architecture. Some key points made are:
1) DevOps principles like gradual changes, customer orientation, automation, ownership, collaboration, experimentation and continuous improvement can be applied to software architecture practices.
2) Architects should focus on the business needs, involve developers as stakeholders, evolve architectures through feedback rather than upfront design, and embrace failure through experiments.
3) Flexible architectures that can change based on needs are preferable to rigid pre-defined architectures in a DevOps context.
The document discusses principles of continuous delivery (CD) and DevOps. It defines CD as integrating work frequently through automated builds and tests so software can be released at any time. DevOps is described as development and operations teams working together across the entire product lifecycle to quickly and reliably deliver higher quality software. The document provides examples of how not to implement DevOps and emphasizes that CD and DevOps are about culture, freedom, responsibility and empathy rather than just tools or processes.
This document discusses PhoneGap, an open-source framework that allows developers to build mobile applications using standardized web APIs for accessing native device functions on various mobile platforms. It provides an overview of PhoneGap's history and goals of supporting web apps as first-class platforms, outlines its licensing and commitment to open web standards, and describes how it uses a bridge technique to enable calling native device APIs from JavaScript. The document also discusses PhoneGap's platform support, upcoming roadmap priorities around plugins, performance, security and tooling, and how it aims to support common development tasks through tools and automation.
I broke what?!??!? Taking over maintenance on well loved projectsBert JW Regeer
The document discusses the speaker becoming the maintainer of the Python WebOb library. Some key points:
- The speaker was given commit access to WebOb and added as the maintainer on PyPI after contributing fixes and being active on IRC.
- As maintainer, the speaker had ideas to improve the code but quickly learned that even small changes can break dependencies, requiring care around backwards compatibility.
- It is important to consider existing users and set deprecation policies before making changes. The speaker advocates refactoring code over time rather than rewriting.
- Being a maintainer involves being a gatekeeper for standards while growing the community and finding the next generation of contributors.
From Puppet templates to troubleshooting, writing custom types and getting up and running quickly— you'll learn about it at PuppetConf 2016 in San Diego. Learn more and register at https://puppet.com/puppetconf/.
See how other companies are using Puppet and DevOps practices to help them with security and compliance at PuppetConf 2016 in San Diego. Learn more and register at https://puppet.com/puppetconf/.
Merge hells!! feature toggles to the rescueLeena N
Introducing Continuous Delivery practices to a team in trouble can be daunting. Where do you start ? What do you do first ? Which battle do you pick first ?
I’ll share my experience of guiding a team to achieve a higher degree of delivery maturity. This is a journey from a troublesome, struggling start of chaotic manual deployments, merge hell, regular production roll backs and lost code, to deliver a single commit to trunk automatically and reliably, under an hour, many times a day.
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Bert Jan Schrijver
The document discusses how software architects can work with DevOps teams by applying DevOps principles to software architecture. Some key points made:
- DevOps principles like gradual changes, customer orientation, automation, ownership, collaboration, experimentation and continuous improvement should guide architectural decisions and processes.
- The architecture should start simply and evolve iteratively based on feedback from developers and customers.
- Automation, infrastructure as code, and measuring architectural decisions are important.
- The team should own the architecture collaboratively and the architect must be accountable and involved.
From measuring and tuning Puppet Enterprise performance to testing and delivering Puppet — you'll hear about it at PuppetConf 2016 in San Diego. Learn more and register at https://puppet.com/puppetconf/.
Waste Driven Development - Agile Coaching Serbia MeetupLemi Orhan Ergin
This document discusses lean thinking and waste-driven development for software developers. It argues that traditional software development practices lead to a lot of waste, including defects, rework, slow development cycles, and lack of value delivery to customers. It promotes applying lean principles from manufacturing to software development, such as focusing on value delivery, eliminating waste, keeping codebases small and modular, automating everything, having high transparency, and challenging common paradigms. Documentation is identified as a particular type of waste.
The document outlines 15 ways that organizations can fail at implementing DevOps practices. Some examples of failures include thinking of DevOps as only for development and operations teams, requiring certain tools like containers to do DevOps, and believing DevOps is only about automation. The document emphasizes that DevOps is primarily about culture, collaboration between teams, and removing silos. It encourages starting small with DevOps initiatives and focusing on continual improvement through iteration.
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in ActionBill Scott
Keynote for eBay Classifieds TechCon 2013, Tues June 25, 2013.
This is a variation on previous lean engineering talks but focuses on 8 principles for enabling build/measure/learn.
This document outlines a structured approach to debugging distributed systems. It begins with observing and documenting the problem. The next steps involve creating a minimal reproducer, debugging the client and server sides, and checking DNS, routing, and network connections. Traffic and messages should also be inspected. The process concludes by wrapping up findings and conducting a post-mortem analysis. Key challenges in distributed systems like concurrency, lack of a global clock, and independent failures are discussed.
Hear Dan Munz, David Kennedy and Greg Boone discuss how CFPB was born, what challenges they faced and how WordPress became their CMS backbone throughout it all.
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM
DevOps has been such a buzzword in the IT field nowadays. If you look into job postings, you might be surprised to find terms like "work with DevOps team", "work in an agile team" etc.
What is DevOps? What is agile? And why all these? 樂
Join us on 24 May 2021, where we have a short session to explore on the events that led to the trend nowadays
We will be exploring on the current trends, tech stacks and the existence of DevOps itself! 朗
Mark this date on your calendar and we'll see you there!
* Note: This is an introductory "brief overview" session that gives you context on our upcoming events.
Slides by KwongTN.
Java provides several advantages for development:
1. It is simpler than previous languages like C++ and uses automatic memory allocation rather than requiring programmers to manage memory.
2. It allows for code reuse through object-oriented programming and creating reusable objects.
3. Programs can run on different systems through cross-platform capabilities, making it easy to move from one computer to another.
4. Security was a core consideration in Java's design and development of the language, compiler, and interpreter.
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...Hugo Messer
After the grant success of the C-level event "I/O: Intelligent Outsourcing", Bridge Global is conducting a free webinar under BEAM (Bridge Events And Meets) on September 6th, 2017.
We designed this webinar as a must-attend event for those who are looking for a kick-start moment to lead their organization into the DevOps environment. It attracted several attendees from all parts of the world. They all sat back and learned valuable insights on DevOps culture and practices.
People are tired of hearing the countless amount of suggestions and opinions while contemplating to start their DevOps journey. This webinar helped its attendees in getting rid of all kinds of apprehensions related to the topic.
Topics Covered
DevOps vs. Traditional Approach.
Addressing the Delivery Challenges.
Why Continuous Integration and Continuous Delivery is so relevant?
DevOps vs Release Management.
Best Practices.
Jenkins is an open-source tool for continuous integration that was originally developed as the Hudson project. It allows developers to commit code frequently to a shared repository, where Jenkins will automatically build and test the code. Jenkins is now the leading replacement for Hudson since Oracle stopped maintaining Hudson. It helps teams catch issues early and deliver software more rapidly through continuous integration and deployment.
The document discusses software architecture in a DevOps world. It defines software architecture and DevOps, and explains how applying DevOps principles like gradual changes, customer orientation, automation, ownership, collaboration, experimentation and continuous improvement can help architects work with DevOps teams. The document provides examples of how each principle can be applied to software architecture. It emphasizes that software architecture should focus on business needs, involve developers, and evolve incrementally rather than being designed upfront.
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"Daniel Bryant
DevOps - is it for you? Heard about the wonderful ways it could benefit your organisation, but put off by the scary stories? Can you really make the transition to DevOps, and is it worth it? Listen and learn from two DevOps practitioners about their hands-on experiences in making the change. Covering a range of real life examples, this talk will explain the real business benefits to be had from using DevOps techniques, as well as the technical and personal aspects involved.
Whether it’s a small team within a startup or one of hundreds within a large organisation, this talk has practical advice on how to approach the challenge, what critical changes need to be considered, and what tools and processes are best suited for the situation. The adoption of DevOps is a game changing event for the industry. Learn why and learn how you can benefit from it too.
This talk was presented with Steve Poole (@spoole167) at JAX London, October 2014
Built to Scale: The Mozilla Release Engineering toolboxKim Moir
The document discusses how Mozilla scales its infrastructure to build and test software at tremendous scale. It notes that Mozilla runs over 1.5 million build jobs and 13 million test jobs annually, using over 5,000 hardware devices. To manage this scale, Mozilla uses several open source tools like Buildbot for continuous integration and Puppet for configuration management. It also leverages cloud infrastructure like Amazon Web Services, running over 80% of build jobs and 50% of test jobs in AWS. Release engineers work to optimize this infrastructure to improve wait times for developers while reducing costs through techniques like using multiple AWS regions and spot instances.
The Development History of PVS-Studio for LinuxPVS-Studio
Earlier this year, we started doing something that we had felt uncertain about for a long time, namely porting PVS-Studio to Linux. In this article, I will tell you how we made the decision to create a product for Linux distributions after 10 years of the Windows version's existence. It's a big job, which, unfortunately, involves much more work than simply compiling the source files for the new platform, as some may think.
I broke what?!??!? Taking over maintenance on well loved projectsBert JW Regeer
The document discusses the speaker becoming the maintainer of the Python WebOb library. Some key points:
- The speaker was given commit access to WebOb and added as the maintainer on PyPI after contributing fixes and being active on IRC.
- As maintainer, the speaker had ideas to improve the code but quickly learned that even small changes can break dependencies, requiring care around backwards compatibility.
- It is important to consider existing users and set deprecation policies before making changes. The speaker advocates refactoring code over time rather than rewriting.
- Being a maintainer involves being a gatekeeper for standards while growing the community and finding the next generation of contributors.
From Puppet templates to troubleshooting, writing custom types and getting up and running quickly— you'll learn about it at PuppetConf 2016 in San Diego. Learn more and register at https://puppet.com/puppetconf/.
See how other companies are using Puppet and DevOps practices to help them with security and compliance at PuppetConf 2016 in San Diego. Learn more and register at https://puppet.com/puppetconf/.
Merge hells!! feature toggles to the rescueLeena N
Introducing Continuous Delivery practices to a team in trouble can be daunting. Where do you start ? What do you do first ? Which battle do you pick first ?
I’ll share my experience of guiding a team to achieve a higher degree of delivery maturity. This is a journey from a troublesome, struggling start of chaotic manual deployments, merge hell, regular production roll backs and lost code, to deliver a single commit to trunk automatically and reliably, under an hour, many times a day.
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Bert Jan Schrijver
The document discusses how software architects can work with DevOps teams by applying DevOps principles to software architecture. Some key points made:
- DevOps principles like gradual changes, customer orientation, automation, ownership, collaboration, experimentation and continuous improvement should guide architectural decisions and processes.
- The architecture should start simply and evolve iteratively based on feedback from developers and customers.
- Automation, infrastructure as code, and measuring architectural decisions are important.
- The team should own the architecture collaboratively and the architect must be accountable and involved.
From measuring and tuning Puppet Enterprise performance to testing and delivering Puppet — you'll hear about it at PuppetConf 2016 in San Diego. Learn more and register at https://puppet.com/puppetconf/.
Waste Driven Development - Agile Coaching Serbia MeetupLemi Orhan Ergin
This document discusses lean thinking and waste-driven development for software developers. It argues that traditional software development practices lead to a lot of waste, including defects, rework, slow development cycles, and lack of value delivery to customers. It promotes applying lean principles from manufacturing to software development, such as focusing on value delivery, eliminating waste, keeping codebases small and modular, automating everything, having high transparency, and challenging common paradigms. Documentation is identified as a particular type of waste.
The document outlines 15 ways that organizations can fail at implementing DevOps practices. Some examples of failures include thinking of DevOps as only for development and operations teams, requiring certain tools like containers to do DevOps, and believing DevOps is only about automation. The document emphasizes that DevOps is primarily about culture, collaboration between teams, and removing silos. It encourages starting small with DevOps initiatives and focusing on continual improvement through iteration.
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in ActionBill Scott
Keynote for eBay Classifieds TechCon 2013, Tues June 25, 2013.
This is a variation on previous lean engineering talks but focuses on 8 principles for enabling build/measure/learn.
This document outlines a structured approach to debugging distributed systems. It begins with observing and documenting the problem. The next steps involve creating a minimal reproducer, debugging the client and server sides, and checking DNS, routing, and network connections. Traffic and messages should also be inspected. The process concludes by wrapping up findings and conducting a post-mortem analysis. Key challenges in distributed systems like concurrency, lack of a global clock, and independent failures are discussed.
Hear Dan Munz, David Kennedy and Greg Boone discuss how CFPB was born, what challenges they faced and how WordPress became their CMS backbone throughout it all.
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM
DevOps has been such a buzzword in the IT field nowadays. If you look into job postings, you might be surprised to find terms like "work with DevOps team", "work in an agile team" etc.
What is DevOps? What is agile? And why all these? 樂
Join us on 24 May 2021, where we have a short session to explore on the events that led to the trend nowadays
We will be exploring on the current trends, tech stacks and the existence of DevOps itself! 朗
Mark this date on your calendar and we'll see you there!
* Note: This is an introductory "brief overview" session that gives you context on our upcoming events.
Slides by KwongTN.
Java provides several advantages for development:
1. It is simpler than previous languages like C++ and uses automatic memory allocation rather than requiring programmers to manage memory.
2. It allows for code reuse through object-oriented programming and creating reusable objects.
3. Programs can run on different systems through cross-platform capabilities, making it easy to move from one computer to another.
4. Security was a core consideration in Java's design and development of the language, compiler, and interpreter.
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...Hugo Messer
After the grant success of the C-level event "I/O: Intelligent Outsourcing", Bridge Global is conducting a free webinar under BEAM (Bridge Events And Meets) on September 6th, 2017.
We designed this webinar as a must-attend event for those who are looking for a kick-start moment to lead their organization into the DevOps environment. It attracted several attendees from all parts of the world. They all sat back and learned valuable insights on DevOps culture and practices.
People are tired of hearing the countless amount of suggestions and opinions while contemplating to start their DevOps journey. This webinar helped its attendees in getting rid of all kinds of apprehensions related to the topic.
Topics Covered
DevOps vs. Traditional Approach.
Addressing the Delivery Challenges.
Why Continuous Integration and Continuous Delivery is so relevant?
DevOps vs Release Management.
Best Practices.
Jenkins is an open-source tool for continuous integration that was originally developed as the Hudson project. It allows developers to commit code frequently to a shared repository, where Jenkins will automatically build and test the code. Jenkins is now the leading replacement for Hudson since Oracle stopped maintaining Hudson. It helps teams catch issues early and deliver software more rapidly through continuous integration and deployment.
The document discusses software architecture in a DevOps world. It defines software architecture and DevOps, and explains how applying DevOps principles like gradual changes, customer orientation, automation, ownership, collaboration, experimentation and continuous improvement can help architects work with DevOps teams. The document provides examples of how each principle can be applied to software architecture. It emphasizes that software architecture should focus on business needs, involve developers, and evolve incrementally rather than being designed upfront.
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"Daniel Bryant
DevOps - is it for you? Heard about the wonderful ways it could benefit your organisation, but put off by the scary stories? Can you really make the transition to DevOps, and is it worth it? Listen and learn from two DevOps practitioners about their hands-on experiences in making the change. Covering a range of real life examples, this talk will explain the real business benefits to be had from using DevOps techniques, as well as the technical and personal aspects involved.
Whether it’s a small team within a startup or one of hundreds within a large organisation, this talk has practical advice on how to approach the challenge, what critical changes need to be considered, and what tools and processes are best suited for the situation. The adoption of DevOps is a game changing event for the industry. Learn why and learn how you can benefit from it too.
This talk was presented with Steve Poole (@spoole167) at JAX London, October 2014
Built to Scale: The Mozilla Release Engineering toolboxKim Moir
The document discusses how Mozilla scales its infrastructure to build and test software at tremendous scale. It notes that Mozilla runs over 1.5 million build jobs and 13 million test jobs annually, using over 5,000 hardware devices. To manage this scale, Mozilla uses several open source tools like Buildbot for continuous integration and Puppet for configuration management. It also leverages cloud infrastructure like Amazon Web Services, running over 80% of build jobs and 50% of test jobs in AWS. Release engineers work to optimize this infrastructure to improve wait times for developers while reducing costs through techniques like using multiple AWS regions and spot instances.
The Development History of PVS-Studio for LinuxPVS-Studio
Earlier this year, we started doing something that we had felt uncertain about for a long time, namely porting PVS-Studio to Linux. In this article, I will tell you how we made the decision to create a product for Linux distributions after 10 years of the Windows version's existence. It's a big job, which, unfortunately, involves much more work than simply compiling the source files for the new platform, as some may think.
DevOps (development & operations) is an endeavor software development express used to mean a type of agile connection amongst development & IT . V Cube is one of the best institute for DevOps training in Hyderabad, We offers the comprehensive and in-depth training in DevOps. DevOps is an endeavor software development express used to mean a type of agile connection amongst development & IT operations.
DevOps is an IT cultural revolution sweeping through today’s organizations that want to develop, design, test, and deploy software more quickly and effectively. DevOps training in Hyderabad will enable you to master key DevOps principles, tools, and technologies such as automated testing, Infrastructure as a Code, Continuous Integration/Delivery, and more.
Software development (Dev) and IT operations (Ops) are combined in DevOps (Ops). Its goal is to shorten the systems development life cycle and provide high-quality software delivery on a continuous basis. DevOps is an add-on to Agile software development; in fact, several aspects of DevOps came from the Agile methodology.
Academics and practitioners have not developed a universal definition for the term “DevOps” other than it being a cross-functional combination (and a portmanteau) of the terms and concepts for “development” and “operations.” DevOps is typically defined by three key principles: shared ownership, workflow automation, and rapid feedback.
DevOps is defined as “a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality,” according to Len Bass, Ingo Weber, and Liming Zhu, three computer science researchers from the CSIRO and the Software Engineering Institute. The term is, however, used in a variety of contexts. DevOps is a combination of specific practices, culture change, and tools at its most successful.
Under a DevOps model, development and operations teams are no longer “siloed.” Sometimes, these two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function.
In some DevOps models, quality assurance and security teams may also become more tightly integrated with development and operations and throughout the application lifecycle. When security is the focus of everyone on a DevOps team, this is sometimes referred to as DevSecOps.
These teams use practices to automate processes that historically have been manual and slow. They use a technology stack and tooling which help them operate and evolve applications quickly and reliably. These tools also help engineers independently accomplish tasks (for example, deploying code or provisioning infrastructure) that normally would have required help from other teams, and this further increases a team’s velocity to know more about the DevOps.
What is DevOps And How It Is Useful In Real life.anilpmuvvala
DevOps (development & operations) is an endeavor software development express used to mean a type of agile connection amongst development & IT . V Cube is one of the best institute for DevOps training in Hyderabad, We offers the comprehensive and in-depth training in DevOps. DevOps is an endeavor software development express used to mean a type of agile connection amongst development & IT operations.
DevOps is an IT cultural revolution sweeping through today’s organizations that want to develop, design, test, and deploy software more quickly and effectively. DevOps training in Hyderabad will enable you to master key DevOps principles, tools, and technologies such as automated testing, Infrastructure as a Code, Continuous Integration/Delivery, and more.
Software development (Dev) and IT operations (Ops) are combined in DevOps (Ops). Its goal is to shorten the systems development life cycle and provide high-quality software delivery on a continuous basis. DevOps is an add-on to Agile software development; in fact, several aspects of DevOps came from the Agile methodology.
Academics and practitioners have not developed a universal definition for the term “DevOps” other than it being a cross-functional combination (and a portmanteau) of the terms and concepts for “development” and “operations.” DevOps is typically defined by three key principles: shared ownership, workflow automation, and rapid feedback.
DevOps is defined as “a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality,” according to Len Bass, Ingo Weber, and Liming Zhu, three computer science researchers from the CSIRO and the Software Engineering Institute. The term is, however, used in a variety of contexts. DevOps is a combination of specific practices, culture change, and tools at its most successful.
Under a DevOps model, development and operations teams are no longer “siloed.” Sometimes, these two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function.
In some DevOps models, quality assurance and security teams may also become more tightly integrated with development and operations and throughout the application lifecycle. When security is the focus of everyone on a DevOps team, this is sometimes referred to as DevSecOps.
These teams use practices to automate processes that historically have been manual and slow. They use a technology stack and tooling which help them operate and evolve applications quickly and reliably. These tools also help engineers independently accomplish tasks (for example, deploying code or provisioning infrastructure) that normally would have required help from other teams, and this further increases a team’s velocity to know more about the Devops get your Devops training Now.
DevOps is a software development method that stresses communication and integration between developers and IT operations. It aims to allow for more frequent deployment of code changes through automation of the process from development to production. Key aspects of DevOps include continuous integration, delivery, and monitoring to achieve rapid release cycles and get feedback to improve the process.
This document summarizes the steps taken by the Enlightenment project to transition from infrequent 10+ year release cycles to more agile 3 month release cycles. Technological improvements like switching to Git, adding automated builds, static analysis tools, and increasing test coverage helped improve code quality. Social changes like releasing responsibility, communication of benefits, and leading by example helped establish release-focused habits and norms within the distributed developer community. While more work remains, such as improving automated testing and the release process, significant progress was made through automation and gradually socializing developers towards the value of regular releases.
Dev Ops for systems of record - Talk at Agile Australia 2015Mirco Hering
Mirco Hering is a DevOps and Agile lead with over 10 years of experience improving IT delivery through automation, methodology, and innovation. The document discusses applying DevOps principles to systems of record like packaged software, non-custom code, and older custom code. It outlines challenges in automating builds, deployments, testing and integrating these systems. It provides examples of automating merges and traceability for a Siebel system to help systems of record adopt DevOps practices and continuous delivery.
Reactive Microservice Architecture with Groovy and GrailsSteve Pember
Steve Pember gave a presentation on reactive oriented architecture with Grails and Groovy. He discussed some key points:
1. Monolithic applications will not scale well as they grow in complexity, which can negatively impact development and maintenance.
2. Service oriented architecture (SOA) and microservices can help break applications into independent components, but SOA implementations have issues like increased complexity from interconnected services.
3. Architecture choices are more important than any specific framework. Microservices aim to distill SOA principles by focusing each component on a single context to reduce complexity.
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
In 1999, PayPal's name was synonymous with innovation. In fact, the so called PayPal Mafia (original founders) went on to establish Tesla, SpaceX, YouTube, Skype and other startups. They also provided the early investments of many of the most innovative companies on the internet today. But over time that innovation slowed to a crawl.
In 2011 a number of things begin to come together for PayPal that started its journey back to innovation. This is the story of that reboot and how engineering has played a key role in partnering directly with product and design to move from a culture of products having a long shelf life, to one of rapid experimentation.
In this talk, Bill will outline the principles of Lean Engineering; principles for engineering that enable learning. Drawing from his experience leading User Interface Engineering at both Netflix & PayPal, Bill will walk you through the key principles your engineering team will need to adopt to be that enabler for product and design in your organization. This talk will not just inspire you, but it will also give you some hard earned advice on making this a reality in your organization.
The document summarizes key points from Day 1 of DockerCon. It discusses Docker's mission to build tools for mass innovation and how they are taking an incremental approach to reinventing the programmer's toolbox. New tools like Docker, Docker Compose, Docker Machine, Docker Swarm, Docker Networking plugins and Notary were introduced to help solve problems around runtimes, packaging, service composition, machine management, clustering, networking and security. Docker is also donating runC to the Open Container Project and forming the Open Container Project to establish open standards around container formats and governance.
This document summarizes a keynote about Docker's goals of making hardware programmable through containers and open standards. The keynote discusses Docker's goals of reinventing the programmer's toolbox by solving problems like runtime, packaging, composition and networking incrementally. It also discusses building better infrastructure plumbing and promoting open standards through projects like runC, Notary, the Open Container Project and more. The goal is to help organizations solve problems in unique ways through an open developer platform and standards.
Lean engineering for lean/balanced teams: lessons learned (and still learning...Balanced Team
Bill Scott discusses lessons learned bringing lean principles to engineering at PayPal. Some key points:
1. PayPal moved from a culture of long delivery cycles to prioritizing rapid experimentation and learning from customer feedback.
2. The company established two-pizza teams, used Git for continuous deployment, and made the prototype and production stacks the same to enable fast iteration.
3. Principles for lean engineering include refactoring to support experimentation, designing for volatility, decentralizing work, and establishing a "brain" to guide agile work based on customer needs.
Introduction to Docker and Containers- Learning SimpleSandeep Hijam
Docker is an application that generates container images which allow microservices applications to be developed and run. A container image contains all the dependencies of an application. Microservices break applications into small, independent services that communicate via APIs. Docker is like a web server that runs container code. Containers are the actual application code, while Docker generates the container images and hosts the running containers. Microservices improve scalability and maintainability by separating functions into independently deployable services.
This document provides a guide for becoming a DevOps engineer. It discusses what DevOps is, the responsibilities of a DevOps engineer, and the necessary technical and non-technical skills. Foundational skills like Linux, programming, Git, networking and cloud are recommended. Technical skills like CI/CD, containers, Kubernetes, infrastructure as code and security are important. Non-technical skills include understanding DevOps culture, communication, Agile principles and Lean. The document provides certification and learning resources recommendations.
AliExpress’ Way to Microservices - microXchg 2017juvenxu
AliExpress has transitioned to a microservices architecture from a monolithic architecture. This involved several key changes:
1. Organizing code into individual services rather than global jars to improve independence and reusability.
2. Adopting Docker to standardize environments and dependencies.
3. Integrating Alibaba cloud services like configuration (Diamond) and messaging (MetaQ) into applications using Spring starters to simplify usage.
4. Establishing practices like publishing clean API-focused jars, using Maven to manage dependencies, and applying naming standards to improve maintainability at scale.
Many companies are looking for "DevOps'' in many forms, but what kind of skills or experiences are actually needed? I’ll debunk some of the myths surrounding what recruiters or internet lurkers might tell you and find out if you might actually have an aptitude for Site Reliability or Infrastructure Engineering. If so, what might be good knowledge areas to get started with? And if learning leads to an interview, what might that look like?
This document discusses the use of open source tools for entrepreneurship and software development. It begins by stating that the talk is intended for newcomers to open source, startups, and those interested in software projects or careers. It then provides background on the speaker and their experience before defining open source as promoting universal access and redistribution of designs. The document lists many popular open source databases, frameworks, servers and other tools that can be used for projects. It emphasizes asking the right questions about goals, users, and requirements before choosing tools. It also stresses system design, testing features with users, and ongoing maintenance like security, backups and monitoring.
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanDicodingEvent
Untuk memenangkan kompetisi pasar dan mengatasi mahalnya biaya akuisisi pengguna, diperlukan aplikasi iOS dengan performa tinggi yang siap saing dan pro pada retensi pengguna.
Seorang iOS Developer Expert adalah sosok yang mampu mewujudkan App paripurna tersebut. Minim bug, tinggi level keamanannya, dan kecilnya ukuran aplikasi adalah faktor yang harus ia pertimbangkan demi kenyamanan pengguna.
Sementara itu dari sisi kode, seorang iOS Developer Expert harus memastikan bahwa aplikasinya scalable alias tetap bekerja dengan baik saat produk berubah mengikuti kebutuhan bisnis. App tersebut juga harus robust alias dibangun dengan pondasi kode yang kuat.
Jika tidak, perusahaan akan terbebani biaya pengembangan yang tinggi karena sulitnya perbaikan akibat code smell, yakni kode yang berantakan atau berstruktur buruk.
Dalam IDCamp x Dicoding LIVE kali ini kita akan membahas hal-hal yang mesti seorang iOS Developer Expert pahami, yakni best-practice penerapan teknologi terbaru iOS Development yang industri perlukan, sesuai dengan kebutuhan bisnis.
Jika impianmu adalah menjadi iOS Developer Expert, kamu memerlukan insight ini agar kode menjadi lebih kokoh dan mudah untuk dikembangkan menyesuaikan dengan kebutuhan bisnis.
Poin-poin yang akan dibahas mencakup:
- Apa saja praktik terbaik dan keahlian yang wajib kamu miliki guna menjadi iOS Developer Expert? Kenapa penting?
- Bagaimana kelas Menjadi iOS Developer Expert di Dicoding dapat bantu kamu menjadi iOS Developer Expert?
Distributed Systems at Scale: Reducing the FailKim Moir
This talk looks at the major problem's Mozilla's continuous integration farm and the plans we have to fix these issues. This talk was given at USENIX release engineering summit in Washington DC on November 13, 2015.
Scaling mobile testing on AWS: Emulators all the way downKim Moir
This talk will explore the evolution of Mozilla's continuous integration infrastructure for Firefox for Android. From our early device lab, to running tests on reference cards in custom racks, to our current implementation running on emulators in AWS. In addition, I'll discuss how we reduced the cost of running our tests in AWS by the use of spot instances, and fine tuning the selection of instance types. Finally, I'll discuss how we analyzed regression data to prune the number of tests we run to extend the capacity of our test pools and reduce costs. To give you some scope, our continuous integration farm consists of 6700 machines, 150,000 combined daily build and test jobs that are triggered by an average 300 pushes. This talk was given at USENIX release engineering summit in Washington, DC on November 13, 2015.
Mozilla scaled its infrastructure on AWS to handle increasing load from continuous integration while reducing costs. They migrated Linux build and test slaves, Android builds and tests, and supporting services to AWS. This provided additional capacity and improved wait times for developers. Mozilla later optimized its AWS usage further by using spot instances for tests, running tests in parallel on cheaper instances, limiting expensive EBS storage, and implementing caching to reduce network usage.
Has it really been 10 years?
EclipseCon Europe, November 3, 2011
John Kellerman and Kim Moir
Live recording is available on FOSSLC
http://www.fosslc.org/drupal/content/has-it-really-been-10-years
The document summarizes IBM's experience migrating a large codebase from CVS to Git. It involved migrating over 40 active committers and around 600 bundles built daily across 4 active development streams. The migration process took several steps including converting the CVS repositories to Git, adding .gitignore files, and optimizing the repositories. Quotes from IBM employees discuss advantages of Git like thinking in terms of branches instead of patches, and challenges like a learning curve for developers.
Eclipse Top Ten: Important lessons I've learned working on Eclipse Kim Moir
An insightful, candid and funny look at the top ten things I've learned while working on Eclipse for 8+ years. Community, contributors, committers, comics, this talk will have it all.
See http://relengofthenerds.blogspot.com the text associated with the slides
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...kalichargn70th171
A dynamic process unfolds in the intricate realm of software development, dedicated to crafting and sustaining products that effortlessly address user needs. Amidst vital stages like market analysis and requirement assessments, the heart of software development lies in the meticulous creation and upkeep of source code. Code alterations are inherent, challenging code quality, particularly under stringent deadlines.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfUndress Baby
The quest for the best AI face swap solution is marked by an amalgamation of technological prowess and artistic finesse, where cutting-edge algorithms seamlessly replace faces in images or videos with striking realism. Leveraging advanced deep learning techniques, the best AI face swap tools meticulously analyze facial features, lighting conditions, and expressions to execute flawless transformations, ensuring natural-looking results that blur the line between reality and illusion, captivating users with their ingenuity and sophistication.
Web:- https://undressbaby.com/
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
From hello world to goodbye code
1. From Hello World to
Goodbye Code
Kim Moir, Staff Release Engineer, Mozilla, @kmoir
Bonjour à toutes et à tous, hello. I’m very happy to see you all this morning. Je suis
très heureuse de vous voir tous ce matin. My name is Kim Moir and I’m a staff release
engineer at Mozilla. Montreal in January is only slightly colder than Ottawa in January
where I live, so I was not scared off by the weather.
I’ve been paid to work full-time in open source since 2001. Before that I worked in
government, education, and at other tech companies. Before that I was a student just
like you. We didn’t have email on our phones, in fact, we barely had email. I’ve been
working longer than most of you have been alive. But that’s okay. If I can survive 20+
years in the tech industry, so can you.
Mozilla is most well known for building Firefox the web browser. As well as for their
mission to make the internet open and accessible to all. I don’t work on the Firefox
code base itself. As a release engineer, I write tools to scale our large build and
release pipeline that transforms the Firefox code into a shippable product. This
pipeline is a large distributed system. We are constantly optimizing this system to be
more scalable, more resilient to failure and modifying the services it provides.
2. Outside of work, I like baking and running long distances. I have an amazing family
too! I put these pictures up here to show you that as a developer you can have a life
outside of work. Our industry tends to glamourize long hours at the keyboard at the
expense of everything else but it doesn’t have to be that way.
Firefox logo
https://blog.mozilla.org/blog/2017/11/14/fast-for-good-launching-the-new-firefox-into-t
he-world/
3. Today’s agenda
● The life cycle of code
● Distributed systems
● Replacing components of a running distributed system
● You can try it too!
● The life cycle of code
● Distributed systems
● Replacing components of a running distributed system (in the context of
Firefox pipeline rewrite)
● You can try it too!
4. “And as everyone knows, the best kind of laughter is
laughter born of a shared memory.”
― Mindy Kaling, Why Not Me?
Let’s create some memories and talk about distributed systems and deleting code!
5. Hands up, how many of you have worked with a completely new code base in a work
context? How many of you have worked with a existing code base?
I’ve mentored a number of interns over the years, and one thing that I notice is that
many school assignments are based on a completely new code base. I understand
that this is done because everyone is learning language semantics, ui or testing
frameworks for the course curriculum.
In most companies, you will be looking at a existing code base. Even if you start your
own company, you will probably use existing open source or language specific
libraries, or call existing APIs. So an really important skill is learn how to work with an
existing code base.
Photo by Markus Spiske on Unsplash
6. Photo by Francesco Gallarotti on Unsplash
Often an existing code base is like a very large, well established forest that you need
to walk around in for a few hours, days or even a few weeks. Just to understand how
it all works.
7. Photo by Koen Eijkelenboom on Unsplash
It’s also good to talk to other people that have wandered in the code before. What do
they know? What can you learn from them? Asking lots of questions as a software
engineer is one of of the most important skills you can learn.
8. Healthy code bases and their teams
● Documented shipping and deployment processes that work
● Ship new binaries or provide updates on a regular basis
These are things that I look for when I look at a new code base. As a release
engineer, I’m biased to these qualities because I really care about shipping.
Is the process documented on how to ship?
Can more than one person ship the product or is this a magical set of steps that only
one person knows how to execute?
How often do you deploy or update users
9. Healthy code bases and their teams (cont’d)
● Readable code
● Tested code - correctness, integration, performance
● Feedback mechanism between developers and users
Is it readable code or is there dead code and tests?
Are there tests with a reasonable level of code coverage?
Where do you report bugs? Or request new features?
Is there telemetry that report failures in the product automatically?
10. ● Code ownership and review is shared among multiple people
● Ownership = responsibility for change
● This doesn’t mean that you have to do everything yourself
● You can serve a code reviewer and mentor new people
● People need to CARE about the code and the people who use and maintain it
Healthy code bases and their teams (cont’d)
When I used to work in the Eclipse community many years ago, the project I worked
on didn’t have a code review process in place until a few weeks before the release
each release. The problem was this approach was that there were limited people
who understood different components. And when they decided to leave the
community, the expertise left with them. (This process has since changed and they do
have more code review in place)
At Mozilla, we have the concept of module ownership and a robust code review
process. This helps a larger group of people understand components of the code
base because people are required to evaluate contributions. Reduces the bus factor
as well when people leave.
11. ● Photo by John Baker on Unsplash
● Examples of old code bases actively being updated
○ Voyager space probes (~40 years)
○ Airplanes (~30 year service lifetime)
○ Industrial robots (~20 years)
○ The first Firefox release was over 15 years ago. I’m not sure how much
of the original code base remains. I often think that large code bases
are like the cells in a human body, over time, much will be replaced by
new, but eventually it will die.
Industial robots
https://www.bastiansolutions.com/blog/index.php/2015/04/30/increase-life-span-of-ind
ustrial-robot/
Voyager https://www.nasa.gov/mission_pages/voyager/index.html
Social implications of old code
Updating voyager software
https://www.quora.com/Was-the-opportunity-to-update-the-Voyager-spacecraft-firmwa
re-ever-considered-If-there-are-plans-to-launch-another-Voyager-could-we-keep-upda
ting-its-Earth-information-content
12. Nasa retiring engineer voyager
http://www.popularmechanics.com/space/a17991/voyager-1-voyager-2-retiring-engine
er/
13. There are also social issues to maintaining old code bases. For instance, last year
NASA was looking for a new developer to maintain it’s code base for the Voyager
Space probes because last of the original team members were getting ready to retire.
14. Firefox continuous integration
Land code
Unit tests
Decision
graph
Builds x N
platforms
Performance
tests
Sign Builds
This is a very simplified diagram of the process that occurs when a developer lands
code on our build pipeline. With her commit, a decision graph is generated that lists
all the jobs that need to run. Then we build for four platforms - Linux, Mac, Windows
and Android. These builds are then signed, and we run unit tests and performance
tests so the developers can see the results of their commit. Did the tests fail? Or are
there performance regressions they need to address?
15. Pipeline Metrics
● Constraints - it needs to be up and running all the time for developer
productivity
● ~500 commits a day
● 140K jobs a day
The build and release pipeline for Firefox is a large distributed system. Here are
some metrics about it
● Developers love to ship. In order to ship, they need feedback on their
patches. Can I ship this? Or does is there a regression that needs to be
backed out? Improves happiness if they can see the results of their work more
quickly
16. Photo by Uroš Jovičić on Unsplash
End to end times - This is the time from a developer lands a commit until we are able
to ship the finished product.
Why are they important?
1. Landing small incremental patches reduces risk. Too difficult to figure out what
went wrong on a high velocity team with a huge number of commits.
2. 0 days - we need to be able to get security patches to our users quickly. For
instance last week we released five releases to address the recent Meltdown
and Spectre vulnerabilities.
17. This is a picture of the Firefox release engineering pipeline from 3 years ago that
Selena Deckelmann created. It took (optimistically around 11 hours at that time to
ship a release from the time a developer landed a commit to builds being available to
users). You don’t have to understand or read all the components of this diagram, only
understand that it was scary and had many single points of failure and scalability
issues.
It takes 4-5 hours from developer commit to builds we can ship.
http://www.chesnok.com/daily/2014/05/02/release-engineering-a-draft-of-an-architect
ure-diagram/
18. Why did we rewrite?
● Developer autonomy
● Fail faster
● Better local and pipeline testing
● Change technology stack (Docker, microservices, graph generation,
optimization and transformation, task parallelization)
● Learn new things!
● So we decided to rewrite our existing pipeline to be more resilient and scalable
● Any developer can make changes to build and test configuration, before
releng was a blocker for these changes
● With every push to a repo, a decision graph is generated automatically.
Basically it contains a list of tasks and all their dependencies that are needed
to run associated with that push. If it fails, the builds aren’t run which saves
resources
● Developers can also test these changes locally or on the build pipeline
● Photo by ARTHUR YAO on Unsplash
19. Reasons not to rewrite?
● Failure is highly likely
● Really expensive
● May lose people on your team who aren’t interested in working on a new
technology stack
Have to defer other project work because you are heads down on a rewriting project.
There is also usually a huge learning curve if you are moving to a new technology
stack, not just for developers but for operations folks as well
20. “A system that spans more than one physical
location and uses the related concepts of copying
and decoupling to improve operational efficiency
(speed, resilience) and, more recently, developer
efficiency (team productivity).”
-Anne Currie
Distributed system
If your system spans more than one location you can make it more resilient.
For instance, our pipeline uses Amazon instances to run builds and tests, and we run
these jobs in multiple Amazon regions which correspond to different geographic
areas.
Copying data means that that it is available in more than one location, which is
another way to make the system more resilient. For instance, when we release
Firefox we release it from multiple CDNs.
Decoupling means that you have services that can operate on their own without
depending on other services being available
Decoupled services usually communicate with each other via APIs
This allows you to change the internal implementation without the other services
having to change the way you interact with the service
In this approach you can also stop, start and replace parts of the system. With a
monolith, this is more difficult to do.
This approach also allows team members to work on different parts of the system
without everyone contending for the same resources.
Another reason that we use distributed system is that is allows us to scale up capacity
incrementally by instantiating copies of existing services. For instance with our
21. migration we ran many more services in parallel to allow the end to end time for
releases to drop significantly.
They also allow us to provide a reasonable level of service to clients.
Availability means we can always provide a predictable service to clients. Even if
there are issues like network problems, the system can appear available.
Why do we use distributed systems
http://container-solutions.com/use-distributed-systems-resilience-performance-availab
ility/
Resilience, Performance & Availability
22. How to approach migration
● Incremental portions of pool
● Communication
● Checklist
● Monitor capacity and wait times
● Monitor state after migration
● Rollback plan
● Decommission old
● Migrate more
● This is in the context of a large migration that we did at Mozilla where we
migrated components of our build and release pipeline to a new microservices
architecture and Docker
● Communicate - open an issue.
● Let people know via mailing list, Slack/irc of timeframes for deletion
● Update issue tracker with plan and time
23. Strangler Application - Martin Fowler
From Jez Humble’s Continuous delivery page
https://continuousdelivery.com/implementing/architecture/
“One pattern that is particularly valuable in this context is the strangler application. In
this pattern, we iteratively replace a monolithic architecture with a more
componentized one by ensuring that new work is done following the principles of a
service-oriented architecture, while accepting that the new architecture may well
delegate to the system it is replacing. Over time, more and more functionality will be
performed in the new architecture, and the old system being replaced is “strangled”.”
In Mozilla releng, we recently migrated from an old build job scheduling system called
Buildbot to one called Taskcluster.
One of the things that really helped us achieve this in our transition was an application
called buildbot bridge. This allowed us to schedule jobs on taskcluster, but continue
to run them on buildbot. This is similar to the dispatcher function showed in the
diagram above.
24. What have we learned?
● Incrementalism - change one thing, evaluate, then change
another
● Expectations change. The faster we build, the faster other
groups expect to be able to ship
● Staging environment is important to test new automation
● Communication
● Organizational changes
● Consider the operational side, not just landing code
This is an excellent talk on code rewrites as well
So you want to rewrite that - Camille Fournier
https://www.youtube.com/watch?v=PhYUvtifJXk
25. How to delete code
● Communicate, note in issue tracker
● Delete. Don’t comment it out.
● Update or delete relevant tests
● Look at dependencies - can they also be updated or removed?
● Celebrate!
I’ve looked at a lot of code bases in the past where people are afraid to delete code,
so they comment it out. This makes the code really unreadable for future
maintainers. Or they leave the tests in place that are no longer relevant.
It’s 2018 and version control is your friend. If you need to look and see why the code
was deleted, you can bisect the code.
26. Hard to open up that door
When you're not sure what you're going for
But we've got to grow
We've got to try
Though it's hard so hard
We've got to say goodbye
―Beyoncé
Sometimes it’s hard to delete code. You get emotionally attached to it. You spent so
much time working on it. It’s okay, there will be something new to learn about!
27. From WOCintechchat stock photos License Creative Commons Attribution 2.0
Generic (CC BY 2.0)
How can you apply these principles yourself?
When you work on a new project, think about the lifecycle of the code
What is the update strategy? Mobile or web? With desktop apps you can’t ship 1.0
until you have an update strategy for 2.0
What is your deployment strategy
How will you find out if your users are unhappy
How can you distribute code ownership?
28. In conclusion, as you embark upon your careers in engineering, it has been my
experience that people matter more than code.
29. We are hiring - check out
https://careers.mozilla.org/
Thank you!
Also I have a couple hundred Firefox and Mozilla stickers, please see me afterwards
if you are interested
30. Additional Reading
● Camille Fournier: So you want to rewrite that, GOTO conference, Chicago,
2014 https://www.youtube.com/watch?v=PhYUvtifJXk
● Caitie McCaffrey: Resources for Getting started with distributed systems
https://caitiem.com/2017/09/07/getting-started-with-distributed-systems/
● Anne Currie:
○ What is a Distributed system? https://container-solutions.com/what-is-a-distributed-system/
○ Why is a Single-Threaded Application like a Distributed System?
http://container-solutions.com/single-threaded-application-like-distributed-system/
○ Why Use Distributed Systems? Resilience, Performance, and Availability
http://container-solutions.com/use-distributed-systems-resilience-performance-availability/
31. Additional Reading
● Lin Clark: Entering the Quantum Era—How Firefox got fast again and where
it’s going to get faster
https://hacks.mozilla.org/2017/11/entering-the-quantum-era-how-firefox-got-fa
st-again-and-where-its-going-to-get-faster/
●