Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
Invited talk at the Leaders of Tomorrow Symposium of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016).
The presentation (and its accompanying paper, see http://mcis.polymtl.ca/publications/2016/fose.pdf) explain the basics of release engineering pipelines, common challenges industry is facing as well as pitfalls software engineering researchers are falling into.
Speakers are Bram Adams (MCIS, http://mcis.polymtl.ca) and Shane McIntosh (McGill University, http://shanemcintosh.org).
A video-taped version of the talk will be available soon at https://www.youtube.com/channel/UCL8yG6qpHk7V66l1Jt3aZrA/featured.
The 10 Commandments of Release EngineeringSolano Labs
This presentation on The 10 Commandments of Release Engineering is from the December 2013 Automated Testing San Francisco meetup that took place at New Relic's HQ in San Francisco. The author/presenter is Dinah McNutt, Release Engineer at Google. Dinah distills the truths that she's found in her 20 years of building commercial software.
For each truth, she will provide reasons and examples that support the truth. Some of the commandments are controversial, but she will include examples of where these commandments do not apply.
Feel free to join us at our next monthly meetup in San Francisco, New York, or Boston. Find us at #AutoTestSF / #AutoTestNYC / #AutoTestBoston
---
About Dinah McNutt:
Dinah McNutt is a Release Engineer at Google, Inc and is also chairing the USENIX 2014 Summit on Release Engineering. She has been involved with systems administration since the mid-1980’s. Some of her accomplishments include writing the Daemons & Dragons column for Unix Review Magazine, writing for SunExpert Magazine, Byte, and other publications. She has served on the LISA program committee several times including chairing the conference. She has 20 years of commercial release engineering experience and has released all types of Unix-based software from shrink wrapped to web-based services to network appliances.
Release engineering involves managing the delivery of high quality software releases through processes like release planning, branch management, building, testing, and source code control. It aims to make releases predictable and of high quality by facilitating activities such as compiling code, verifying functionality, controlling branching/merging of codelines, and following best practices.
Becoming A Plumber: Building Deployment Pipelines - LISA17Daniel Barker
A core part of our IT transformation program is the implementation of deployment pipelines for every application. Attendees will learn how to build abstract pipelines that will allow multiple types of applications to fit the same basic pipeline structure. This has been a big win for injecting change and updating legacy applications.
A Declarative Approach for Performance Tests Execution in Continuous Software...Vincenzo Ferme
Software performance testing is an important activity to ensure quality in continuous software development environments. Current performance testing approaches are mostly based on scripting languages and framework where users implement, in a procedural way, the performance tests they want to issue to the system under test. However, existing solutions lack support for explicitly declaring the performance test goals and intents. Thus, while it is possible to express how to execute a performance test, its purpose and applicability context remain implicitly described. In this work, we propose a declarative domain specific language (DSL) for software performance testing and a model-driven framework that can be programmed using the mentioned language and drive the end-to-end process of executing performance tests. Users of the DSL and the framework can specify their performance intents by relying on a powerful goal-oriented language, where standard (e.g., load tests) and more advanced (e.g., stability boundary detection and configuration tests) performance tests can be specified starting from templates. The DSL and the framework have been designed to be integrated into a continuous software development process and validated through extensive use cases that illustrate the expressiveness of the goal-oriented language, and the powerful control it enables on the end-to-end performance test execution to determine how to reach the declared intent.
My talk from The 9th ACM/SPEC International Conference on Performance Engineering (ICPE 2018). Cite us: https://dl.acm.org/citation.cfm?id=3184417
Automate your build on Android with JenkinsBeMyApp
This document discusses continuous integration, delivery, and deployment. It defines each term and explains that continuous integration involves compiling, testing, and deploying code with each commit. Continuous delivery further involves delivering code to subsequent teams after integration. Continuous deployment automatically deploys code to production after delivery. The document then provides examples of implementing continuous integration using tools like Jenkins and distributing builds across multiple machines. It addresses challenges and differences for continuous delivery versus deployment of mobile apps.
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
Invited talk at the Leaders of Tomorrow Symposium of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016).
The presentation (and its accompanying paper, see http://mcis.polymtl.ca/publications/2016/fose.pdf) explain the basics of release engineering pipelines, common challenges industry is facing as well as pitfalls software engineering researchers are falling into.
Speakers are Bram Adams (MCIS, http://mcis.polymtl.ca) and Shane McIntosh (McGill University, http://shanemcintosh.org).
A video-taped version of the talk will be available soon at https://www.youtube.com/channel/UCL8yG6qpHk7V66l1Jt3aZrA/featured.
The 10 Commandments of Release EngineeringSolano Labs
This presentation on The 10 Commandments of Release Engineering is from the December 2013 Automated Testing San Francisco meetup that took place at New Relic's HQ in San Francisco. The author/presenter is Dinah McNutt, Release Engineer at Google. Dinah distills the truths that she's found in her 20 years of building commercial software.
For each truth, she will provide reasons and examples that support the truth. Some of the commandments are controversial, but she will include examples of where these commandments do not apply.
Feel free to join us at our next monthly meetup in San Francisco, New York, or Boston. Find us at #AutoTestSF / #AutoTestNYC / #AutoTestBoston
---
About Dinah McNutt:
Dinah McNutt is a Release Engineer at Google, Inc and is also chairing the USENIX 2014 Summit on Release Engineering. She has been involved with systems administration since the mid-1980’s. Some of her accomplishments include writing the Daemons & Dragons column for Unix Review Magazine, writing for SunExpert Magazine, Byte, and other publications. She has served on the LISA program committee several times including chairing the conference. She has 20 years of commercial release engineering experience and has released all types of Unix-based software from shrink wrapped to web-based services to network appliances.
Release engineering involves managing the delivery of high quality software releases through processes like release planning, branch management, building, testing, and source code control. It aims to make releases predictable and of high quality by facilitating activities such as compiling code, verifying functionality, controlling branching/merging of codelines, and following best practices.
Becoming A Plumber: Building Deployment Pipelines - LISA17Daniel Barker
A core part of our IT transformation program is the implementation of deployment pipelines for every application. Attendees will learn how to build abstract pipelines that will allow multiple types of applications to fit the same basic pipeline structure. This has been a big win for injecting change and updating legacy applications.
A Declarative Approach for Performance Tests Execution in Continuous Software...Vincenzo Ferme
Software performance testing is an important activity to ensure quality in continuous software development environments. Current performance testing approaches are mostly based on scripting languages and framework where users implement, in a procedural way, the performance tests they want to issue to the system under test. However, existing solutions lack support for explicitly declaring the performance test goals and intents. Thus, while it is possible to express how to execute a performance test, its purpose and applicability context remain implicitly described. In this work, we propose a declarative domain specific language (DSL) for software performance testing and a model-driven framework that can be programmed using the mentioned language and drive the end-to-end process of executing performance tests. Users of the DSL and the framework can specify their performance intents by relying on a powerful goal-oriented language, where standard (e.g., load tests) and more advanced (e.g., stability boundary detection and configuration tests) performance tests can be specified starting from templates. The DSL and the framework have been designed to be integrated into a continuous software development process and validated through extensive use cases that illustrate the expressiveness of the goal-oriented language, and the powerful control it enables on the end-to-end performance test execution to determine how to reach the declared intent.
My talk from The 9th ACM/SPEC International Conference on Performance Engineering (ICPE 2018). Cite us: https://dl.acm.org/citation.cfm?id=3184417
Automate your build on Android with JenkinsBeMyApp
This document discusses continuous integration, delivery, and deployment. It defines each term and explains that continuous integration involves compiling, testing, and deploying code with each commit. Continuous delivery further involves delivering code to subsequent teams after integration. Continuous deployment automatically deploys code to production after delivery. The document then provides examples of implementing continuous integration using tools like Jenkins and distributing builds across multiple machines. It addresses challenges and differences for continuous delivery versus deployment of mobile apps.
Google在2013開始導入Gradle工具作為新的Android build system,Gradle的使用正是實踐DevOps的良好利器,除了方便進行automated building外, Gradle更幫助我們消弭不同開發環境/工具間的差異問題,如同infarsture as code之於web application/service的重要性,build script as code就是幫助Android App快速發佈版本並維持品質穩定的關鍵最後一哩路。
此次主題將探討如何利用gradle進行精實良好的系統開發配置管理,建立一條下達開發者本地端上通產品發佈系統的透明化產品開發流水線。你是否常常一個App剛發佈不久,下一個idea已經生成,舊程式需要繼續維護同時又要添加新功能,你的開發方法是否能讓多方產品流水線順暢運行而且並行不悖?妥善利用Gradle並深入理解Build by convention的內涵是最好的選擇。
A very big thank you to Michael Palotas from Grid Fusion & eBay International for taking the time and effort to travel across the globe to present at the Australian Test Managers Forum 2014. If you would like any information on TMF please email tmf@kjross.com.au
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
Spring Cloud Pipelines provides an opinionated template for continuous deployment pipelines that is based on best practices. It aims to solve the problem of having to create deployment pipelines from scratch for each new project. The pipelines support various automation servers like Concourse and Jenkins, and include steps for building, testing, and deploying applications. They promote practices like failing fast, standardized deployments, and testing rollbacks to enable techniques like zero-downtime deployments.
Continuous Integration using Cruise Controlelliando dias
The document discusses Continuous Integration using Cruise Control. It defines Continuous Integration as integrating source code and running tests after each commit to the source repository to provide near-immediate feedback. Cruise Control runs builds whenever code is committed, allows scheduling nightly builds, and notifies users of build results to simplify release management. While Cruise Control automates the build process, developers must still write the build scripts and unit tests.
Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...Shane McIntosh
Build systems specify how sources are transformed into deliverables, and hence must be carefully maintained to ensure that deliverables are assembled correctly. Similar to source code, build systems tend to grow in complexity unless specifications are refactored. This paper describes how clone detection can aid in quality assessments that determine if and where build refactoring effort should be applied. We gauge cloning rates in build systems by collecting and analyzing a benchmark comprising 3,872 build systems. Analysis of the benchmark reveals that: (1) build systems tend to have higher cloning rates than other software artifacts, (2) recent build technologies tend to be more prone to cloning, especially of configuration details like API dependencies, than older technologies, and (3) build systems that have fewer clones achieve higher levels of reuse via mechanisms not offered by build technologies. Our findings aided in refactoring a large industrial build system containing 1.1 million lines.
NIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW DeveloperJKI
Slides from JKI's NIWeek 2012 technical session, "Secret Sauce: Tools to Make You a Better LabVIEW Developer," presented by Justin Goeres.
If you could save one hour a day by working smarter, how much more value could you create and how much less stress would you feel? LabVIEW Champion Justin Goeres shows you how to manage your code, projects, and commitments using the same free and low-cost tools JKI engineers use.
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Christian Catalan
Presented at the STLJS Meetup (St Louis, MO)
We dive into a Vue application used in semiconductor labs for transistor measurements. We discuss how get started with E2E testing with Cypress.io. And give a crash course into Vue applications.
Video: https://www.youtube.com/watch?v=dpB0YgnFyZQ
Many Scala developers nowadays consider using Dependency Injection frameworks an anti-pattern incompatible with modern FP settings. We argue that it's just a consequence of a bad experience with legacy Java runtime reflection-based implementations that lack features important for modern functional programming, such as a first-class support for higher-kinded types. We argue that as a paradigm for structuring purely functional programs, DI with automatic wiring compares favorably against implicits, monad transformers, free monads, algebraic effects, cake pattern et al, enabling scaling and a degree of modularity unachievable by any manual wiring approach. This talk covers DIStage – a transparent, flexible and efficient DI framework for Scala that enables late binding, testability, effect separation and modular resource management at scale, working with, instead of compromising the Scala type system.
Documentation: https://izumi.7mind.io/latest/release/doc/distage/
Hyper-pragmatic Pure FP testing with distage-testkit7mind
Having a proper test suite can turn ongoing application maintenance and development into pure joy – the best tests check meaningful properties, not the implementation details, and hold no impliict assumptions about their test environment - every test case must be self-contained and portable. To ensure that tests are free of implementation details and environment dependency, we may simply run them in a different test environment, with different implementations of components. But the boileplate and manual work involved in rewiring components, writing hardcoded fixtures and setting up different test environments make this very hard to do at scale. To tackle this problem we've created distage & distage-testkit, distage-testkit gives you the following superpowers:
* ability to easily swap out individual components or entire test environments
* principled & leak-free control of global resources for integration testing – docker containers, DBs, DDLs
* execute effects or allocate resources per-test, e.g. generate random fixtures per-test
* first-class testing of functional effects
* write tests as lambdas – access test fixtures via parameters or ZIO Environment
...and more! We'll also discuss general testing practices and what really distinguishes good tests from great tests.
Frameworks are bulky, quirky, and non-compositional, which has led to a rejection of Spring and similar frameworks in the Scala ecosystem. Yet, despite their drawbacks, frameworks have been used to boost team productivity in many large companies. In this presentation, Pavel and Kai will introduce Izumi 1.0, a Scala microframework based on compositional functional programming. Designed to help you and your team achieve new levels of productivity, Izumi now includes full compile-time checks for your configurable applications and completely reworked Tagless Final hierarchy for Bifunctors and Trifunctors.
Scala, Functional Programming and Team Productivity7mind
Many engineers spend a lot of time doing repetitive things. In this talk we examine typical productivity issues, which observed in many different companies, and show how to deal with them. We cover:
* Microservices and Monoliths,
* Introspection and Debugging,
* Logging,
* Modular Design,
* Functional Programming,
* RPC and REST,
* Tests and Delivery Pipeline.
This talk is a retrospective of our actions that helped our customer to cut development costs by 50%. We expect our experience to be applicable to most small and medium-sized teams and companies using Scala.
Short overview of the main principles of Continuous Integration (CI), describing benefits of CI and showing a smooth path of integrating CI into your development cycle, finishing with a short introduction into Xinc - PHP CI Server and how to utilize it for your projects.
This document outlines 15 ways to fail at implementing DevOps. It begins by defining key DevOps concepts like continuous integration, continuous delivery, and continuous deployment. It then lists common misconceptions about DevOps, such as thinking it is only about tools or automation, or can be enforced top-down. The document concludes that DevOps is really about culture, freedom and responsibility, and empathy between teams.
Architecting the Future: Abstractions and Metadata - BSidesKCDaniel Barker
Kubernetes and Docker are two of the top open source projects, and they’re built around abstractions and metadata. These two concepts are the key to architecting in the future. Come with me as I dig a little deeper into these concepts within k8s and Docker and provide some examples from my own work.
CLA Summit 2013: Connecting LabVIEW to Everything ElseJKI
Slides from JKI's CLA Summit 2013 presentation, "Connecting LabVIEW to Everything Else," presented by Jim Kring.
Our consulting customers want the software we create to be “open,” in the sense that they need to integrate it into other business systems, or they need to use it from their own system development, or they just need to get data out in the way they want. This means providing an external API that users/clients can access – especially from tools other than LabVIEW. In this presentation from the Americas CLA Summit 2013, Jim Kring explains why external APIs are a fundamental part of professional software development, and explores how different types of APIs are useful at different stages of development all the way from proof-of-concept to final shipment.
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.
Test Automation at the Speed of Agile: Making It Work Every BuildTechWell
Join Danny McKeown, Paychex’s lead test enterprise automation architect, to see how a small tools group supports nearly one-hundred agile teams as they move toward achieving continuous delivery. Take part in the conversation to understand how Paychex is progressing in the third year of its agile transformation. Danny describes how this IT-wide initiative has impacted how the tools group supports so many teams and changed its own practices to provide more timely support. With the goal of increasing velocity, a solid automation strategy has become a powerful enabler. Danny describes how Paychex assesses progress with a maturity lens. Their always-evolving automation framework serves web and mobile team requirements. He shares an HTML5 mini-case study, describing how adopting responsive web changed practices. Embedding quality in multiple daily builds has not come without its challenges, and Danny describes the lessons learned and their next steps. This interactive session will encourage participants to share their experiences as well—so come ready!
The Bash Dashboard (Or: How to Use Bash for Data Analysis)Bram Adams
Bash can be used for data analytics tasks like preparing and exploring data. The document demonstrates various Bash commands for working with CSV files containing app data. These include commands for viewing headers, counting rows, filtering, sorting, joining files, and aggregating data. Bash allows string manipulation and piping output between commands to programmatically analyze datasets from the command line.
A Qualitative Study on Performance Bugs (MSR 2012)Bram Adams
The document summarizes the findings of a qualitative study comparing performance bugs to non-performance bugs in the Chrome and Firefox browsers. The study analyzed hundreds of bug reports to identify differences across four dimensions: impact on the user, context of the bug, discussion around fixing the bug, and the actual bug fix. The study found that performance bugs generally have a greater negative impact, are more complex to fix, require more discussion and collaboration, and are more likely to block software releases.
Google在2013開始導入Gradle工具作為新的Android build system,Gradle的使用正是實踐DevOps的良好利器,除了方便進行automated building外, Gradle更幫助我們消弭不同開發環境/工具間的差異問題,如同infarsture as code之於web application/service的重要性,build script as code就是幫助Android App快速發佈版本並維持品質穩定的關鍵最後一哩路。
此次主題將探討如何利用gradle進行精實良好的系統開發配置管理,建立一條下達開發者本地端上通產品發佈系統的透明化產品開發流水線。你是否常常一個App剛發佈不久,下一個idea已經生成,舊程式需要繼續維護同時又要添加新功能,你的開發方法是否能讓多方產品流水線順暢運行而且並行不悖?妥善利用Gradle並深入理解Build by convention的內涵是最好的選擇。
A very big thank you to Michael Palotas from Grid Fusion & eBay International for taking the time and effort to travel across the globe to present at the Australian Test Managers Forum 2014. If you would like any information on TMF please email tmf@kjross.com.au
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
Spring Cloud Pipelines provides an opinionated template for continuous deployment pipelines that is based on best practices. It aims to solve the problem of having to create deployment pipelines from scratch for each new project. The pipelines support various automation servers like Concourse and Jenkins, and include steps for building, testing, and deploying applications. They promote practices like failing fast, standardized deployments, and testing rollbacks to enable techniques like zero-downtime deployments.
Continuous Integration using Cruise Controlelliando dias
The document discusses Continuous Integration using Cruise Control. It defines Continuous Integration as integrating source code and running tests after each commit to the source repository to provide near-immediate feedback. Cruise Control runs builds whenever code is committed, allows scheduling nightly builds, and notifies users of build results to simplify release management. While Cruise Control automates the build process, developers must still write the build scripts and unit tests.
Collecting and Leveraging a Benchmark of Build System Clones to Aid in Qualit...Shane McIntosh
Build systems specify how sources are transformed into deliverables, and hence must be carefully maintained to ensure that deliverables are assembled correctly. Similar to source code, build systems tend to grow in complexity unless specifications are refactored. This paper describes how clone detection can aid in quality assessments that determine if and where build refactoring effort should be applied. We gauge cloning rates in build systems by collecting and analyzing a benchmark comprising 3,872 build systems. Analysis of the benchmark reveals that: (1) build systems tend to have higher cloning rates than other software artifacts, (2) recent build technologies tend to be more prone to cloning, especially of configuration details like API dependencies, than older technologies, and (3) build systems that have fewer clones achieve higher levels of reuse via mechanisms not offered by build technologies. Our findings aided in refactoring a large industrial build system containing 1.1 million lines.
NIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW DeveloperJKI
Slides from JKI's NIWeek 2012 technical session, "Secret Sauce: Tools to Make You a Better LabVIEW Developer," presented by Justin Goeres.
If you could save one hour a day by working smarter, how much more value could you create and how much less stress would you feel? LabVIEW Champion Justin Goeres shows you how to manage your code, projects, and commitments using the same free and low-cost tools JKI engineers use.
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Christian Catalan
Presented at the STLJS Meetup (St Louis, MO)
We dive into a Vue application used in semiconductor labs for transistor measurements. We discuss how get started with E2E testing with Cypress.io. And give a crash course into Vue applications.
Video: https://www.youtube.com/watch?v=dpB0YgnFyZQ
Many Scala developers nowadays consider using Dependency Injection frameworks an anti-pattern incompatible with modern FP settings. We argue that it's just a consequence of a bad experience with legacy Java runtime reflection-based implementations that lack features important for modern functional programming, such as a first-class support for higher-kinded types. We argue that as a paradigm for structuring purely functional programs, DI with automatic wiring compares favorably against implicits, monad transformers, free monads, algebraic effects, cake pattern et al, enabling scaling and a degree of modularity unachievable by any manual wiring approach. This talk covers DIStage – a transparent, flexible and efficient DI framework for Scala that enables late binding, testability, effect separation and modular resource management at scale, working with, instead of compromising the Scala type system.
Documentation: https://izumi.7mind.io/latest/release/doc/distage/
Hyper-pragmatic Pure FP testing with distage-testkit7mind
Having a proper test suite can turn ongoing application maintenance and development into pure joy – the best tests check meaningful properties, not the implementation details, and hold no impliict assumptions about their test environment - every test case must be self-contained and portable. To ensure that tests are free of implementation details and environment dependency, we may simply run them in a different test environment, with different implementations of components. But the boileplate and manual work involved in rewiring components, writing hardcoded fixtures and setting up different test environments make this very hard to do at scale. To tackle this problem we've created distage & distage-testkit, distage-testkit gives you the following superpowers:
* ability to easily swap out individual components or entire test environments
* principled & leak-free control of global resources for integration testing – docker containers, DBs, DDLs
* execute effects or allocate resources per-test, e.g. generate random fixtures per-test
* first-class testing of functional effects
* write tests as lambdas – access test fixtures via parameters or ZIO Environment
...and more! We'll also discuss general testing practices and what really distinguishes good tests from great tests.
Frameworks are bulky, quirky, and non-compositional, which has led to a rejection of Spring and similar frameworks in the Scala ecosystem. Yet, despite their drawbacks, frameworks have been used to boost team productivity in many large companies. In this presentation, Pavel and Kai will introduce Izumi 1.0, a Scala microframework based on compositional functional programming. Designed to help you and your team achieve new levels of productivity, Izumi now includes full compile-time checks for your configurable applications and completely reworked Tagless Final hierarchy for Bifunctors and Trifunctors.
Scala, Functional Programming and Team Productivity7mind
Many engineers spend a lot of time doing repetitive things. In this talk we examine typical productivity issues, which observed in many different companies, and show how to deal with them. We cover:
* Microservices and Monoliths,
* Introspection and Debugging,
* Logging,
* Modular Design,
* Functional Programming,
* RPC and REST,
* Tests and Delivery Pipeline.
This talk is a retrospective of our actions that helped our customer to cut development costs by 50%. We expect our experience to be applicable to most small and medium-sized teams and companies using Scala.
Short overview of the main principles of Continuous Integration (CI), describing benefits of CI and showing a smooth path of integrating CI into your development cycle, finishing with a short introduction into Xinc - PHP CI Server and how to utilize it for your projects.
This document outlines 15 ways to fail at implementing DevOps. It begins by defining key DevOps concepts like continuous integration, continuous delivery, and continuous deployment. It then lists common misconceptions about DevOps, such as thinking it is only about tools or automation, or can be enforced top-down. The document concludes that DevOps is really about culture, freedom and responsibility, and empathy between teams.
Architecting the Future: Abstractions and Metadata - BSidesKCDaniel Barker
Kubernetes and Docker are two of the top open source projects, and they’re built around abstractions and metadata. These two concepts are the key to architecting in the future. Come with me as I dig a little deeper into these concepts within k8s and Docker and provide some examples from my own work.
CLA Summit 2013: Connecting LabVIEW to Everything ElseJKI
Slides from JKI's CLA Summit 2013 presentation, "Connecting LabVIEW to Everything Else," presented by Jim Kring.
Our consulting customers want the software we create to be “open,” in the sense that they need to integrate it into other business systems, or they need to use it from their own system development, or they just need to get data out in the way they want. This means providing an external API that users/clients can access – especially from tools other than LabVIEW. In this presentation from the Americas CLA Summit 2013, Jim Kring explains why external APIs are a fundamental part of professional software development, and explores how different types of APIs are useful at different stages of development all the way from proof-of-concept to final shipment.
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.
Test Automation at the Speed of Agile: Making It Work Every BuildTechWell
Join Danny McKeown, Paychex’s lead test enterprise automation architect, to see how a small tools group supports nearly one-hundred agile teams as they move toward achieving continuous delivery. Take part in the conversation to understand how Paychex is progressing in the third year of its agile transformation. Danny describes how this IT-wide initiative has impacted how the tools group supports so many teams and changed its own practices to provide more timely support. With the goal of increasing velocity, a solid automation strategy has become a powerful enabler. Danny describes how Paychex assesses progress with a maturity lens. Their always-evolving automation framework serves web and mobile team requirements. He shares an HTML5 mini-case study, describing how adopting responsive web changed practices. Embedding quality in multiple daily builds has not come without its challenges, and Danny describes the lessons learned and their next steps. This interactive session will encourage participants to share their experiences as well—so come ready!
The Bash Dashboard (Or: How to Use Bash for Data Analysis)Bram Adams
Bash can be used for data analytics tasks like preparing and exploring data. The document demonstrates various Bash commands for working with CSV files containing app data. These include commands for viewing headers, counting rows, filtering, sorting, joining files, and aggregating data. Bash allows string manipulation and piping output between commands to programmatically analyze datasets from the command line.
A Qualitative Study on Performance Bugs (MSR 2012)Bram Adams
The document summarizes the findings of a qualitative study comparing performance bugs to non-performance bugs in the Chrome and Firefox browsers. The study analyzed hundreds of bug reports to identify differences across four dimensions: impact on the user, context of the bug, discussion around fixing the bug, and the actual bug fix. The study found that performance bugs generally have a greater negative impact, are more complex to fix, require more discussion and collaboration, and are more likely to block software releases.
The Evolution of the R Software Ecosystem (CSMR 2013)Bram Adams
Software ecosystems form the heart of modern companies’ collaboration strategies with end users, open source developers and other companies. An ecosystem consists of a core platform and a halo of user contributions that provide value to a company or project. In order to sustain the level and number of high-quality contributions, it is crucial for companies and
contributors to understand how ecosystems tend to evolve and can be maintained successfully over time.
As a first step, this presentation explores the evolution characteristics of the statistical computing project GNU R, which is a successful, end-user programming ecosystem. We find that the ecosystem of user-contributed R packages has been growing steadily since R’s conception, at a significantly faster rate than core packages, yet each individual package remains stable in size. We also identified differences in the way user-contributed and core packages are able to attract an active community of users.
http://sail.cs.queensu.ca/publications/pubs/German-CSMR2013.pdf
An Empirical Study of Build System Migrations in Practice (ICSM 2012)Bram Adams
This document summarizes the key findings of a study on build system migrations in large open source projects. It identifies common migration methodologies, challenges, and lessons learned. Major contributions include identifying a spiral model for incremental migrations. Key challenges are requirements gathering, communication between roles, and balancing performance vs complexity. The study compares a failed migration (SCons for KDE) to a successful one (CMake for Linux kernel) to understand best practices for requirements elicitation, analysis, and stakeholder involvement.
Why do Automated Builds Break? An Empirical Study (ICSME 2014)Bram Adams
To detect integration errors as quickly as possible, organizations use automated build systems. Such systems ensure that (1) the developers are able to integrate their parts into an executable whole; (2) the testers are able to test the built system; (3) and the release engineers are able to leverage the generated build to produce the upcoming release. The flipside of automated builds is that any incorrect change can break the build, and hence testing and releasing, and (even worse) block other developers from continuing their work, delaying the project even further. To measure the impact of such build breakage, this empirical study analyzes 3,214 builds produced in a large software company over a period of 6 months. We found a high ratio of build breakage (17.9%), and also quantified the cost of such build breakage ranging from 904.64 to 2034.92 man-hours. Interviews with 28 software engineers from the company helped to understand the circumstances under which builds are broken and the effects of build breakages on the collaboration and coordination of teams. We quantitatively investigated the main factors impacting build breakage and found that build failures correlate with the number of simultaneous contributors on branches, the type of work items performed on a branch, and the roles played by the stakeholders of the builds (for example developers vs. integrators).
http://mcis.polymtl.ca/publications/2014/icsm14_noureddine.pdf
The Changing Role of Release Engineering in a DevOps WorldPerforce
There is no denying that DevOps has shaken up the world of developing and deploying software. With all the buzz around new techniques and technologies, it's easy to get lost in the “We deploy hundreds of times a day!” cacophony and all the new tools. The rise of DevOps is revitalizing age-old topics in release engineering and application lifecycle management, and aspects of software delivery that DevOps doesn’t magically solve. If you're responsible for the release engineering function in your organization, see what the new world looks like and which aspects of the industry it’s leaving behind.
Software release management involves overseeing the integration and flow of software development, testing, deployment, and support. A typical software release cycle includes pre-alpha, alpha, beta, release candidate, general release, and end of life phases. Release management ensures reliable planning, scheduling, and deployment of software releases to end users. It is a growing discipline important for coordinating activities between development, testing, and release teams and addressing challenges like software defects, changes, new features, and deployment risks across different platforms and environments. An effective release manager acts as a coordinator, gatekeeper, diplomat, and point of contact to balance requirements from various stakeholders and customers.
5 steps for effective release managementDagnaGriffin
The document outlines 5 steps for effective release management: 1) Establish a single source of truth for release information to coordinate teams. 2) Automate repetitive deployment tasks to improve security and success. 3) Make the components and environments visible to avoid risks from lack of visibility. 4) Define quality gates and make certifications and approvals part of the release process. 5) Ensure the release plan is easy to understand and update in real-time so everyone knows the impact of changes.
The document discusses key topics from a session on build and release engineering, including continuous integration, continuous delivery, and continuous deployment. It defines these terms and lists the main steps and principles associated with each. Specific topics covered include software release principles, configuring management, deployment pipelines, testing approaches, and managing environments and releases of complex systems. The target audience for these concepts is listed as various engineering and operations roles.
Top 10 release engineer interview questions and answersboomboom6711
The document provides information about interview questions, answers, and additional resources for a release engineer position. It includes 10 typical interview questions for a release engineer role along with detailed answers covering topics such as why the applicant wants the job, challenges they seek, describing a typical work week, weaknesses, why the company should hire them, and questions to ask the interviewer. The document also provides additional links to ebooks and websites with more interview questions, tips, and sample answers for a release engineer or related technical role.
The document outlines an effective software release management strategy with multiple layers and branching models. It discusses establishing rigorous development, build, test, and deployment cycles with common environments. It also recommends moving to continuous integration and deployment with tools and processes to support rapid defect detection. Higher level branches have stricter quality criteria than lower ones, with mainline and release branches intended for stable, tested code. The strategy aims to speed delivery, increase quality, reduce costs, and support scalable, efficient development.
Release Management: Successful Software Releases Start with a Planconnielharper
This document discusses the importance of release planning for successful software releases. It notes that even with agile development, a release plan is needed to coordinate releasing software to users. The document outlines different types of release cycles including time-based, feature-based, and market demand-based. It also discusses factors to consider when deciding on a release cycle. Additionally, it provides details on what should be included in a release plan such as goals, features, milestones, responsibilities, dependencies, and risks. The document stresses the importance of communication and ensuring product readiness to have successful software releases.
Building A Strong Engineering Culture - my talk from BBC Develop 2013Kevin Goldsmith
This is the keynote talk I gave at the BBC Develop conference in London, UK in November of 2013. In it I talk about what I believe makes a strong engineering culture, how to protect it if you have it, and how to fix it if you don't. I use a lot of examples from Spotify (where I am a Director of Engineering). As usual, I go a bit light on the bullets, since I prefer to talk, but I think you can still get the gist of my points.
The document discusses test-driven PL/SQL development and best practices for error management. It covers defining requirements, writing unit tests, handling exceptions, and logging errors consistently. Key aspects include using pre-defined exception types and handlers, avoiding direct error raising/handling in application code, and following standards for error messaging.
This document discusses concepts and best practices related to automation, continuous integration (CI), and continuous deployment (CD). It addresses key questions like how, what, who, when regarding automation and describes the roles of development, QA, and operations in an automated process. It provides examples of implementing CI and CD through tools like Hudson, Maven, Nexus, and virtual machines. The goal is to illustrate how to set up an automated build, test, and deployment pipeline for software.
Unit Testing 101 presented at ESRI Developer Summit, March 24th, 2009. This talk reviews the key concepts of unit testing, the technologies used by DTSAgile in out development projects.
This document provides an overview and introduction to CQ5:
1. It discusses the history and evolution of enterprise content management (ECM) systems from the 1990s to present day, highlighting how CQ5 represents a "reboot" of ECM by addressing past issues.
2. Details are given about the key capabilities and features of CQ5, including its use of standards-based technologies like Apache Sling and Jackrabbit, and its support for web content management, digital asset management, and business process management.
3. A roadmap is presented for future releases of CQ5 and related products, with the goal of delivering a fully featured and tested platform for managing web content and digital
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesTed Won
Let's have a look at CI/CD best practices to help developers on the cloud platform Kubernetes, which is becoming an industry standard, as we move to the era of cloud native application development, which is about to come.
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...University of Antwerp
A keynote delivered for the 3rd Workshop on
Validation, Analysis and Evolution of Software Tests
February 18, 2020 | co-located with SANER 2020, London, Ontario, Canada.
http://vst2020.scch.at
Abstract - With the rise of agile development, software teams all over the world embrace faster release cycles as *the* way to incorporate customer feedback into product development processes. Yet, faster release cycles imply rethinking the traditional notion of software quality: agile teams must balance reliability (minimize known defects) against agility (maximize ease of change). This talk will explore the state-of-the-art in software test automation and the opportunities this may present for maintaining this balance. We will address questions like: Will our test suite detect critical defects early? If not, how can we improve our test suite? Where should we fix a defect? The research underpinning all of this has been validated under "in vivo" circumstances through the TESTOMAT project, a European project with 34 partners coming from 6 different countries.
EMC World 2016 - code.09 Introduction to the Docker Platform{code}
History is repeating itself with disruptive software infrastructure platforms taking over in the data center. This session will cover the Docker platform, reviewing each Docker project focused on incremental innovation and providing developers and operations the ability to run, deploy, manage and monitor containers. Learn all about Docker Engine, Machine, Compose, Swarm, Hub, Trusted Registry and more! Demos of each product will be provided as well as how each tie into EMC II technology.
[RHFSeoul2017]6 Steps to Transform Enterprise ApplicationsDaniel Oh
The document provides a 6 step approach to transforming enterprise applications:
1. Re-organizing to DevOps;
2. Implementing self-service, on-demand infrastructure;
3. Automating deployments using tools like Puppet, Chef, and Kubernetes;
4. Establishing continuous integration and deployment pipelines;
5. Adopting advanced deployment techniques like blue-green deployments;
6. Moving to a microservices architecture.
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
Software Architecture Erosion and Modernizationbmerkle
The document discusses software architecture erosion and strategies to address it. It begins by defining software architecture and architectural erosion. It then examines examples of architectural erosion in open source projects like FindBugs and Eclipse. The document advocates modeling software architecture and subsystems to detect violations. It also presents tools and approaches for architectural analysis to monitor changes and deviations over time. Finally, it discusses best practices for open source projects and Eclipse to limit architectural erosion through community involvement and defined processes.
This document provides an overview of continuous delivery and deployment practices. It begins with introductions and background on continuous delivery. It then discusses topics like deployment pipelines, testing, configuration management, versioning, branching strategies, automated deployments, and monitoring. Throughout examples and further reading resources are provided. The goal is to explain how to set up continuous delivery of software through practices like continuous integration, deployment automation, and monitoring.
Writing code is fun, but deploying to production is not. Production releases are scary events that last all weekend, and you find yourself worrying about how it will go. Did we miss a configuration file? Is the database schema the same as the one in the test environment? Does the last minute hot fix we just applied break any other features? Did I forget to include an installation instruction for the system administrators?
Continuous Delivery is a collection of principles and practices aimed at addressing the problems teams typically face when releasing changes to production. By applying rigorous automation, testing and configuration management, teams are able to confidently and consistently deploy changes from version control to production without fear.
In this talk, Mike McGarr will provide listeners with an introduction into the world of Continuous Delivery. After an introduction into the concepts and principles of Continuous Delivery, he will discuss many of the techniques for implementing Continuous Delivery and recommend some tools that can be used on your development project.
Writing code is fun, but deploying to production is not. Production releases are scary events that last all weekend, and you find yourself worrying about how it will go. Did we miss a configuration file? Is the database schema the same as the one in the test environment? Does the last minute hot fix we just applied break any other features? Did I forget to include an installation instruction for the system administrators?
Continuous Delivery is a collection of principles and practices aimed at addressing the problems teams typically face when releasing changes to production. By applying rigorous automation, testing and configuration management, teams are able to confidently and consistently deploy changes from version control to production without fear.
In this talk, Mike McGarr will provide listeners with an introduction into the world of Continuous Delivery. After an introduction into the concepts and principles of Continuous Delivery, he will discuss many of the techniques for implementing Continuous Delivery and recommend some tools that can be used on your development project.
Nos dias de hoje, onde trabalhamos em "internet time", com o paragdima da cloud e onde a economia nos obriga a fazer mais com menos, o "Time to Market" torna-se um fator diferenciador entre o sucesso e o falhanço de um projeto de software.
Esta sessão aborda alguns métodos e ferramentas que nos ajudam a automatizar processos de build e deployment, que podem tornar-se dolorosos e até impeditivos no avanço para a meta final de um projeto de software, de modo a que nos possamos focar nas atividades que acrescem valor ao nosso produto.
Nomeadamente, serão apresentados exemplos práticos da aplicação das tecnologias Microsoft como o MSBuild, Web Deploy, web.config transformations, web.config parametrizations e ainda, a utilização do servidor de builds Jenkins para implementar a automação de builds e deployments.
Comunidade NetPonto, a comunidade .NET em Portugal!
http://netponto.org
This document is a curriculum vitae for William Impey, a software developer with 16 years of experience primarily using C# and C++ on Windows platforms. He has a Master's degree in Mechatronics and has worked at companies such as Leica Microsystems and NextGen Sciences developing software applications. His skills include C#, C++, SQL, WPF, XAML, and he has experience using methodologies like Scrum, TDD, and MVVM.
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
This document discusses using bounded model checking to analyze C programs at scale in an enterprise environment. It describes compiling thousands of software packages using a tool called goto-cc that converts C code to an intermediate representation. This allows running verification tools to find bugs. Many bugs were found and reported, improving quality. The goal is to focus on developing verification methods and analyzing a large codebase to find more bugs and security issues.
From System Modeling to Automated System TestingFlorian Lier
Often, high-level (functional) tests are carried out manually, implementing a tailored solution, e.g, via shell scripts
or launch files, for a specific system setup. Besides the effort of manual execution and supervision, current tests mostly do not take timing and orchestration, i.e., required process start-up sequence, into account. Furthermore, successful execution of components is not verified, which might lead to subsequent errors during the execution chain. Most importantly, all this knowledge about the test and its environment is implicit, often hidden in the actual implementation of the tailored test suite. To overcome these issues, this contribution introduces a generic and configurable state-machine based process.
Similar to On Software Release Engineering (Bram Adams) (20)
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on automated letter generation for Bonterra Impact Management using Google Workspace or Microsoft 365.
Interested in deploying letter generation automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
17. Out of Scope (but Highly Related)
release variability
release planning
man agement management
app stores ... software process
i mpact on packaging
project technologies software
ma nagement product lines
17
25. Our record
so far is a pr
we inherited oject
with an Ant
weighing in a script
t 10,000 line
XML. Needl s of
ess to say, th
project requ is
ired an entir
team devote e
d to keeping
build workin the
g—a comple
waste of r te
KDE 4 is leaving the aging esources.
[Jez Humble
"autotool" build chain behind. & David Farl
ey]
Some developers, not only in
KDE, like to nickname the
autotools as "auto-hell" Build Systems
because of its difficulty to
comprehend architecture.
[http://lwn.net/Articles/188693/] 25
are Complex
26. >5 MLOC & ~20 Years of History
"Design Recovery and Maintenance of Build Systems" (Adams et al.)
"The Evolution of the Linux Build System" (Adams et al.) 26
27. Quake 3 client UI
server
game logic
client renderer
quake3.exe
network
d(a)emon
27
28. Quake 3 conditional compilation
original game
expansion
pack
28
29. "The Evolution of the Linux Build System" (Adams et al.)
Linux 2.6.16.18
0.01
29
30. 0.01 0.11 1.0
"The Evolution of the Linux Build System" (Adams et al.)
Linux 2.6.16.18
2.0 2.2
1.2
2.4 2.6.0 2.6.21.5
29
31. 0.01 0.11 1.0
"The Evolution of the Linux Build System" (Adams et al.)
Linux 2.6.16.18
2.0 2.2
1.2
Build Systems Grow in
Complexity
2.4 2.6.0 2.6.21.5
29
32. Build Systems Require 12%
of a Developer’s
Time (on average)
Build maintenance
slows down development!
Software in the DOE: The Hidden Overhead of the “Build” (Kumfert et al.) 30
33. An Empirical Study of Build Maintenance Effort (McIntosh et al.)
>36 MLOC & ~120 Years of History
31
34. An Empirical Study of Build Maintenance Effort (McIntosh et al.)
Build Files Change Relatively
More than Source Code Files
5
4.5
#changed source lines/source file
4
#changed build lines/build file
3.5
3
2.5
2
1.5
1
0.5
0
ArgoUML Hibernate Eclipse GCC Git Linux Mozilla PLPlot PostgreSQL
32
35. The Build System Requires
Significant Maintenance
Low coupling thanks
44%
to higher-level build
Source Build
Test Build
abstraction
27%
20%
16%
12%
8%
4%
33
50. Cohesive and Isolated Development with Branches (Barr et al.)
Integrations Interrupt Development
once in every 24.4 Commits in DVC
changed files: A, B, C, D and E
changed files: A, E and F
distraction |{A, B, C, D, E}| ∩ |{A, E, F}|
= = 66.6%
on merge |{A, E, F}|
assumption: Pr[real integration conflict] = 90%
41
51. Proactive Detection of Collaboration Conflicts (Brun et al.)
... and when they Do,
Integrations cause Trouble
on average 16% of on average
all merges had on average 5% 11.7% of all
textual conflicts of all merges had merges had test
(manual resolution build issues issues
needed)
42
52. The Effect of Branching Strategies on Software Quality (Shihab et al.)
Branching Degrades
Quality of Components
branch
family
file branched/merged
43
53. The Effect of Branching Strategies on Software Quality (Shihab et al.)
Branching Degrades
Quality of Components
branch
family
file branched/merged
43
54. The Effect of Branching Strategies on Software Quality (Shihab et al.)
Branching Degrades
Quality of Components
branch
family
file branched/merged
43
55. Proactive Detection of Collaboration Conflicts (Brun et al.)
Speculative Merge Prevention
B T
S AME A HEAD B EHIND T EXTUAL8 B UILD8 T EST8 T ESTX 44
56. A Cost-Benefit Approach to Recommending Conflict Resolution for
Parallel Software Development (Niu et al.)
Conflict Resolution Recommendation
method of
interest how hard to resolve conflict?
(a) Using cost-benefit ratio to rank the conflicting procedures
ranking of methods to how much benefit does
resolve conflicts with 45 resolving conflict yield?
62. 10 20 30 40 50 60
%package versions
0
A B C D E F
New Package Local Patch
Upstream Sync Product-wide
Dependency Concern
Build Change
Management 49
63. Mozilla Delivers New Necessary?
Version of Firefox –
First Web Browser to Buggy?
Upstream Sync
Support Do Not Track on Secure?
Multiple Platforms!
[Mozilla Blog]
50
65. 10 20 30 40 50 60
%package versions
0
A B C D E F
New Package Local Patch
Upstream Sync Product-wide
Dependency Concern
Build Change
Management 52
66. Library Transitions Ripple
through the whole System
Empir Software Eng (2009) 14:262–285 279
Dependency
Management
xcontrib xfree86–common
xlib6g debianutils
gconv–modules
libgtk1.2
libglib1.2
libc6 ldso
libstdc++2.10
mozilla
libjpeg62
libpng2
zlib1g
libz1
libnspr4
Macro-level softwareof the Inter-Dependency Graphof amozilla in Debian 2.2. Each of the
Fig. 7 Most popular instance
evolution: a case study for large software compilation
(Gonzalez-Barahona et al.)
two abstract dependencies have only one child
67. Library Transitions Ripple
through the whole System
Empir Software Eng (2009) 14:262–285 279
Dependency
Management
xcontrib xfree86–common
xlib6g debianutils
gconv–modules
libgtk1.2
libglib1.2
libc6 ldso
libstdc++2.10
mozilla
libjpeg62
libpng2
zlib1g
libz1
libnspr4
Macro-level softwareof the Inter-Dependency Graphof amozilla in Debian 2.2. Each of the
Fig. 7 Most popular instance
evolution: a case study for large software compilation
(Gonzalez-Barahona et al.)
two abstract dependencies have only one child
68. Library Transitions Ripple
through the whole System
Empir Software Eng (2009) 14:262–285 279
Dependency
Management
xcontrib xfree86–common
xlib6g debianutils
gconv–modules
libgtk1.2
libglib1.2
libc6 ldso
libstdc++2.10
mozilla
libjpeg62
libpng2
zlib1g
libz1
libnspr4
Macro-level softwareof the Inter-Dependency Graphof amozilla in Debian 2.2. Each of the
Fig. 7 Most popular instance
evolution: a case study for large software compilation
(Gonzalez-Barahona et al.)
two abstract dependencies have only one child
69. Library Transitions Ripple
through the whole System
Empir Software Eng (2009) 14:262–285 279
Dependency
Management
xcontrib xfree86–common
xlib6g debianutils
gconv–modules
libgtk1.2
libglib1.2
libc6 ldso
libstdc++2.10
mozilla
libjpeg62
libpng2
zlib1g
libz1
libnspr4
Macro-level softwareof the Inter-Dependency Graphof amozilla in Debian 2.2. Each of the
Fig. 7 Most popular instance
evolution: a case study for large software compilation
(Gonzalez-Barahona et al.)
two abstract dependencies have only one child
70. 2-way Impact Analysis Dependency
Management
Did Software Eng (2009) 14:262–285
Empir 279
someone Did I break
break my someone's
package?
xcontrib xlib6g
xfree86–common
debianutils package?
gconv–modules
libgtk1.2
libglib1.2
libc6 ldso
libstdc++2.10
mozilla
libjpeg62
libpng2
zlib1g
libz1
libnspr4
Fig. 7 Most popular instance of the Inter-Dependency Graph for mozilla in Debian 2.2. Each of the
two abstract dependencies have only one child 54
71. If an engineer comes up
with a better way of doing
something, he is tasked
with refactoring all
existing libraries and
assisting dependent
projects to migrate
to the new libraries
James Whittaker
72. 10 20 30 40 50 60
%package versions
0
A B C D E F
New Package Local Patch
Upstream Sync Product-wide
Dependency Concern
Build Change
Management 56
73. patch
upstream
accepted
Upstream Upstream Upstream
Sync Sync Sync
maintainer
Local Patch Local Patch
57
74. Package : openssl
Vulnerability : predictable random number generator
Problem type : remote
Debian-specific: yes Local Patch
CVE Id(s) : CVE-2008-0166
Date : 2008-05-13
Luciano Bello discovered that the random number generator in Debian's
openssl package is predictable. This is caused by an incorrect
Debian-specific change to the openssl package (CVE-2008-0166). As a
result, cryptographic key material may be guessable.
It is strongly
>=1.5 years 8-(
recommended that all cryptographic key material which
has been generated by OpenSSL versions starting with 0.9.8c-1 on
Debian systems is recreated from scratch. Furthermore, all DSA keys
ever used on affected Debian systems for signing or authentication
purposes should be considered compromised; the Digital Signature
Algorithm relies on a secret random value used during signature
generation.
>=44 distributions ;-)
The first vulnerable version, 0.9.8c-1, was uploaded to the unstable
distribution on 2006-09-17, and has since propagated to the testing
and current stable (etch) distributions. The old stable distribution
(sarge) is not affected.
58
77. Different Test Phases
(selection of) unit tests
integration + build
all unit tests
acceptance/integration tests
capacity tests
user acceptance tests
release
smoke tests
test phase time to run (hours)
78. Seamless Upgrades (1): Blue/Green
Deployment
old version
of system
users DB
Disk
router
DB
Disk
79. Seamless Upgrades (1): Blue/Green
Deployment
old version
of system
users DB
Disk
router
DB
Disk
new version
of system
80. Seamless Upgrades (1): Blue/Green
Deployment
old version
of system
users DB
Disk
router
DB
Disk
new version
of system
81. Seamless Upgrades (1): Blue/Green
Deployment
old version
of system
users DB
Disk
router
DB
Disk
new version
rollback!! of system
82. Seamless Upgrades (1): Blue/Green
Deployment
old version
of system
users DB
Disk
router
DB
Disk
new version
rollback!! of system
83. Seamless Upgrades (2):
Canary Deployment
DB
Disk
users old version
of system
router DB
Disk
old version
of system
DB
Disk
old version
of system
84. Seamless Upgrades (2):
Canary Deployment
DB
Disk
users old version
new version
of system
router DB
Disk
old version
of system
DB
Disk
old version
of system
85. Seamless Upgrades (2):
Canary Deployment
DB
Disk
users old version
new version
of system
router DB
Disk
oewveersion
nld v rsion
o system
off system
DB
Disk
old version
of system
86. Seamless Upgrades (2):
Canary Deployment
DB
Disk
users old version
new version
of system
router DB
Disk
oewveersion
nld v rsion
o system
off system
DB
Disk
oewveersion
nld v rsion
o system
off system
93. ? Certificate
= of
High Quality
rapid release
Do Faster Releases Improve Software Quality? - An Empirical Case Study of
Mozilla Firefox (Khomh et al.)
95. Rapid Release Cycle
6.0 8.0
3.6 4.0 5.0 7.0 9.0
Certificate
vs. of
High Quality
release&cycle&length
Do Faster Releases Improve Software Quality? - An Empirical Case Study of
Mozilla Firefox (Khomh et al.)
96. Same # Post-release Bugs
13 20
5
Number of Post Release Bugs Per Day
4
3
2 1.7
1.6
1
0
Traditional Release (TR) Rapid Release (RR)
97. Crashes Pop Up Earlier
1200
1080
960
Median UpTime in Seconds
840
720
643
600
480
370
360
240
120
0
Traditional Release (TR) Rapid Release (RR)
98. Rapid Release Cycle
6.0 8.0
3.6 4.0 5.0 7.0 9.0
vs.
bug&fixing
release&cycle&length
Do Faster Releases Improve Software Quality? - An Empirical Case Study of
Mozilla Firefox (Khomh et al.)
99. Bugs are Fixed Faster
654 159
100
90
80
70
Bug Age in Days
60
50
40
30
20 16
10 6
0
Traditional Release (TR) Rapid Release (RR)
100. Proportionally Less Bugs Fixed
100%
90%
80%
70% 67%
60% 59%
% of Bugs Fixed
50% 43%
40% 37%
30%
20%
10%
0%
Traditional Rapid Release Traditional Rapid Release
Release (TR) - (RR) - Main Release (TR) - (RR) - Beta
Main Beta
103. How to Make Software
and Build Comprehension
Pragmatic?
40
79
104. Where are the Tools?
refactor test your
your makefiles! build!
RELEASE IDE
what did the keep poking those
other team break upstream guys until they
now ;-) give in :-)
80
105. Work fast and
don’t be afraid to break
things.
We need more
canaries!
http://goo.gl/UlCW
109. Release Engineering
On average we
deploy new code fifty times
a day.
http://behrns.files.wordpress.com/2008/03/ikea-car.jpg
in-house/3rd party integrate
M
development C IS
kee
pi n test build
gc
ycl
et
im
ed
ow
n
7 deployment
110. Release Engineering
On average we
deploy new code fifty times http://behrns.files.wordpress.com/2008/03/ikea-car.jpg
a day. in-house/3rd party integrate
development
kee
pi n test build
gc
ycl
et
im
M
ed
C IS ow
n
7 deployment
111. Release Engineering
The Build System Requires
On average we
deploy new code fifty times
Significant Maintenance
http://behrns.files.wordpress.com/2008/03/ikea-car.jpg
a day. in-house/3rd party integrate
development
kee
pi n test build
gc
ycl
et
im
M 44% ed
C IS ow
n
Source Build 7 deployment
Test Build
27%
20%
16%
12%
8%
4%
21
112. Release Engineering
On average we
deploy new code fifty times http://behrns.files.wordpress.com/2008/03/ikea-car.jpg
a day. in-house/3rd party integrate
development
kee
pi n test build
gc
ycl
et
im
M
ed
C IS ow
n
7 deployment
The Build System Requires
Significant Maintenance
44%
Source Build
Test Build
27%
20%
16%
12%
8%
4%
21
113. Release Engineering
Risk Analysis & Cherry-picking
On average we
deploy new code fifty times http://behrns.files.wordpress.com/2008/03/ikea-car.jpg
a day. in-house/3rd party integrate
development
kee
pi n test build
gc Upstream Sync
ycl
et
im
M
ed
C IS ow
n
7 deployment
The Build System Requires
diff
Significant Maintenance
44%
Source Build
Test Build
27%
12%
16%
20%
maintainer
8%
4%
21
114. Release Engineering
On average we
deploy new code fifty times http://behrns.files.wordpress.com/2008/03/ikea-car.jpg
a day. in-house/3rd party integrate
development
kee
pi n test build
gc
ycl
et
im
M
ed
C IS ow
n
7 deployment
The Build System Requires Risk Analysis & Cherry-picking
Significant Maintenance
Upstream Sync
44%
Source Build
Test Build
27%
diff
20%
16%
12%
8%
4%
maintainer
21
115. M
C IS
http://mcis.polymtl.ca/
http://google-engtools.blogspot.ca/