Meeting room Alströmergatan 20 Stockholm 11247 Sweden
Continuous Delivery and DevOps conference. Embedded edition
Implementing Continuous Delivery is a journey and might be a quite challenging one. How do you automate your deployments and tests? How do you scale build-test-release pipelines? What are the hurdles on the way to fully automated process of producing release candidates? How DevOps fits in the culture of your organization?
We worked hard to gather people from the industry and asked them to tell about difficulties they faced and solutions they applied. As a result, this year program is just great and touches upon test automation, pipelines orchestration, stories from trenches and the latest research in the area of Continuous Delivery and DevOps.
Do not let conference focus on implementing Continuous Delivery for embedded software scare you away. We believe that DevOps culture and Continous Delivery principles are not that different from other areas of software development and insights from our speakers as well as networking with attendees and sponsors will give a good hint how to do the next step in your journey towards Continuous Delivery and DevOps. Join us and see for yourself!
Day before conference: Pre-conference meetup for everyone who can’t make it for the main event!
What does it mean when computer systems get increasingly smarter and technology gets cheaper and accessible to all? What are the broader effects of technological advancement and where is our society heading? And what is technology doing to ourselves?
In this session you’ll learn novel techniques that help you make sense of large codebases. You’ll learn to identify the code that really matters for your ability to maintain a system, how to prioritize improvements and even evaluate your architecture based on how you actually work with the code. We’ll also cover the people side of programming as you learn to mine social information such as communication paths, developer knowledge and hotspots. All techniques are based on software evolution. They use data from the most underused informational source that we have in our industry: our version-control system. Each point is illustrated with a case study from a real-world project.
With the rise of Continuous Delivery test automation isn’t a luxury anymore — it’s the norm. However, when dealing with highly complex and modular projects you would be disappointed to learn that it is a challenge to set-up a fully automated continuous testing pipeline. The typical problems are tool incompatibility and general lack of suitable solutions to scale out test automation processes. Imagine tens of thousands of automated test cases, which are required to be run for a product to be fully tested. During this talk Dmitry will answer the following questions: How do you run your automated tests in the shortest time frame possible? How can you tell if your functional test coverage is improving? How do you select and run the most appropriate test cases? How do you get actionable insights from the results of your testing process? How to be sure that it’s safe to release a software package to production? This presentation will guide you through a journey of building and improving a test automation pipeline based on Jenkins in a large telco organisation with hundreds of thousands of test executions performed on daily basis. By looking at this example it would be possible to see what tools are currently missing on the market and where the test automation industry should focus its efforts. The talk will outline examples of microservices developed to fill the functional gaps. This experience would be beneficial and applicable to your next large-scale CD project.
Wouldn’t it be great if your automated test framework did intelligent test selections for you? If it tested what’s most important to test every single time without manual effort? Continuous Integration places high demands on automatic regression testing. You need to continuously ensure that your products are of high quality. While doing that, how do you know that you are spending your testing resources on the most important areas when it is not possible to test everything every time? At Westermo we have solved this. We let the automated test framework dynamically select the most important test cases to be executed based on a set of risk factors - every single time we execute a new test round.
You were a team of 5 and delivering incremental changes wasn’t a problem - if something breaks you just fix it all together. But now you are ten teams. While you fix your colleagues wait. What can you do to avoid pressure and keep delivery pipeline green? I would like to share few ways that I used in different projects to overcome growth issues. Which one would work for you?
Are you still developing embedded SW like we did in the 90’s? Want to jump on the DevOps train, but now sure how to do it? Learn how our SW team started off 10 years ago at the bottom of the DevOps ladder, and how we have climbed it. See how unit tests changed our work. How we introduced automatic HW testing. Automating the build. Taking on Jenkins, and increasingly using more and more of its functions.
OPNFV is a carrier-grade, integrated, open source platform to accelerate the introduction of new NFV products and services. It aims to build the platform by integrating components from different upstream projects such as OpenStack, OpenDaylight, OpenVswitch, KVM and so on. Apart from integrating different components, OPNFV aims to identify gaps in these components and fixes them directly in upstream. OPNFV sees CI/CD to be a solution to its challenges by providing a foundation for developing, integrating and testing OPNFV faster and more efficient through the release cycles. It is crucial for OPNFV and the ecosystem we are building the underlying upstream projects to find the best way to realize the principles and best practices of CI/CD methodologies to reduce the impacts caused by the integration work and be able to provide fast feedback to its own developers and other communities and a stable platform to our users release by release. During this session we will talk about the evolution of OPNFV CI/CD from the project’s early days up till now and share our experiences.
The practice of continuous integration has firmly established itself in the mainstream of the software engineering industry, yet many questions surrounding it remain unanswered. Prominent among these is the issue of scalability: continuous integration has been reported to be possible to scale, but with difficulties. Understanding of the underlying mechanisms causing these difficulties is shallow, however: what is it about size that is problematic, which kind of size, and what aspect of continuous integration does it impede? In a recent multiple-case study (Daniel Ståhl, Torvald Mårtensson and Jan Bosch, 2016) we find that there is indeed a correlation organizational size and composition and the tendency to integrate continuously, and we ask ourselves what this means for software architecture and the manufacturability of software.
Jenkins is one of the most popular automation servers. It’s being widely used for continuous integration in Embedded projects thanks to its public availability, flexibility and numerous plugins. Actually I consider Jenkins as a generic framework, which can be used for building automation systems after some configuration and integration. In my talk I would like to address common Jenkins use-cases in Embedded projects like integration with development tools, running tests on hardware peripherals and reporting of build results. During the presentation I will focus on new Jenkins features like Pipeline ecosystem and its application in the area: parallelization, failover management, virtualization and build definition libraries.
I heard about one Continuous Delivery team where someone had put dancing ponies on their front page as a joke. Unfortunately the customers weren’t too impressed when they saw them! Perhaps unsurprisingly, none of the acceptance tests checked for dancing ponies… The best approach for a unit test — assert only specific things — may not work as well for testing whole features. Approval testing takes the opposite standpoint — everything is interesting, and will be checked. In this talk I’ll explain how it works in practice, and how it could help you catch those unexpected defects that would otherwise slip through your pipeline unnoticed.
Sometimes, we get so caught up trying to implement or catch up with the new hot thing of the day that we forget to even stop and ask “what is this thing anyway”? “is this even good for me”? “Why should I care”? Continuous Delivery is no exception to that, DevOps and Automation aren’t either. Let’s remove some of the uncertainties around these topics and get you out there feeling confident. Not just about what they are, and how to deal with them, but most importantly why they will benefit YOU specifically when you work with them.
8:30 Registration & Light Breakfast 9:00 Welcome & Announcements 9:15 Key Note: No we can’t do Continuous Deployment Kris Buytaert, Inuits 10:00 Break 10:20 Continuous Integration, Delivery Pipeline, DevOps, Automation… What?! Why?, Guillaume Ceccarelli, GCs Ventures Continuous Testing at Scale, Dmitry Buzdin, Neuda Riga 10:50 Break 11:10 Buffer or suffer? Growth pain of CoDe pipelines, Andrey Devyatkin, Praqma OPNFV CI and Challenges - How we solved them Fatih Degirmenci, Ericsson 11:40 Lunch 12:40 Dynamic automated risk based test selection, Petra Wernkvist, Westermo The Butler is still young – modern Jenkins features for Embedded, Oleg Nenashev, Jenkins 13:10 Break 13:30 Story from the trenches. DevOps in a 10 year embedded SW project, Tore Martin Hagen, WesternGeco Catch Dancing Ponies - try Approval Testing, Emily Bache, Bache Consulting 14:00 Break 14:40 Seven Secrets of Maintainable Codebases, Adam Tornhill, Empear The Continuity of Continuous Integration, Daniel Ståhl, Ericsson 15:10 Break 15:25 KeyNote: The greater context - The impact of exponential technologies Hannes Sjöblad, Epicenter Stockholm 16:10 Wrap-Up & Socialize