This document discusses best practices for using Jenkins pipelines, including using scripted versus declarative syntax, shared libraries, configuration as code (JCasC), and useful plugins. It provides examples of scripted and declarative pipelines and highlights features of declarative pipelines like syntax checking and conditional actions. The document also summarizes best practices for shared libraries, including when they are needed, versioning, and avoiding large global files. It demonstrates using JCasC for system configuration and shows links to additional documentation resources.
Я поделюсь с вами опытом разработки конвейерных скриптов Jenkins для организации процессов непрерывной интеграции и развертывания микросервисов. Акцент будет сделан на применении средств Jenkins для разделяемых библиотек. Я продемонстрирую подходы к созданию модульных, тестируемых и повторно используемых компонентов для сборки и развертывания. Доклад будет полезен каждому, кто так или иначе связан с автоматизацией непрерывной интеграции и развертывания ПО, будь то разработчик или же DevOps
Prometheus: infrastructure and application monitoring in kubernetes clusterLohika_Odessa_TechTalks
Доклад будет интересен тем, кто хочет воспользоваться одним из самых популярных инструментов для мониторинга с минимальными затратами времени и усилий, и без предыдущего опыта внедрения систем мониторинга . Мы рассмотрим конкретный случай внедрения на проекте "с нуля", расширение базового функционала и обсудим возможные "подводные камни" дальнейшей поддержки
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...KubeAcademy
Kubernetes gives developers a platform on which to run images and many configuration objects to control those images, but constructing a cohesive application made up of images and configuration objects is currently a challenge. Reconstructing or sharing that configuration can also be a challenge. This talk will cover the Template feature implemented in OpenShift to simplify the process of defining and repeatably deploying coordinated objects, discuss what is coming to Kubernetes with respect to this capability, and touch on several other existing projects that enable templatizing application definitions.
Sched Link: http://sched.co/6BVH
In this meetup, Liran Cohen, Cloud platform & DevOps Team Leader, will talk about some of Kubernetes key concepts. We will learn about the architecture of the system; the different resources available in the system; the problems it’s trying to solve, and the model that it uses to manage containerized application deployments.
Online Meetup: Why should container system / platform builders care about con...Docker, Inc.
Docker and the CNCF recently announced the general availability of containerd 1.0, an industry-standard runtime for building container solutions. The containerd 1.0 milestone comes after several months of alpha and beta releases, that allowed the team to implement various performance improvements: creation of a stress testing system, improvements in garbage collection and shim memory usage, etc. In this online meetup, we look at how containerd works, what are the top features and improvements and how can container system builders integrate with containerd.
Continuous delivery model sounds great to almost everyone, but is not that easy to implement when real life comes into play. On the one hand, AEM architecture feels like a good fit for this strategy (everything is content after all, right?), but on the other hand we all know how challenging even individual deployment can get. Content management system itself is often just a fraction of your concern - you have to build it first, test it, stitch all the elements up and then figure out how to deliver your code in a repeatable and controlled way to production.
Throughout the last couple of years we’ve been trying really hard at Cognifide to make continuous release and delivery possible for AEM. It was a bumpy and twisty road, but we finally made it. During my talk I’d like to show you how we build AEM platforms these days using open source tools, including:
- Terraform to define and manage infrastructure as code
- Chef to describe deployments in an approachable way, which enforces consistency & repeatability across environments
- Consul that helps us discover services around and mitigate failures
- Jenkins & GoCD to orchestrate delivery model
Я поделюсь с вами опытом разработки конвейерных скриптов Jenkins для организации процессов непрерывной интеграции и развертывания микросервисов. Акцент будет сделан на применении средств Jenkins для разделяемых библиотек. Я продемонстрирую подходы к созданию модульных, тестируемых и повторно используемых компонентов для сборки и развертывания. Доклад будет полезен каждому, кто так или иначе связан с автоматизацией непрерывной интеграции и развертывания ПО, будь то разработчик или же DevOps
Prometheus: infrastructure and application monitoring in kubernetes clusterLohika_Odessa_TechTalks
Доклад будет интересен тем, кто хочет воспользоваться одним из самых популярных инструментов для мониторинга с минимальными затратами времени и усилий, и без предыдущего опыта внедрения систем мониторинга . Мы рассмотрим конкретный случай внедрения на проекте "с нуля", расширение базового функционала и обсудим возможные "подводные камни" дальнейшей поддержки
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...KubeAcademy
Kubernetes gives developers a platform on which to run images and many configuration objects to control those images, but constructing a cohesive application made up of images and configuration objects is currently a challenge. Reconstructing or sharing that configuration can also be a challenge. This talk will cover the Template feature implemented in OpenShift to simplify the process of defining and repeatably deploying coordinated objects, discuss what is coming to Kubernetes with respect to this capability, and touch on several other existing projects that enable templatizing application definitions.
Sched Link: http://sched.co/6BVH
In this meetup, Liran Cohen, Cloud platform & DevOps Team Leader, will talk about some of Kubernetes key concepts. We will learn about the architecture of the system; the different resources available in the system; the problems it’s trying to solve, and the model that it uses to manage containerized application deployments.
Online Meetup: Why should container system / platform builders care about con...Docker, Inc.
Docker and the CNCF recently announced the general availability of containerd 1.0, an industry-standard runtime for building container solutions. The containerd 1.0 milestone comes after several months of alpha and beta releases, that allowed the team to implement various performance improvements: creation of a stress testing system, improvements in garbage collection and shim memory usage, etc. In this online meetup, we look at how containerd works, what are the top features and improvements and how can container system builders integrate with containerd.
Continuous delivery model sounds great to almost everyone, but is not that easy to implement when real life comes into play. On the one hand, AEM architecture feels like a good fit for this strategy (everything is content after all, right?), but on the other hand we all know how challenging even individual deployment can get. Content management system itself is often just a fraction of your concern - you have to build it first, test it, stitch all the elements up and then figure out how to deliver your code in a repeatable and controlled way to production.
Throughout the last couple of years we’ve been trying really hard at Cognifide to make continuous release and delivery possible for AEM. It was a bumpy and twisty road, but we finally made it. During my talk I’d like to show you how we build AEM platforms these days using open source tools, including:
- Terraform to define and manage infrastructure as code
- Chef to describe deployments in an approachable way, which enforces consistency & repeatability across environments
- Consul that helps us discover services around and mitigate failures
- Jenkins & GoCD to orchestrate delivery model
Pipeline as code - new feature in Jenkins 2Michal Ziarnik
What is pipeline as code in continuous delivery/continuous deployment environment.
How to set up Multibranch pipeline to fully benefit from pipeline features.
Jenkins master-node concept in Kubernetes cluster.
Pragmatic Monolith-First, easy to decompose, clean architecturePiotr Pelczar
Designing systems architecture corresponding to business needs in long future is like a reading tea leaves. There is no common way to design systems. Making decision to start project with microservices may make refactoring much harder and introduce too much complexity in the infrastructure layer and finally slow down development. However maintaining a monolith is a tough nut to crack.
Let’s see how to build a system starting from well organized monolith with well marked technical and business scopes that enables to make a decision in with way it should be decomposed and how to deliver it. Strategic and tactical techniques from Domain-Driven Design and Hexagonal Architecture will be used. I will show you how to monitor accidential complexity using different tools during CI.
I invite you if you are interested in building systems with complex business domains.
Scala, docker and testing, oh my! mario camouJ On The Beach
Testing is important for any system you write and at eBay it is no different. We have a number of complex Scala and Akka based applications with a large number of external dependencies. One of the challenges of testing this kind of application is replicating the complete system across all your environments: development, different flavors of testing (unit, functional, integration, capacity and acceptance) and production. This is especially true in the case of integration and capacity testing where there are a multitude of ways to manage system complexity. Wouldn’t it be nice to define the testing system architecture in one place that we can reuse in all our tests? It turns out we can do exactly that using Docker. In this talk, we will first look at how to take advantage of Docker for integration testing your Scala application. After that we will explore how this has helped us reduce the duration and complexity of our tests.
Monitoring Containers at New Relic by Sean Kane Docker, Inc.
New Relic went all-in with Docker very early, and has continued to stay on the forefront of the container ecosystem, both as a user of the technology and as a monitoring and analytics vendor. Today, a variety of teams utilize Docker in a variety of ways using a mix of home-grown and external OSS frameworks. The Container Fabric team is working on our next generation container platform utilizing Mesos/Marathon and a variety of other OSS tools, like Heka. We will briefly review our setup, and then discuss how we gather data that we care about from the ecosystem and inject it into the various tools we rely on for visibility and analytics. We love the functionality of what we’ve built, and we believe that you will find it useful too.
Dockerizing Windows Server Applications by Ender Barillas and Taylor BrownDocker, Inc.
A session covering the container workflow from the developers inner loop, CI/CD, to deployment in a container orchestration solution. We'll cover Visual Studio Code from a Mac, Visual Studio Code from Windows with Bash and Visual Studio as an in-container local development environment targeting both Windows and Linux Containers. We'll walk through CI, Validation and CD to the Azure Container Service running Docker Swarm as one example of how you can convert your existing config as code and VM deployments to the containerized workflows startups and early adopter enterprises are using today.
Container Orchestration from Theory to PracticeDocker, Inc.
Join Laura Frank and Stephen Day as they explain and examine technical concepts behind container orchestration systems, like distributed consensus, object models, and node topology. These concepts build the foundation of every modern orchestration system, and each technical explanation will be illustrated using Docker’s SwarmKit as a real-world example. Gain a deeper understanding of how orchestration systems like SwarmKit work in practice and walk away with more insights into your production applications.
ocker is quickly becoming an invaluable development and deployment tool for many organizations. Come and spend the day learning about what Docker is and how to use it. Discover how to integrate it into your workflow and build an environment that works for you and your team. This hands-on training will give you the kick-start needed to begin using Docker effectively.
An introduction to using Docker Engine. We'll containerize a very simple web application and then talk about some easy ways to try out Docker Engine in your own way.
Observability in a Dynamically Scheduled WorldSneha Inguva
The industry is moving toward a microservices architecture, and many companies have embraced container orchestration solutions such as Kubernetes. DigitalOcean is no different. Over the past year, DigitalOcean’s Delivery team has been building a runtime platform based on Kubernetes with the goal of making shipping code easier. The system has empowered service owners to quickly and efficiently deploy and update their applications. A vital component is a white box monitoring and alerting solution based on Prometheus and Alertmanager.
Sneha Inguva offers an overview of the system and shares problems encountered, potential solutions, and key lessons learned in the process. Sneha dives into the setup of Prometheus and Alertmanager that allows service owners to instrument their own metrics and alerts, explaining the service owner’s point of view and the internals that allow for the dynamic addition of alerts, and offers a glimpse of future modifications to the system. Join in to learn how to leverage open source tools for your monitoring and alerting needs.
Pipeline as code - new feature in Jenkins 2Michal Ziarnik
What is pipeline as code in continuous delivery/continuous deployment environment.
How to set up Multibranch pipeline to fully benefit from pipeline features.
Jenkins master-node concept in Kubernetes cluster.
Pragmatic Monolith-First, easy to decompose, clean architecturePiotr Pelczar
Designing systems architecture corresponding to business needs in long future is like a reading tea leaves. There is no common way to design systems. Making decision to start project with microservices may make refactoring much harder and introduce too much complexity in the infrastructure layer and finally slow down development. However maintaining a monolith is a tough nut to crack.
Let’s see how to build a system starting from well organized monolith with well marked technical and business scopes that enables to make a decision in with way it should be decomposed and how to deliver it. Strategic and tactical techniques from Domain-Driven Design and Hexagonal Architecture will be used. I will show you how to monitor accidential complexity using different tools during CI.
I invite you if you are interested in building systems with complex business domains.
Scala, docker and testing, oh my! mario camouJ On The Beach
Testing is important for any system you write and at eBay it is no different. We have a number of complex Scala and Akka based applications with a large number of external dependencies. One of the challenges of testing this kind of application is replicating the complete system across all your environments: development, different flavors of testing (unit, functional, integration, capacity and acceptance) and production. This is especially true in the case of integration and capacity testing where there are a multitude of ways to manage system complexity. Wouldn’t it be nice to define the testing system architecture in one place that we can reuse in all our tests? It turns out we can do exactly that using Docker. In this talk, we will first look at how to take advantage of Docker for integration testing your Scala application. After that we will explore how this has helped us reduce the duration and complexity of our tests.
Monitoring Containers at New Relic by Sean Kane Docker, Inc.
New Relic went all-in with Docker very early, and has continued to stay on the forefront of the container ecosystem, both as a user of the technology and as a monitoring and analytics vendor. Today, a variety of teams utilize Docker in a variety of ways using a mix of home-grown and external OSS frameworks. The Container Fabric team is working on our next generation container platform utilizing Mesos/Marathon and a variety of other OSS tools, like Heka. We will briefly review our setup, and then discuss how we gather data that we care about from the ecosystem and inject it into the various tools we rely on for visibility and analytics. We love the functionality of what we’ve built, and we believe that you will find it useful too.
Dockerizing Windows Server Applications by Ender Barillas and Taylor BrownDocker, Inc.
A session covering the container workflow from the developers inner loop, CI/CD, to deployment in a container orchestration solution. We'll cover Visual Studio Code from a Mac, Visual Studio Code from Windows with Bash and Visual Studio as an in-container local development environment targeting both Windows and Linux Containers. We'll walk through CI, Validation and CD to the Azure Container Service running Docker Swarm as one example of how you can convert your existing config as code and VM deployments to the containerized workflows startups and early adopter enterprises are using today.
Container Orchestration from Theory to PracticeDocker, Inc.
Join Laura Frank and Stephen Day as they explain and examine technical concepts behind container orchestration systems, like distributed consensus, object models, and node topology. These concepts build the foundation of every modern orchestration system, and each technical explanation will be illustrated using Docker’s SwarmKit as a real-world example. Gain a deeper understanding of how orchestration systems like SwarmKit work in practice and walk away with more insights into your production applications.
ocker is quickly becoming an invaluable development and deployment tool for many organizations. Come and spend the day learning about what Docker is and how to use it. Discover how to integrate it into your workflow and build an environment that works for you and your team. This hands-on training will give you the kick-start needed to begin using Docker effectively.
An introduction to using Docker Engine. We'll containerize a very simple web application and then talk about some easy ways to try out Docker Engine in your own way.
Observability in a Dynamically Scheduled WorldSneha Inguva
The industry is moving toward a microservices architecture, and many companies have embraced container orchestration solutions such as Kubernetes. DigitalOcean is no different. Over the past year, DigitalOcean’s Delivery team has been building a runtime platform based on Kubernetes with the goal of making shipping code easier. The system has empowered service owners to quickly and efficiently deploy and update their applications. A vital component is a white box monitoring and alerting solution based on Prometheus and Alertmanager.
Sneha Inguva offers an overview of the system and shares problems encountered, potential solutions, and key lessons learned in the process. Sneha dives into the setup of Prometheus and Alertmanager that allows service owners to instrument their own metrics and alerts, explaining the service owner’s point of view and the internals that allow for the dynamic addition of alerts, and offers a glimpse of future modifications to the system. Join in to learn how to leverage open source tools for your monitoring and alerting needs.
Atlanta Jenkins Area Meetup October 22nd 2015Kurt Madel
Jenkins Workflow is a game changing way to write automation jobs with Jenkins. Workflows can support simple, one-step hello-world type jobs to the most complex, parallel pipelines. Best of all, they support manual/automated intervention (eg: approvals) and also workflows survive Jenkins master restarts. Combining Jenkins Workflow with Docker can seriously reduce friction in your DevOps efforts. Come learn how.
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeAcademy
One of the most underrated features of Kubernetes is namespaces. In the market, instead of using this feature, people are still stuck with having different clusters for their environments. This talk will try to break this approach, and will introduce how we end up using ephemeral namespaces within our CI/CD pipeline. It will cover the architecture of our system for running the user acceptance tests on isolated ephemeral namespaces with every bits and pieces running within pods. While doing this, we will set up our CI/CD pipeline on top of TravisCI, GoCD, and Selenium that is controlled by Nightwatch.js.
Sched Link: http://sched.co/6Bcb
Testcontainers - Geekout EE 2017 presentationRichard North
Unit testing our code on the JVM is well catered for with a lot of great tools that are mature and reliable – things tend to just work. Integrated testing, however, is another matter. Any time we face a situation where we need to involve non-JVM elements in our tests, we’re faced with painful environment setup and repeatability issues. Testcontainers aims to make integrated tests a little less unpleasant, through the power of Docker. Databases, Web browsers – in fact anything available as a Docker image – can be made available as a component to use in our tests.
In this talk, we’ll go through the motivations for building Testcontainers, its features, as well as some examples of using it in practice for testing various types of components.
Integration testing is hard, and often teams are tempted to do it in production. Testcontainers allows writing meaningful integration tests spawning Docker containers for databases, queue systems, kv-store, other services. The talk, a blend of slides and live code, will show how we are able to deploy without fear while integrating with a dozen of different datastores. Don't mock your database with fake data anymore, work with real data
Adrian Otto from Rackspace will present "Docker 102", This includes a summary of Docker 101 as a refresher from the August session, and builds upon that by discussing who should use a registry, and what options are available for keeping them private. We will discuss best practices for keeping your production environments evergreen with updated operating system environments, library dependencies, and maintaining an immutable infrastructure.
Talk at RubyKaigi 2015.
Plugin architecture is known as a technique that brings extensibility to a program. Ruby has good language features for plugins. RubyGems.org is an excellent platform for plugin distribution. However, creating plugin architecture is not as easy as writing code without it: plugin loader, packaging, loosely-coupled API, and performance. Loading two versions of a gem is a unsolved challenge that is solved in Java on the other hand.
I have designed some open-source software such as Fluentd and Embulk. They provide most of functions by plugins. I will talk about their plugin-based architecture.
Debugging Microservices - key challenges and techniques - Microservices Odesa...Lohika_Odessa_TechTalks
Microservice architecture is widespread our days. It comes with a lot of benefits and challenges to solve. Main goal of this talk is to go through troubleshooting and debugging in the distributed micro-service world. Topic would cover:
main aspects of the logging,
monitoring,
distributed tracing,
debugging services on the cluster.
About speaker:
Andrеy Kolodnitskiy is Staff engineer in the Lohika and his primary focus is around distributed systems, microservices and JVM based languages.
Majority of time engineers spend debugging and fixing the issues. This talk will be dedicated to best practicies and tools Andrеys team uses on its project which do help to find issues more efficiently.
Wide adoption of Microservice Architecture presents a whole new set of challenges for us as developers. Some of them are well-known and understood. About others we do not think until they strike us out of the blue and we spend a lot of sleepless nights trying to figure them out. And communication between services in distributed system is one of the latter.
During this Microservice Architecture Odesa #TechTalk we will talk about how to prevent your microservices from becoming a modern-world Tower of Babel. We will discuss how to select appropriate communication mechanisms for most common cases in a distributed system, how should we define API contracts for each of them and what tools are available for us to keep them consistent and evolve them over time.
We will touch following topics:
REST vs RPC vs Messaging and how not to get lost with your options.
Contract First development and how it can save time in multi-team environment.
SwaggerHub as a single Point of truth for REST API
Best practices for gRPC contracts and how to deal with changes in them.
About speaker:
Andrii Barsukov is Senior .NET developer at Lohika, with 5+ years of commercial experience in development of microservice applications. Currently participating in development of microservice-based financial system, which includes 20+ microservices developed by 10 separate development teams. And some of the challenges that we faced during its development I'd like to share.
На JavaScript Odesa #TechTalks мы поговорили о микрофронтендах как о современном архитектурном стиле проектирования для фронтенд разработки, который облегчает поддержку и деплой обновлений для крупных проектов.
Также мы обсудили:
Что такое микрофронтенды?
Как использовать их с старым проектом?
Монорепа vs мультирепа и почему?
О спикере:
Максим Белкин, Senior Software Engineer с 10-летним опытом коммерческой разработки веб-приложений. У Максима большой опыт в создании одностраничных приложений с использованием современных фреймворков и инструментов, а также большой опыт в области серверной разработки и создания REST API. Он также обладает глубокими знаниями в области объектно-ориентированной разработки, алгоритмов, кодирования и шаблонов тестирования и имеет опыт в гибкой разработке программного обеспечения, включая роли SCRUM Master и Team Lead.
There are a lot of things in multi-threading world, which we, as engineers, have to consider while developing applications. During Golang Odesa #TechTalks we will talk about three main problems – data races, race conditions, and deadlocks. Also, we will discuss how to avoid fantom bugs and do not shoot yourself in the foot while developing Golang applications
About speaker:
Oleksandr Karlov is Golang Team Lead at Lohika. Currently, Oleksandr is working on SLO project, which helps engineers to control reliability of their services. Before that he worked on CDN and statistics platform.
Druid is one useful and popular tool in the Big Data world. It is this OLAP system that allows you to efficiently process, store and query data. Which confirms the demand for Druid among tools in the Big Data processing environment.
With Vladimir Iordanov we will talk about how Druid works, what it consists of and what its capabilities are. Vladimir will introduce us to the Druid components, talk about the cluster architecture, how data processing is going on.
Тема доклада «React и его архитектурная периферия»
React - мощнейшая библиотека для создания технических интерфейсов, но порой одного реакта не достаточно для полноценной и гибкой разработки. Мы будем обсуждать и сравнивать разные подходы для разработки современных React приложений.
В программе: React&Redux, React&Meteor, React&Relay, React&MobX, React&PRPL
Congratulations, you have been promoted to a manager role. You`ve got new pro...Lohika_Odessa_TechTalks
“In my presentation I’ll try to list the first steps that you should make on a new project in your new role. Also we will review different types of projects and challenges that you may have. I hope that my experience and suggestions, I’m about to share, will help you dive into management role quickly and painlessly. “
This presentation will be useful for everyone who wants to be a manager, to grow in this direction and who is absolutely sure that one day he or she will be promoted. It might be useful for everyone who has been promoted recently and still feels that he/she doesn’t have enough experience with different projects.
"Don't touch me and give me my money" or how motivate people who can but don...Lohika_Odessa_TechTalks
“The core of every successful project is motivated and professional team, but what can be done when the comfort zone has been reached and nothing makes your team work with the same enthusiasm? In this session, we would like to discuss with you the cause of the syndrome "weary professional“ , why it is bad and which non-standard approaches can be used for solving this problem.
Presentation will be particularly useful for those who are somehow connected with the management staff or aspire to be Team Leaders.
0x01 - Newton's Third Law: Static vs. Dynamic AbusersOWASP Beja
f you offer a service on the web, odds are that someone will abuse it. Be it an API, a SaaS, a PaaS, or even a static website, someone somewhere will try to figure out a way to use it to their own needs. In this talk we'll compare measures that are effective against static attackers and how to battle a dynamic attacker who adapts to your counter-measures.
About the Speaker
===============
Diogo Sousa, Engineering Manager @ Canonical
An opinionated individual with an interest in cryptography and its intersection with secure software development.
This presentation by Morris Kleiner (University of Minnesota), was made during the discussion “Competition and Regulation in Professions and Occupations” held at the Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found out at oe.cd/crps.
This presentation was uploaded with the author’s consent.
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...Orkestra
UIIN Conference, Madrid, 27-29 May 2024
James Wilson, Orkestra and Deusto Business School
Emily Wise, Lund University
Madeline Smith, The Glasgow School of Art
Acorn Recovery: Restore IT infra within minutesIP ServerOne
Introducing Acorn Recovery as a Service, a simple, fast, and secure managed disaster recovery (DRaaS) by IP ServerOne. A DR solution that helps restore your IT infra within minutes.
Have you ever wondered how search works while visiting an e-commerce site, internal website, or searching through other types of online resources? Look no further than this informative session on the ways that taxonomies help end-users navigate the internet! Hear from taxonomists and other information professionals who have first-hand experience creating and working with taxonomies that aid in navigation, search, and discovery across a range of disciplines.
3. Why Jenkins?
What is it about…
Jenkins pipelines
Ø Scripted
Ø Declarative
Shared libraries
Ø In general
Ø src
Ø vars
Ø Combined
Ø MPL
JCasC
Conclusion
4. 1. One of top 10 CI/CD tools
2. Still in trends
Why Jenkins?
7. • Syntax Checking
– Immediate runtime syntax checking with explicit error messages.
– API and CLI ability for linting a Jenkinsfile.
• Docker and Kubernetes Pipeline integration
– Run all stages in a single container.
– Run each stage in a different container.
• Easy configuration
– Quickly define parameters for your Pipeline.
– Quickly define environment variables and credentials for your Pipeline.
– Quickly define options (such as timeout, retry, build discarding) for your Pipeline.
• Conditional actions
– Send notifications or take actions depending upon success or failure.
– Skip stages based on branches, environment, or other Boolean expression.
Declarative Pipeline Features
9. • Making sure to use Groovy code in Pipelines as glue
• Avoiding complex Groovy code
• Reducing repetition of similar Pipeline steps
• Be careful with Concurrency
• Avoiding calls to Jenkins.getInstance
Pipeline best practices
12. • Customer wants to use it
• Don’t repeat yourself
• Custom steps
• Jenkinsfile is too large
• Lots of microservices with the same type
• Jenkins as a SAAS (e.g. multy-team)
When do we need Shared library
13. General best practices:
• Do not override built-in Pipeline steps
• Avoiding large global variable declaration files
• Avoiding very large shared libraries
• Using @NonCPS
• Versioning shared libraries
• Do not reinvent the wheel
Shared library best practices
14. Shared library - src
class Pipeline
config
build
test…
class customPipeline extends Pipeline
build
test
// Jenkinsfile
@Library('utils') import org.foo.customPipeline
def p = new customPipeline(this)
node {
stage(“Build”) {
p.build()
}
}
23. • Standard component of the Jenkins project
• Schema validation
• Vault integration
• JobDSL for jobs declaration
• Dynamic config reload
• Doesn’t support plugin installation
JCasC
25. • Keep it easy to read and maintain
• Use declarative pipelines
• Keep pipeline logic in Jenkinsfile
• Use shared library only if it’s really required
• Write custom steps in vars, don’t forget .txt
• Join methods by tool (log, helm, maven, etc)
• Check plugins first
• Cleanup everything as part of pipeline
• Read documentation
Conclusion