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.

Reply via email to