Engineer With Armory, Sponsored by Google
Original post by Rosalind Benoit
Armory is proud to invest in Google Summer of Code again this year, and help foster a new generation of global engineering talent by mentoring students in CD Foundation projects. Passing along our understanding of enterprise-scale software delivery to new DevOps practitioners keeps us in touch with the Armory user’s journey : ) Want to participate in 2021, or know someone who might? Keep reading!
Innovation Through Mentoring
Last year’s crop of promising projects brought us Victor Odusanya’s implementation of a DroneCI pipeline stage in Spinnaker. With his project, Victor was able to expand open source support for continuous integration tools beyond Jenkins and Google Cloud Build. Now companies using DroneCI within pipelines can seamlessly extend Spinnaker to manage it, with Victor’s work to build from. This project also gave the Spinnaker community an early opportunity to handle a new extensibility request according to the lean-core commitment made by the TOC (Technical Oversight Committee); DroneCI integration happens via a plugin.
We’re currently still looking for bright new participants to join us in this year’s cohort! Please reach out to us in the Contributor Experience SIG channel on Spinnaker Slack ASAP to express interest or propose a project idea.
Paying It Forward: Spinnaker Plugins Workshop
The best part of investing in the future through GSoC has been seeing Victor pass his knowledge along to others and become part of the continuous delivery ecosystem. After completing GSoC, volunteering at Spinnaker Gardening Days, and participating in several plugin projects with Armory engineers, Victor was ready to teach an in-depth workshop at Spinnaker Summit in October:
Through community events, Victor networked with DevOps experts and gained experience integrating MS Teams, GitHub, Drone and other services with Spinnaker using the plugin framework. At the Summit, he focused on the case study of integrating Spinnaker with the GitHub Dispatch Endpoint, with the goal of triggering a GitHub Actions workflow. With the goal of lowering the barrier to entry for Spinnaker plugins, his workshop walks viewers through a plugin development experience with a sample GitHub Dispatches project. In the video above, watch him build models and methods into a working plugin, taking steps such as:
- Consulting resources useful to Spinnaker plugin builders, such as the Plugin Creators Guide.
- Starting the plugin project with prerequisites and Armory’s PF4J RandomWait Stage, a starter which contains bootstrap required for quick project setup.
- Understanding how extensions to different Spinnaker services can be packaged together as submodules into a Gradle plugin bundle.
- Managing Spinnaker service dependencies through Kork, and other dependency management tasks.
- Extending Spinnaker’s Orca orchestration engine, which “connects the dots across the pipeline,” via the Orca API’s extension points.
- Extending the PF4J plugin to configure logging for development.
- Building a plugin class and entry point, to start the plugin and define setup actions.
- Providing a stage definition to connect the new stage to other stages within pipelines; understanding Spinnaker stage definitions and associated methods.
- Retrieving data, such as auth token and event type, from Spinnaker’s configuration manifest for use in a plugin.
Join Victor as he synthesizes everything he learned as a newcomer to Spinnaker Plugin development in 2020 into the workshop. If you are interested in working on your own GSoC project this year, you may decide to build an extension for Spinnaker using the same plugin framework. However, the sky is the limit, so bring your ideas, or get unblocked by reviewing our ideas on the GSoC page on Spinnaker.io. For architectural advice, help scoping your project, logistical answers, or moral support, reach out to Armory community organizers in the Spinnaker contributor experience channel to get connected with the mentor team.
As Victor explains in the workshop, developers can extend virtually any Spinnaker service. As a first step, determine if the interfaces you are looking to add functionality to have existing extension points. The friendly folks in the Platforms SIG can advise, or you can file an issue for recommendations on how a particular extension should be implemented. The wonder of GSoC, though, is that in addition to the usual channels for engaging with the Spinnaker community to innovate, you can also receive a stipend for Google for the summer, along with expert guidance from Armory engineers.
About Google Summer of Code
As a part of Google Summer of Code, student participants are paired with a mentor from the participating organizations, gaining exposure to real-world software development and techniques. Students have the opportunity to spend the break between their school semesters earning a stipend while working in areas related to their interests. In turn, we are able to identify and bring in new developers who implement new features and hopefully continue to contribute to open source even after the program is over. Most importantly, more code is created and released for the use and benefit of all.
Last year, Victor demonstrated to Armory that this project would indeed bring new faces and valuable perspectives to the project contributor table. Our friends in the Jenkins project have facilitated similar crossover from students to OSS visionaries in the past. Taking on a project is a fast track to becoming established in the CD Foundation’s practitioner community, and can help your tech career achieve lift off!
Next Steps For Applicants
Armory mentors have already been identified to work with YOU, or your favorite computing student, this summer! Visit the CD Foundations GSoC page for resources or next steps. Please reach out to us in the Contributor Experience SIG channel on Spinnaker Slack ASAP to express interest or propose a project idea, so we can help get you on your way.
The post Seeking 2021 Google Summer of Code Interns appeared first on Armory.
Top comments (0)