[pt-BR] Open Source Friday Brasil 🇧🇷✨ com Manoel Campos mantenedor do CloudSim Plus
By GitHub
Key Concepts
- Open Source Friday: A program by Get Brasil that showcases Brazilian open-source maintainers and their projects.
- Manuel Campos: Guest speaker, professor, and maintainer of the CloudSim Plus project.
- CloudSim Plus: A fork of the CloudSim simulator, used for scientific research in cloud computing, particularly for simulating resource allocation and energy consumption.
- CloudSim: The original cloud computing simulator project.
- Fork: A copy of a repository that a user has write access to, so they can make their own independent changes.
- JVM (Java Virtual Machine): The runtime environment for Java and other JVM-compatible languages.
- MIPS (Millions of Instructions Per Second): A measure of processor speed.
- Cloudlet: A term used in CloudSim to represent an application or a task to be executed.
- Utilization Model: Defines how an application consumes resources (CPU, RAM, bandwidth) over time.
- Load Balancing: Distributing network traffic across multiple servers or resources to optimize resource utilization and prevent overload.
- Horizontal Load Balancing: Adding more instances of the same resource (e.g., cloning VMs).
- Vertical Load Balancing: Increasing the capacity of existing resources (e.g., adding more CPU cores to a VM).
- Trace Files: Files containing historical resource consumption data from real-world cloud infrastructures.
- GitHub Educational: A program that provides free access to GitHub features, including Copilot, for educational institutions.
- GitHub Copilot: An AI-powered code completion tool.
Manuel Campos: Beyond Technology
Manuel Campos describes himself as a father, husband, and professor with 22 years of teaching experience. He lives in Tocantins, a region known for its heat. He is married, with a son finishing his master's in computation, and his wife is expecting their second child. Manuel identifies as an "eternal nonconformist," always seeking self-improvement and believing that things can always be better. This philosophy extends to his teaching, where he aims to inspire students to be better individuals, not just technically proficient. His wife, Raíça Oliveira, is a supporter of his work, as is his son, Breno, who also contributes to the conversation. His dog, Luk, is also present.
Technical Background and Specialization
Manuel has been in the technology field for 25 years, starting his university studies in 1999. He initially pursued technology due to a lack of other options but quickly fell in love with it. He has worked with various languages and technologies but has specialized in Java, working with it since Java 6. He appreciates Java's evolution, particularly how recent versions (like Java 25) have simplified the language, making it more accessible for beginners, especially in an educational context. He notes that Java's verbosity, such as the requirement for public static void main(String[] args), was a barrier for new learners, but these ceremonies are being eliminated.
While Java is his specialization, Manuel also expresses a liking for JavaScript and TypeScript, and enjoys working with React and Next.js for front-end development. However, he admits to having "zero ability with design" and prefers to transform designs into code rather than create them.
Musical Inclinations
Manuel humorously relates to the idea that many developers are "frustrated musicians." He owns a guitar, inherited from his father-in-law, which serves more as decoration than a frequently played instrument. He took a few lessons years ago but abandoned them, expressing a desire to seriously learn an instrument in the future.
Entry into Open Source
Manuel's journey into open source began during his master's degree at UnB in 2008, where he studied electrical engineering. He always had a passion for sharing knowledge and was reluctant to patent his work, believing it should be freely available. He was working on frameworks and applications for digital TV, a burgeoning field in Brazil at the time. He found that many people struggled with a lack of tools, and he was constantly producing solutions.
His initial method of sharing was by zipping his source code and posting links on his personal page. The turning point came when a friend introduced him to GitHub around 2018. He found the platform "fantastic" and considers GitHub his "social network." He also mentions using GitHub Copilot daily, finding it invaluable for optimizing coding tasks and live coding sessions in his classes.
Master's Degree and Digital TV Research
Manuel's master's degree at UnB was somewhat serendipitous, as he joined a group of colleagues heading there. The theme of digital TV interested him because it was a new and evolving field. He was motivated by the opportunity to work on something significant. His research involved developing applications and libraries for digital TV, which led to him winning an international award for digital TV applications in Latin America.
He explains that digital TV applications, distinct from Smart TVs, are transmitted directly by broadcasters. He highlights that these applications were often developed using Lua and NCL, two Brazilian languages developed at PUC Rio. Lua is known for its use in scripting and games (like World of Warcraft) due to its simplicity and lightness. NCL is a declarative language, similar to HTML. Although he no longer works in this specific area, having moved to cloud computing for his doctorate, he found the experience highly satisfying and believes he contributed meaningfully to the community.
The CloudSim Plus Project
Manuel's involvement with CloudSim Plus also stemmed from a desire to improve existing tools. He initially contributed to the original CloudSim project around 2016 during his doctorate in Portugal. He found the project's architecture hindered its evolution and that his philosophical approach to development differed from the original team's. After unsuccessful attempts to align with the original maintainers, he decided to create an independent fork, CloudSim Plus.
CloudSim Plus is a simulator for cloud computing, used for scientific research. It allows users to simulate various aspects of cloud infrastructure, including resource allocation, energy consumption, and the performance of new algorithms. Manuel emphasizes that simulation is crucial in fields like engineering and computing to reduce costs and risks associated with real-world experimentation.
He explains that CloudSim Plus allows users to simulate complex cloud environments, from tens or hundreds of data centers with millions of virtual machines, on a single personal computer. The tool is used by educational and research institutions worldwide to test new resource management strategies, particularly for optimizing energy consumption in data centers.
CloudSim Plus: Code Demonstration and Features
Manuel shared his screen to demonstrate the CloudSim Plus code, written in Java. He highlighted the benefits of Java 25, which allows for simpler code structures, such as directly creating a main method without the need for a class wrapper.
Key features and concepts demonstrated include:
- Simulation of Virtual Machines (VMs) and Containers: The framework treats VMs and containers similarly, as "black boxes," allowing for the simulation of their resource usage (memory, CPU, bandwidth).
- Host and Data Center Configuration: Users can define the specifications of physical servers (hosts) within a data center, including RAM, bandwidth, storage, and CPU cores (Processing Units or PUs). The simulation checks if requested VM resources fit within the available host resources.
- Broker: A component responsible for managing client requests for resource allocation.
- Cloudlets (Applications): Users can define applications (cloudlets) and specify how they will consume resources using utilization models.
- Utilization Models: These models can be constant, progressive, or random, defining the resource consumption patterns of applications. Crucially, users can also import trace files from real cloud providers (like Google, Microsoft, Alibaba) to simulate the behavior of actual applications.
- Energy Consumption Simulation: The tool can simulate the energy consumption of physical hosts based on their CPU usage and real-world server power consumption data.
- Algorithm Testing: CloudSim Plus enables researchers to develop and test new algorithms for resource allocation and load balancing, comparing their efficiency in terms of energy consumption and performance metrics like response time.
- Load Balancing Support: The framework natively supports horizontal load balancing (cloning VMs/containers) and vertical load balancing (increasing the capacity of existing VMs/containers).
Manuel also mentioned that while the core framework is in Java, it can be used with other JVM-compatible languages like Kotlin and Scala.
Contribution and Future of CloudSim Plus
Manuel encourages contributions to CloudSim Plus, acknowledging that as a large framework developed over nearly a decade, it requires community involvement. He has created a contribution guide on GitHub to assist new contributors, explaining the process from forking the repository to submitting pull requests. He emphasizes that contributions can take various forms, including starring the repository, opening issues, and providing feedback.
He advises potential contributors to open an issue first to discuss their ideas before implementing them, ensuring alignment with the project's goals. He has seen instances where users developed features that, while impressive, were outside the project's scope, and he encourages them to create separate, independent projects if their ideas diverge significantly. He notes that his tool has inspired the creation of at least 10 other projects, often graphical interfaces built on top of CloudSim Plus.
Key Arguments and Perspectives
- Open Source Philosophy: Manuel strongly advocates for sharing knowledge and making tools freely available, a principle that guided his early academic work and his approach to open-source development.
- Continuous Improvement: His "eternal nonconformist" mindset drives him to constantly seek better ways of doing things, both in his teaching and in software development.
- Accessibility of Technology: He believes that modern programming languages and tools should be accessible to beginners, and he appreciates how Java has evolved to become more user-friendly.
- Importance of Simulation: Manuel highlights the critical role of simulation in research and development across various fields, enabling cost-effective and risk-free experimentation.
- Community-Driven Development: He recognizes the necessity of community contributions for the sustained growth and improvement of open-source projects.
Notable Quotes
- "Eu sou uma pessoa apaixonada pelo que eu faço e eu acho que eu sou um eterno inconformado." (I am a person passionate about what I do and I think I am an eternal nonconformist.)
- "Eu sempre estou à procura de procurar ser uma pessoa melhor, ser um profissional melhor e sempre tentar eu nunca tô conformado com o jeito que as coisas são. Eu acho que as coisas sempre podem ser melhores." (I am always looking to be a better person, a better professional, and always trying; I am never conformist with the way things are. I think things can always be better.)
- "GitHub é a minha rede social." (GitHub is my social network.)
- "Se o código funciona, foi a gente. Se quebra, é exato." (If the code works, it was us. If it breaks, it's exact.) - Attributed to his son, Breno.
- "Sonhar grande dá o mesmo trabalho que sonhar pequeno." (Dreaming big takes the same effort as dreaming small.)
- "Dar uma estrela já é uma contribuição." (Giving a star is already a contribution.)
Conclusion and Takeaways
The Open Source Friday session with Manuel Campos provided a deep dive into his personal journey, his technical expertise in Java and cloud computing, and his significant contribution to the open-source community with CloudSim Plus. The discussion underscored the importance of sharing knowledge, the evolution of programming languages, and the practical applications of simulation in research. Manuel's passion for continuous improvement and his commitment to fostering a collaborative open-source environment were evident throughout the conversation. The session served as an educational experience, demystifying complex technical concepts and encouraging viewers to engage with open-source projects.
Chat with this Video
AI-PoweredHi! I can answer questions about this video "[pt-BR] Open Source Friday Brasil 🇧🇷✨ com Manoel Campos mantenedor do CloudSim Plus". What would you like to know?