This document provides an overview of contributing to OpenStack. It begins with introducing OpenStack and its various projects. It then focuses on the Solum project, describing its goals, architecture and abstractions. The remainder discusses the tools and processes for contributing code to OpenStack, including setting up a development environment, submitting patches for review, ensuring tests pass, and following best practices. The presentation aims to educate contributors on how to effectively participate in OpenStack development.
Solum - OpenStack PaaS / ALM - Austin OpenStack summitdevkulkarni
Solum is a native Platform-as-a-service for OpenStack providing capabilities for application lifecycle management (testing, building, deploying, scaling).
Slack Bot: upload NUGET package to ArtifactorySergey Dzyuban
What it Jenkins CI automation to upload file to Artifactory failed? And users need some quick and safe mechanism do do upload manually ? Slack Bot will help to archive user experience and will add a bit of automation.
Continuous delivery is a powerful concept, but hard to achieve. One of the challenges is automating the setup of environments and the deployment of the Java EE applications. We have looked at and used quite some tools like for instance Chef, Puppet, Vagrant and Nolio. All tools had one thing in common: we had never used them. Why should we invest time in mastering those tools? There is a perfect alternative in Jenkins, a tool most developers are familiar with. Besides the basic Jenkins buildserver capabilities it offers quite some useful plugins like the Build Pipeline plugin. To setup environments the popular Docker project is used. Docker allows you to create containers from any application. Only some knowledge is required for the setup of the containers. The rest of the configuration is done through commands most people are quite familiar with.
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
Solum - OpenStack PaaS / ALM - Austin OpenStack summitdevkulkarni
Solum is a native Platform-as-a-service for OpenStack providing capabilities for application lifecycle management (testing, building, deploying, scaling).
Slack Bot: upload NUGET package to ArtifactorySergey Dzyuban
What it Jenkins CI automation to upload file to Artifactory failed? And users need some quick and safe mechanism do do upload manually ? Slack Bot will help to archive user experience and will add a bit of automation.
Continuous delivery is a powerful concept, but hard to achieve. One of the challenges is automating the setup of environments and the deployment of the Java EE applications. We have looked at and used quite some tools like for instance Chef, Puppet, Vagrant and Nolio. All tools had one thing in common: we had never used them. Why should we invest time in mastering those tools? There is a perfect alternative in Jenkins, a tool most developers are familiar with. Besides the basic Jenkins buildserver capabilities it offers quite some useful plugins like the Build Pipeline plugin. To setup environments the popular Docker project is used. Docker allows you to create containers from any application. Only some knowledge is required for the setup of the containers. The rest of the configuration is done through commands most people are quite familiar with.
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
Joomla Continuous Delivery with Docker on Joomla Day Bangkok 2014.
I did demo to show how it looks like on that session too. In case of anyone interested on how I did it. Please check README.md on my repository here https://git.winginfotech.net/continuous-delivery/cd-joomla/tree/master
For whoever wants to see the real demo. Please see it here https://www.youtube.com/watch?v=nFzulhEt3As at the minute around after 19.30. Demo session in Thai and hope there will be a chance that I can do presentation in English soon :)
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
Creating and managing environments for development and R&D activities can be cumbersome. Quickly spinning up databases and web servers, using physical resources in a smart way, installing application components, and having all the elements talk to each other can take a lot of time. This session takes you by the hand and introduces you to Vagrant and Oracle VM VirtualBox for quickly provisioning VMs in which Docker containers run platform components, applications, and microservices—all set up by use of Puppet and interacting with Git(Hub). You’ll start from zero on your laptop and end with both local and public cloud environments in which to develop, test, and run various types of applications. Lean governance and evolution of the environments are discussed too.
The Jenkins open source continuous integration server now provides a “pipeline” scripting language which can define jobs that persist across server restarts, can be stored in a source code repository and can be versioned with the source code they are building. By defining the build and deployment pipeline in source code, teams can take full control of their build and deployment steps. The Docker project provides lightweight containers and a system for defining and managing those containers. The Jenkins pipeline and Docker containers are a great combination to improve the portability, reliability, and consistency of your build process.
This session will demonstrate Jenkins and Docker in the journey from continuous integration to DevOps.
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
Презентация подготовлена по материалам выступления Игоря Сычёва на витебском MiniQ#17, который был проведен 25 июля 2019:
https://vk.com/miniq17;
https://communities.by/events/miniq-vitebsk-17.
Про доклад:
Мы реализуем CI/CD на базе Azure DevOps для нашего приложения в МикроСервисном стиле, которое хостим на Azure Kubernetes Services на протяжении более чем 6 месяцев. Мы хотим поделиться нашими успехами и ошибками в CI/CD с разработчиками и DevOps инженерами. Мы продемонстрируем наши подходы и реализации к Build/Release, созданию сред тестирования с использованием ARM шаблонов, согласования установки приложения на рабочие среды и эволюцию этих процессов со временем.
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire dotCloud
Docker is an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.
Using NuGet the way you should - TechDays NL 2014Maarten Balliauw
Consuming NuGet packages, that’s what everyone does. Open source projects create NuGet packages and post them on NuGet.org. Meanwhile, all of us are still working with shared projects and fighting relative paths, versioning and so on. In this talk, we’ll use Visual Studio, NuGet and TeamCity to work with NuGet the way you should. Project references must die! Add Package Reference and good continuous integration is everything you will ever need.
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeDamien Duportal
Né Hudson en 2004 (cf. http://kohsuke.org/2011/01/11/bye-bye-hudson-hello-jenkins/), le projet Jenkins vient de franchir un cap majeur : la version Jenkins 2.0 (cf. https://groups.google.com/forum/#!msg/jenkinsci-dev/vbXK7JJekFw/BlEvO0UxBgAJ) !
Cette étape majeure réussit à concilier la gestion de l'ancien, et la transition vers des pratiques de déploiement continu plus modernes.
Parmi les nouveautés, la gestion des Pipeline-as-a-Code et l'intégration de Docker sont deux éléments dont vous allez pouvoir tirer de nombreux bénéfices.
Si vous êtes intéressés pour un exemple concret de migration depuis un Jenkins 1.x vers un flux basé sur Docker et Pipeline avec Jenkins 2.0, cette session est faite pour vous !
L'exemple suivi sera un projet Java-Maven "type", stocké sur un dépôt Git, bénéficiant de tests et d'analyses, en "multi-job enchaînés", que nous ferons glisser dans un "Jenkins Pipeline", configuré via un fichier du dépôt Git, en mode "livraison continue" via Docker.
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé MochtarXebia Nederland BV
Scalable QA with Docker
Are you tired of maintaining all your Jenkins jobs running Selenium WebDriver tests connecting to several Jenkins slaves and the inconsistency of the setup? We need to become aware that it's inefficient to keep all the environments, browsers and selenium web drivers up to date manually.
During this session the attendees will be introduced to setting up scalable and solid Selenium Grids. We’ll also teach you how to write maintainable and scalable Selenium / WebDriver tests.
Lcu14 312-Introduction to the Ecosystem day Linaro
Introduction to the Ecosystem day by LEG Director, Andrea Gallo.
---------------------------------------------------
★ Resources ★
Zerista: hhttp://lcu14.zerista.com/event/member/140927
Presentation: http://www.slideshare.net/linaroorg/lcu14-312-introduction-to-the-ecosystem-day
Video: https://www.youtube.com/watch?v=earxQS-z_tk&list=UUIVqQKxCyQLJS6xvSmfndLA
---------------------------------------------------
★ Event Details ★
Linaro Connect USA - #LCU14
September 15-19th, 2014
Hyatt Regency San Francisco Airport
---------------------------------------------------
http://www.linaro.org
http://connect.linaro.org
Joomla Continuous Delivery with Docker on Joomla Day Bangkok 2014.
I did demo to show how it looks like on that session too. In case of anyone interested on how I did it. Please check README.md on my repository here https://git.winginfotech.net/continuous-delivery/cd-joomla/tree/master
For whoever wants to see the real demo. Please see it here https://www.youtube.com/watch?v=nFzulhEt3As at the minute around after 19.30. Demo session in Thai and hope there will be a chance that I can do presentation in English soon :)
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
Creating and managing environments for development and R&D activities can be cumbersome. Quickly spinning up databases and web servers, using physical resources in a smart way, installing application components, and having all the elements talk to each other can take a lot of time. This session takes you by the hand and introduces you to Vagrant and Oracle VM VirtualBox for quickly provisioning VMs in which Docker containers run platform components, applications, and microservices—all set up by use of Puppet and interacting with Git(Hub). You’ll start from zero on your laptop and end with both local and public cloud environments in which to develop, test, and run various types of applications. Lean governance and evolution of the environments are discussed too.
The Jenkins open source continuous integration server now provides a “pipeline” scripting language which can define jobs that persist across server restarts, can be stored in a source code repository and can be versioned with the source code they are building. By defining the build and deployment pipeline in source code, teams can take full control of their build and deployment steps. The Docker project provides lightweight containers and a system for defining and managing those containers. The Jenkins pipeline and Docker containers are a great combination to improve the portability, reliability, and consistency of your build process.
This session will demonstrate Jenkins and Docker in the journey from continuous integration to DevOps.
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
Презентация подготовлена по материалам выступления Игоря Сычёва на витебском MiniQ#17, который был проведен 25 июля 2019:
https://vk.com/miniq17;
https://communities.by/events/miniq-vitebsk-17.
Про доклад:
Мы реализуем CI/CD на базе Azure DevOps для нашего приложения в МикроСервисном стиле, которое хостим на Azure Kubernetes Services на протяжении более чем 6 месяцев. Мы хотим поделиться нашими успехами и ошибками в CI/CD с разработчиками и DevOps инженерами. Мы продемонстрируем наши подходы и реализации к Build/Release, созданию сред тестирования с использованием ARM шаблонов, согласования установки приложения на рабочие среды и эволюцию этих процессов со временем.
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire dotCloud
Docker is an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.
Using NuGet the way you should - TechDays NL 2014Maarten Balliauw
Consuming NuGet packages, that’s what everyone does. Open source projects create NuGet packages and post them on NuGet.org. Meanwhile, all of us are still working with shared projects and fighting relative paths, versioning and so on. In this talk, we’ll use Visual Studio, NuGet and TeamCity to work with NuGet the way you should. Project references must die! Add Package Reference and good continuous integration is everything you will ever need.
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeDamien Duportal
Né Hudson en 2004 (cf. http://kohsuke.org/2011/01/11/bye-bye-hudson-hello-jenkins/), le projet Jenkins vient de franchir un cap majeur : la version Jenkins 2.0 (cf. https://groups.google.com/forum/#!msg/jenkinsci-dev/vbXK7JJekFw/BlEvO0UxBgAJ) !
Cette étape majeure réussit à concilier la gestion de l'ancien, et la transition vers des pratiques de déploiement continu plus modernes.
Parmi les nouveautés, la gestion des Pipeline-as-a-Code et l'intégration de Docker sont deux éléments dont vous allez pouvoir tirer de nombreux bénéfices.
Si vous êtes intéressés pour un exemple concret de migration depuis un Jenkins 1.x vers un flux basé sur Docker et Pipeline avec Jenkins 2.0, cette session est faite pour vous !
L'exemple suivi sera un projet Java-Maven "type", stocké sur un dépôt Git, bénéficiant de tests et d'analyses, en "multi-job enchaînés", que nous ferons glisser dans un "Jenkins Pipeline", configuré via un fichier du dépôt Git, en mode "livraison continue" via Docker.
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé MochtarXebia Nederland BV
Scalable QA with Docker
Are you tired of maintaining all your Jenkins jobs running Selenium WebDriver tests connecting to several Jenkins slaves and the inconsistency of the setup? We need to become aware that it's inefficient to keep all the environments, browsers and selenium web drivers up to date manually.
During this session the attendees will be introduced to setting up scalable and solid Selenium Grids. We’ll also teach you how to write maintainable and scalable Selenium / WebDriver tests.
Lcu14 312-Introduction to the Ecosystem day Linaro
Introduction to the Ecosystem day by LEG Director, Andrea Gallo.
---------------------------------------------------
★ Resources ★
Zerista: hhttp://lcu14.zerista.com/event/member/140927
Presentation: http://www.slideshare.net/linaroorg/lcu14-312-introduction-to-the-ecosystem-day
Video: https://www.youtube.com/watch?v=earxQS-z_tk&list=UUIVqQKxCyQLJS6xvSmfndLA
---------------------------------------------------
★ Event Details ★
Linaro Connect USA - #LCU14
September 15-19th, 2014
Hyatt Regency San Francisco Airport
---------------------------------------------------
http://www.linaro.org
http://connect.linaro.org
How do you automate the non-existing deployment routines of an organization with over 100 different customers, each having their own environments? How do you convince the leaders, developers and customers to give you the resources needed in order to automate everything? Is it really possible to introduce a deployment routine that works for everyone?
In less than six months, Karoline transformed the deployment routines at Epinova by introducing Octopus Deploy to the organization. She will take you through the steps needed to get started, the pitfalls along the way, and success that Octopus Deploy has become.
In this workshop we will start out by installing an Octopus Deploy server and tentacle on your laptop, before looking at the basic concepts of Environments, Machines, Roles and Projects. You will create a project of your own and deploy this using Octopus Deploy before we round off by looking at the advanced topics of Script modules, Step templates, Variable sets and Retention Policies.
At the end of this workshop, you'll have all the knowledge you need in order to create a more efficient and failproof deployment process for your project. Keep calm and deploy to production!
How to integrate_custom_openstack_services_with_devstackSławomir Kapłoński
Presentation about how to configure and use DevStack to deploy all-in-one OpenStack cluster for development and testing purpose.
It also shows how to integrate own OpenStack service with DevStack using DevStack's plugins system
Slides of Maxime Petazzoni's talk at the Palo Alto Docker Meetup on September 1st, 2015. Discusses how we use Docker to power our software development lifecycle and run our production environments, as well as how to monitor Dockerized deployments and applications, in particular with SignalFx.
Maxime Petazzoni, Software Engineer at SignalFx, presents how we use Docker and how we monitor containers in production.
SignalFx has been using using Docker since November 2013. We have running Docker in prod ever since we’ve had a “prod” and back when Docker’s README said “DO NOT RUN IN PRODUCTION”.
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)ITCamp
OpenStack is not only the leading open source cloud computing project, it also features one of the most advanced code review and continuous integration (CI) frameworks.
Since Hyper-V is one of the main compute options available in OpenStack, it required the development of a dedicated infrastructure for CI testing, which is hosted by Microsoft in Cambridge, MA and mantained by Microsoft and Cloudbase Solutions.
Building this infrastructure was no easy task: it features full Puppet based automation with almost 200 physical hosts, Jenkins, a KVM based OpenStack cloud that deploys nested OpenStack Hyper-V clouds, more than 2000 integration tests executed for each run, hundreds of times a day, LogStash and ElasticSearch logging running on Azure and more.
During this session we’ll be able to show how it works and to dive into all the technical and architectural choices we made.
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
In this talk you will learn how to set up an Alfresco SDK 3.0 multi module project that could be used in a larger consulting project context. Extension modules will be standalone and versioned and released independently in the Nexus 3 Repository Manager. The talk also includes a look at defining a Parent POM and an Aggregator POM for your SDK 3 project solution.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Corporate Management | Session 3 of 3 | Tendenci AMS
Contributing to OpenStack
1. Tutorial on Contributing to
OpenStack
Dr. Devdatta Kulkarni
PTL, OpenStack Solum
devdatta.kulkarni@rackspace.com
2. Agenda
• Part I
– Introductions
– Introduction to OpenStack
• Part II
– Deep dive of a OpenStack project - Solum
• Part III
– Contributing to OpenStack
– OpenStack CI system
– Development best practices
– Hands-on exercise
• Questions and Answers
3. Agenda
• Part I
– Introductions
– Introduction to OpenStack
• Part II
– Deep dive of a OpenStack project - Solum
• Part III
– Contributing to OpenStack
– OpenStack CI system
– Development best practices
– Hands-on exercise
• Questions and Answers
4. Introduction
• Me
– Dr. Devdatta Kulkarni
– I go by Devdatta or Dev
– Working at Rackspace USA
– First contributor on Solum
– Currently Project Team Lead (PTL) of Solum for Mitaka cycle
– PhD, University of Minnesota Minneapolis
• You
6. What is OpenStack?
A family of “open” projects that together enable different
aspects of cloud computing
Openness of OpenStack
https://wiki.openstack.org/wiki/Open
• Open source
• Open design
• Open development
• Open community
7. OpenStack family
• Family of projects enabling different aspects of cloud computing
– Authentication and authorization layer
• Keystone
– Infrastructure-as-a-service layer
• Nova, Glance
– Storage layer
• Swift, Cinder
– Networking layer
• Neutron
– Platform-as-a-service layer
• Solum, Heat, Murano, Mistral, Trove
• Project types
– OpenStack big tent vs. OpenStack related projects
8. OpenStack by numbers
• 49 projects in OpenStack big tent
• Several hundred organizations involved
• Several thousand developers participating
9. Agenda
• Part I
– Introductions
– Introduction to OpenStack
• Part II
– Deep dive of a OpenStack project - Solum
• Part III
– Contributing to OpenStack
– OpenStack CI system
– Development best practices
– Hands-on exercise
• Questions and Answers
10. What is Solum?
OpenStack project that provides easy mechanism for application
developers to deploy and run their applications on OpenStack starting
from application’s source code
Why should you care? (the value proposition)
– For operators, Solum provides ability to make your OpenStack cloud more
useful for your clouds’ application developers by simplifying the process of
deploying applications to it
– For developers, Solum provides an easy-to-use platform for building, testing,
and deploying applications on OpenStack clouds
11. Project goals
Application Stack Flexibility
Ability to support applications written in different languages and using different application
frameworks
Developer Productivity
Ability to perform CI/CD, integration with github
Add-On Services Extensibility
Ability to support different add-on services
Application Portability
Ability to deploy applications across different OpenStack clouds (use native OpenStack
services)
15. Solum abstractions - Languagepack (LP)
• Docker image which contains application specific build and runtime
libraries
• A LP needs to implement Solum’s languagepack contract
A well-known file available at a known location on the languagepack image
/solum/bin/build.sh
• How to build a LP?
Dockerfile
• Operator-defined or user-defined
16. Solum abstractions - Languagepack Example: Python
FROM ubuntu:precise
MAINTAINER Murali Allada
<murali.allada@rackspace.com>
RUN apt-get -yqq update
RUN apt-get -yqq install python-pip
RUN apt-get -yqq install python-dev
COPY build.sh /solum/bin/
https://github.com/rackspace-solum-samples/solum-languagepack-python
#!/bin/bash
# Check if pip is installed
pip help
[[ $? != 0 ]] && echo python-pip is
not installed. && exit 1
# Install app dependencies
cd /app
pip install -r requirements.txt
build.shDockerfile
17. Solum abstractions - Deployment Unit (DU) (1/2)
• Docker image that is formed from the languagepack image with
application’s source code added to it
DU = LP + application source code
• Solum guarantees the DU contract
Application source code available at a known location on the DU image
/app
• How to build a DU?
– Construct Dockerfile with languagepack as the base image, application source code
injected, run command as the entry point
– Build the DU image from this Dockerfile
18. Solum abstractions - Deployment Unit (DU) (2/2)
• Building a DU
– Start from the specified languagepack LP
– Specify execution of languagepack’s ‘build.sh’
– Inject application source code
– Use the run command specified in app definition as the default Entrypoint to
run the DU
• LP and DU storage
Glance, Swift, Docker registry
18
19. Solum abstractions - Workflow
• Abstraction to represent execution of application deployment
consisting of one or more workflow stages
• Supported workflow stages
– Build DU (and store it for future use)
– Run unit tests, build DU
– Run unit tests, build DU, deploy DU (if unit tests pass)
– Build DU, deploy DU
– Deploy a previously built DU (not yet available)
• A workflow can be triggered from github webhooks
20. Solum abstractions - Add-ons
• Services needed by an application
E.g.: relational database such as Trove
• DU parameters
Solum supports ability to pass service’s connection parameters to
application DU
24. Agenda
• Part I
– Introductions
– Introduction to OpenStack
• Part II
– Deep dive of a OpenStack project - Solum
• Part III
– Contributing to OpenStack
– OpenStack CI system
– Development best practices
– Hands-on exercise
• Questions and Answers
27. Setup steps (1/2)
• http://docs.openstack.org/infra/manual/developers.html
• Create Launchpad account
• Join OpenStack foundation as foundation member
• Sign individual contributor’s license agreement
• Install git-review
• Install git
• Run git review -s
28. Setup steps: Problems and troubleshooting
• Problem:
We don't know where your gerrit is. Please manually
create a remote
• Solution:
– Create a username in gerrit if not already created
– Manually set gerrit remote. E.g.:
git remote add gerrit
"ssh://djkulkarni@review.openstack.org:29418/openstack
/solum.git”
29. Setup steps: Problems and troubleshooting
• Problem:
Problem running 'git remote update gerrit’
Fetching gerrit
Permission denied (publickey).
fatal: Could not read from remote repository.
• Solution:
– Generate sshkey and add it to gerrit
– ssh-keygen
30. Steps to submit a patch
• Create a Launchpad bug or assign an existing bug to
yourself
• Fixing the bug
– Iterative process
• Understand the issue (be in touch with project developers on
project’s IRC channel or on openstack-dev mailing list)
• Design solution
• Write code
• Write tests
• Commit code
• Provide good commit message
• Submit patch for review
31. Steps to merge a patch
• Patch needs to pass configured automated tests
• Patch needs to get two +2 votes
• Patch needs to be approved for merging by project’s
core reviewer
33. Continuous Integration of patches
• Systems involved:
– Zuul
– Gerrit
– Jenkins
– Github
• Pre-merge checking
– Patch is merged to master only if all the configured tests
pass
34. OpenStack’s CI setup
Gerrit Zuul Jenkins
Github
2 3
45
1
Patch
submitted
for review
Patch picked up
for testing
Tests ran on the patch
Jenkins gives its vote
Code
merged
38. Best practices, tricks, tips
• Devstack
• Vagrant and Virtualbox
• Python
• Screen
• Debugging
• Git
39. Devstack
• OpenStack environment consisting of all the
openstack-services
– Keystone, Nova, Heat, Solum, etc.
• Can be run within a virtual machine or
independently
• Useful for development
40. Vagrant and VirtualBox
• Vagrant
– Configuration management tool for configuring virtual
machines
• VirtualBox
– Virtualization system
• Spinning up a development environment using Vagrant
+ VirtualBox
– https://github.com/rackerlabs/vagrant-solum-dev
– git clone <solum-vagrant-repo>
– vagrant up --provision
41. Setting up Solum development env
• Develop on Host, debug on the VM
• Install Vagrant and Virtualbox
• Clone solum and python-solumclient repositories on
the Host
• Set following environment variables:
– SOLUM=<path on Host system to solum repo>
– SOLUMCLIENT=<path on Host system to python-solumclient
repo>
• vagrant up --provision
• vagrant ssh
42. Python
• PyCharm IDE
• pdb
– Put breakpoint in the code where you want to break
• import pdb; pdb.set_trace()
– pdb commands
• s: Execute the current line, stop at first possible occasion
• c: Continue execution, only stop when a breakpoint is
encountered
• https://docs.python.org/2/library/pdb.html
43. Testing
• Run tests locally before submitting patch for review
– From within solum directory
• tox –epep8
• tox –epy27
• Tox
– Command line tool for running tests within virtualenv
44. Code paths on Devstack
• solum
/opt/stack/solum
• python-solumclient
/opt/stack/python-solumclient
• Solum logs
– /var/log/solum/deployer
– /var/log/solum/worker
• Devstack logs (of various screen sessions)
– /opt/stack/logs/
45. Screen
• Program that allows sharing physical terminal between
different processes
• Entering Solum’s screen session in Devstack
– screen –x stack
• Screen commands
– Move to next window: Ctrl+a n
– Move to previous window: Ctrl+a p
– See all windows: Ctrl+a “
– Enter scrollback/copy mode: Ctrl+a [
– Leave scrollback/copy mode: Ctrl+a ]
– http://www.pixelbeat.org/lkdb/screen.html
46. Debugging
• Debug code/feature
– Put breakpoints in the code
– Invoke code-under-test from CLI
– Use screen to enter breakpoint and then debug using
Pdb
• Debug failing functional test
– https://review.openstack.org/#/c/254344/
• Debug failing unit test
47. Git
• Creating dependent commits
• Squashing commits
– git rebase -i HEAD~<number-of-commits>
– pick/squash/edit
• Updating dependent commit and submitting for
review
• https://ask.openstack.org/en/question/31633/gerri
t-best-way-to-make-a-series-of-dependent-
commits/
48. Hands-on exercise
• Submit first patch to OpenStack (45 minutes)
• https://etherpad.openstack.org/p/solum-low-
hanging-fruit-bugs