Feed aggregator

CloudBees Docker Workflow Plugin 1.0 (new)

Project Releases - Wed, 2015-06-03 10:33
CloudBees Docker Workflow Plugin 1.0

Cors Filter Plugin 1.0 (new)

Project Releases - Tue, 2015-06-02 16:02
Cors Filter Plugin 1.0

JUC Speaker Blog Series: Peter Vilim, JUC U.S. East

Jenkins Blogs - Tue, 2015-06-02 12:50

In this talk I will be focusing on plugin development for Jenkins. I aim to capture some of the lessons that we have learned at Delphix and that I learned while I was in graduate school. At Delphix we have been large users of Jenkins for over four years which is most of the history of our startup. We currently run thousands of jobs per day. We have been quite happy with the experience and expect these numbers to grow significantly as our business scales beyond our current 300 head count.

The core concept of Delphix is Data as a Service. Our software allows businesses to virtualize databases and data associated with their applications then provision these on demand to developers and others who need virtual copies of them. Our development for this software spans the entire stack. We have quite a few kernel developers, including the original team for the ZFS filesystem who work on developing the open source application, OpenZFS, which underpins our product. Further up the stack we have a large java application that interacts with ZFS to perform virtualization operations, provides user facing webservices, and interfaces with our internal Postgres metadata store which stores the state of our system. Finally above this we have a modern Javascript front end for user interaction. Our full software product ships as a virtual machine on a variety of hypervisors. As a result of these numerous components, end to end integration testing is very important to us. This integration testing is the primary use of Jenkins for us. Before any developer checks in code to either our operating system or application repository, it must undergo several hours of automated integration testing. We also have nightly runs which go for far longer and tests a much more extensive set of functionality. In addition, we use Jenkins for the build process of our software as well as final packaging for release. Because Jenkins serves as a hub for our development processes, having a well designed system is very important to us and saves us significant time.

Below are some of the key points I will be discussing at my talk. I hope you attend to learn more about the areas that I find very interesting.

  • I'm planning to discuss the structure of a Jenkins plugin. I'll also cover a few of the more advanced areas of plugins such as distributed builds that I see less frequently in plugins. In addition, I'll briefly cover unit testing, which is something missing in many open source plugins.
  • I'll talk about some good patterns to use in plugins as well as some areas where a plugin is not a good idea. I'm planning to pull from my own personal experience developing plugins, the experience of other people at Delphix working with Jenkins, and our experience using other open source plugins to talk about what works and what doesn't.
  • I'll give an overview of the current plugin development at Delphix. I'll cover some of the lessons that we have learned along the way. We have also started to take a "dogfooding" approach to some of our development where we use plugins internally to help our test process and open source them since our customers find features used for testing our product to often be useful in their production environments. This has an added bonus of making it easier to justify our development time spent on making these plugins, since they are also features requested by our customers.
  • I'll discuss the trade-offs between using an already developed plugin or group of plugins, writing some scripts, and building your own plugin. Being able to figure out when to do which can lead to major time savings as well as a better user experience.

I hope you attend. Even if you have no immediate plans to write your own plugins, hopefully you'll be able to learn about what makes plugins tick and how to better evaluate plugins when picking them for your own projects. Plugins were what originally got me excited about Jenkins and they allowed me to see its true potential as a build and test system. I hope to share some of that inspiration.

This post is by Peter Vilim, Member of Technical Staff at Delphix. If you have your ticket to JUC U.S. East, you can attend his talk "Providing a First Class User Experience with Jenkins Plugins" on Day 1.

Still need your ticket to JUC? If you register with a friend you can get 2 tickets for the price of 1! Register here for a JUC near you.






Thank you to our sponsors for the 2015 Jenkins User Conference World Tour:

SSH Agent Plugin 1.7

Project Releases - Tue, 2015-06-02 12:37
SSH Agent Plugin 1.7

Redgate SQL CI Plugin 1.0.1 (new)

Project Releases - Tue, 2015-06-02 10:49
Redgate SQL CI Plugin 1.0.1

Workflow Plugin 1.8

Project Releases - Mon, 2015-06-01 18:22
Workflow Plugin 1.8

Rally Bookkeeper 2.0

Project Releases - Mon, 2015-06-01 17:42
Rally Bookkeeper 2.0

AWS Beanstalk Publisher Plugin 1.4.4

