Responses inline below: On Thu, Feb 27, 2020 at 9:07 AM Jeroen Haaksema <[email protected]> wrote: > > Hello, > > First of, I’m really sorry if this is not the right place to ask this, if not > please let me know who I could direct this to!I am a CS student who is doing > a course on architecture and I have chosen Jenkins. Part of the course is > communicating with the architect. There doesn’t seem to be just a single > architect within Jenkins and your group seems to me the closest I will get to > an actual architect. The assignment I’m working on is a reconstruction of the > architecture from an open source software project and one of the things we > are looking at is Architecturally Significant Requirements(ASR). Which comes > down to requirements set in stone with no wiggle room. I would really > appreciate it if someone would be able to either confirm or deny if the ASR’s > I have defined are correct.
Correct; there isn't a single architect behind Jenkins, though Kohsuke Kawaguchi was the original developer which is the closest thing I can think of. > Would you say that part of the reason that Jenkins was developed in Java is > due to that this means that the codebase can be used for Linux, Mac Os X and > Windows? (this obviously skips over that Oracle, the owner of Java was part > of the inception of Jenkins) Cross platform capabilities are useful, though I'd also assume it was also chosen as a familiar tech stack by the original developer at the time when it was just a side project running on a spare computer at his office. > Would you say that using HTTP to manage slave nodes is to make it possible > for Jenkins to have nodes on different operating systems working together? The nodes are managed through a custom protocol which has allowed it to be implemented in several concrete implementations such as launching over SSH, using the protocol directly (encrypted via TLS) over TCP/IP for agent-initiated TCP/IP connections, and even using Apache Kafka as a message broker of sorts. > Furthermore I have some other questions: > > Would you say that one of the main features of Jenkins is the Pipeline and > the option to customise which steps are taken including the order and > possible steps after the completion of test? Yes, though do note that pipelines are a more recent feature than the project itself, though just through a different UI. Automation of tasks and reacting to them is the gist in my opinion, yes. > What is the reason that plugins can be written in Kotlin? Kotlin was designed to interoperate easily with Java [1], so it's a natural extension to be able to do the same in Jenkins. Due to JEP-200, though, there may be extra boilerplate code needed to save and load config objects written using Kotlin collection classes, but I haven't actually validated that. [1]: https://kotlinlang.org/docs/reference/java-interop.html > Would you say that an external interface used by Jenkins is a link to a > source control management system (eg. GitHub) ? Yes, though I'd clarify that there are two potential interfaces there: the git repository itself and webhooks from GitHub (or other similar SCM hosts). There are even more potential interfaces there, though the git repository one is a fundamental one as most Jenkins jobs need to pull data from somewhere continuously, and a git repository is a natural tool for that. -- Matt Sicker Senior Software Engineer, CloudBees -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAEot4ozS-vFMgNfi7dZ_3%3Duu2rzQYub_kyvxzm3UyOgM-WNUJA%40mail.gmail.com.
