IBM Z How to get started with OPEN-SOURCE SOFTWARE
CDMX - Boston JAVIER PEREZ Open Source Program Strategist , IBM Z @jperezp_bos javierperez.mozello.com www.linkedin.com/in/javierperez 10+ years in open-source Solution Architect and Product Management background Led open-source projects at Appcelerator and Red Hat App Dev, Mobile, App Security, Cloud Native, SaaS offerings Voting Member of IBM Open-Source Technical Steering Committee Voting Member of Open Mainframe Project Technical Advisory Committee
Open-Source since 1955 3 SHARE : World’s first computer user group Founded in 1955 by users of the IBM 701 Shared technical details, programs, and documentation SHARE Program Library started collection and distribution of software
Brief History of Open-Source First all software was free software (1950s ~ 1960s) SHARE started sharing (1955) Unix OS and Programming Languages were free (1970s) CBT Tape organization created in (1975) cbttape.org Commercial Software and User Communities start (1980s) GNU General Public License (GPL) for free software (1989)
Brief History of Open-Source Linus Torvalds publishes Linux Kernel under GPL (1991) New Mozilla Foundation and Netscape browser is open-sourced (1998) Open-source model described in the "The Cathedral and the Bazaar” by Eric Raymond (1997-1999) Linus Torvalds creates Git in 2005 , GitHub founded in 2008 Microsoft buys GitHub for $7.8B (2018), IBM buys Red-Hat for $34B (2019) 2021 Open-source companies' valuation: MongoDB $25B, Elastic $14B, Databricks $28B (private), Cloudera $5.3B
What is Open-Source Software? Source code is publicly available Open to collaboration Source code available with a license that permits users to freely run, study, modify and redistribute Photo by Markus Spiske from Pexels
What’s in Open-Source Software? Code (and packaged form) Open-Source License README Contribution Guidelines Code of Conduct
Roles in Open-Source Software Maintainer Administrator, publish code, website, social media Committer Becoming a Committer in projects like Cordova, Node.js, Linux, and others is a highly regarded and respected role Contributor Opportunity to learn, join a community and meet people Photo by Procreator UX Design Studio on Unsplash
Open-Source Libraries and Dependencies Popular Open-Source Libraries have many contributors and are also reused by other OSS Depending on the Programming Language Open-Source Libraries can have from a few to 1000’s of dependencies There are Direct Dependencies and Transitive Dependencies
Contribute Upstream Company Sponsored or Individually Enhancements & innovations Testing, bug reports, suggest a feature Bug fixes Vulnerability fixes Port to new platform Graphic design & documentation Advocacy, give a talk, write a blog, marketing Modified code not contributed back becomes close code Photo by Andres Haro on Unsplash What to Contribute?
V1.1 Open-source Project V1.2 V1.3 V1.0 Enterprise Edition V1.1 Download Code changes and fixes Test Contribute upstream Download Upstream project Downstream Fewer changes and fixes Test Contribute upstream Download Fewer changes and fixes Downstream Upstream project Benefits of Upstreaming: Less code to maintain in house External reviews and feedback Your code stays in the latest versions of both open-source project and commercial product Demonstrates commitment to the project and can influence direction Open-Source Best Practice: Upstream Code
To start free or at a low cost. Experiment & fail fast Access to latest innovation without ”lock-in” Faster pace of bugs and vulnerabilities fixes Many support sources via documentation, community forums/portals, videos, blogs, etc. Easier to recruit full stack developers, more proficient developers Photo by Damir Kopezhanov on Unsplash Why companies invest in Open-Source?
Survey: 3,400 Developer Consider open-source software better than proprietary software Developer Managers say open-source knowledge is a factor for hiring decisions Agree that contributions impress potential employers 94 % 65 % 87 % Photo by Michèle Eckert on Unsplash Source: 2021 O'Reilly Media survey, commissioned by IBM
15 Companies Contributing to Open-Source Source: GitHub research Apr29 2021 https://solutionshub.epam.com/OSCI/ Companies with the Most Active Contributors
Technical Support Commercial Product Technical Support Support contract or subscription that includes Tech Support Includes all commercialized open-source software ( e.i. RHEL, Ansible, etc.) and open-source used by the commercial product Open-Source Software Community Support Community driven, discussion forums, documentation and sample code No commitments, support contracts or Service Level Agreements (SLAs) Members of the community can assist addressing bugs All contributions are upstreamed back to the open-source project Commercial Open-Source Support IBM TSS Tech Support for selected open-source packages Other vendors offer tech support for open-source packages ( OpenLogic , Quansight , etc.)
The Though Questions 17 Why would I give away my effort, time, expertise? Cultural change , community, innovation, collaboration, build something larger, ego, and more “I would never use open-source software in my production environment” Unless there’s no need for Linux or an open-source programming language or library Most production environments use open-source software Image by Reimund Bertrams from Pixabay
The Though Questions 18 What if the open-source project is abandoned? Most software is deprecated at some point, do your research , adopt growing projects and contribute “My support will be dependent on the goodwill of open-source contributors” Open-source are the building blocks , not complete enterprise applications. The open-source movement is not a trend has decades of growth Photo by Ricardo Esquivel from Pexels
1.6M + 889 packages per day 406K + 327 packages per day 308K + 101 packages per day 270K + 177 packages per day 257K + 171 packages per day 166K + 15 packages per day Source: May 18, 2021 www.modulecounts.com Millions of Open-Source Projects
Open-Source Ecosystem for IBM Z & LinuxONE Linux Distributions & Virtualization Networking & Monitoring Cloud & Container Services Languages & Runtimes DevOps/Automation Big Data, Observability, Analytics Databases & Storage Middleware & others ClefOS www.ibm.com/community/z/open-source-software / hub.docker.com Memcached More: https://bit.ly/3qJwwXK SUSE docker Terraform Chef GitLab Splunk MongoDB Couchbase CoackroachDB MySQL RabbitMQ AI tools & frameworks Zabbix Transform Serving
Build or compile the package in the corresponding programming language and Linux distribution If using little-endian memory allocation, it has to support big-endian memory allocation Same considerations apply to dependencies, all libraries Optimization to boost performance and security using s390x features is not required but recommended S390x Porting Considerations
Sample Open-Source DevOps Workflow All available for Linux on IBM Z and LinuxONE
Collect Data Organize Data Analyze Data Machine Learning Deep Learning Deploy Data Maintain Model Data Asset eXchange (DAX) Apache Spark Model Asset eXchange (MAX) AIF360 AIX360 ART AIF360 AIX360 ART KF Serving Kubeflow Kubeflow Kubeflow Apache Kafka Sample AI Dev Lifecycle & Open-Source
NumFOCUS projects: NumPy, Pandas, Jupyter, Scikit Learn, SciPy, and others AI Open-Source included in IBM Products
From Open-Source to Red Hat Offerings
Growing Open-Source Ecosystem on z/OS zECS Artifactory-vault binutils Bison Bzip2 cURL Diffutils Galasa GCC Glibc Gzip Libssh2 M4 Make Mktemp OpenSSL Sed Sudo Unzip Vim zECS Zip Zlib zML zos-native zTron ZEBRA
What not to Open-Source Keys and credentials Customer data Employee data Patented intellectual property Code owned by other companies or entities (unless it is open-source with appropriate license) Photo by Jon Tyson on Unsplash
Takeaways Open-source is here to stay , join us We want to grow our community of users and contributors More open-source tooling, integrations and plugins create stickiness in the products Open-source promotes improvement on architecture and coding practices Photo by Stephen Picilaidis on Unsplash
Recommended Reads 31 Andreessen Horowits : Open Source: From Community to Commercialization Mozilla: A Frameworrk for Purposeful Open Source The Linux Foundation: Starting and Open Source Program in your Company Opensource.com : 6 motivations for consuming or publishing open source software GitHub Yearly Report: The State of the Octoverse IBM Course, Intro to Open-Source: cognitiveclass.ai /courses/introduction-to-open-source
Final Thought
Javier Perez | Open Source Strategist | IBM Z @ jperezp_bos javierperez.mozello.com www.linkedin.com/in/javierperez Thank you!