maxamillion.shhttps://maxamillion.sh/A moderately sophisticated shellscript in the meatspace operating system of life.enWed, 29 Aug 2018 16:45:39 GMTNikola (getnikola.com)http://blogs.law.harvard.edu/tech/rssNew Adventures: Ansible Editionhttps://maxamillion.sh/blog/New%20Adventures%20Ansible%20Edition/Adam John Miller<div><object class="align-center" data="https://maxamillion.sh/images/Ansible-Mark-RGB_Black.svg" style="width: 800px; height: 400px;" type="image/svg+xml">
Ansible Logo</object>
<p>I am honored, excited, nervous, humbled, and over all elated to announce that
starting December 1, 2017 I will be a member of the <a class="reference external" href="https://www.ansible.com">Ansible</a> Core Development
Team at <a class="reference external" href="https://www.redhat.com">Red Hat</a> where I will work primarily on <a class="reference external" href="https://github.com/ansible/ansible/">Upstream Ansible</a> (what
most people would likely know as just 'Ansible', 'Ansible Core', or 'The Ansible
Project' depending on who you talk to).</p>
<p>This was without a doubt the most difficult decision I've ever made in my
professional career to date. Working on the <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Engineering">Fedora Engineering Team</a> had been
a dream of mine since I was in college and I finally achieved it a few years
ago. I love the team, I love work we do, and I genuinely believe we're making a
positive impact on the greater open source community. I take a lot of pride in
that. I never foresaw a future in which I'd find something that drew my
interests in another direction, but then Ansible came into existence. I've been
a big fan of Ansible since the project's beginnings and have upstream
contributions dating back to it's early versions. It's become a newfound driving
passion of mine and when I was approached with the opportunity to work on it
full time, it was something I was extremely excited about and I simply couldn't
pass it up.</p>
<p>I want to be clear: I will not be abandoning the <a class="reference external" href="https://getfedora.org/">Fedora Project</a> by any means,
I've been a community contributor to Fedora since 2008 and have done so under
employment of my three previous employers as well as two Teams since joining Red
Hat. I have no plans of changing that now. I'm simply going to have to scale
back my daily responsibilities due to new priorities. I have every intention of
continuing to serve as an elected member of the <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Engineering_Steering_Committee">Fedora Engineering Steering
Committee</a> and will seek re-election when the time comes. I will also remain
active in the <a class="reference external" href="https://pagure.io/atomic-wg">Fedora Atomic Working Group</a> as much as possible.</p>
<p>While this was extremely bitter sweet because of my lineage with Fedora and my
earnest enjoyment of working on the Fedora Engineering Team, I'm extremely
excited and am really looking forward to joining the ranks of the Ansible Team.</p>
<p>A big thank you to the entire <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Engineering">Fedora Engineering Team</a>, they are a absolutely
stellar group of people and I will always look back on our time together fondly.</p>
<p>Until next time...</p></div>AnsibleFedoraNew Adventureshttps://maxamillion.sh/blog/New%20Adventures%20Ansible%20Edition/Mon, 09 Oct 2017 20:24:20 GMTAnsibleFest SF 2017https://maxamillion.sh/blog/ansiblefest-sf-2017/Adam John Miller<div><p><a class="reference external" href="https://www.ansible.com/ansiblefest">AnsibleFest</a> was amazing, it always is. This has been my Third one and it's
always one that I look forward to attending. The Ansible Events Team does an
absolutely stellar job of putting things together and I'm extremely happy I was
not only able to attend but that I was accepted as a speaker.</p>
<div class="section" id="kick-off-and-product-announcements">
<h2>Kick Off and Product Announcements</h2>
<p>The event kicked off with some really great product announcements, some
interesting bits about <a class="reference external" href="https://www.ansible.com/tower">Ansible Tower</a> and the newly announced <a class="reference external" href="https://www.ansible.com/ansible-engine">Ansible
Engine</a>.</p>
</div>
<div class="section" id="ansible-awx">
<h2>Ansible AWX</h2>
<object class="align-center" data="https://maxamillion.sh/images/ansible_awx_logo.svg" style="width: 600px; height: 400px;" type="image/svg+xml">
Ansible AWX Logo</object>
<p>As an avid fan of Open Source Software, the announcement and immediate release
of <a class="reference internal" href="https://maxamillion.sh/blog/ansiblefest-sf-2017/#ansible-awx">Ansible AWX</a> was the headliner of the event for me. This is the open source
upstream to <a class="reference external" href="https://www.ansible.com/tower">Ansible Tower</a> that Red Hat made the commitment to release once
Ansible was acquired in accordance with their continued commitment to Open
Source. If you live in Ansible user or contributor land, you know this is
something that's been a hot topic for quite some time and I'm so glad it's been
launched officially. I've been learning <a class="reference external" href="https://www.djangoproject.com/">Django</a> over the last week so I can
start contributing. Looking forward to it.</p>
</div>
<div class="section" id="ansible-community-leader-and-red-hat-ceo-fireside-chat">
<h2>Ansible Community Leader and Red Hat CEO Fireside Chat</h2>
<img alt="Fireside Chat with Robyn and Jim" class="align-center" src="https://maxamillion.sh/images/robyn-jim-fireside.jpg" style="width: 800px; height: 400px;">
<p>Immediately following the Ansible AWX announcement was a fireside chat with
Ansible Community Leader <a class="reference external" href="https://twitter.com/robynbergeron">Robyn Bergeron</a> (who is also previously the Fedora
Project Leader) and Red Hat CEO <a class="reference external" href="https://twitter.com/JWhitehurst">Jim Whitehurst</a> to discuss various market
trends in the realm of infrastructure automation, the ability to deliver faster
and more rapidly, and the challenges business are having with the concept of
"Digital Transformation." This was a really cool thing to get the perspective of
things from both an open source community perspective and that of a business
minded individual, and to see where those two perspectives met in the middle
and/or overlapped.</p>
</div>
<div class="section" id="ansible-community-days">
<h2>Ansible Community Days</h2>
<p>The day before and the day after the main headline of AnsibleFest was the
Community Days, the day before AnsibleFest focused entirely on topics around
<a class="reference external" href="https://github.com/ansible/ansible/">Ansible Core</a> and the greater <a class="reference external" href="https://www.ansible.com/community">Ansible Community</a>. The day after AnsibleFest
focused on <a class="reference internal" href="https://maxamillion.sh/blog/ansiblefest-sf-2017/#ansible-awx">Ansible AWX</a> in the morning, explaining architecture and various
technical implementation details to try and get some exposure to things for
those of us in the room who weren't previously privy to that information. The
afternoon of the second day involved the "Ansible Ambassadors" community (I'm
not sure if this is an official term)</p>
</div>
<div class="section" id="ansible-all-the-things">
<h2>Ansible All The Things</h2>
<p>I gave a presentation that I like to call "Ansible All The Things" or "Ansible
Everything" (depending on who my audience is and how acceptable they are of
meme jokes). The basic idea though is to look at Ansible not as a configuration
management tool, which I feel a lot of the "Tech Media" (for lack of a better
term) has classified it as and therefore it is often known as to the more broad
audience, but instead think of it like a Task Automation utility. This
particular task automation utility also comes with a nice <a class="reference external" href="https://www.python.org/">python</a> API and
a way to interact by anything that can "speak <a class="reference external" href="http://json.org/">JSON</a>." This has some advantages
if you step back and thing about this abstract concept of a tool with
a programming interface that is ultimately as generic as passing JSON around
(with added convenience for python programmers). Effectively you have a method
of running a task, or series of tasks, on one or many systems in your
infrastructure. This is powerful enough to be used for all sorts of things like
configuration management (yes, Ansible can perform configuration management
tasks but it's also so much more than that), provisioning, deployment,
orchestration, command line tooling, builds, event-based execution, workflow
automation, continuous integration, and containers.</p>
<p>For those who would like to check you my slides, they are <a class="reference external" href="https://maxamillion.fedorapeople.org/AnsibleAllTheThings_AnsibleFest2017.pdf">here</a>.</p>
</div>
<div class="section" id="infrastructure-testing-with-molecule">
<h2>Infrastructure Testing with Molecule</h2>
<p>I had the opportunity to attend a presentation about <a class="reference external" href="https://molecule.readthedocs.io/en/latest/">Molecule</a>, which I was
really excited about because this is a toolchain I've wanted to dig into for
a while. This is effectively the goal: Infrastructure as Code, TDD/CI on
your Code, and transitively your Infrastructure. What a time to be alive.</p>
<p>Anyways, the talk itself was absolutely fantastic. <a class="reference external" href="https://twitter.com/ehashdn">Elana Hashman</a> is
a spectacular speaker and the amount of research she put into the talk was
apparent. The room was captivated and the questions and conversations were
enthusiastic, this was clearly a topic space people were interested in. I also
have to give a tip of the hat to the live Demo that went off flawlessly, I've
never personally pulled off a live Demo without at least one goof that contained
the amount of live editing of code that was contained in this one. Kudos.</p>
<p>For those who are interested in the presentation materials, check them out
<a class="reference external" href="https://hashman.ca/ansiblefest-2017/">here.</a> (Do it, it's really good.)</p>
</div>
<div class="section" id="closing-time">
<h2>Closing Time</h2>
<p>The event was wonderful and I hope to have the opportunity to go next year to
the North America based AnsibleFest (they also do one in the EU/UK but it's not
often I can pull together the funding to that trip).</p>
</div></div>AnsibleFest 2017https://maxamillion.sh/blog/ansiblefest-sf-2017/Mon, 18 Sep 2017 22:19:20 GMTFlock to Fedora 2017https://maxamillion.sh/blog/flock-to-fedora-2017/Adam John Miller<div><div class="section" id="flock-to-fedora-2017">
<h2>Flock to Fedora 2017</h2>
<p>Every year, the <a class="reference external" href="https://getfedora.org/">Fedora</a> User and Developer community puts on an conference
entitled "<a class="reference external" href="https://flocktofedora.org/">Flock to Fedora</a>" or "Flock" for short. This year was no different
and the event was hosted in lovely <a class="reference external" href="https://en.wikipedia.org/wiki/Cape_Cod">Cape Cod, MA</a>.</p>
<p>This year's Flock was a little different in focus than previous year's, the goal
of the event organizers appeared to be that of "doing" as apposed to "watching
presentations" which worked out great. As an user and contributor conference,
almost everyone there was a current user or contributor so workshops to help
enhance people's knowledge level, have them contribute to an aspect of the
project, or to introduce them to a new area of the Fedora Project in a more
hands-on way was met with enthusiastic participation. There were definitely
still "speaking tracks" but there were more "participation tracks" than years
past and it turned out to be a lot of fun.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">At the time of this writing, the videos had not yet been posted but it
was reported that they will be found at the link below.</p>
</div>
<p>All the sessions were being recorded and I highly recommend anyone interested to
check them out <a class="reference external" href="https://www.youtube.com/fedoraproject">here</a>.</p>
<p>I will recap my experience and take aways from the sessions I attended and
participated in as well as post slides and/or talk materials that I know of.</p>
</div>
<div class="section" id="flock-day-1">
<h2>Flock Day 1</h2>
<div class="section" id="keynote-fedora-state-of-the-union">
<h3>Keynote: Fedora State of the Union</h3>
<p>The <a class="reference external" href="https://fedoraproject.org/wiki/User:Mattdm">Fedora Project Leader, Matt Miller</a> took the stage for the morning
keynote following a brief instructional Logistics/Intro statement by event
organizers. Matt discussed the current state of Fedora, where we are, where
we're going, ongoing work and current notable <a class="reference external" href="https://fedoraproject.org/wiki/Changes/Policy">Changes</a> with work under way.</p>
<p>Big key take-aways here was that <a class="reference external" href="https://docs.pagure.org/modularity/">Fedora Modularity</a> and <a class="reference external" href="https://fedoraproject.org/wiki/CI">Fedora CI</a> are big
initiatives aiming to bring more content to our users, in newly consumable ways,
even faster than ever before without compromising quality (and hopefully
improving it).</p>
<p><a class="reference external" href="https://mattdm.org/fedora/2017flock/2017-State-of-Fedora.pdf">Flock 2017 Keynote State of Fedora slides</a></p>
</div>
<div class="section" id="factory-2-0-fedora-and-the-future">
<h3>Factory 2.0, Fedora, and the Future</h3>
<p>One of the big pain points from the Fedora contributor's standpoint is how long
it takes to compose the entire distro into an usable thing. Right now, once
contributors have pushed source code and built RPMs out of it, you have to take
this giant pile of RPMs, create a repository, then start to build things out of
it that are stand-alone useful for users. These kinds of things are install
media, live images, cloud and virt images, container images, etc.</p>
<p><a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/Factory2">Factory 2.0</a> aims to streamline these processes, make them faster, more
intelligent based on tracking metadata about release artifacts and taking action
upon those artifacts only when necessary, and make everything "change driven"
such that we won't re-spin things for the sake of re-spinning or because some
time period has elapsed, but instead will take action conditionally on a change
occurring to one of the sources feeding into an artifact.</p>
<p>For those who remember last Flock, there was discussion of this concept of the
<a class="reference external" href="https://en.wikipedia.org/wiki/Eternal_September">Eternal September</a> and this was a progress report update of the work that's
being done to handle that as well as clean up the piles of technical debt that
have accrued over the last 10+ years.</p>
</div>
<div class="section" id="multi-arch-container-layered-image-build-system">
<h3>Multi-Arch Container Layered Image Build System</h3>
<p>Next time slot that I attended was my presentation on the new plans to provide
a Multi-Architecture implementation of the <a class="reference external" href="https://docs.pagure.org/releng/layered_image_build_service.html">Fedora Layered Image Build
Service</a>. The goal here is to provide a single entry point for Fedora Container
Maintainers to contribute containerized content, submit it to the build system,
and then have multiple architecture container builds as a result. This is
similar to how the build system operates for RPMs today and we aim to provide
a consistent experience for all contributors.</p>
<p>This is something that's still being actively implemented with various upstream
components that make up the build service, but will land in the coming months.
It was my original hope to be able to provide a live demo, but it unfortunately
didn't work out.</p>
<p><a class="reference external" href="https://maxamillion.fedorapeople.org/Events/Flock2016/Flock2016_IntroducingDockerLayeredImageBuildService.pdf">Multi-Arch Fedora Layered Image Build Service slides</a></p>
</div>
<div class="section" id="become-a-container-maintainer">
<h3>Become a Container Maintainer</h3>
<p>A workshop put together by <a class="reference external" href="https://twitter.com/fuzzychef">Josh Berkus</a> that
I helped with was to introduce people who'd never created a container within the
<a class="reference external" href="https://docs.pagure.org/releng/layered_image_build_service.html">Fedora Layered Image Build Service</a> to our best practices and guidelines. Josh
took everyone through an exercise of looking at a Dockerfile that was not in
compliance with the guidelines and then interactively with the audience bringing
it into compliance.</p>
<p>After the example was completed, Josh put up a list of packages or projects that
would be good candidates for becoming containerized and shipped to the Fedora
User base. Everyone split up into teams of two (we got lucky, there was an even
number of people in the room), and they worked together to containerize
something off the list. He and I spent a period of the time going around and
helping workshop attendees and then with about 10 minutes left the teams traded
their containerized app or service with someone else and performed a container
review in order to give them an idea of what that side of the process is like.</p>
<p>Hopefully we've gained some new long term container maintainers!</p>
</div>
<div class="section" id="fedora-environment-on-windows-subsystem-for-linux">
<h3>Fedora Environment on Windows Subsystem for Linux</h3>
<p>This session is one that I think many were surprised would ever happen, most
notably because I think for those who've been in the Linux landscape for long
enough to remember Microsoft's top brass calling Linux a cancer, we never would
have predicted <a class="reference external" href="https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux">Windows Subsystem for Linux</a> existing. However, time goes on,
management changes, and innovation wins. Now we have this magical thing called
"Windows Subsystem for Linux" that doesn't actually run Linux at all, but
instead runs programs meant to run on Linux without modification or
recompilation.</p>
<p>The session goes through how this works, how the Windows kernel accomplishes
the feats of magic that it does and the work that <a class="reference external" href="https://twitter.com/sjenninglinux">Seth Jennings</a> (the
session's presenter) put in to get Fedora working as a Linux distribution to run
on top of Windows Subsystem for Linux. It's certainly very cool, a wild time to
be alive, and something I think will ultimately be great for Fedora as an avenue
to attract new users without having to shove them into the deep end right away.</p>
<p><a class="reference external" href="https://www.variantweb.net/pub/fedora-wsl.pdf">Fedora Environment on Windows Subsystem for Linux slides</a></p>
</div>
</div>
<div class="section" id="day-2">
<h2>Day 2</h2>
<div class="section" id="freshmaker">
<h3>Freshmaker</h3>
<p>Going along with the theme of continuing to try and deliver things faster to our
users, this session discusses a new service that's being rolled out in Fedora
Infrastructure that will address the needs of "keeping things fresh" in Fedora.
Introducing <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/Factory2/Focus/Freshmaker">Freshmaker</a></p>
<p>As it stands today, we don't have a good mechanism by which to track the
"freshness" of various pieces of software, there's been some attempts at this in
the past and they weren't necessarily incorrect or flawed but they never had the
opportunity to come to fruition for one reason or another. Good news is that
Freshmaker is a real thing, it's a component of <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/Factory2">Factory 2.0</a> and is tasked the
job of making sure that software in build pipeline is fully up to date with
latest input sources for easy of maintaining updated release artifacts for
end users to download.</p>
</div>
<div class="section" id="gating-on-automated-tests-in-fedora-greenwave">
<h3>Gating on Automated Tests in Fedora - Greenwave</h3>
<p><a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/Factory2/Focus/Greenwave">Greenwave</a> is another component of <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/Factory2">Factory 2.0</a> with the goal of
automatically blocking or releasing software based on automated testing such
that the tests are authoritative. This session discussed the motivations and the
design as well as discussed how to override Greenwave via <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/Factory2/Focus/WaiverDB">WaiverDB</a>.</p>
</div>
<div class="section" id="discussing-kubernetes-and-origin-deployment-options">
<h3>Discussing Kubernetes and Origin Deployment Options</h3>
<p>This session was mostly about <a class="reference external" href="https://kubernetes.io">kubernetes</a>, <a class="reference external" href="https://www.openshift.org/">OpenShift</a>, and how to deploy
them on <a class="reference external" href="https://getfedora.org/">Fedora</a> in different ways. There was a brief presentation and then
discussions about preferred methods of deployment, what we as a community
would like to and/or should pursue as the recommended method by which we direct
new users to install these technologies.</p>
</div>
<div class="section" id="fedora-arm-status-update">
<h3>Fedora ARM Status Update</h3>
<p>Fedora's ARM champion, <a class="reference external" href="https://fedoraproject.org/wiki/User:Pbrobinson">Peter Robinson</a>, gave an update of where things are in
ARM land, discussing the various development boards available and what Fedora
contributors and community members can expect in the next couple Fedora
releases.</p>
</div>
<div class="section" id="on-openshift-in-fedora-infrastructure">
<h3>On OpenShift in Fedora Infrastructure</h3>
<p>This session was a working/discussion session that revolved around how the
<a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure">Fedora Infrastructure</a> Team plans to utilize <a class="reference external" href="https://www.openshift.org/">OpenShift</a> in the future for
Fedora services in order to achieve higher utilization of the hardware we
currently have available and to allow for applications to be developed and
deployed in a more flexible way. The current plans are still being discussed and
reviewed, which is part of what this session was for, but stay tuned for more in
the coming weeks.</p>
</div>
<div class="section" id="the-future-of-fedmsg">
<h3>The Future of fedmsg?</h3>
<p>Currently, <a class="reference external" href="http://www.fedmsg.com/en/stable/">fedmsg</a> is Fedora's unified message bus. This is where all
information about activities within the Fedora Infrastructure are sent and
that's not slated to change anytime soon. However, there's new use cases for the
messages that will go out on the message bus that have changed in scope and the
reliability of message delivery is something that will become a more hard
pressing requirement. This presentation was about a proposal to add new
transports for messages in addition to the one that already exists, allowing
various services needing to listen for fedmsgs to subscribe to the protocol
endpoint that most makes sense for the purpose. This session opened a discussion
with a proposal to satisfy the newer needs while leaving the current
infrastructure in place by taking advantage of some of the features of
<a class="reference external" href="http://zeromq.org/">ZeroMQ</a>.</p>
</div>
</div>
<div class="section" id="day-3">
<h2>Day 3</h2>
<div class="section" id="what-does-red-hat-want">
<h3>What does Red Hat want?</h3>
<p>This was a very candid and honest presentation by our once long standing Fedora
Infrastructure lead, Mike McGrath, who spoke on behalf of Red Hat as the primary
corporate sponsor of Fedora as to what specifically Red Hat as an entity hopes
to gain from the ongoing collaboration with the Fedora Community, and the
innovations they hope to help foster moving forward. I unfortunately did not
take good notes so don't have much in the way to provide as far as specifics so
we'll have to wait for the videos to become available for those interested in
this material.</p>
</div>
<div class="section" id="fedora-infrastructure-to-infinity-and-beyond">
<h3>Fedora Infrastructure: To infinity and beyond</h3>
<p>The <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure">Fedora Infrastructure</a> lead, <a class="reference external" href="https://fedoraproject.org/wiki/User:Kevin">Kevin Fenzi</a>, stood infront of a whiteboard
and kicked off a workshop where interested parties and contributors to the
Fedora Infrastructure outlined and planned major initiatives for the Fedora
Infrastructure for the next year. Headliners here from general consensus is that
<a class="reference external" href="https://www.openshift.org/">OpenShift</a> will definitely be leveraged more heavily but it will require some
well defined policy around development and deployment for the sake of sanitizing
where code libraries come from for security, auditing, and compliance purposes.
The other main topic of discussion was metrics reporting, various options will
be evaluated with front runners being the <a class="reference external" href="https://www.elastic.co/products">Elastic Stack</a>, <a class="reference external" href="http://www.hawkular.org/">Hawkular</a>, and
<a class="reference external" href="https://prometheus.io/">Prometheus</a>.</p>
</div>
<div class="section" id="modularity-the-future-building-and-packaging">
<h3>Modularity - the future, building, and packaging</h3>
<p>This session was a great introduction to how things are going to fit together,
we dove pretty far into the weeds with some of the tech behind how <a class="reference external" href="https://docs.pagure.org/modularity/">Fedora
Modularity</a> fits together and ultimately if anyone is interested in digging in
there, the official docs really are quite good. I would recommend anyone
interesting in learning about the technical details about modularity to give it
a look.</p>
</div>
<div class="section" id="let-s-create-a-module">
<h3>Let's Create a Module</h3>
<p>In this workshop, put on my <a class="reference external" href="https://twitter.com/tomastomec">Tomas Tomecek</a>, we learned how to create a module
and feed it into the Fedora Module Build System (MBS). This was an interesting
exercise to go through because it helped define the relationship between rpms,
modules, non-rpm content, and the metadata that ties all of this together with
disjoint modules to create variable lifecycles between different sets of
software that come together as a module. I was unable to find the slides from
the talk, but our presenter recently <a class="reference external" href="https://twitter.com/TomasTomec/status/909810676281085953">tweeted</a> that a colleague of
his wrote a blog post he thinks is even better than the workshop, so maybe give
that a go. :)</p>
</div>
<div class="section" id="continuous-integration-and-deliver-of-our-operating-system">
<h3>Continuous Integration and Deliver of our Operating System</h3>
<p>The topic of Continuous Integration (CI) is one that's extremely common in
software development teams and it is not a new concept. But what if we were
going to take that concept and apply it to the entire Fedora distribution? Now
that might be something special and could really pay off for the user and
contributor base therein. This is exactly what the <a class="reference external" href="https://fedoraproject.org/wiki/CI">Fedora CI</a> initiative aims
to do.</p>
<p>What's most interesting to me about this presentation was that it went through
an exercise of thought and then showed specifically how a small team was able to
accomplish more work than almost anyone though they could because they treat the
bot they've written to integrate their CI pipeline with various other services
as a member of the team. They taught themselves to not think of it as a system
but as a team member they could offload work to, the work that nobody else
wanted to do.</p>
<p>I look forward to seeing a lot of this work come to fruition.</p>
</div>
</div>
<div class="section" id="day-4">
<h2>Day 4</h2>
<p>The last day of the conference we had a "Show and Tell" where various members
from different aspects of the projects got together and worked on things. The
rest of the day was a hackathon for those who were still in-town and not
traveling back home mid-day.</p>
<p>As always, Flock was a blast and I can't wait for Flock 2018!</p>
<p>Until next time...</p>
</div></div>Fedora Flock 2017https://maxamillion.sh/blog/flock-to-fedora-2017/Mon, 18 Sep 2017 16:48:20 GMTFedora Infrastructure Hackathon 2017https://maxamillion.sh/blog/fedora-infrastructure-hackathon-2017/Adam John Miller<div><div class="section" id="fedora-infrastructure-hackathon-2017">
<h2>Fedora Infrastructure Hackathon 2017</h2>
<p>Last week, hot on the heels of my trip to Boston for <a class="reference external" href="https://www.redhat.com/en/summit/2017">Red Hat Summit</a>,
I attended the 2017 Edition <a class="reference external" href="https://fedoraproject.org/wiki/CI_and_Infrastructure_Hackathon_2017">Fedora Infrastructure Hackathon</a>. The primary
goal of the Hackathon was to make a lot of progress in a relatively short amount
of time on defining <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure">Fedora Infrastructure</a> requirements necessary to support
upcoming <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Project_Wiki">Fedora Project</a> objectives, as defined by the <a class="reference external" href="https://fedoraproject.org/wiki/Council">Council</a> and
<a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Engineering_Steering_Committee">FESCo</a>, and doing work to satisfy those requirements. In some cases this was
simply "define policies around how this should work with the infrastructure",
but in most it scenarios is meant digging in and doing work such as patching
multiple code bases to support new AuthN/AuthZ protocols and providers,
deploying net-new infrastructure services, or even bringing up services in a new
datacenter hosted by a fellow Open Source Community Project in order to leverage
newly donated hardware. We'll cover all of that in the recap of the journey
below.</p>
<p>It all started Monday 2017-05-08, we were hosted graciously in the <a class="reference external" href="https://en.wikipedia.org/wiki/Red_Hat_Tower">Red Hat
Tower</a>, which as a proud Red Hatter and overall Red Hat fanboi it was extremely
cool to get to spend a week there, and worked as hard as we could to get a lot
done in about 4.5 days (Monday-Friday, but most people had to travel home on
Friday evening). Representative members of various aspects of the <a class="reference external" href="http://fedoracommunity.org/northam">Fedora
Community</a> were in attendance, the obvious <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure">Fedora Infrastructure</a> Team was
well represented, but also <a class="reference external" href="https://fedoraproject.org/wiki/QA">Fedora QA</a>, <a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a>, <a class="reference external" href="https://fedoraproject.org/wiki/Category:FedoraAtomicCI">Fedora Atomic
CI</a>, <a class="reference external" href="https://centos.org/">CentOS</a>, and <a class="reference external" href="https://pagure.io/releng">Fedora RelEng</a>.</p>
<p>Things kicked off by defining an agenda, all notes held in a <a class="reference external" href="https://fedoraproject.org/wiki/Gobby">Gobby Doc</a>. We
effectively came up with a loose fitting outline of the following:</p>
<ul>
<li><p class="first">Monday:</p>
<blockquote>
<ul class="simple">
<li>AuthN / AuthZ - FAS, FreeIPA, CommunityIPA, Ipsilon, CentOS Infra overlap</li>
<li>Modularity</li>
<li>CI</li>
</ul>
</blockquote>
</li>
<li><p class="first">Tuesday:</p>
<blockquote>
<ul class="simple">
<li>OpenShift in the AM, CI in the PM</li>
</ul>
</blockquote>
</li>
<li><p class="first">Wed/Thu:</p>
<blockquote>
<ul class="simple">
<li>Hack sessions on OpenShift and CI (break out into teams)</li>
</ul>
</blockquote>
</li>
<li><p class="first">Friday:</p>
<blockquote>
<ul class="simple">
<li>Breakout hack sessions and wrap up</li>
</ul>
</blockquote>
</li>
</ul>
<div class="section" id="authn-authz">
<h3>AuthN/AuthZ</h3>
<p>Things started off with <a class="reference external" href="https://fedoraproject.org/wiki/User:Puiterwijk">Patrick</a> explaining many aspects of various
AuthN/AuthZ protocols and technologies that are currently in use within the
Fedora Infrastructure as well as migration plans to bring systems and services
using older technology in line with newer technologies. There were discussions
focused around <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/Authentication">Fedora Authentication</a>, <a class="reference external" href="https://oauth.net/2/">OAuth2</a>, <a class="reference external" href="https://web.mit.edu/kerberos/">Kerberos</a>, <a class="reference external" href="https://openid.net">OpenID</a>,
<a class="reference external" href="https://openid.net/connect/">OpenID Connect</a>, <a class="reference external" href="http://www.freeipa.org">FreeIPA</a>, <a class="reference external" href="https://fedoraproject.org/wiki/Account_System">FAS2</a>, and how different <a class="reference external" href="https://apps.fedoraproject.org/">Fedora Apps</a> are
using different combinations of these technologies. From there and
identification of what apps need to be ported away from older technologies was
done along with work assigned to people in the room with the intent of
accomplishing these tasks over the next few days (and beyond, if necessary).</p>
</div>
<div class="section" id="bi-directional-replication">
<h3>Bi-Directional Replication</h3>
<p>Something that's come up a lot in recent history within the Fedora
Infrastructure is database high availability. The Fedora Infrastructure Team
already maintains a high level of best practices around database administration
but being able to do maintenance with extremely minimal or zero downtime to the
database servers is an extremely nice-to-have. Therefore a section of time was
dedicated to working through an approach to roll out <a class="reference external" href="http://bdr-project.org/docs/stable/index.html">Postgres BDR</a> for certain
applications in the Fedora Infrastructure.</p>
</div>
<div class="section" id="app-porting-and-libraries">
<h3>App Porting and Libraries</h3>
<p>The <a class="reference external" href="https://apps.fedoraproject.org/">Fedora Apps</a> developers in the room had a some targeted breakout session
focusing on porting old Fedora web applications away from outdated or no longer
recommended libraries and frameworks in order to bring more uniformity to how
the applications are developed and maintained, but also make them easier to
support by reigning in the spread of tooling required by the group to have to
follow along with upstream developments.</p>
</div>
<div class="section" id="modularity">
<h3>Modularity</h3>
<p>Members from the <a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a> Team presented on the <a class="reference external" href="https://fedoraproject.org/wiki/Changes/ModuleBuildService">Module Build
Service</a> and <a class="reference external" href="https://fedoraproject.org/wiki/Changes/ArbitraryBranching">Arbitrary Branching</a> concept in order to discuss integration
points into the Fedora Infrastructure's existing systems. This was a lot of
discussion that resulted in documentation of processes, identification of issues
to resolve, and establishing a realistic timeline for a phased approach to
accomplish these tasks.</p>
</div>
<div class="section" id="openshift">
<h3>OpenShift</h3>
<p>The Fedora Infrastructure Team is always trying to make the most out of the
hardware that it has, and as such has been evaluating <a class="reference external" href="https://www.opencontainers.org/">container</a> technologies
for use in the Infrastructure. Recently an evaluation of <a class="reference external" href="https://www.openshift.com/">OpenShift</a> began and
the decision was made to move forward with using it for applications within
Fedora. During this session we worked through a <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure/OpenShift">series of questions about
OpenShift</a> as they would pertain to a production deployment and had the good
fortune of being able to ask for best practices and general recommendations from
the <a class="reference external" href="https://www.openshift.com/features/index.html">OpenShift Online</a> Ops Team. We then formulated a plan to have an OpenShift
Environment up and running fully automated with Ansible Playbooks (based on
<a class="reference external" href="https://github.com/openshift/openshift-ansible">openshift-ansible</a> and <a class="reference external" href="https://pagure.io/ansible-ansible-openshift-ansible/">ansible-ansible-openshift-ansible</a>) in stage by the
end of the week. We were successful in this endeavor but are waiting on
a certificate for new domain names.</p>
</div>
<div class="section" id="continuous-integration">
<h3>Continuous Integration</h3>
<p>Next up we hear from a group within Fedora who are taking on the massive task of
attempting to perform Continuous Integration on the entire Fedora Operating
System. Alright, maybe not the <strong>entire</strong> set of packages but they are targeting
an installable Fedora Operating System via <a class="reference external" href="https://getfedora.org/en/atomic/">Fedora Atomic Host</a>. For more
information, check out the <a class="reference external" href="https://fedoraproject.org/wiki/Category:FedoraAtomicCI">Fedora Atomic CI</a> wiki page.</p>
<p>During this working session we were joined by our good friends from the
<a class="reference external" href="https://centos.org/">CentOS</a> team because they were graciously offering up hardware resources in
their very own <a class="reference external" href="https://ci.centos.org/">CentOS CI</a> environment. There was a lot of work done here in
the initial days discussion around how to tie the two infrastructures together
as well as bridge things like account systems and grant appropriate permissions
throughout. Action items were tackled as the week continued.</p>
</div>
</div>
<div class="section" id="wrap-up">
<h2>Wrap Up</h2>
<p>We met at the end of the week for a short time before most folks departed to
travel home and tallied up the score. All in all we accomplished all but one of
the objectives we set out for the hack days and the one that wasn't had
progress made on it but it was too large a piece of work to accomplish in just
a couple days and is still being worked on at this time. There's all sorts of
great info on the <a class="reference external" href="https://fedoraproject.org/wiki/CI_and_Infrastructure_Hackathon_2017">Fedora Infrastructure Hackathon</a> wiki page for anyone who's
interested in digging into the details (also, check the
<tt class="docutils literal"><span class="pre">CI-Infrastructure-Hackathon-2017</span></tt> <a class="reference external" href="https://fedoraproject.org/wiki/Gobby">Gobby Doc</a> for a pay-by-play).</p>
<p>It was absolutely fantastic to get so many members of the Fedora Community into
one room and hack on things. It's also great just to get to spend time hanging
out with everyone since we rarely see one another in person. I'm even more
excited about <a class="reference external" href="https://flocktofedora.org/">Flock 2017</a> than I was before!</p>
<p>Until next time...</p>
</div></div>Fedora Infrastructure Hackathon 2017https://maxamillion.sh/blog/fedora-infrastructure-hackathon-2017/Fri, 19 May 2017 02:36:00 GMTRed Hat Summit 2017https://maxamillion.sh/blog/redhat-summit-2017/Adam John Miller<div><div class="section" id="red-hat-summit-2017">
<h2>Red Hat Summit 2017</h2>
<p><a class="reference external" href="https://www.redhat.com/en/summit/2017">Red Hat Summit</a> 2017 concluded two weeks ago but I am just now getting an
opportunity to sit down and write about my experience there. I've been a road
warrier lately and was only home for a day and a half and then off to the
<a class="reference external" href="https://fedoraproject.org/wiki/CI_and_Infrastructure_Hackathon_2017">Fedora Infrastructure Hackathon</a> (but more on that later), then once I got
home "for good" I've been attempting to play a game of catch-up.</p>
<p>So here it goes...</p>
<p><a class="reference external" href="https://www.redhat.com/en/summit/2017">Red Hat Summit</a> is without doubt one of my favorite events of the year because
I am an extremely proud Red Hatter and I love that we have such an opportunity
to show off the latest and greatest that we have to offer the community, our
customers, and the world at large. This year was bigger and better than ever, we
were in a new (larger) venue at the <a class="reference external" href="https://massconvention.com/about-us/contact-us/boston-convention-exhibition-center">BCEC</a>, broke our previous attendance
record, broke our sponsorship record, and had more sessions and labs than ever
before as well. Something else I loved, as it's near and dear to my heart, is
that the Community Central portion of the Expo hall was front and center in the
main "center stage" so the likes of <a class="reference external" href="https://getfedora.org/">Fedora</a>, <a class="reference external" href="https://centos.org/">CentOS</a>, <a class="reference external" href="https://github.com/ansible/ansible">Ansible</a>,
<a class="reference external" href="https://gluster.org/">Gluster</a>, <a class="reference external" href="http://ceph.com/">Ceph</a>, <a class="reference external" href="https://www.theforeman.org/">Foreman</a>, <a class="reference external" href="http://manageiq.org/">ManageIQ</a>, <a class="reference external" href="https://www.ovirt.org/">oVirt</a>, <a class="reference external" href="https://www.projectatomic.io/">Project Atomic</a>,
<a class="reference external" href="https://www.openshift.org">OpenShift Origin</a>, and many others had an opportunity to share the
spotlight with all the pillars of the <a class="reference external" href="https://www.redhat.com/en/technologies">Red Hat Technology Portfolio</a>.
Another favorite of mine was the portion of the Expo Hall dedicated to customer
feedback of current and next-gen still-in-development products as this was
certainly the best outlet we could possibly ask for to get real focused feedback
from those who spent large portions of their lives with our software.</p>
<p>This year was a bit different for me, I'll often spend a lot of time working the
<a class="reference external" href="http://fedoracommunity.org/northam">Fedora Community</a> booth in the Expo Hall during Red Hat Summit; which is
something I genuinely enjoy doing because it gives me the opportunity to talk to
a lot of people about all the things that we mutually find interesting about
the innovations going on within the platform. However, I didn't have as much
time as usual to dedicate to that as I was an extremely busy bee this year as
I found myself with <strong>five</strong> speaking slots. I created a lab around RPM
Packaging that is titled, "From Source to RPM in 120 Minutes" which is
effectively a "downstream" instructor-led lab based version of the <a class="reference external" href="https://rpm-guide.readthedocs.io/en/latest/">RPM
Packaging Guide</a> that I wrote. I've had a lot of fun doing it in the past and
hope to get to continue doing it at future Red Hat Summits. My lab ran each of
the three days of Summit and as you may have noticed from the title, those are
two hours each session. Then I had two other speaking engagements. First, a
Fedora "Birds of a Feather" Session where I lead the conversation with other
members of the Fedora Project around current developments, where the project
was going, and sparked conversations for feedback from the users and various
community members in the room about what aspects of The Project are most
important to them. Finally, I co-presented a great talk with an extremely kind
human being by the name of Nicolas FANJEAU who works for <a class="reference external" href="http://www.airbus.com/">Airbus</a>, the session
was called "Ansible All the Things" where I talked about a wide array of things
you can accomplish with Ansible from the traditional to the unorthadox and then
Nicolas gave a real world example of how he and his team at Airbus are actually
doing a lot of those things (including wiring up <a class="reference external" href="https://www.ansible.com/tower">Ansible Tower</a> to <a class="reference external" href="https://www.servicenow.com/">Service
Now</a>) to improve efficiency within their Enterprise and actually deliver
aircraft faster as a side effect. It was great fun and I hope to get a chance to
work with Nicolas again in the future.</p>
<p>From there I had multiple customer engagements where we discussed their use of
Red Hat Container Technologies such as <a class="reference external" href="https://www.openshift.com/container-platform/">OpenShift Container Platform</a> and <a class="reference external" href="https://www.redhat.com/en/resources/red-hat-enterprise-linux-atomic-host">Red
Hat Enterprise Linux Atomic Host</a> are solving real world business needs and
helping to advise on best practices around those technologies. These kind of
interactions are again something I really enjoy getting an opportunity to do
because it gives me a good perspective on how people are putting the technology
to use that I have the good fortune as a member of the <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Engineering">Fedora Engineering
Team</a> to work on and work with upstream.</p>
<p>There were also many many wonderful Red Hat Announcements, so many I've
forgotten at least half of them. I highly recommend you checkout the <a class="reference external" href="https://www.redhat.com/en/summit/2017">website</a>
to find out more if you're interested.</p>
</div>
<div class="section" id="closing-time">
<h2>Closing time</h2>
<p>All in all I was exhausted by the end of the week and looking forward to getting
back to a more normal level of chaos ... except I still had that hackathon to
get to. ;)</p>
<p>Until next time...</p>
</div></div>Red Hat Summit 2017https://maxamillion.sh/blog/redhat-summit-2017/Thu, 18 May 2017 04:55:15 GMTSCaLE 15xhttps://maxamillion.sh/blog/scale-15x/Adam John Miller<div><div class="section" id="scale-15x">
<h2>SCaLE 15x</h2>
<p>This year was the 15th Annual <a class="reference external" href="https://www.socallinuxexpo.org">SCaLE</a> (Southern California Linux Expo) event
where I was fortunate enough to both attend and speak at. While this is the 15th
year of the, now very well known, conference; it was in fact my first time to
attend. I spent majority of my time floating between working the <a class="reference external" href="https://getfedora.org/">Fedora</a>, <a class="reference external" href="https://www.redhat.com">Red
Hat</a>, and <a class="reference external" href="https://www.openshift.com/">OpenShift</a> booths there in the Expo Hall. I had originally planned
to spend more time at the <a class="reference external" href="https://getfedora.org/">Fedora</a> booth than I did, but the <a class="reference external" href="https://www.openshift.com/">OpenShift</a> crew
ended up short staffed because of unexpected travel issues of some of their team
members so I filled in the best I could. As expected the interest in containers
is at full tilt and people were very interested to see what is going on with
<a class="reference external" href="https://www.openshift.com/">OpenShift</a> as it is a <a class="reference external" href="https://kubernetes.io/">Kubernetes</a> distribution with advanced features beyond
core <a class="reference external" href="https://kubernetes.io/">Kubernetes</a>, and Kubernetes is easily the <a class="reference external" href="https://cdn.thenewstack.io/media/2016/06/Chart_Top-Orchestration-Products-Based-on-Expected-Usage-Within-Next-Year.png">most popular container
orchestration platform</a> around right now. The <a class="reference external" href="https://www.projectatomic.io/">Project Atomic</a> Community
manager, <a class="reference external" href="https://twitter.com/fuzzychef">Josh Berkus</a> was kind enough to lend his Sub-Atomic Cluster
(Described in this two-part blog series: <a class="reference external" href="https://www.projectatomic.io/blog/2016/06/micro-cluster-part-1/">Part 1</a>, <cite>Part 2</cite>) to the booth
efforts and that made for some very engaging demos of what OpenShift can
accomplish (even though the conference network left something to be desired, but
this is nothing new). Over all I think we were able to provide event goers
a solid booth destination in their Expo Hall travels.</p>
<p>Every conference I go to, I notice there's a specific "crowd profile" in terms
of what motivates the participants to attend the conference, what their
interests are, etc. Often times these are going to be things like hobbyist,
enthusiast, professional/commercial, developer, sysadmin/ops, DevOps
practitioners, and potentially (and often) some mixture of those categories.
This particular conference was a really solid representation of community
focused people and hobbyists which is always a cool crowd because everyone is
genuinely interested and enthusiastic about the technologies being represented
there. However, from a personal note, something I found rather interesting was
the number of people who came by the <a class="reference external" href="https://www.redhat.com">Red Hat</a> booth that had never heard of
the company. This isn't entirely a new phenomenon depending on the "crowd
profile" but it's definitely the first time I've seen such a proliferation of it
at a specifically <strong>Linux</strong> conference. This is a weird change of pace for me as
for the longest time, Red Hat was a name synonymous with Linux. However, as the
company has focused more on the Enterprise with <a class="reference external" href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux">RHEL</a>, the community focused
<a class="reference external" href="https://getfedora.org/">Fedora</a> and <a class="reference external" href="https://centos.org/">CentOS</a> have filled in the void for the community user base and
this was a primarily community focused event. Beyond that though, the number of
people who had no idea that <a class="reference external" href="https://www.redhat.com">Red Hat</a> is a major sponsor of and contributor to
<a class="reference external" href="https://getfedora.org/">Fedora</a> was surprising to me.</p>
<p>There are two primary reasons I think lead this situation. First, Linux is so
high quality and pervasive these days that the percentage of people who used to
get off in the weeds early and often with technical issues is fewer and far
between. These systems level technology dives would quickly lead to someone
becoming well versed in topics of their distribution and the reality of
relationships between different entities (such as <a class="reference external" href="https://www.redhat.com">Red Hat</a> and <a class="reference external" href="https://getfedora.org/">Fedora</a>)
within the scope of the community. This is no longer the case, Linux is so easy
to use and so commonplace that most people don't need (and in many cases don't
want) to dig into the nuts and bolts to the point of having a fundamental
understanding about the resulting project that produces the Distribution they
are using. I think this is great in a lot of ways, I think it's a standing
ovation to the fact that Linux has "made it" and that we collectively in the
upstream communities are providing quality software that attracts users of all
kinds, technical or otherwise. The Second reason I think lead to this is that it
poses an interesting problem in the world of marketing for both <a class="reference external" href="https://getfedora.org/">Fedora</a> as an
upstream and <a class="reference external" href="https://www.redhat.com">Red Hat</a> as a company to properly communicate to users and
potential users things that are interesting to them since Linux itself isn't
inherently interesting to as wide of an audience as it once was due to popular
tech trends shifting away from the system itself but instead to things you can
run on top of the system (and recently in containers). Now, <a class="reference external" href="https://www.redhat.com">Red Hat</a> has done
a great job of making that message clear to it's customer base with material
that covers the entire <a class="reference external" href="https://www.redhat.com/en/technologies">Red Hat Technology Portfolio</a>. I also think that
<a class="reference external" href="https://getfedora.org/">Fedora</a> in recent years has been doing a really good job of showing off
various features of each Fedora Edition: <a class="reference external" href="https://getfedora.org/en/workstation/">Workstation</a>, <a class="reference external" href="https://getfedora.org/en/server/">Server</a>, <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic</a>
which highlights features beyond just the core distribution that are tailor made
to specific users and potential users. We just need to continue to show up to
user groups, MeetUps, and conferences with good representation to help spread
the word. On that note, a massive thanks to the amazing <a class="reference external" href="https://fedoraproject.org/wiki/Ambassadors">Fedora Ambassadors</a>.
I'd also like to find a good way to get the message out to more users of various
online and programming communities, something similar to <a class="reference external" href="https://fedoralovespython.org/">Fedora Loves Python</a>
but for various <a class="reference external" href="https://fedoraproject.org/wiki/Category:SIGs">Special Interest Groups</a> within Fedora. Just food for thought.</p>
<p>Over all I think we're doing good work and doing a good job spreading the word,
it's just interesting to see how trends in technology change, how the landscape
changes, and trying to identify how we as a community need to adapt. Kudos to
the whole <a class="reference external" href="http://fedoracommunity.org/northam">Fedora Community</a>!</p>
<p>I also had a chance to make some new friends from <a class="reference external" href="https://www.gnome.org/">GNOME</a>, <a class="reference external" href="https://endlessos.com/">EndlessOS</a>,
<a class="reference external" href="https://www.opensuse.org/">OpenSUSE</a>, <a class="reference external" href="https://www.debian.org/">debian</a>, <a class="reference external" href="https://opensource.com/">opensource.com</a> and <a class="reference external" href="https://linuxacademy.com/">LinuxAcademy</a> as a side effect
of spending so much time in the Expo Hall. In typical Linux Community fashion,
everyone was extremely friendly and I had a great time. :)</p>
<p>I spent most of my time working the booths, but I was able to make it to
a couple sessions while the Expo Hall was closed. I've taken some notes on those
below.</p>
<div class="section" id="kubernetes-101">
<h3>Kubernetes 101</h3>
<p><a class="reference external" href="https://www.projectatomic.io/">Project Atomic</a>'s very own <a class="reference external" href="https://twitter.com/fuzzychef">Josh Berkus</a> did a wonderful overview of the
<a class="reference external" href="https://kubernetes.io/">Kubernetes</a> architecture, walking the audience both through the various
components of <a class="reference external" href="https://kubernetes.io/">Kubernetes</a> as well as how you would take a traditional
application that would be deployed as a "monolith" all on a since physical or
virtual machine with only vertical scaling into a multi-node orchestrated
deployment of containerized services.</p>
<p>This talk was accompanied by multiple live demos using <a class="reference external" href="https://github.com/kubernetes/minikube">minikube</a> (with a tip
of the hat to <a class="reference external" href="https://www.openshift.org/minishift/">minishift</a>) in order to show how the concepts presented during
the talk map to real world deployment and configuration within the cluster.</p>
</div>
<div class="section" id="patterns-and-anti-patterns-in-docker-image-lifecycle">
<h3>Patterns and Anti-Patterns in Docker Image Lifecycle</h3>
<p>Speaker from <a class="reference external" href="https://www.jfrog.com/">JFrog</a> talking about <a class="reference external" href="https://github.com/docker/docker/">Docker</a> image lifecycle management, using
<a class="reference external" href="https://www.jfrog.com/artifactory/">Artifactory</a> as an example component.</p>
<p>The presentation begins with a poll of the room about who's using Docker in dev
vs production. A primary point of concern is the concept of "trust" to know if
there's enough integrity into the process and the images that you pull down to
build your application or CI pipeline on top of.</p>
<p>"There is no platform without ecosystem" - Solomon Hykes (CEO Docker Inc.)</p>
<p>Do we have an existing pattern? Do we need to adapt it? CI/CD pipelines? (These
are old news, this has been done for years)</p>
<p>The speaker mentioned a concept call the "The Promotion Pyramid" which could
basically be turned on it's side and the layers of the pyramid by changed to
boxes with arrows between them and it looks just like a production pipeline
diagram.</p>
<p>Onward to Dockerfiles! The Dockerfile is extremely powerful, the problem is that
it's a hammer and everything now looks like nails. Fast and cheap builds are not
the way to go.</p>
<pre class="literal-block">
FROM fedora
RUN dnf install -y software-properties-common python
RUN dnf install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]
</pre>
<p>The problem with this is that there's no versioning on anything so each build
may or may not produce the same thing because each <tt class="docutils literal">dnf</tt> command could
install a different version of each component. You can use a SHA sum to refer to
the image version but these are not human readable so it's kind of pointless or
maintain your own base image.</p>
<p>Pattern to follow to fix this is to promote immutable binary files (<a class="reference external" href="https://martinfowler.com/bliki/ImmutableServer.html">Martin
Fowler Immutable Server</a>).</p>
<p>The promotion patterns between registries and repos it basically the only real
way because the only way to "version" docker images is with tags and the tag has
no concept of version numbers and you can only run one registry per host unless
you use VirtualHosts and many daemons mapped to ports.</p>
<p>As a side note, the "promotion pipeline" is effectively the exact structure that
<a class="reference external" href="https://docs.pagure.org/releng/layered_image_build_service.html">Fedora Containers</a> follow.</p>
</div>
<div class="section" id="fedora-work-session-and-meetup">
<h3>Fedora Work Session and Meetup</h3>
<p>Open session to:</p>
<ul class="simple">
<li>Work on development</li>
<li>Say Hello</li>
<li>Meet others</li>
<li>Ask questions about challenges you're facing</li>
<li>Share knowledge</li>
<li>Find out how to help</li>
</ul>
<p>This was a really fun grass roots "Birds of a Feather" style session where
everyone in the room made a big circle, went around and introduced themselves,
and briefly talked about what they are using <a class="reference external" href="https://getfedora.org/">Fedora</a> for. This spanned from
Workstations and Cloud all the way to use with ARM boards in small embedded
devices that are deployed out in the field. I had a great time learning what
everyone was up to with Fedora and I want to thank <a class="reference external" href="https://fedoraproject.org/wiki/User:Lajuggler">Perry Rivera</a> for setting
it up and hosting. Perry was also kind enough to be taking notes and feedback
based on everything that was discussed.</p>
</div>
</div>
<div class="section" id="closing-time">
<h2>Closing time</h2>
<p>I had a wonderful time (aside from not feeling 100% - I came down with a sinus
infection the day before flying out to SCaLE), the event was fantastic
and I really hope I get the opportunity to go back next year.</p>
<p>Until next time...</p>
</div></div>SCaLE 15xhttps://maxamillion.sh/blog/scale-15x/Wed, 08 Mar 2017 21:25:15 GMTDevConf.cz 2017https://maxamillion.sh/blog/devconfcz-2017/Adam John Miller<div><div class="section" id="devconf-cz-2017">
<h2>DevConf.cz 2017</h2>
<p>I was fortunate enough to attend <cite>DevConf.cz 2017</cite> this year, it's honestly one
of my favorite events of the year. Many people from the various upstream
communities I work in or closely with come to discuss and present various
technologies and it's a lot of fun.</p>
<p>This year I tried very hard to attend as many presentations as possible as well
as catch up with other community contributors in "The Hallway Track" because
I have in the past been bad at balancing between the official speaker track and
The Hallway Track. I like to think I did well. :)</p>
<p>Some of the big themes of the event were Continuous Integration, Container
Technologies, <a class="reference internal" href="https://maxamillion.sh/blog/devconfcz-2017/#project-atomic">Project Atomic</a> family of technologies, <a class="reference external" href="https://github.com/ansible/ansible">Ansible</a>, and
Cross-Community and Cross-Distro collaboration (making more of an effort to not
re-invent the wheel). Also as a point of reference, sub topics of these include
<a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a>, <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic Host</a>, and <a class="reference external" href="https://communityblog.fedoraproject.org/factory-2-0-mean-modularity/">Factory 2.0</a>.</p>
<p>This event was kind enough to post video recordings of all the Speakers and
I highly recommend those interested in any of these topic spaces to check out
the lineup, it was quite good. <a class="reference external" href="https://www.youtube.com/channel/UCmYAQDZIQGm_kPvemBc_qwg">Speaker Recordings here</a>.</p>
<p>Below are quick notes about the sessions I had the opportunity to attend
including a recap of my experience with "The Hallway Track" at the end.</p>
</div>
<div class="section" id="devconf-cz-day-1">
<h2>DevConf.cz Day 1</h2>
<div class="section" id="keynote-and-welcome-to-devconf-cz-2017">
<h3>Keynote and Welcome to DevConf.cz 2017</h3>
<p>DevConf started off with a quick welcome message about the Conference and a
short history including fun facts about how much it's grown in recent years.</p>
<p>After the intro and welcome, it was off to the races with the Day 1 Keynote
that discussed the concept of how "software is eating the world" and how the
reality of more and more things moving to software is feeding into the Hybrid
Cloud concept. In the modern landscape, this solution space can be catered to
using only open source software by providing a platform to make infrastructure
consistent and stable. At the previous DevConf there was a Keynote that spoke
about full end to end Hybrid Cloud as an abstract concept that we as an open
source technology ecosystem aimed to accomplish based on current (at the time)
market trends. The bulk of this talk was a series of presenters performing live
demos, each one effectively built on top of the previous in order to show how
the abstract goal presented in the previous year's Keynote has now become a
reality.</p>
<p>The open technologies that made their debut on-stage were:</p>
<ul class="simple">
<li><a class="reference external" href="https://www.ovirt.org/">oVirt</a> (<a class="reference external" href="http://www.linux-kvm.org/page/Main%5FPage">KVM</a> and <a class="reference external" href="https://libvirt.org/">libvirt</a> under the hood)</li>
<li><a class="reference external" href="https://www.openstack.org/">OpenStack</a></li>
<li><a class="reference external" href="https://www.theforeman.org/">The Foreman</a></li>
<li><a class="reference external" href="http://pulpproject.org/">Pulp</a></li>
<li><a class="reference external" href="http://www.candlepinproject.org/">Candlepin</a></li>
<li><a class="reference external" href="http://www.freeipa.org/page/Main_Page">FreeIPA</a></li>
<li><a class="reference external" href="http://manageiq.org/">ManageIQ</a></li>
<li><a class="reference external" href="https://www.openshift.org/">OpenShift</a></li>
<li><a class="reference external" href="http://wildfly.org/">WildFly</a></li>
</ul>
<p><a class="reference external" href="https://www.youtube.com/watch?v=gDhqCE7Gcl4">Welcome to DevConf.cz 2017 and Day 1 Keynote video</a></p>
</div>
<div class="section" id="generational-core-the-future-of-fedora">
<h3>Generational Core - The Future of Fedora</h3>
<p>Next up was a session dedicated to Fedora Generational Core, which is a core
component of <a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a> (or it was, it's more or less changed in name
but the concept remains the same). Generational Core is now known as Base
Runtime, these were originally different concepts targeting different use cases
but have merged over time. The Base Runtime is what defines "the line" between
Operating System and the Application. The main goal is to have an environment
that can be the building block for all other modules and content which has
a small package list and relatively low maintenance burden but can remain stable
and of high quality. The Base Runtime is the first real module as part of
<a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a> that will be shipped.</p>
<p>The bulk of the discussion was off in the weeds talking about the journey to
trim down the dependency chain. There was a graphic (in the video link below)
that shows the incredible web of dependencies for even some of the most
fundamentally required packages to have a functional base environment. It was
a great tour of how much work is required to make this stuff happen and
highlights that <a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a> isn't just new metadata on top of groups of
RPMs.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=gDhqCE7Gcl4">Generational Core - The Future of Fedora video</a></p>
</div>
<div class="section" id="atomic-cluster-in-10-minutes">
<h3>Atomic Cluster in 10 Minutes</h3>
<p>This was a quick 30-minute session that briefly covered some introductory
material about the <a class="reference internal" href="https://maxamillion.sh/blog/devconfcz-2017/#project-atomic">Project Atomic</a> family of technologies and then dove right
into a live demo using <a class="reference external" href="https://github.com/ostreedev/ostree">ostree</a> layering on top of the base <a class="reference external" href="https://github.com/projectatomic/rpm-ostree">rpm-ostree</a> that
comes out of the box with <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic Host</a>. This functionality comes from either
<tt class="docutils literal"><span class="pre">rpm-ostree</span> <span class="pre">pkg-add</span></tt> or <tt class="docutils literal">atomic host install</tt>, both of which allow for
multiple runs of the command with different packages and they will just add to
your new ostree layer on top of the base. Also, that new added layer will be
rebased on any future updates to the underlying system.</p>
<p>The main headline of the demo was showing off the new upstream <tt class="docutils literal">kubectl init</tt>
command from <a class="reference external" href="https://kubernetes.io/">kubernetes</a>. This command allows for quick setup and testing to
be able to be up and running and kicking the tires in no time (well, 10 minutes
or less).</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=M5GP3KJ6Fcs">Atomic Cluster in 10 Minutes video</a></p>
</div>
<div class="section" id="atomic-system-containers">
<h3>Atomic System Containers</h3>
<p><a class="reference external" href="http://www.projectatomic.io/blog/2016/09/intro-to-system-containers/">Atomic System Containers</a> are a new interesting technology that would allow
a system administrator to augment the <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic Host</a> without having to modify
the base <a class="reference external" href="https://github.com/ostreedev/ostree">ostree</a>. This would allow for the ability to run even your container
engine daemon as a container itself. The goal is to provide services that
look/feel native to the system but are containers (Example: <tt class="docutils literal">atomic install foo
&amp;&amp; systemctl start foo.service</tt> such that <tt class="docutils literal">foo</tt> is a containerized service).
This is broken down into effectively services distributed as <a class="reference external" href="https://www.opencontainers.org/">OCI</a> images,
executed using <a class="reference external" href="http://runc.io/">runc</a>, using <a class="reference external" href="https://freedesktop.org/wiki/Software/systemd/">systemd</a> to manage lifecycle, <a class="reference external" href="https://github.com/ostreedev/ostree">ostree</a> for
storage management, <a class="reference external" href="https://github.com/projectatomic/skopeo">skopeo</a> for download/transport of images, and the
metadata/conf specification templates required for various integration points.
Also, any existing <a class="reference external" href="https://github.com/docker/docker/">Docker</a> image could be converted into a System Container by
simply adding the configuration templates.</p>
<p>You can demo some of this now on <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic Host</a> using the <tt class="docutils literal">atomic install
<span class="pre">--system</span> <span class="pre">[--name=NAME]</span> CONTAINER</tt> command.</p>
<p><cite>Atomic System Containers video
&lt;https://www.youtube.com/watch?v=yQZiRWWEPYo&gt;</cite></p>
</div>
<div class="section" id="building-and-shipping-your-own-atomic-host">
<h3>Building and Shipping your own Atomic Host</h3>
<p>This was a great workshop session put on by Jonathan Lebon that shows you how to
do exactly what the title says. Also provided was a great guide for the workshop
(linked below). I suggest anyone interested in the topic to check out both the
PDF and the video below.</p>
<p><a class="reference external" href="http://jlebon.com/devconf/slides.pdf">Workshop Guide PDF</a></p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=wxzZDdu1fyQ">Building and Shipping your own Atomic Host video</a></p>
</div>
<div class="section" id="audit-and-namespaces-looking-towards-containers">
<h3>Audit and Namespaces, Looking Towards Containers</h3>
<p>The main outline of this talk aimed to cover:</p>
<ul class="simple">
<li>Problems facing auditing and namespaces</li>
<li>What auditing means for containers</li>
<li>Possible solutions</li>
</ul>
<p>First up was an introduction to <a class="reference external" href="https://people.redhat.com/sgrubb/audit/">Audit</a> itself. Audit is a Linux kernel
auditing mechanism and daemon, it was originally released in 2004, it works with
<a class="reference external" href="https://selinuxproject.org/page/Main_Page">SELinux</a>, it is effectively a really high powered syslog that focuses on
kernel space. Audit is a reporting tool, it monitors and reports but does not
take action with exception of only one thing: you can configure it to kernel
panic a system in the event of action that <a class="reference external" href="https://people.redhat.com/sgrubb/audit/">Audit</a> is unable to log properly
(which apparently some high security places would prefer system outage than
anything occur without proper auditing). Next the discussion about kernel
namespaces and the various ones that exist, including their introduction to the
kernel on the timeline. From there a discussion of what containers are and the
misconceptions that have come from them. For starters, the kernel has no concept
of a container, it's a higher level abstraction that combines kernel features
together (namespaces, seccomp, cgroups, etc). The problem comes in that there is
only one audit daemon per system, this is because there is only one kernel per
system. This makes it difficult to map audit events to various namespaces (or
combinations of namespaces based on container storage or networking
configuration).</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=cdyRsz030zs">Audit and Namespaces, Looking Towards Containers video</a></p>
</div>
</div>
<div class="section" id="devconf-cz-day-2">
<h2>DevConf.cz Day 2</h2>
<div class="section" id="keynote-a-story-of-three-distros-better-together">
<h3>Keynote: A Story of Three Distros: Better Together</h3>
<p>On Day 2 of DevConf, I had the honor of being included as a participant in the
Keynote which was lead by Red Hat's VP of Engineering, Denise Dumas.</p>
<p>This keynote was a discussion about <a class="reference external" href="https://getfedora.org/">Fedora</a>, <a class="reference external" href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux">Red Hat Enterprise Linux</a>, and
<a class="reference external" href="https://centos.org/">CentOS</a> as the three distro lineage that makes up the Red Hat Family of
distros, our individual histories, how we came to co-exist as a cross-distro
collaborative effort around operating system technologies, and our plans to
collaborate even more in the future around container technologies and runtimes.
The discussion further extended the concept of a runtime from a standpoint of
being able to migrate them between distros as we decouple these from the
operating system in such cases as containers or <a class="reference external" href="https://www.softwarecollections.org/en/">Software Collections</a>.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=zrRzqEgmhNE">Day 2 Keynote video</a></p>
</div>
<div class="section" id="openshift-as-enterprise-kubernetes">
<h3>OpenShift as Enterprise Kubernetes</h3>
<p><a class="reference external" href="https://www.openshift.org/">OpenShift</a> is a <a class="reference external" href="https://kubernetes.io/">kubernetes</a> with many added developer features. One of it's
main goals is to be an Enterprise-grade on-premise <a class="reference external" href="https://kubernetes.io/">kubernetes</a> distribution
that provides everyone the power to run agile, reliable, distributed systems.
However, there are some misconceptions about containers and orchestration
systems such as <a class="reference external" href="https://www.openshift.org/">OpenShift</a>. First off, containers are not lightweight virtual
machines but instead are entry points for services in a distributed system that
can be the building blocks for applications. The idea here is to "write
applications, not containers"</p>
<p>The <a class="reference external" href="https://www.openshift.org/">OpenShift</a> Platform provides: service discovery, auto-scaling based on
usage metrics, persistent storage management, configuration and secrets
management, access to platform API from containers, self-deployable applications,
application life cycle management, and build pipelines. The Control Plane is
a set of components that all run on the master node(s): API Server, <a class="reference external" href="https://coreos.com/etcd/">etcd</a>, the
cluster scheduler, and controller manager.</p>
<p><a class="reference external" href="https://www.openshift.org/">OpenShift</a> is extremely powerful and a very cool platform that I urge anyone
interested in to watch the video below, it was an extremely well thought out and
thorough examination of the technology stack.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=Fo8gdR9_p9c">OpenShift as Enterprise Kubernetes video</a></p>
</div>
<div class="section" id="layered-image-build-service-lessons-learned">
<h3>Layered Image Build Service: Lessons Learned</h3>
<p>I'm proud to say that this presentation was one of mine, I was honored to be
able to speak at the event and I greatly enjoyed the experience.</p>
<p>This talk was about the <a class="reference external" href="https://docs.pagure.org/releng/layered_image_build_service.html">Fedora Layered Image Build Service</a> and lessons
learned along the way. I started off by covering the topics of the day and then
diving right in. I began with a fun tale of the time that the Fedora Project
Leader, <a class="reference external" href="https://mattdm.org/">Matt Miller</a> (no relation), said (paraphrased) "There's this open
source layered image build system I heard about, we should deploy one!" which
started my 18 month journey to a GA Layered Image Build Service release for
Fedora. I discussed progress along the way, pain points, highlighted and thanked
the various upstreams that kindly supported me along the the way and tipped my
hat to the power of <a class="reference external" href="https://www.openshift.org/">OpenShift</a>. The fundamental lesson learned in all of this
is that nothing in container land is set in stone, expect APIs to change, and
expect backwards incompatible changes to be the norm.</p>
<p>Then we defined containers quickly, had a history lesson of their lineage in
Linux space, covered the differences between a Layered Image and Base Image,
discussed <a class="reference external" href="https://www.openshift.org/">OpenShift</a> as a platform and use of it's build pipeline and API to
create custom tooling (such as with <a class="reference external" href="https://github.com/projectatomic/osbs-client">OSBS</a>).</p>
<p>Another topic of interest as it relates to this system is that of Release
Engineering, most noteably the cornerstones of making software that is:
Reproducible, Auditable, Definable, and Deliverable. This allows us to
understand some of the design decisions of the system.</p>
<p>Finally is the discussion of the Layered Image Build Service itself and the
Fedora specific implementation.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=5heEilbRu2c">Layered Image Build Service: Lessons Learned video</a></p>
</div>
<div class="section" id="fedora-two-week-atomic-host-progress-and-future">
<h3>Fedora Two-Week Atomic Host: Progress and Future</h3>
<p>This session was also one that I presented, it was about the Fedora <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic
Host</a> and the progress so far on the initiative as well as plans for the
future. First off I wanted to frame the discussion around Release Engineering and
how Fedora traditionally works. As with my previous session I defined Release
Engineering as creating a software pipeline that is Reproducible, Auditable,
Definable, and Deliverable. Also as a point of reference, a "Compose" is the
collection of primitive build artifacts (RPMs), the creation of deliverables
(ISOs, Virt Images, Cloud Images, OCI Based Image, etc), and combination of
these as a collection that is ready for testing and release release. From there
the discussion moved to how the Fedora Release Process works, it is time based
(roughly 6 months), there are Nightly <a class="reference external" href="https://fedoraproject.org/wiki/Releases/Rawhide">Rawhide</a> Composes, DistGit is branched
for each upcoming release which triggers Composes to begin for <a class="reference external" href="https://fedoraproject.org/wiki/Releases/Branched">Branched</a>, then
<a class="reference external" href="https://fedoraproject.org/wiki/Milestone_freezes">Milestone Freezes</a> (Alpha, Beta, RC, GA) go into affect with changes subject
to Fedora QE, the <a class="reference external" href="https://fedoraproject.org/wiki/Updates_Policy">Updates Criteria</a> is updated, and ultimately the GA Release.</p>
<p>However, the goals for the <a class="reference external" href="https://fedoraproject.org/wiki/Changes/Two_Week_Atomic">Atomic Host Two Week</a> were to move Fedora <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic
Host</a> out of the Fedora 6 month release cycle in order to allow it to iterate
more rapidly. We also wanted to create a fully automated pipeline for release,
integration, validation, and delivery. We've accomplished a lot on that journey
such as the creation of the new dedicated Atomic Host compose which allows
changes to be made that won't impact the rest of Fedora, automatic generation of
<a class="reference external" href="https://github.com/ostreedev/ostree">ostree</a> content based on <a class="reference external" href="https://bodhi.fedoraproject.org/">Bodhi</a> updates, <a class="reference external" href="https://apps.fedoraproject.org/autocloud/">AutoCloud</a> automated testing,
and a two-week release cycle that is mostly automated (just need to get
automated signing work done). In the future we hope to make even more progress
around the automated signing, a fully automated end-to-end release (using
<a class="reference external" href="https://github.com/maxamillion/loopabull">loopabull</a>), remove <a class="reference external" href="https://kubernetes.io/">kubernetes</a> from the base <a class="reference external" href="https://github.com/ostreedev/ostree">ostree</a> and move it into
a <a class="reference external" href="http://www.projectatomic.io/blog/2016/09/intro-to-system-containers/">system container</a> (which would make the Atomic Host image smaller and
provide more flexibility and choice of container orchestration runtimes for
users). We would also like to change the default configuration to use overlayfs
for container storage on the backend as well as add <a class="reference external" href="https://kubernetes.io/">kubernetes</a> and
<a class="reference external" href="https://www.openshift.org/">OpenShift</a>, single as well as multi-node, testing.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=B8xww8vTUqM">Fedora Two-Week Atomic Host: Progress and Future video</a></p>
</div>
</div>
<div class="section" id="devconf-cz-day-3">
<h2>DevConf.cz Day 3</h2>
<div class="section" id="keynote-history-of-containers">
<h3>Keynote: History of Containers</h3>
<p>The third day of the conference started with a really fun, entertaining, and
light-hearted exploration of the history of containers starting from Virtual
Machines that started in 1963, through the creation of the <a class="reference external" href="https://www.opencontainers.org/">OCI</a>, and all the
way up to a comical debate-style presentation about the future of containers and
wild ideas like microkernels.</p>
<p>One of my favorite components of this talk was the introduction of a new analogy
for what used to be known as "Pets vs Cattle" by <a class="reference external" href="https://twitter.com/TheSteve0">Steve Pousty</a>. This "Pets vs
Cattle" analogy is often used as a way to refer to computing resources that we
care about having a long life and substantial uptime (such as virtual machines)
vs computing resources that are ephemeral in nature (cloud instances and
containers). The presenter identified that not only is this analogy both
offensive to the billion+ people on the planet that consider cows as sacred
animals, but it is also incorrect in that ranchers don't care about their
cattle. The new proposed analogy is "Ants and Elephants" because ants are
hive-minded and often are ephemeral in nature and they horizontally scale to
accomplish a task (which is more or less what containers aim to do). However,
elephants on the other hand spend a lot of time taking care of members of their
herd, have grave sites where they pay respects to fallen members, and are large
animals that can perform large tasks on their own. Therefore, from now on I will
use the "Ants and Elephants" analogy and I highly encourage others to join me.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=w99SWWfad4M">Keynote: History of Containers video</a></p>
</div>
<div class="section" id="commissaire-exposing-system-management">
<h3>Commissaire: Exposing System Management</h3>
<p>The presentation on <a class="reference external" href="https://github.com/projectatomic/commissaire">Commissaire</a> introduced the project and it's goals of
exposing systems management over a simple JSON RPC base API that uses <a class="reference external" href="http://docs.celeryproject.org/projects/kombu/en/latest/introduction.html">kombu</a>
to enable AMQP and performs tasks on the back end with <a class="reference external" href="https://github.com/ansible/ansible">Ansible</a>. Also a point
of note in the presentation is that the commissaire developers are working
upstream with Ansible on the Python2 to Python3 transition as well. The over all
goal is to be able to easily perform maintenance tasks across a container
orchestration environment such as <a class="reference external" href="https://kubernetes.io/">kubernetes</a> or <a class="reference external" href="https://www.openshift.org/">OpenShift</a>.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=mqaSbx2YrOE">Commissaire: Exposing System Management video</a></p>
</div>
<div class="section" id="ansible-for-people-allergic-to-dockerfiles">
<h3>Ansible for people allergic to Dockerfiles</h3>
<div class="system-message">
<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">&lt;string&gt;</tt>, line 351)</p>
<p>Title underline too short.</p>
<pre class="literal-block">
Ansible for people allergic to Dockerfiles
-----------------------------------------
</pre>
</div>
<p>This session time slot was a short 30-minute one that introduced the concepts of
<a class="reference external" href="https://www.ansible.com/ansible-container">ansible-container</a>, how it aims to enforce best practices across ansible
modules such that they can easily be re-used for container and non-container
creation/deployments. There was also discussion of how <a class="reference external" href="https://www.ansible.com/ansible-container">ansible-container</a> can
deploy to orchestration engines automatically (<a class="reference external" href="https://kubernetes.io/">kubernetes</a> and <a class="reference external" href="https://www.openshift.org/">OpenShift</a>
currently supported).</p>
<p>NOTE: I was unable to find the video of this talk.</p>
</div>
<div class="section" id="linch-pin-hybrid-cloud-provisioning-with-ansible">
<h3>Linch-Pin: Hybrid Cloud Provisioning with Ansible</h3>
<p><a class="reference external" href="https://github.com/CentOS-PaaS-SIG/linch-pin">Linch-Pin</a> is a tool that is aimed to provide simple provisioning and
tear-down of environments in multiple on-premise and public cloud providers
using <a class="reference external" href="https://github.com/ansible/ansible">Ansible</a>. The utility currently supports short-lived testing
environments but targeting long-lived production scenarios in the future.</p>
<p>The guiding principle of Linch-Pin is that "Simple is Better" and it's a tool
that originated to replace a really complicated utility called "Provisioner 1.0"
(to the best of my knowledge, Provisioner 1.0 is not a public/open source tool).
<a class="reference external" href="https://github.com/CentOS-PaaS-SIG/linch-pin">Linch-Pin</a> provides the ability to perform installation/provisioning of
systems based on "Topology Files" as input with the output being logging
information about the creation as well as an ansible inventory file such that
subsequent ansible commands can use it to find/access the specific systems that
were created by Linch-Pin. Documentation can be found <a class="reference external" href="https://linch-pin.readthedocs.io/en/latest/">here</a>.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=Tb7Zti5Xao8">Linch-Pin: Hybrid Cloud Provisioning with Ansible video</a></p>
</div>
<div class="section" id="scaling-up-aggregated-logging-and-metrics-on-openshift">
<h3>Scaling Up Aggregated Logging and Metrics on OpenShift</h3>
<p>This session was a technical deep dive talking about how to resolve some really
interesting problems at substantial scale of an <a class="reference external" href="https://www.openshift.org/">OpenShift</a> container
orchestration cluster. Scenarios examined here were targeting solutions for
clusters with over 10,000 pods in them. Areas such as how to scale
<a class="reference external" href="https://www.elastic.co/">ElasticSearch</a>, <a class="reference external" href="https://www.elastic.co/products/kibana">Kibana</a>, <a class="reference external" href="https://cassandra.apache.org/">Cassandra</a>, <a class="reference external" href="http://www.fluentd.org/">fluentd</a>, and <a class="reference external" href="https://github.com/kubernetes/heapster">heapster</a>. The
session gets off in the weeds quick and is very technical. Anyone interested in
these topics or who may potentially run into this level of scale issues is
highly recommended to check out the video.</p>
<p><cite>Scaling Up Aggregated Logging and Metrics on OpenShift video
&lt;https://www.youtube.com/watch?v=afHxhyOyl1o&gt;_</cite></p>
</div>
<div class="section" id="deploying-applications-on-atomic-host-with-ansible">
<h3>Deploying Applications on Atomic Host with Ansible</h3>
<p>The time slot for this session was also a quick 30 minutes and it focused
primarily on quick overview of information about each of <a class="reference external" href="https://getfedora.org/en/atomic/">Atomic Host</a>, <a class="reference external" href="https://docs.docker.com/engine/reference/commandline/build/">docker
build</a>, <a class="reference external" href="https://github.com/ansible/ansible">Ansible</a>, and <a class="reference external" href="http://cockpit-project.org/">Cockpit</a>. Then it was demo time, where the presenter
showed her ansible <a class="reference external" href="https://docs.ansible.com/ansible/playbooks.html">playbook</a> and <a class="reference external" href="https://docs.docker.com/engine/reference/builder/">Dockerfile</a> explaining what each does along
the way. From there it was a live demonstration of the entire thing working
end-to-end to build and deploy a containerize application on Atomic Host using
Ansible and Docker.</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=AO2HDP3hd2E">Deploying Applications on Atomic Host with Ansible video</a></p>
</div>
<div class="section" id="testing-and-automation-and-cooperation-oh-my">
<h3>Testing and Automation and Cooperation: Oh My!</h3>
<p>Yet another quick 30 minute time slot that covered a considerable amount of
ground across it's topic space. This session covered Fedora's plans to a fully
integrated CI pipeline for the entire distro with updates being gated by the CI
but easily overridden if/when needed. As an example, the <a class="reference external" href="https://www.openstack.org/">OpenStack</a> project
already has this kind of CI pipeline. In Fedora land, we need to firmly decide
on what is considered the "input stream" for a CI system as well as determine
what we want to gate on (which turns out to be difficult questions to answer).
Then we need to find a place to run all tests. As a point of note is that
collaboration can be difficult for testing as testing is often project-specific,
requirements are often different and sometimes there's cross-community politics
in play. We collectively need to start moving towards a common backend toolchain
in order to start towards true cross-project collaboration. Currently, we're
targeting <a class="reference external" href="https://github.com/ansible/ansible">Ansible</a> as that thing (<a class="reference external" href="http://status.openstack.org/zuul/">OpenStack Zuul</a> is already using ansible
on the backend).</p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=jcsoMrr1FyE">Testing and Automation and Cooperation: Oh My!</a></p>
</div>
</div>
<div class="section" id="hallway-track">
<h2>Hallway Track</h2>
<p>The hallway tracks are always some of my favorite times at conferences and
DevConf.cz is certainly no different. However, because of the nature of them
I don't have good notes on the discussions that were had and I've included
at least highlight information about the ones that stick out most in my memory</p>
<div class="section" id="project-atomic">
<h3>Project Atomic</h3>
<p>I had the opportunity to meet up with some community members of the <a class="reference external" href="https://pagure.io/atomic-wg">Fedora
Atomic WG</a> to discuss various items about plans for the future, the desire to
have multiple update streams, as well as plans for <a class="reference external" href="https://fedoraproject.org/wiki/Container:Review_Process">Fedora Containers</a> and
improving the <a class="reference external" href="https://fedoraproject.org/wiki/Container:Guidelines">Container Guidelines</a>. All of these topic items have since been
filed into the <a class="reference external" href="https://pagure.io/atomic-wg/issues">Atomic WG pagure.io space as issue tickets</a> for posterity and
work tracking in the future.</p>
</div>
<div class="section" id="fedora-infra-managed-openshift">
<h3>Fedora Infra Managed OpenShift</h3>
<p>In another hallway track session a hand full of us were tossing around wild
ideas of having an <a class="reference external" href="https://www.openshift.org/">OpenShift</a> environment in Fedora space that ran on bare
metal and could provide shared hosting for upstreams to iteratively work on
things in a way that could be integrated directly with Fedora services
(such as <a class="reference external" href="http://www.fedmsg.com/en/latest/">fedmsg</a>, <a class="reference external" href="https://taskotron.fedoraproject.org/">taskotron</a>, and <a class="reference external" href="https://github.com/maxamillion/loopabull">loopabull</a>). This might turn out to be
a bit more far fetched than we can really accomplish purely because of the
nature of the request but it's something that everyone in the circle thought was
a good idea at the time.</p>
</div>
</div>
<div class="section" id="closing-time">
<h2>Closing time...</h2>
<p>That, in a really long-winded nutshell, is my DevConf.cz 2017 experience.</p>
<p>I look forward to DevConf.z 2018!</p>
<p>Until next time...</p>
</div></div>DevConf.cz 2017https://maxamillion.sh/blog/devconfcz-2017/Fri, 10 Feb 2017 18:25:20 GMTFlock to Fedora 2016https://maxamillion.sh/blog/flock-to-fedora-2016/Adam John Miller<div><div class="section" id="flock-to-fedora-2016">
<h2>Flock to Fedora 2016</h2>
<p>Every year, the <a class="reference external" href="https://getfedora.org/">Fedora</a> User and Developer community puts on an conference
entitled "<a class="reference external" href="https://flocktofedora.org/">Flock to Fedora</a>" or "Flock" for short. This year was no different
and the event was hosted in beautiful <a class="reference external" href="https://en.wikipedia.org/wiki/Krak%C3%B3w">Kraków, Poland</a>. The event had such an amazing
line up that I rarely had time for the always fascinating "hallway track" of
ad-hoc discussions with various conference go-ers, but in the best kind of way.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">At the time of this writing, the videos had not yet been posted but it
was reported that they will be found at the link below.</p>
</div>
<p>All the sessions were being recorded and I highly recommend anyone interested to
check them out <a class="reference external" href="https://www.youtube.com/fedoraproject">here</a>.</p>
<p>I will recap my experience and take aways from the sessions I attended and
participated in as well as post slides and/or talk materials that I know of.</p>
</div>
<div class="section" id="flock-day-1">
<h2>Flock Day 1</h2>
<div class="section" id="keynote-state-of-fedora">
<h3>Keynote: State of Fedora</h3>
<p>Flock Day 1 started off with a bang, our very own <a class="reference external" href="https://fedoraproject.org/wiki/User:Mattdm">Fedora Project Leader, Matt
Miller</a> took the stage for the morning keynote and discussed the current state
of Fedora, where we are, where we're going, ongoing work and current notable
<a class="reference external" href="https://fedoraproject.org/wiki/Changes/Policy">Changes</a> with work under way.</p>
<p>One of my favorite take aways from this talk was one about contributor
statistics that are gathered based on contributor activity as it is represented
within the <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure">Fedora Infrastructure</a> via <a class="reference external" href="http://www.fedmsg.com/en/latest/">fedmsg</a> and <a class="reference external" href="https://apps.fedoraproject.org/datagrepper">datagrepper</a>
(<a class="reference external" href="https://github.com/fedora-infra/datanommer">datanommer</a>). The statistics showed that there are over 2000 contributors, of
which roughly 300 do 90% of the work (which sounds odd, but statistically this
is actually better than average) and of the group that does 90% of the work only
about 35% of them work for Red Hat. I'm a big fan of these kind of numbers
because it reinforces that Fedora is in fact a community driven project that
Red Hat is simply a participant and sponsor of.</p>
<p><a class="reference external" href="https://mattdm.org/fedora/2016flock/StateofFedoraAugust2016-v160731a.pdf">Flock 2016 Keynote State of Fedora slides</a></p>
</div>
<div class="section" id="introducing-fedora-docker-layered-image-builds">
<h3>Introducing Fedora Docker Layered Image Builds</h3>
<p>Next time slot that I attended was my presentation on the <a class="reference external" href="https://fedoraproject.org/wiki/Changes/Layered_Docker_Image_Build_Service">Fedora Docker Layered
Image Build System</a> here I introduced something I've been working on for quite
some time with various upstream projects of technologies that come together to
form this system. Before diving into the new service I went on a brief history
lesson about what containers are, what they are in the context of Linux, and
various implementations of which <a class="reference external" href="https://github.com/docker/docker/">Docker</a> is simply one. The main reason I like
to start there is to level set that we have hopes to support all kinds of Linux
container runtimes and image builds but we must start somewhere and with Docker
being the most popular it makes sense to target it first. (You'd be surprised
how often the question of supporting other image formats comes up)</p>
<p>In an attempt to make sure there were no gaps in knowledge of everyone in the
room for my presentation I did a quick overview of what specifically Docker is,
how containers are instances of images, and how images themselves are most
commonly built (<a class="reference external" href="https://docs.docker.com/engine/reference/builder/">Dockerfile</a>). We then progress into concepts of <a class="reference external" href="https://en.wikipedia.org/wiki/Release_engineering">Release
Engineering</a> and why this is desirable, as outlined in an <a class="reference external" href="https://opensource.com/business/16/7/creating-reproducible-build-system-docker-images">article I wrote
for OpenSource.com</a> recently. From there we traversed into the wild world of
distributed container runtimes and orchestrators, most notably <a class="reference external" href="https://www.openshift.org/">OpenShift</a> as
that's a core component of the Layered Image Build Service. We also discussed
components used within the Docker Layered Image Build Service such as
<a class="reference external" href="https://github.com/projectatomic/atomic-reactor">atomic-reactor</a>, <a class="reference external" href="https://github.com/projectatomic/osbs-client">osbs-client</a>, and <a class="reference external" href="https://github.com/release-engineering/koji-containerbuild">koji-containerbuild</a>. The last of which
enables for the workflow using <a class="reference external" href="https://pagure.io/fedpkg">fedpkg</a> for layered image builds for <a class="reference external" href="https://getfedora.org/">Fedora</a>
contributors just as they are used to for <a class="reference external" href="http://rpm.org/">RPM</a>.</p>
<p>I then did a demo, that of course failed (as per the Demo Gods) but was able to
show a previously successful build.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">I have at this point diagnosed the issue found during the demo and it
has been resolved.</p>
</div>
<p><a class="reference external" href="https://maxamillion.fedorapeople.org/Events/Flock2016/Flock2016_IntroducingDockerLayeredImageBuildService.pdf">Introducing Fedora Docker Layered Image Build slides</a></p>
</div>
<div class="section" id="getting-new-things-into-fedora">
<h3>Getting New things into Fedora</h3>
<p>In recent past there has been a general communications break down between
developers and Release Engineering, this has resulted in some issues integrating
net-new deliverables within the Fedora Project. This presentation discussed the
process by which new changes should come in, the timelines that things should be
accepted by, and the various Release Engineer Tools that need integrating with.</p>
<p>However, there was admission that the documentation could be better about these
items and the Release Engineering tools could be more approachable for outsiders
in order to help with the process of on-boarding new changes into the processes
and tooling. These items have shown improvement in the past year with further
improvements planned.</p>
<p>There was a lively discussion of ways to make this better and I look forward to
seeing positive movement come as a result.</p>
</div>
<div class="section" id="hacking-koji-for-fun-and-profit">
<h3>Hacking Koji for fun and Profit</h3>
<p>In this session, tip and tricks for hacking on the <a class="reference external" href="https://pagure.io/koji">Koji</a> build system were the
focal point. Discussion about what Koji is, who uses it, and why someone might
want to hack it was explored. Then an overview of the major components of Koji
were presented in an attempt to give potential developers an idea of where to
look in the code depending on what component they were trying to augment or
supplement. From there a quick example of the <a class="reference external" href="https://www.python.org">Python</a> API was covered as an
example of how to get started, including reference for a more advanced example
contained within the koji code itself was offered. Next up was a advanced CLI
walk through that showed how to call directly to the XMLRPC API just as you can
via the Python API.</p>
<p>There was a section of the session focused on the Koji Hub which is the user
facing component including how to theme the web UI, change user policy, and how
to write plugins that can add functionality to Koji via new API calls, policies,
and callback hooks.</p>
<p>Next up was discussion of Koji Builder plugins that can add the ability for Koji
to produce new types of Build Artifacts.</p>
<p>Finally, how to actually clone the git repository and then build locally
a version of the modified code was covered.</p>
<p>During the Q&amp;A portion there was a discussion of how difficult Koji can be to
deploy and that it would be nice if there was a way to get up and running
quickly for hacking purposes. Something that was completely automated and not
necessarily production ready would be desired. There was also lively discussion
about the future of Koji and the iterative improvements already made in
refactoring the code as well as plans for more. Originally there was a grand
plan for a "Koji 2.0" that would be a complete rewrite but as time has gone on
that has proven too lofty of a goal to realistically achieve so the more
iterative approach is being taken.</p>
<p><a class="reference external" href="https://mikem.fedorapeople.org/Talks/flock-2016-hacking-koji/#/">Hacking Koji for Fun and Profit slides</a></p>
</div>
<div class="section" id="containers-in-production">
<h3>Containers in Production</h3>
<p>Dan Walsh discussed running Containers in Production, a topic that is hot on
many people's mind as container technology races into the mainstream as fast as
OpenStack did before it. This session discussed various means of container
runtime execution, including that of Docker and it's daemon. This included
various aspects the Docker daemon's strengths and weaknesses and why alternative
execution methods might be desirable or at least worth considering for
Production workloads and environments. Various aspects such as storage
configuration, non-privileged runtimes (security), remote inspection, fault
tolerance, and <a class="reference external" href="https://freedesktop.org/wiki/Software/systemd/">systemd</a> integration were discussed.</p>
<p>In this presentation was a strategy for running production ready containers
using <a class="reference external" href="http://runc.io/">runC</a> for execution of Open Container Initiative (<a class="reference external" href="https://www.opencontainers.org/">OCI</a>) compliant
container images (such as Docker Images).</p>
<p><a class="reference external" href="https://github.com/containers">https://github.com/containers</a></p>
<p><a class="reference external" href="https://github.com/projectatomic/skopeo">https://github.com/projectatomic/skopeo</a></p>
</div>
<div class="section" id="fedora-s-mirrormanager-now-and-in-the-future">
<h3>Fedora's MirrorManager: now and in the future</h3>
<p>The session about <a class="reference external" href="https://fedorahosted.org/mirrormanager/">MirrorManager</a> was extremely informative, covering various
aspects of the project, a brief overview of the history then diving into current
features, limitations, things we're trying to do in the future to improve and
enable the mirroring of new artifacts.</p>
<p>There were plenty of items that I would like to follow up on as there's so much
about content mirroring that I don't currently understand.</p>
<p>I sadly did not take nearly as good of notes during this session as I had hoped
to. I highly recommend anyone interested in the topic of content mirroring to
watch the recorded session for more information.</p>
</div>
<div class="section" id="fedora-arm-state-of-the-union">
<h3>Fedora ARM State of the Union</h3>
<p>Peter Robinson gave a presentation about the current state of <a class="reference external" href="https://arm.fedoraproject.org/">Fedora ARM</a>
including both armv7hl and AArch64. At the start of things he requested that
questions about specific dev boards be held to the end because he would have
a section in the session dedicated to that. Exploration of the trials and
tribulations of bringing new hardware to life was interesting (at least to me)
as there's so many things that we in the pre-existing hardware platform world
take for granted. There's many things about the ARM world and boot firmware that
make things difficult because of lack of standardization around the developer
board boot methods beyond just the standard trouble of bringing up new hardware
that doesn't yet have support for everything necessary in the kernel. Beyond
the kernel is the compiler toolchains and programming language tooling that
needs added support for new architectures such as ARM, various points of this
were discussed with examples of areas where people in the Fedora community have
stepped up to help (<a class="reference external" href="https://fedoraproject.org/wiki/Haskell_SIG">Haskell SIG</a> being one great example).</p>
<p>From there discussions of various developer boards spiraled off into the weeds
of things that I definitely don't understand about the finer points of ARM board
"bring up" but it was interesting to listen to the state of things and take
notes of things to learn about.</p>
</div>
<div class="section" id="university-outreach-new-task-or-new-mindset">
<h3>University Outreach - New Task or New Mindset?</h3>
<p>Justin Flory and Jona Azizaj presented about the history of the <a class="reference external" href="https://fedoraproject.org/wiki/Objectives/University_Involvement_Initiative">University
Involvement Initiative</a>, the struggles met with attempting to expand it's
adoption and further reach, and eventually it's decline. This session was a call
to arms for community members with ties to Universities either as active
students or Alumni to help bring this initiative back to life. The main idea
behind all of this is that we would like to help foster the open source
community by bringing an active student population into it's ranks. There was
a lot of positive feedback and interest shown during the session and I have high
hopes for the future of the initiative.</p>
</div>
<div class="section" id="fedora-engineering-team-dinner">
<h3>Fedora Engineering Team Dinner</h3>
<p>While not on the Flock schedule, this was a personal highlight for me as
a member of the <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Engineering">Fedora Engineering Team</a> because we are a geographically
dispersed team that lives and works from all corners of the planet. As such, we
rarely get the opportunity to all be in the same place, at the same time, and in
a social setting (as opposed to getting work done). It was great to be able to
sit and chat with colleagues and discuss both work and non-work topics and get
to know them better on a more personal level.</p>
<p>The main take away: I love my job, I love my team, and I love my company.</p>
</div>
</div>
<div class="section" id="day-2">
<h2>Day 2</h2>
<div class="section" id="kirk-mccoy-and-spock-build-the-future-of-fedora">
<h3>Kirk, McCoy, and Spock build the future of Fedora</h3>
<p>Matt Miller took us on a Star Trek themed adventure that lead to the use of the
<a class="reference external" href="https://www.wkkf.org/resource-directory/resource/2006/02/wk-kellogg-foundation-logic-model-development-guide">Kellog Logic Model</a> applied to Fedora Initiatives and how each Working Group
(WG) or Special Interest Group (SIG) could use this model as a means to help
drive their goals as well as frame their over all initiatives to others,
including the <a class="reference external" href="https://fedoraproject.org/wiki/Council">Fedora Council</a> and <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_Engineering_Steering_Committee">FESCo</a>. The session slides were covered
rather quickly and then discussions and questions broke out about how we could
use this for various things and/or just general questions about the logic model.</p>
<p>The <a class="reference external" href="https://fedoraproject.org/wiki/Objectives/Fedora_Modularization,_Prototype_Phase">Fedora Modularity Logic Model</a> was an example where this is already being
used within the Fedora Project with success.</p>
</div>
<div class="section" id="modularity-why-where-we-are-and-how-to-get-involved">
<h3>Modularity: Why, where we are and how to get involved</h3>
<p><a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a> is a new initiative that is focused on re-thinking how we
think of the way Linux distributions are composed. Instead of as a pile of
software packages, it could be a grouping of modules that can be managed as
disjoint units and lifecycle managed independently of one another.</p>
<p>Background on the topic leads back to the Rings Proposal (a part of
<a class="reference external" href="https://fedoraproject.org/wiki/Fedora.next">Fedora.next</a>), where we think about the distro as a set of rings and the
center of rings the central point of the operating system is the most curated
components of the operating system and as you get further from the center you
can have less and less curation.</p>
<p>However, as time went on you have less and less correlation such that the Rings
analogy doesn't really fit. Example, any given package can change over time or
need a different version in a different use case or scenario.</p>
<p>Different use cases, a new website with the latest technologies vs an ERP system
where you want different lifecycles or different "aged" or different levels of
"proven" technologies. This is the problem that modules hope to solve.</p>
<p>What is a module?</p>
<ul class="simple">
<li>A thing that is managed as a logical unit</li>
<li>A thing that promises an external, unchanging, API</li>
<li>A thing that may have many, unexposed, binary artifacts to support the
external API</li>
<li>A module may "contain" other modules and is referred to as a "module stack"</li>
</ul>
<p>Base Runtime (Module Stack)</p>
<ul>
<li><p class="first">Kernel (module)</p>
</li>
<li><p class="first">userspace (the interface to userspace, coreutils, systemd, etc)</p>
<blockquote>
<ul class="simple">
<li>There built requirements are not part of the module, but simply a build
requirement.</li>
</ul>
</blockquote>
</li>
</ul>
<p>modulemd: Describe a module</p>
<ul class="simple">
<li>yaml definitions of modules, standard document definitions with "install
profiles"</li>
<li>install profiles</li>
<li>definition of components included in a module</li>
</ul>
<p>There was plenty of discussion around these topics and suggestion that people
attend the workshop the following day.</p>
</div>
<div class="section" id="factory-2-0">
<h3>Factory 2.0</h3>
<p>As with all things in technology, we want to constantly move faster and faster
and the current methods by which we produce the operating system just won't
scale into the future. Factory 2.0 is an initiative to fix that.</p>
<p>The presentation kicked off with a witty note that we have entered the "The
Second <a class="reference external" href="https://en.wikipedia.org/wiki/Eternal_September">Eternal September</a>," GitHub and how node.js has changed how people
fundamentally expect to consume code.</p>
<p>Dependency freezing has become common practice these days because of node.js and
rubygems communities impact on developers.</p>
<pre class="literal-block">
pip freeze &gt; requirements.txt
</pre>
<ul class="simple">
<li>ruby bundler</li>
<li>nixOS</li>
<li>coreOS</li>
<li>docker and friends</li>
</ul>
<p>Brief overview of <a class="reference external" href="https://fedoraproject.org/wiki/Modularity">Fedora Modularity</a> was given for those who didn't make it to
Langdon's session on the topic.</p>
<p>Matt Miller started with Fedora.Next -&gt; Rings, then Envs and Stacks, Red Hat now
funding a team to accomplish this.</p>
<p>Backing up first to discuss how not to throw things over the wall. In past
there's been discussions about how to articulate "Red Hat things" in the Fedora
Space. <a class="reference external" href="http://threebean.org/">Ralph Bean</a> (our presenter) works for a group in Red Hat called RHT
DevOps.</p>
<p>There are analogous groups within Red Hat and the Fedora Community:</p>
<p>Fedora Packagers -&gt; RH Platform Engineering</p>
<p>Fedora Infra -&gt; RH PnT DevOps</p>
<p>What Factory 2.0 is not: a single web app, a rewrite of our entire pipeline,
a silver bullet, a silver platter, just modularity, going to be easy.</p>
<p>"the six problem statements"</p>
<ul class="simple">
<li>Repetitive human intervention makes the pipeline slow</li>
<li>unnecessary serialization</li>
<li>rigid cadence</li>
<li>artifact assumption</li>
<li>modularity</li>
<li>dep chain</li>
</ul>
<p>"If we had problems before, they're about to get a lot worse" (Imagine
modularity without Factory 2.0)</p>
<p>Would like to use <a class="reference external" href="https://github.com/fedora-infra/pdc-updater">pdc-updater</a> to populate metadata tables with information
about dep chains, we would then use that information with other tools like
<a class="reference external" href="https://pagure.io/pungi">pungi</a> but also with new tooling we haven't even thought of just yet.</p>
<p>Unnecessary serialization makes the pipeline slow, one big piece we will need
to solve this is the OpenShift Build Service (OSBS). We're going to need to use
an autosigner.py to get around new problems (assuming we "go big" with
containers).</p>
<p>Automating throughput, repetitive human intervention makes things slow. Builds
and composes. An orchestrator for the builds and the composes, best case
scenario is that things are built and composed before we ask for them.</p>
<p><a class="reference external" href="https://fedoraproject.org/wiki/Changes/Two_Week_Atomic">Atomic Host Two Week</a> is kind of a case study that we should learn lessons from
in order to merge the changes needed back into the standard pipeline instead of
the parallel pipeline that was spawned.</p>
<p>Flexible Cadence, The pipeline imposes a rigid and inflexible cadence on
"products". Releases related to the previous point about Automating Releases,
"the pipeline is as fast as the pipeline is".</p>
<p>EOL: think about the different EOL discussions for the different Editions.
Beyond that - a major goal of modularity is "independent lifecycles"</p>
<p>"I want to be able to build anything, in any format, without changing anything"
(not possible) but we can make the pipeline pluggable that will make it easier
over time to add new artifact types to the pipeline.</p>
<p>"The pernicious hobgoblin of technical debt" as Ralph called it.</p>
<p>Ways we can do better and refactor:</p>
<ul class="simple">
<li>Microservices (consolidate around responsibility)</li>
<li>Reactive services</li>
<li>Idempotent services</li>
<li>Infrastructure automation (<a class="reference external" href="https://github.com/ansible/ansible">Ansible</a> all the things)</li>
</ul>
</div>
<div class="section" id="docker-in-production">
<h3>Docker in Production</h3>
<p>The Docker in Production session was a very brief walk through of how you can go
from your laptop to a production environment. This effectively boiled down to
best practice for how to "containerize" your application properly, ways to build
docker images and tagging schemes that you can (or should) use, a distribution
mechanism for the images, and finally a distributed orchestration framework such
as <a class="reference external" href="http://kubernetes.io/">Kubernetes</a>, <a class="reference external" href="https://www.openshift.org/">OpenShift</a>, or <a class="reference external" href="https://github.com/docker/swarm/">Docker Swarm</a>.</p>
</div>
<div class="section" id="pagure-past-present-and-future">
<h3>Pagure: Past, Present, and Future</h3>
<p><a class="reference external" href="https://pagure.io/pagure">Pagure</a> is a git forge.</p>
<p>Old version was very simple: there were three repos per project: source,
tickets, and pull requests. Recently got a new UI (thanks to Ryan Lerch).</p>
<p>Forks, pull requests. (A very GitHub style workflow).</p>
<p>If you want to run your own pagure, all you need is the web services and the
database. If you'd like all the bells and whistles, you'll then need to add mail
server (pagure milter), pagure eventsource server, gitolite, and a message bus.</p>
<p>Doc hosting (fourth git repository for a project, optional), in the future
considering doing something similar to <a class="reference external" href="https://pages.github.com/">GitHub Pages</a>.</p>
<p>"Watch" repo, to get notifications for a project you're not directly involved in
or to opt out of notifications for a project you are directly involved in.</p>
<p>Roadmap in the Issues tab in the UI for milestones and arbitrary tag filtering.</p>
<p>Issue templates, delivered by markdown files in the issues git repo. Also, can
set a default message to be displayed when someone files a new pull request.</p>
</div>
<div class="section" id="diversity-women-in-open-source">
<h3>Diversity - Women in Open Source</h3>
<p>The session on <a class="reference external" href="https://fedoraproject.org/wiki/Diversity">Fedora Diversity</a> began with a lot of wonderful information
about the initiative and I have outlined to the best of my ability focal points
of those slides here.</p>
<ul class="simple">
<li>Started roughly a year ago</li>
<li>No exists an official Fedora Diversity Adviser</li>
<li><dl class="first docutils">
<dt>Myths</dt>
<dd><ul class="first last">
<li>Women are not interested in technology</li>
<li>Women can't to programming</li>
<li>Men developers are mote talented than women</li>
<li>There is no work-life balance for women who work in the tech industry</li>
<li>So on and so on ...</li>
</ul>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Facts</dt>
<dd><ul class="first last">
<li><dl class="first docutils">
<dt>Women in Technology (Mothers of Tech - BizTech)</dt>
<dd><ul class="first last">
<li>Ada Lovelace (Creator of Programming/Computational Machine)</li>
<li>Heddy Lamar (Frequency Hopping)</li>
<li>Admiral Hopper (Created COBOL)</li>
<li>Many more ...</li>
</ul>
</dd>
</dl>
</li>
<li>Women are very creative, versatile, powerful, and intelligent</li>
<li>Diversity increases success</li>
</ul>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Initiatives</dt>
<dd><ul class="first last">
<li>Grace Hopper Celebration of Women in Computing</li>
<li>Women in Open source Award</li>
<li>Outreachy</li>
<li>Google Summer of Code</li>
<li>and many more</li>
</ul>
</dd>
</dl>
</li>
<li><dl class="first docutils">
<dt>Gaps</dt>
<dd><ul class="first last">
<li>Lack of knowledge, encouragements, support, and time commitment</li>
</ul>
</dd>
</dl>
</li>
</ul>
<p>After the slides were done, the session turned into effectively a giant round
table of people telling stories of how they've been successful because of
diverse teams, reasons they think that women and other groups of people are
currently under represented in Fedora and Open Source, ways they feel we can
increase diversity, and methods that could be used to target various under
represented groups in the Global Open Source community.</p>
<p>The <a class="reference external" href="https://www.gnome.org/outreachy/">GNOME Outreachy</a> program was also discussed as a great example of
a program working to move things in the right direction around the topic of how
we can try to actively improve our community and the open source community at
large.</p>
<p>I hope to be able to participate in some of the take aways from these
discussions as they are put into action.</p>
</div>
<div class="section" id="testing-containers-using-tunir">
<h3>Testing Containers using Tunir</h3>
<p><a class="reference external" href="http://tunir.readthedocs.io/en/latest/">tunir</a> is a simple tool that will spawn a virtual machine or several virtual
machine and then execute arbitrary commands and report success or failure of the
commands based on the exit code of the command. You can also make commands
blocking or non blocking and tunir has support for <a class="reference external" href="https://github.com/docker/docker/">Docker</a> images as well as
support for spinning up a <a class="reference external" href="http://kubernetes.io/">kubernetes</a> multi-node cluster in order to test
containers "at scale". The presentation was short and to the point with plenty
of demos showing how easy it is to get started using tunir. Also, tunir is the
testing component behind <a class="reference external" href="https://apps.fedoraproject.org/autocloud">Fedora AutoCloud</a>.</p>
</div>
<div class="section" id="cruise-krakow">
<h3>Cruise Krakow</h3>
<p>In the evening of Day 2 the Flock participants had the unique opportunity to
dine on the Vistula River and take a small tour up and down the river for some
site seeing. It was a beautiful scenic way to wind down with fellow Fedora
Flockers after a full day of sessions and technical discussions.</p>
</div>
</div>
<div class="section" id="day-3">
<h2>Day 3</h2>
<div class="section" id="lightning-talks">
<h3>Lightning Talks</h3>
<p>Day 3 kicked off with <a class="reference internal" href="https://maxamillion.sh/blog/flock-to-fedora-2016/#lightning-talks">Lightning Talks</a>, I presented one myself about a small
project I've been working on titled <a class="reference external" href="https://github.com/maxamillion/loopabull">Loopabull</a> which is an event loop driven
<a class="reference external" href="https://github.com/ansible/ansible">Ansible</a> playbook execution engine. There were also plenty of other wonderful
lightning talks covering topics such as <a class="reference external" href="https://fedoraproject.org/wiki/Marketing">Fedora Marketing</a>, <a class="reference external" href="https://www.openshift.org/">OpenShift</a>
provisioning on Fedora with <a class="reference external" href="https://aws.amazon.com/">Amazon Web Services</a>, <a class="reference external" href="https://fedoraproject.org/wiki/CommOps">Fedora CommOps</a>,
<a class="reference external" href="https://www.dgplug.org">dgplug</a>, and so much more.</p>
</div>
<div class="section" id="automation-workshop">
<h3>Automation Workshop</h3>
<p>The automation workshop was kind of an anti-presentation session as the session
leader wanted this to either become more of a hacking session of a problem
solving session. As such, ad-Hoc discussions and work done on automation issues
in the various areas of the <a class="reference external" href="https://fedoraproject.org/wiki/Infrastructure">Fedora Infrastructure</a> occurred and people broke
off into smaller groups within the room to work or solve problems.</p>
</div>
<div class="section" id="openshift-on-fedora">
<h3>OpenShift on Fedora</h3>
<p>This session was about running <a class="reference external" href="https://www.openshift.org/">OpenShift</a> on <a class="reference external" href="https://getfedora.org/">Fedora</a> using the latest and
greatest features of OpenShift, most notably the new component called <tt class="docutils literal">oc
cluster up</tt> which is an auto-deployment provisioning tool built directly into
OpenShift as of version v1.3+ which allows for the automatic creation of
a clustered environment. The entire session was provided as a very well
documented walk through and the link is below.</p>
<p><a class="reference external" href="https://github.com/soltysh/talks/blob/master/2016/flock/scenario.md">OpenShift on Fedora Guided WalkThrough</a></p>
</div>
<div class="section" id="building-modules-workshop">
<h3>Building Modules Workshop</h3>
<p>The Modules building workshop came together as a hybrid approach of some
presentation, some discussion, some demo, and some "follow along" workshop
style. This was a lot of fun and incredibly informative, there was lively
discussion about aspects of a <a class="reference external" href="https://pagure.io/modulemd/blob/master/f/spec.yaml">module definition</a> (for me it was mostly about
trying to wrap my head around everything, and the session hosts were very
accommodating).</p>
<div class="system-message">
<p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">&lt;string&gt;</tt>, line 482); <em><a href="https://maxamillion.sh/blog/flock-to-fedora-2016/#id1">backlink</a></em></p>
Duplicate explicit target name: "here".</div>
<p>There were many notes taken during the session and they were preserved in an
<a class="reference external" href="http://piratepad.nl/module-build">etherpad instance</a> but in the event that
it gets lost in the ether over time I have exported it's contents to my
FedoraPeople space and it can be viewed <a class="reference external" href="https://maxamillion.fedorapeople.org/Events/Flock2016/module-build-latest.html">here</a>.</p>
</div>
<div class="section" id="brewery-lubicz">
<h3>Brewery Lubicz</h3>
<p>Next up is the evening event which was hosted in a brewery complete with
wonderful catering.</p>
<p>As per the schedule:</p>
<p>A feast and beer tasting awaits us at Browar Lubicz, a recently restored
brewery. The brewery dates from 1840 and has been brewing beer almost
continuously, even during nationalization in the 1950s. Restored in September
2015, the brewery is a high point of a trip to Krakow.</p>
</div>
</div>
<div class="section" id="day-4">
<h2>Day 4</h2>
<p>Day 4 was Friday and I slept in a little because I was going to be staying up
overnight in order to catch my 4am taxi to the airport to begin the journey back
home so I regretfully missed the morning session on <a class="reference external" href="https://github.com/ansible/ansible">Ansible</a> best practices but
I was told it was very good and I have every intention to watch it on YouTube
once the video is posted.</p>
<div class="section" id="what-we-do-for-docker-image-test-automation">
<h3>What we do for Docker image test automation</h3>
<p>I attended this session for about 45 minutes but it quickly became apparent that
the other participants were very new to <cite>Docker</cite> and <a class="reference external" href="https://taskotron.fedoraproject.org/">taskotron</a> in general and
the session would therefore be very introductory in nature so I departed to join
a workshop elsewhere. This session was by no means bad and I think anyone who is
new to the topic of <a class="reference external" href="https://github.com/docker/docker/">Docker</a> or <a class="reference external" href="https://taskotron.fedoraproject.org/">taskotron</a> and is interested how these two
things are being used together in order to test Docker Images should absolutely
have attended or should watch the recording on YouTube after the fact.</p>
</div>
<div class="section" id="server-sig-pow-wow">
<h3>Server SIG Pow-Wow</h3>
<p>A lot of things are changing in the Fedora Project, particularly for
modularization. This session was by and large a collaborative brainstorming and
planning session for how to take advantage of the new initiative and how to
adapt properly. <a class="reference external" href="https://github.com/libre-server/rolekit">RoleKit</a> became a focal point of discussion as well as
<a class="reference external" href="https://github.com/ansible/ansible">Ansible</a> and potentially an integration with the two. Aspects of the
discussion related back to the <a class="reference external" href="https://fedoraproject.org/wiki/Fedora_formulas">Fedora Formulas</a> proposal that unfortunately
didn't get off the ground at the time.</p>
<p>The session leader graciously took notes and has plans to post a write up.</p>
</div>
<div class="section" id="informal-friday-night-shenanigans">
<h3>Informal Friday Night Shenanigans</h3>
<p>Friday night a group of us Flockers took to the streets of Krakow City Center in
order to take in as much of the local cuisine, culture, and sites as we could on
our last night in town (at least it was the last night for some of us). This was
a really great outing and I had the opportunity to make some new friends within
the Fedora Community that I had yet to meet in person. It was a wonderful way to
close out an amazing event.</p>
<p>I look forward to Flock 2017!</p>
<p>Until next time...</p>
</div>
</div></div>Fedora Flock 2016https://maxamillion.sh/blog/flock-to-fedora-2016/Wed, 10 Aug 2016 16:48:20 GMTNew Website and Bloghttps://maxamillion.sh/blog/new-website-and-blog/Adam John Miller<div><p>I've finally gotten around to creating my new website and blog, powered by
<a class="reference external" href="https://getnikola.com/">nikola</a>. Previously I used <a class="reference external" href="https://www.blogger.com/">Blogger</a> and while that's a fine service that I've enjoyed
using for some time, I much prefer being able to edit my blog posts in my local
text editor of choice and serve my site as static html from my own system. This
has taken far longer than I had hoped it would but I definitely hope it will
prompt me to blog more.</p>
<p>If you care to view my old blog, it can still be found <a class="reference external" href="http://pseudogen.blogspot.com/">here</a>.</p></div>blognewwebsitehttps://maxamillion.sh/blog/new-website-and-blog/Tue, 09 Aug 2016 17:01:39 GMT