This document discusses various topics related to continuous integration/continuous delivery (CI/CD) including source control management using Git, build automation with Gradle, Jenkins pipelines for continuous delivery, using containers with Docker, orchestration with Kubernetes, monitoring with Prometheus and Grafana, self-healing and autoscaling in Kubernetes, and canary testing in Kubernetes. It provides an overview of key concepts and commands for setting up and working with each of these tools in a CI/CD pipeline.
Build and run embedded apps faster from qt creator with dockerQt
This document discusses using Docker containers to build and run embedded Qt applications from QtCreator more efficiently. It proposes wrapping CMake calls in a Docker script to build apps in containers on the local workstation instead of virtual machines. The key steps are installing a Qt SDK in a container, configuring QtCreator kits to use the Docker wrapper script for builds, and setting up deployment to run the built apps on target devices via SSH. This allows reusing existing container builds on a powerful workstation for faster development compared to building each app version's SDK in a separate virtual machine.
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaArun Ganesh
Step by step instructions on setting up a custom OpenStreetMap tileserver and customizing the borders of India to display it as per the official map of India.
Source: Shatrughan Saxena https://github.com/azaadshatru/OSM
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
Webinar: Building Embedded Applications from QtCreator with DockerBurkhard Stubert
This document discusses using Docker containers to build embedded apps from QtCreator more efficiently. It presents three solutions: 1) using virtual machines which is currently done but slow, 2) building apps in Docker containers on the local workstation which is faster, and 3) building apps in containers on remote workstations. The document then provides steps for setting up a development environment using Docker to build an app in QtCreator, including installing a Qt SDK in a container, configuring QtCreator, building the app using a Docker wrapper for CMake, and running the app on a Raspberry Pi device.
Here are the slides from Chris Barker and Deepak Giridharagopal's PuppetConf 2016 presentation called Docker, Mesos, Kubernetes and...Puppet? Don't Panic!. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa
Friday session where we explained what is gradle and some of the hidden features and possibilities that gradle gives to developers to customize their builds in a clean and easy way.
Quick overview of building plugins using pure JavaScript or Google Web Toolkit (GWT), and a group discussion to identify important UI extension points for Gerrit contributors to make available.
Build and run embedded apps faster from qt creator with dockerQt
This document discusses using Docker containers to build and run embedded Qt applications from QtCreator more efficiently. It proposes wrapping CMake calls in a Docker script to build apps in containers on the local workstation instead of virtual machines. The key steps are installing a Qt SDK in a container, configuring QtCreator kits to use the Docker wrapper script for builds, and setting up deployment to run the built apps on target devices via SSH. This allows reusing existing container builds on a powerful workstation for faster development compared to building each app version's SDK in a separate virtual machine.
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaArun Ganesh
Step by step instructions on setting up a custom OpenStreetMap tileserver and customizing the borders of India to display it as per the official map of India.
Source: Shatrughan Saxena https://github.com/azaadshatru/OSM
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
Webinar: Building Embedded Applications from QtCreator with DockerBurkhard Stubert
This document discusses using Docker containers to build embedded apps from QtCreator more efficiently. It presents three solutions: 1) using virtual machines which is currently done but slow, 2) building apps in Docker containers on the local workstation which is faster, and 3) building apps in containers on remote workstations. The document then provides steps for setting up a development environment using Docker to build an app in QtCreator, including installing a Qt SDK in a container, configuring QtCreator, building the app using a Docker wrapper for CMake, and running the app on a Raspberry Pi device.
Here are the slides from Chris Barker and Deepak Giridharagopal's PuppetConf 2016 presentation called Docker, Mesos, Kubernetes and...Puppet? Don't Panic!. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa
Friday session where we explained what is gradle and some of the hidden features and possibilities that gradle gives to developers to customize their builds in a clean and easy way.
Quick overview of building plugins using pure JavaScript or Google Web Toolkit (GWT), and a group discussion to identify important UI extension points for Gerrit contributors to make available.
This document provides instructions for using Quartus II software to compile and download a design file onto an Altera FPGA device. It outlines the steps to create a project, add the design file, select a target device, compile the design, assign pins, and program the FPGA with the compiled design. The steps are: 1) create a project directory and add the design file; 2) select the target FPGA device; 3) compile the design; 4) assign pins; and 5) program the FPGA.
Old school presentation (2010) about Continuous Integration using Hudson, Maven, Mercurial to build a Java project with unit tests and other quality checks.
Moving from Jenkins 1 to 2 declarative pipeline adventuresFrits Van Der Holst
T-Dose 2017 presentation, Sunday 19 November 2017. Adventures building a declarative pipeline script for a traditional (non-java/non-cloud) installable windows/Linux application. Video will hopefully be available later.
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Evgeny Antyshev
Presentation for QA:Conference held in Moscow, Russia on April 23rd.
Author: Evgeny Antyshev, Virtuozzo
These slide discover some Openstack Infrastructure tools to ease the task of creating generic CI systems. As an illustration, I setup "model" CI stand to test Libvirt project. Important ideas originated from Openstack testing also mentioned: pre-review integration testing, testing infrastructure in a cloud, project gating, etc.
Introduction to Gradle in 45min as done at JBCN 2016. Covers the basics of Gradle for people familiar with other build tools. Includes building Java, Scala, Groovy & Kotlin projects
Having an operating system distribution that answers all prerequisites of an offensive actor
are crucial. Especially when it comes to configuration review, source code review or
intrusion tests at all levels, web, infrastructure or external. Automating this process, would
help greatly the team members to focus on other tasks.
We aim at facilitating the engagement process by minimizing the configuration time of the
various tools, the period of deletion of sensitive data as well as the various updates to be
performed.
The paper details the most used approaches for system installation. It also discusses the
Debian Kali-based distribution of "Offensive security". In order to orient the choice of the
automation method we structure the formulated recommendations and give tutorials’
references.
Fosdem'20_Past, present & future of DRLM projectDidac Oliveira
Brief introduction to DRLM project, it's features and news in the 2.3.x release and the presentation of the new DRLM version 3 architecture and its development state.
This talk is going to explain our vision on the future of the DRLM project, that will continue evolving in DRLM 2.x while the new DRLMv3 is being developed.
For DRLMv3 we've prepared a complete development environment on Docker to provide an easy and fast way to contribute to the project.
In this session we'll show all interesting new features on DRLMv2, a DRLMv3 preview of what is developed at time of this presentation, and how easy is to have a complete DRLMv3 development environment with a couple of commands.
The document discusses modernizing Drupal development practices. It covers setting up development environments using local stacks, Docker, Vagrant or cloud-based options like Acquia Dev Desktop. It also discusses using version control like Git, the drush command line tool, coding standards, building modules with testing, caching and assets. The goal is to help developers work more efficiently on teams and produce high-quality, standards-compliant code.
This document provides an overview of the Google Web Toolkit (GWT). It begins with a short introduction and history of GWT, including that it was announced in 2006 and is an open-source Java framework for building complex JavaScript front-end applications. It then covers GWT's architectural overview, key features, when and why it would be used, and includes a simple code example. The document also discusses GWT's components, the development process, and introduces various web frameworks.
This document provides guidance on coding and compiling Quantum GIS (QGIS), an open source geographic information system. It includes sections on writing plugins and applications for QGIS in both C++ and Python, as well as installation guides for compiling QGIS on Windows, Mac OSX and Linux systems. The document was written by numerous authors and editors and is available under the GNU Free Documentation License.
The document describes building a custom Cloud Native Buildpack (CNB) that includes the jq command line JSON processor. It includes details on:
1. The structure of the jq-cnb buildpack with its buildpack.toml metadata file, bin/detect script, and bin/build script
2. Running a build with the jq-cnb which downloads jq, detects and builds the application, and exports the final image
3. The phases of the build including detect, analyze, restore, build, and export
This document provides documentation on the pyradiomics Python package for radiomics feature extraction from medical images. It describes how to install pyradiomics via pip, from source, or using Docker. It also outlines how to use pyradiomics, including running example code and data provided in the Github repository. The document provides an overview of pyradiomics' capabilities and contents, including feature extraction in 2D and 3D, segment-based and voxel-based extraction, and supported image types and modalities.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 William Lee
This document provides instructions to upgrade GCC to version 4.9.0 and install Qt 5.4.1 on CentOS 6.5. It describes downloading and compiling GCC from source, setting it as the default compiler, and copying libraries. It also covers downloading and running the Qt 5.4.1 installer, adding Qt commands to the PATH, and copying pkg-config files. The goal is to support C++11 and have a newer compiler and Qt version on the older CentOS 6.5 operating system.
B-Translator helps to get feedback about l10n (translations of the programs). It tries to collect very small translation contributions from a wide crowd of people and to dilute them into something useful. It is developed as a Drupal7 profile and the code is hosted on GitHub. Here I describe the development setup and process that I use for this project. Most of the the tips are project specific, however some of them can be used on any Drupal project.
Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2 Adil Khan
This document provides steps to build an OpenSplice DDS Ver 6.3 Hello World example GUI application over Qt 5.2. It outlines prerequisites, downloading and configuring OpenSplice, setting environment variables, creating Qt projects for a publisher and subscriber, adding OpenSplice files, registering data types, creating DDS entities, and publishing/subscribing sample data between the two applications. Appendices provide code snippets for integrating the OpenSplice functionality into the Qt GUI projects. The goal is to help developers deploy OpenSplice DDS applications over Qt.
The document provides an overview of the Apache Struts 2 framework. It discusses that Struts 2 is a popular Java web framework based on the MVC pattern. It is a complete rewrite of the original Struts framework. The document then covers the core components of Struts 2 including actions, interceptors, the value stack, results, and view technologies. It also provides details on setting up the Struts 2 development environment including installing Java, Tomcat, Eclipse, and the Struts 2 libraries.
Docker - A lightweight Virtualization Platform for DevelopersRapidValue
This document discusses Docker, a platform that allows developers to package applications into standardized units called containers. It provides a 3 step process for linking containers together.
First, it creates a base "blog-dependencies" image containing necessary files like Python. Second, it creates two MySQL images - "blog-mysql-development-db" and "blog-mysql-production-db" - for different database environments.
Third, it runs the development database container and links it to the base image, allowing the application container to connect to the database container. This allows easily switching between database environments for testing versus production.
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...Puppet
The document summarizes how Puppet can be used to enable lightweight virtualized containers by configuring applications and their dependencies into immutable container images during the build process. It compares deploying a Jenkins application with LDAP authentication on virtual machines versus containers. It discusses challenges with service resources in containers and provides solutions like overriding service resources or using multi-process images with systemd to build immutable Puppet-configured application images.
GitLab CI is a continuous integration service fully integrated with GitLab. It allows users to define build and test workflows directly in the GitLab repository using a .gitlab-ci.yml file. GitLab CI runs jobs defined in the YAML file on GitLab-hosted runners which can be Docker containers. It supports features like artifacts, dependencies between jobs, stages, and secret variables to securely pass credentials to builds.
Introduction maven3 and gwt2.5 rc2 - Lesson 01rhemsolutions
This document provides an introduction and instructions for setting up Apache Maven 3, GWT 2.5-rc2, and the GWT Super Dev Mode. It discusses using Maven to manage Java project dependencies and plugins. It also outlines steps for installing the JDK, Maven, and the m2eclipse plugin for Eclipse. Further, it describes how to generate a GWT project using an archetype, add configuration properties, and run the project in dev mode or super dev mode.
Lightweight Developer Provisioning with GradleQAware GmbH
This document discusses lightweight developer provisioning using Gradle. It describes how Gradle tasks and Groovy can be used to automate the creation and updating of a software development environment (SEU). Dependencies are expressed as Gradle configurations and stored in an artifact repository. The document provides examples of customizing an SEU by mounting network drives, initializing databases, and restoring Solr indexes using Gradle tasks. It also outlines how to easily build software packages and publish them to a repository.
This document provides instructions for using Quartus II software to compile and download a design file onto an Altera FPGA device. It outlines the steps to create a project, add the design file, select a target device, compile the design, assign pins, and program the FPGA with the compiled design. The steps are: 1) create a project directory and add the design file; 2) select the target FPGA device; 3) compile the design; 4) assign pins; and 5) program the FPGA.
Old school presentation (2010) about Continuous Integration using Hudson, Maven, Mercurial to build a Java project with unit tests and other quality checks.
Moving from Jenkins 1 to 2 declarative pipeline adventuresFrits Van Der Holst
T-Dose 2017 presentation, Sunday 19 November 2017. Adventures building a declarative pipeline script for a traditional (non-java/non-cloud) installable windows/Linux application. Video will hopefully be available later.
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Evgeny Antyshev
Presentation for QA:Conference held in Moscow, Russia on April 23rd.
Author: Evgeny Antyshev, Virtuozzo
These slide discover some Openstack Infrastructure tools to ease the task of creating generic CI systems. As an illustration, I setup "model" CI stand to test Libvirt project. Important ideas originated from Openstack testing also mentioned: pre-review integration testing, testing infrastructure in a cloud, project gating, etc.
Introduction to Gradle in 45min as done at JBCN 2016. Covers the basics of Gradle for people familiar with other build tools. Includes building Java, Scala, Groovy & Kotlin projects
Having an operating system distribution that answers all prerequisites of an offensive actor
are crucial. Especially when it comes to configuration review, source code review or
intrusion tests at all levels, web, infrastructure or external. Automating this process, would
help greatly the team members to focus on other tasks.
We aim at facilitating the engagement process by minimizing the configuration time of the
various tools, the period of deletion of sensitive data as well as the various updates to be
performed.
The paper details the most used approaches for system installation. It also discusses the
Debian Kali-based distribution of "Offensive security". In order to orient the choice of the
automation method we structure the formulated recommendations and give tutorials’
references.
Fosdem'20_Past, present & future of DRLM projectDidac Oliveira
Brief introduction to DRLM project, it's features and news in the 2.3.x release and the presentation of the new DRLM version 3 architecture and its development state.
This talk is going to explain our vision on the future of the DRLM project, that will continue evolving in DRLM 2.x while the new DRLMv3 is being developed.
For DRLMv3 we've prepared a complete development environment on Docker to provide an easy and fast way to contribute to the project.
In this session we'll show all interesting new features on DRLMv2, a DRLMv3 preview of what is developed at time of this presentation, and how easy is to have a complete DRLMv3 development environment with a couple of commands.
The document discusses modernizing Drupal development practices. It covers setting up development environments using local stacks, Docker, Vagrant or cloud-based options like Acquia Dev Desktop. It also discusses using version control like Git, the drush command line tool, coding standards, building modules with testing, caching and assets. The goal is to help developers work more efficiently on teams and produce high-quality, standards-compliant code.
This document provides an overview of the Google Web Toolkit (GWT). It begins with a short introduction and history of GWT, including that it was announced in 2006 and is an open-source Java framework for building complex JavaScript front-end applications. It then covers GWT's architectural overview, key features, when and why it would be used, and includes a simple code example. The document also discusses GWT's components, the development process, and introduces various web frameworks.
This document provides guidance on coding and compiling Quantum GIS (QGIS), an open source geographic information system. It includes sections on writing plugins and applications for QGIS in both C++ and Python, as well as installation guides for compiling QGIS on Windows, Mac OSX and Linux systems. The document was written by numerous authors and editors and is available under the GNU Free Documentation License.
The document describes building a custom Cloud Native Buildpack (CNB) that includes the jq command line JSON processor. It includes details on:
1. The structure of the jq-cnb buildpack with its buildpack.toml metadata file, bin/detect script, and bin/build script
2. Running a build with the jq-cnb which downloads jq, detects and builds the application, and exports the final image
3. The phases of the build including detect, analyze, restore, build, and export
This document provides documentation on the pyradiomics Python package for radiomics feature extraction from medical images. It describes how to install pyradiomics via pip, from source, or using Docker. It also outlines how to use pyradiomics, including running example code and data provided in the Github repository. The document provides an overview of pyradiomics' capabilities and contents, including feature extraction in 2D and 3D, segment-based and voxel-based extraction, and supported image types and modalities.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
Upgrade GCC & Install Qt 5.4 on CentOS 6.5 William Lee
This document provides instructions to upgrade GCC to version 4.9.0 and install Qt 5.4.1 on CentOS 6.5. It describes downloading and compiling GCC from source, setting it as the default compiler, and copying libraries. It also covers downloading and running the Qt 5.4.1 installer, adding Qt commands to the PATH, and copying pkg-config files. The goal is to support C++11 and have a newer compiler and Qt version on the older CentOS 6.5 operating system.
B-Translator helps to get feedback about l10n (translations of the programs). It tries to collect very small translation contributions from a wide crowd of people and to dilute them into something useful. It is developed as a Drupal7 profile and the code is hosted on GitHub. Here I describe the development setup and process that I use for this project. Most of the the tips are project specific, however some of them can be used on any Drupal project.
Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2 Adil Khan
This document provides steps to build an OpenSplice DDS Ver 6.3 Hello World example GUI application over Qt 5.2. It outlines prerequisites, downloading and configuring OpenSplice, setting environment variables, creating Qt projects for a publisher and subscriber, adding OpenSplice files, registering data types, creating DDS entities, and publishing/subscribing sample data between the two applications. Appendices provide code snippets for integrating the OpenSplice functionality into the Qt GUI projects. The goal is to help developers deploy OpenSplice DDS applications over Qt.
The document provides an overview of the Apache Struts 2 framework. It discusses that Struts 2 is a popular Java web framework based on the MVC pattern. It is a complete rewrite of the original Struts framework. The document then covers the core components of Struts 2 including actions, interceptors, the value stack, results, and view technologies. It also provides details on setting up the Struts 2 development environment including installing Java, Tomcat, Eclipse, and the Struts 2 libraries.
Docker - A lightweight Virtualization Platform for DevelopersRapidValue
This document discusses Docker, a platform that allows developers to package applications into standardized units called containers. It provides a 3 step process for linking containers together.
First, it creates a base "blog-dependencies" image containing necessary files like Python. Second, it creates two MySQL images - "blog-mysql-development-db" and "blog-mysql-production-db" - for different database environments.
Third, it runs the development database container and links it to the base image, allowing the application container to connect to the database container. This allows easily switching between database environments for testing versus production.
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...Puppet
The document summarizes how Puppet can be used to enable lightweight virtualized containers by configuring applications and their dependencies into immutable container images during the build process. It compares deploying a Jenkins application with LDAP authentication on virtual machines versus containers. It discusses challenges with service resources in containers and provides solutions like overriding service resources or using multi-process images with systemd to build immutable Puppet-configured application images.
GitLab CI is a continuous integration service fully integrated with GitLab. It allows users to define build and test workflows directly in the GitLab repository using a .gitlab-ci.yml file. GitLab CI runs jobs defined in the YAML file on GitLab-hosted runners which can be Docker containers. It supports features like artifacts, dependencies between jobs, stages, and secret variables to securely pass credentials to builds.
Introduction maven3 and gwt2.5 rc2 - Lesson 01rhemsolutions
This document provides an introduction and instructions for setting up Apache Maven 3, GWT 2.5-rc2, and the GWT Super Dev Mode. It discusses using Maven to manage Java project dependencies and plugins. It also outlines steps for installing the JDK, Maven, and the m2eclipse plugin for Eclipse. Further, it describes how to generate a GWT project using an archetype, add configuration properties, and run the project in dev mode or super dev mode.
Lightweight Developer Provisioning with GradleQAware GmbH
This document discusses lightweight developer provisioning using Gradle. It describes how Gradle tasks and Groovy can be used to automate the creation and updating of a software development environment (SEU). Dependencies are expressed as Gradle configurations and stored in an artifact repository. The document provides examples of customizing an SEU by mounting network drives, initializing databases, and restoring Solr indexes using Gradle tasks. It also outlines how to easily build software packages and publish them to a repository.
Lightweight Developer Provisioning with Gradle and SEU-as-codeMario-Leander Reimer
This document discusses lightweight developer provisioning using Gradle. It describes how Gradle tasks and Groovy can be used to automate the creation and updating of a software development environment (SEU). Dependencies are expressed as Gradle configurations and stored in an artifact repository. The document provides examples of customizing an SEU by mounting network drives, initializing databases, and restoring Solr indexes using Gradle tasks. It also outlines how to easily build software package files and publish them to a repository.
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Acquia
We’ve heard that developing with Drupal 8 is fast by default, but does that extend to your development process? There are new tools in Drupal 8 that can accelerate your day-to-day work, and will help you master rapid development in Drupal 8.
Join Myplanet’s Erin Marchak as she does a live walk through of building a site install with Composer, developing a module with Drupal Console, and ingesting external content with Services, all within 1 hour. In this demonstration of Drupal 8’s improved developer experience, topics covered will include
Dependency management using Composer
Content ingestion using Guzzle PHP
Code scaffolding using Drupal Console
Configuration management using Drupal Console
Drupal 8’s Services and Dependency Injection
Continuous Integration & Development with GitlabAyush Sharma
GitLab CI is a part of GitLab, a web application with an API that stores its state in a database. It manages projects/builds and provides a nice user interface, besides all the features of GitLab. GitLab Runner is an application which processes builds.
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
This document discusses using GitLab CI and Kubernetes together for continuous integration, delivery, and deployment. It provides an overview of Kubernetes and GitLab, describes how to set up a GitLab runner using the Kubernetes executor, and provides an example YAML configuration. It also covers continuous deployment workflows, running GitLab on Kubernetes, and some tips and tricks as well as techniques for troubleshooting Kubernetes and GitLab CI/CD pipelines.
Here are slides from basic training for Gradle.
This training is aimed to help Java Developers to get hands-on experience to use Gradle as a primary build tool for Java source code starting from simple compilation continuing with different kinds of tests and finishing with code quality analysis and artefacts publishing.
This document provides instructions for building Android on Windows using Cygwin. It describes downloading and installing Cygwin, Java JDK 6, and configuring the environment variables. It also explains how to get the Android source code using Google's repo tool, and lists some common problems encountered during the build process and their solutions.
Lean Drupal Repositories with Composer and DrushPantheon
Composer is the industry-standard PHP dependency manager that is now in use in Drupal 8 core. This session will show the current best practices for using Composer, drupal-composer, drupal-scaffold, Drush, Drupal Console and Drush site-local aliases to streamline your Drupal 7 and Drupal 8 site repositories for optimal use on teams.
This document discusses how to improve the speed of Gradle builds. It recommends using the Gradle daemon, configuring on demand, building in parallel, and using newer versions of Gradle and the Android Gradle plugin. Profiling a sample project showed build times could be improved from 7.8 seconds to 2.4 seconds using these techniques. Updating dependencies and disabling Instant Run in Android Studio may also help increase build speeds.
The document discusses the Apache Struts 2 framework. It provides an overview of Struts 2, describing it as a popular and mature web application framework based on the MVC design pattern. It also notes that Struts 2 is a complete rewrite of the original Struts architecture. The document then outlines the key steps to setup the Struts 2 development environment, including installing Java, Tomcat, Eclipse, and the Struts 2 libraries. It provides a high-level overview of the Struts 2 architecture and the components involved in the request processing lifecycle.
Similar to Kranthi kumar implement_ci_cd_my_notes (20)
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
1. Kranthi Kumar- CI/CD Notes
1
Table of Contents
1. Source Control Management- = GIT .........................................................................................................2
2. Introducing Build Automation (GRADLE)..................................................................................................2
Commands used to install and run the Gradle Wrapper:.........................................................................3
Gradle Wrapper Command.......................................................................................................................3
Defining Tasks ...........................................................................................................................................3
Task Dependencies ...................................................................................................................................3
Plugins.......................................................................................................................................................4
Running Automated Test in Gradle...........................................................................................................4
3. Jenkins Pipelines .......................................................................................................................................4
Continuous Delivery..................................................................................................................................4
Automated Deployment in Pipeline .........................................................................................................5
4. Why Containers?.......................................................................................................................................5
Installing Docker .......................................................................................................................................6
Running with Docker in Production..........................................................................................................8
Installing Docker on Jenkins......................................................................................................................8
Jenkins Pipelines CD and a Dockerized App..............................................................................................9
Jenkins Pipelines CD and a Dockerized App..............................................................................................9
5. Orchestration..........................................................................................................................................10
Creating a Kubernetes Cluster ................................................................................................................11
Kubernetes Basics ...................................................................................................................................13
Deploying to Kubernetes with Jenkins....................................................................................................14
6. Monitoring ..............................................................................................................................................14
Cluster Monitoring..................................................................................................................................16
Application Monitoring...........................................................................................................................17
7. Kubernetes and Self-Healing..................................................................................................................17
Creating Liveness Probes in Kubernetes.................................................................................................18
8. Kubernetes and Autoscaling ...................................................................................................................20
Horizontal Pod Autoscalers in Kubernetes .............................................................................................20
9. What is Canary Testing?..........................................................................................................................21
2. Page 2 of 24
Implementing a Canary Test in Kubernetes............................................................................................23
Kubernetes Canary Testing with Jenkins Pipelines.................................................................................24
1. Source Control Management- = GIT
1. yum install git
2. git --version
3. git config --global user.name "kranthi"
4. git config --global user.email kk@kranthi.com
5. git clone repository URL
6. git status
7. git add <file name> or git add . or git add -A
8. git commit -m "< commit message >"
9. git push or git push -u < remote name, usually origin > < branch name >
10.git checkout <existing branch name>
11.git checkout -b <new branch name>
12.git branch
13.git tag <new tag name>
14.git tag
15.git pull
2. Introducing Build Automation (GRADLE)
You can find more information about installing Gradle at https://gradle.org/install/
Here are the commands used in the demo to install gradle:
Command 1 --> cd ~/
Command 2 --> wget -O ~/gradle-4.7-bin.zip https://services.gradle.org/distributions/gradle-
4.7-bin.zip
Command 3 --> sudo yum -y install unzip java-1.8.0-openjdk
Command 4 --> sudo mkdir /opt/gradle
Command 5 --> sudo unzip -d /opt/gradle/ ~/gradle-4.7-bin.zip
Command 6 --> sudo vi /etc/profile.d/gradle.sh
Command 7 --> Put this text into gradle.sh: export PATH=$PATH:/opt/gradle/gradle-4.7/bin
Command 8 --> Then set permissions on gradle.sh: sudo chmod 755 /etc/profile.d/gradle.sh
3. Page 3 of 24
Command 9 --> Finally, after logging out of the server and logging back in:gradle --version
2.1 Commands used to install and run the Gradle Wrapper:
Gradle wrapper allows gradle to install itself using just the files from your project's source
control.
Wrapper is useful because
1. it removes the need to have Gradle installed beforehand in order to run the build.
2. Ensure the project is always built with a specific version of Gradle
3. Lets you build multiple projects with different Gradle versions on one system.
4. Anyone can run the build quickly and easily
2.2 Gradle Wrapper Command
cd ~/
mkdir my-project
cd my-project
gradle wrapper
./gradlew build
2.3 Defining Tasks
The build.gradle file controls what tasks are available for your project.
You can define your own task with custom code in build.gradle:
task my Task {
Print ‘Hellow, World’}
Most of tasks you use will come built into either Gradle itself or plugins.
2.4 Task Dependencies
Gradle uses the concept of task dependencies to determine what tasks need to be run for a
particular build command:
If you run a task, any other task depend on it will also be run
Task dependencies also determines the order in which tasks get run:
A task’s dependencies will always run before that task
You can define a dependency relationship between tasks in build.gradle like this:
Task A.dependson anotherTask B
Here is the final build.gradle from the demo:
plugins {
id 'com.moowork.node' version '1.2.0'
}
task sayHello {
doLast {
println 'Hello, World!'
4. Page 4 of 24
}
}
task anotherTask {
doLast {
println 'This is another task'
}
}
If you have the gradle wrapper installed in your project (for example, by using gradle
init), you can run the build defined in this build.gradle like so:
./gradlew sayHello
2.5 Plugins
Gradle has a huge variety of plugin available, many of them contributed by the community.
Plugins add all kinds of functionality to Gradle. They usually include pre-built tasks that you can
configure to do what you need.
You can include plugins in your build.gradle like this:
Plugins {
Id “<plugin-id>” version “<plugin version>”
}
2.6 Running Automated Test in Gradle
Generally, automated test will be run in Gradle as a task that gets executed as part of the build
process:
Task build
Task test
Build.dependensOn test
Whenever ./gradlew build gets run, the test task also will run.
3. Jenkins Pipelines
Pipelines has a domain-specific-language (DSL) that is used to define the pipeline logic.
There are two types of pipeline syntax you can use
Scripted A bit more like procedural code
Declarative – Syntax describes the pipeline logic
3.1 Continuous Delivery
5. Page 5 of 24
Continuous delivery means ensuring that you are always able to deploy any version of your
code. It is necessary in Continuous deployment, where you are actually deploying your code
frequently.
In order to support continuous delivery/Deployment with a Jenkin pipelines, we need use the
Pipeline to automate the deployment process.
3.2 Automated Deployment in Pipeline
Define stages for stages of the CD process that involves deploying.
Deploy to UAT, Deploy to QA, Deploy to Staging and Deploy to
Production
In each deployment stage, define Steps that perform necessary tasks to carry out
the deployment
Copy files to a server, restart a service
We can also prompt a user for approval before performing the actual production
deployment.
sudo yum -y remove java
sudo yum -y install java-1.8.0-openjdk
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat
-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum -y install jenkins-2.164.2
sudo systemctl enable jenkins
sudo systemctl start jenkins
4. Why Containers?
8. Page 8 of 24
4.2 Running with Docker in Production
4.3 Installing Docker on Jenkins
Here are the commands used in the demo for this lesson:
sudo yum -y install docker
9. Page 9 of 24
sudo systemctl start docker
sudo systemctl enable docker
sudo groupadd docker
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
sudo systemctl restart docker
4.4 Jenkins Pipelines CD and a Dockerized App
You can find the source code of the train-schedule app
here: https://github.com/linuxacademy/cicd-pipeline-train-schedule-dockerdeploy
And you can find the final version of the Jenkinsfile from the demo on the example-
solution branch of that project here: https://github.com/linuxacademy/cicd-pipeline-
train-schedule-dockerdeploy/blob/example-solution/Jenkinsfile
4.5 Jenkins Pipelines CD and a Dockerized App
11. Page 11 of 24
5.1 Creating a Kubernetes Cluster
12. Page 12 of 24
You can find instructions on various ways of installing Kubernetes
here: https://kubernetes.io/docs/setup/
Installation instructions specific to kubeadm can he found
here: https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
You can initialize the master node in kubeadm by creating a config file called kube-
config.yml with these contents:
apiVersion: kubeadm.k8s.io/v1alpha3
kind: ClusterConfiguration
networking:
podSubnet: 10.244.0.0/16
apiServerExtraArgs:
service-node-port-range: 8000-31274
Then run this command referencing that file:
kubeadm init --config kube-config.yml
Use this command to set up a pod network after initializing the master with kubeadm
init:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ec
e4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
13. Page 13 of 24
5.2 Kubernetes Basics
You can find more detailed documentation on some of the concepts discussed
here: https://kubernetes.io/docs/concepts/#kubernetes-objects
14. Page 14 of 24
5.3 Deploying to Kubernetes with Jenkins
This demonstration uses the Kubernetes Continuous Deploy plugin to deploy to
Kubernetes from Jenkins. You can find additional documentation about that plugin
here: https://jenkins.io/doc/pipeline/steps/kubernetes-cd.
If you want to follow along, you can find the sample source code
here: https://github.com/linuxacademy/cicd-pipeline-train-schedule-kubernetes.
6. Monitoring
For more information about these monitoring tools, check out their official sites:
Prometheus - https://prometheus.io/
Grafana - https://grafana.com/
The first step toward using Prometheus and Grafana to gather metrics within
Kubernetes is to install them. walks you through the process of installing Prometheus
and Grafana in your Kubernetes cluster. After completing this lesson, you will know how
to quickly install Prometheus and Grafana using Helm.
Since there are quite a few commands involved in this installation, here is a reference
guide for the commands used to perform the installation in this lesson:
15. Page 15 of 24
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > /tmp/get_
helm.sh
chmod 700 /tmp/get_helm.sh
DESIRED_VERSION=v2.8.2 /tmp/get_helm.sh
helm init --wait
kubectl --namespace=kube-system create clusterrolebinding add-on-cluster-admin --clus
terrole=cluster-admin --serviceaccount=kube-system:default
helm ls
cd ~/
git clone https://github.com/kubernetes/charts
cd charts
git checkout efdcffe0b6973111ec6e5e83136ea74cdbe6527d
cd ../
vi prometheus-values.yml
prometheus-values.yml:
alertmanager:
persistentVolume:
enabled: false
server:
persistentVolume:
enabled: false
Then run:
helm install -f prometheus-values.yml charts/stable/prometheus --name prometheus --na
mespace prometheus
vi grafana-values.yml
grafana-values.yml:
adminPassword: password
Then run:
helm install -f grafana-values.yml charts/stable/grafana/ --name grafana --namespace
grafana
vi grafana-ext.yml
grafana-ext.yml:
16. Page 16 of 24
kind: Service
apiVersion: v1
metadata:
namespace: grafana
name: grafana-ext
spec:
type: NodePort
selector:
app: grafana
ports:
- protocol: TCP
port: 3000
nodePort: 8080
Then run:
kubectl apply -f grafana-ext.yml
You can check on the status of the prometheus and grafana pods with these
commands:
kubectl get pods -n prometheus
kubectl get pods -n grafana
When setting up your dastasource in grafana, use this url:
http://prometheus-server.prometheus.svc.cluster.local
6.1 Cluster Monitoring
17. Page 17 of 24
6.2 Application Monitoring
Here is the sample source code for the train schedule app that was used in the
demo: https://github.com/linuxacademy/cicd-pipeline-train-schedule-monitoring
And here is a direct link to the Kubernetes template yml file that was used to deploy the
app: https://github.com/linuxacademy/cicd-pipeline-train-schedule-
monitoring/blob/master/train-schedule-kube.yml
7. Kubernetes and Self-Healing
For more information, check out the Kubernetes documentation on pod lifecycle and
restart policies: https://kubernetes.io/docs/concepts/workloads/pods/pod-
lifecycle/#restart-policy.
18. Page 18 of 24
7.1 Creating Liveness Probes in Kubernetes
For more information on Kubernetes liveness probes, check out their
documentation: https://kubernetes.io/docs/tasks/configure-pod-container/configure-
liveness-readiness-probes/.
Here is the final Kubernetes template file used in the demo (train-schedule-kube.yml):
kind: Service
apiVersion: v1
metadata:
name: train-schedule-service
annotations:
prometheus.io/scrape: 'true'
spec:
type: NodePort
selector:
app: train-schedule
ports:
20. Page 20 of 24
periodSeconds: 10
8. Kubernetes and Autoscaling
8.1 Horizontal Pod Autoscalers in Kubernetes
full HPA documentation: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-
autoscale/
Here is the GitHub repo for the source code used in the demo. Check the example-
solution branch for the demo's final state: https://github.com/linuxacademy/cicd-
pipeline-train-schedule-autoscaling
21. Page 21 of 24
Here are the commands used to set up the autoscaler in the demo:
cd ~/
git clone https://github.com/kubernetes-incubator/metrics-server.git
cd metrics-server/
kubectl create -f deploy/1.8+/
kubectl get --raw /apis/metrics.k8s.io/
cd ~/
git clone
cd cicd-pipeline-train-schedule-autoscaling/
vi train-schedule-kube.yml
kubectl apply -f train-schedule-kube.yml
You can find the changes made to train-schedule-kube.yml in the example-
solution branch of the GitHub repo. Once you have deployed the app and the
HPA, you can generate CPU load to test it by spinning up a busybox shell:
kubectl run -i --tty load-generator --image=busybox /bin/sh
Then run this in the busybox shell to create load:
while true; do wget -q -O- http://:8080/generate-cpu-load; done
9. What is Canary Testing?
23. Page 23 of 24
8.2 Implementing a Canary Test in Kubernetes
You can find the sample source code that was used in this demo
here: https://github.com/linuxacademy/cicd-pipeline-train-schedule-canary
Be sure to check out the example-solution branch to find the canary deployment
template in train-schedule-kube-canary.yml.
Here are the commands used to deploy the stable and canary pods in the demo:
cd ~/
git clone
cd cicd-pipeline-train-schedule-canary/
24. Page 24 of 24
kubectl apply -f train-schedule-kube.yml
vi train-schedule-kube-canary.yml
kubectl apply -f train-schedule-kube-canary.yml
8.3 Kubernetes Canary Testing with Jenkins Pipelines