Project Releases - Mon, 2015-06-01 13:20
AWS Beanstalk Publisher Plugin 1.4.4

JUC Speaker Blog Series: Nobuaki Ogawa, JUC Europe

Jenkins Blogs - Mon, 2015-06-01 12:22

On the 23rd and 24th June, I’ll attend Jenkins User Conference 2015 Europe in London. And I’ll present a lightning talk about Continuous Delivery with Jenkins.

Here is short overview of what I’d like to talk about there.

1. Continuous Build

My starting point was to get to know JenkinsCI. Our developers used JenkinsCI to make the Continuous Build of our software. So, our developing environment was quite Jenkins friendly from the beginning.

2. Continuous Deploy

--- Virtual Machine ---

We had to have an environment where we could deploy our new build. As we are big fans of Microsoft, we decided to use Azure as our environment to make Continuous Testing.

How do we control it? We use Powershell, which can be executed with JenkinsCI.

--- Product Deployment ---

How did we achieve the Continuous Deploy? Actually, my boss, who is DirectSmile’s Yoda developed a very powerful tool called “DirectSmile Installation Service” to enable this.

So we integrated this tool within JenkinsCI, and now Jenkins can deploy DirectSmile products on any target server with just one-button-click!

3. Continuous Testing

Of course, we use JenkinsCI to make the Continuous Testing. How do we do that? We use Selenium to make and run tests. So we can cover most features and we can execute it at anytime.

We are doing it after every new version build, to obtain Continuous Delivery.

4. Continuous Sharing

I think it’s important to share all knowledge and experiences I have had with others, especially those whom have just started with Continuous Delivery.

Don’t worry, it is probably much easier than you think.

As a part of this practice, I’d like to share all my knowledge and experiences with how easy it is to achieve Continuous Delivery with Jenkins at JUC 2015.

I’m really exciting to meet and talk about this there! See you at JUC 2015 in London!

About Me

My name is Nobuaki Ogawa, from Japan, and I currently work in Berlin, Germany for the software company DirectSmile as a DevOps QA Manager.

From the very first time I used JenkinsCI, it helped me a lot. Almost all the work I did last year was mainly with Continuous Delivery with Jenkins.

From Build to Deploy, Test, and even Maintenance and Monitoring, my Jenkins takes care of everything.

It was super easy to achieve Continuous Delivery in the DirectSmile world with the help of JenkinsCI.

This post is by Nobuaki Ogawa, DevOps QA Manager at DirectSmile. If you have your ticket to JUC Europe, you can attend his talk "Jenkins Made Easy" on Day 1.

Still need your ticket to JUC? If you register with a friend you can get 2 tickets for the price of 1! Register here for a JUC near you.






Thank you to our sponsors for the 2015 Jenkins User Conference World Tour:

Koji Plugin 0.3

Project Releases - Mon, 2015-06-01 12:12
Koji Plugin 0.3

Compound Slaves 1.1

Project Releases - Mon, 2015-06-01 11:52
Compound Slaves 1.1

Klaros-Testmanagement Plugin 1.5.1

Project Releases - Sun, 2015-05-31 20:02
Klaros-Testmanagement Plugin 1.5.1

Configuration Slicing Plugin 1.41

Project Releases - Sun, 2015-05-31 19:29
Configuration Slicing Plugin 1.41

Beaker Builder Plugin 1.8

Project Releases - Sat, 2015-05-30 16:05
Beaker Builder Plugin 1.8

AWS Lambda Plugin 0.2.3

Project Releases - Sat, 2015-05-30 12:22
AWS Lambda Plugin 0.2.3

Unity3dBuilder Plugin 1.0

Project Releases - Fri, 2015-05-29 12:53
Unity3dBuilder Plugin 1.0

Workspace Cleanup Plugin 0.26

Project Releases - Fri, 2015-05-29 12:16
Workspace Cleanup Plugin 0.26

PerfPublisher Plugin 8.02

Project Releases - Thu, 2015-05-28 16:25
PerfPublisher Plugin 8.02

ArtifactPromotionPlugin 0.3.5

Project Releases - Thu, 2015-05-28 12:01
ArtifactPromotionPlugin 0.3.5

GitHub API Plugin 1.68

Project Releases - Wed, 2015-05-27 21:37
GitHub API Plugin 1.68