/DevOpsE

DevOps for Embedded

Creative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

DevOps for Embedded (Systems, Developers) - DevOpsE

GitHub last commit (branch) PRs Welcome GitHub License

DevOpsE is a collection of DevOps and CI/CD practices for embedded systems, including but not limited to microcontroller based systems and FPGAs. This repo mainly contains documentation on various topics (methodologies, personal experiences and recommendations, tools, etc.) related to DevOps and CI/CD concepts rather than tool source codes.

Sections

The content lives here

About me and the goal 🤓

I am Alper Yazar and I define myself as a "Full Stack" Electronics Engineer, since I am an electronics engineer officially (graduated from electronics engineering) and currently I am working on a variety of fields related to electronics, including embedded systems and FPGAs. Although I graduated from electronics engineering, I am very curious about technological developments in computer engineering and software. Improving processes and tools by transferring concepts and methods such as DevOps and CI/CD, which first emerged in the software field, to the subjects I work on, has become my hobby in recent years. I have made progress on these topics for several years with the support of my teammates. With this open source repo, I want to transfer my knowledge, help people who are not aware of these concepts and may be to create a community.

Projects with FPGAs and embedded systems are mainly developed by electronics people, not computer people, at least according to my observation. This is especially true for FPGA designs. I also observe that, electronics engineers are more reluctant to change their flows, tools than computer people. One thing I observe that, at least true for universities in my country, the electronics engineering curriculum requires students to do "invent" things from the bottom, do projects with teams with 2 students. On the other hand, computer engineering students have to use existing libraries and do more collaborative projects. And when they graduate, these 4-year habits they have acquired continue in professional life.

Another difference comes from the tools used. Tools like IDEs are different for software development and FPGA/embedded development. For example, when you create a Node.js project, a .gitignore file is generated automatically and the project becomes ready to work with Git at the first place. On the other hand, if you are an FPGA engineer working with Vivado, a tool from AMD (Xilinx), you have to spend an effort if you want a Git integration, more or less. In todays FPGA world, SVN is still used by teams. But using SVN instead of Git in software projects is very rare. This doesn't make SVN a necessarily bad thing, but my point is to show that tools and flows followed by electronics people are generally not up-to-date.

From the perspective of methodologies and tooling, embedded engineering is ahead of FPGA engineering. One reason is that the tools (like C compilers, editors) used by embedded engineers are close to tools used by "pure" software developers. Another reason is that there are a significant number of computer engineers working in the embedded field. On the other hand, most of the FPGA development jobs are occupied by electronics engineers and this worsens the situation in terms of modernity of tools and flows (As I said, I am an electronics engineer too, but this is the case, sorry guys! 🤷)

In summary, my goal is to share my thoughts and my experience and hopefully create a small community with the interested people.

Support and Contribute 🥳

PRs Welcome

I certainly don't claim any expertise on this subject, and I already accept that there may be many parts I don't know or have done wrong. As I said, this is a hobby project for me. I definitely need your support to make this repo better. If the content was useful, you can share it with your friends. If there are issues to add or correct, you can create a Pull Request. If there is content that you think needs to be corrected, you can create an issue, or if you want to ask questions, you can start a new discussion.

License 📝

GitHub License

Free Cultural Approved Work CC BY-SA 4.0

The content is licensed under Creative Commons BY-SA 4.0. In summary:

This license requires that reusers give credit to the creator. It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, even for commercial purposes. If others remix, adapt, or build upon the material, they must license the modified material under identical terms.

Check LICENSE or Creative Commons Website for further information.

SPDX-License-Identifier: CC-BY-SA-4.0