Puppet is a configuration management tool which allows easy deployment and configuration ranging from 1 to 1 thousand servers (and even more). Even though its common knowledge for devops, puppet is still a strange piece of software for developers. How does it work and what can it do for you as a developer?
Puppet is an open source tool for server configuration management and application deployment. It allows users to define the desired state of IT infrastructure and automatically enforces that state. Key features include enforcing consistent configurations across thousands of nodes, increased productivity through automation, and visibility into infrastructure changes. Puppet works by defining resources like packages, files, and services using a declarative language and enforcing that configuration through an agent-master architecture.
->Introduction
->>What is Ansible?
->>Ansible history
->Basic concepts
->>Inventory
->>Playbook
->>Role
->>Module
->>Plugin
->Diving into Ansible roles
->>Getting started
->>Create a role
->>Roles under the hood
->>How to use roles?
The document provides an overview of a talk given by Stephen Wallace on using Puppet for system administrators. The talk introduces Puppet as a tool to help system administrators achieve goals like availability, scalability, predictability and reducing workload. It addresses common concerns that system administrators have with Puppet, such as the need to learn programming. The talk demonstrates how Puppet can be used in a simple way and provides references for further learning.
This document provides an introduction to using Ansible in a top-down approach. It discusses using Ansible to provision infrastructure including load balancers, application servers, and databases. It covers using ad-hoc commands and playbooks to configure systems. Playbooks can target groups of hosts, apply roles to automate common tasks, and allow variables to customize configurations. Selective execution allows running only certain parts of a playbook. Overall the document demonstrates how Ansible can be used to deploy and manage infrastructure and applications in a centralized, automated way.
Puppet is a configuration management tool that allows systems to be declared and maintained in a desired state. It uses a declarative domain-specific language to describe system configuration. Resources are used to model system components like packages, services, files and users. Modules bundle related manifests, files and templates. A Puppet master stores configurations and agents pull configurations from the master to make necessary changes. After runs, agents report back metrics and logs to provide visibility into infrastructure changes.
This document introduces the Puppet configuration management tool. It discusses how system administrators often automate repetitive tasks through custom scripts that are not reusable, scalable, or flexible. Commercial configuration management tools can be expensive and inflexible. Puppet aims to provide an open source tool for automating system administration tasks across networks that can be extended to suit various environments. The book will teach readers how to install, use, and develop Puppet to automate tasks and create reporting solutions.
Augeas, swiss knife resources for your puppet treeJulien Pivotto
This document provides an overview of Puppet resources for managing files, including the File resource, Concat module, Exec commands, and Augeas. The File resource is most commonly used and works for many situations. The Concat module offers more flexibility but also more complexity. Exec commands with sed/grep should generally be avoided. Augeas provides a powerful way to edit configuration files while preserving formatting and only changing what is needed.
Puppet is an open source tool for server configuration management and application deployment. It allows users to define the desired state of IT infrastructure and automatically enforces that state. Key features include enforcing consistent configurations across thousands of nodes, increased productivity through automation, and visibility into infrastructure changes. Puppet works by defining resources like packages, files, and services using a declarative language and enforcing that configuration through an agent-master architecture.
->Introduction
->>What is Ansible?
->>Ansible history
->Basic concepts
->>Inventory
->>Playbook
->>Role
->>Module
->>Plugin
->Diving into Ansible roles
->>Getting started
->>Create a role
->>Roles under the hood
->>How to use roles?
The document provides an overview of a talk given by Stephen Wallace on using Puppet for system administrators. The talk introduces Puppet as a tool to help system administrators achieve goals like availability, scalability, predictability and reducing workload. It addresses common concerns that system administrators have with Puppet, such as the need to learn programming. The talk demonstrates how Puppet can be used in a simple way and provides references for further learning.
This document provides an introduction to using Ansible in a top-down approach. It discusses using Ansible to provision infrastructure including load balancers, application servers, and databases. It covers using ad-hoc commands and playbooks to configure systems. Playbooks can target groups of hosts, apply roles to automate common tasks, and allow variables to customize configurations. Selective execution allows running only certain parts of a playbook. Overall the document demonstrates how Ansible can be used to deploy and manage infrastructure and applications in a centralized, automated way.
Puppet is a configuration management tool that allows systems to be declared and maintained in a desired state. It uses a declarative domain-specific language to describe system configuration. Resources are used to model system components like packages, services, files and users. Modules bundle related manifests, files and templates. A Puppet master stores configurations and agents pull configurations from the master to make necessary changes. After runs, agents report back metrics and logs to provide visibility into infrastructure changes.
This document introduces the Puppet configuration management tool. It discusses how system administrators often automate repetitive tasks through custom scripts that are not reusable, scalable, or flexible. Commercial configuration management tools can be expensive and inflexible. Puppet aims to provide an open source tool for automating system administration tasks across networks that can be extended to suit various environments. The book will teach readers how to install, use, and develop Puppet to automate tasks and create reporting solutions.
Augeas, swiss knife resources for your puppet treeJulien Pivotto
This document provides an overview of Puppet resources for managing files, including the File resource, Concat module, Exec commands, and Augeas. The File resource is most commonly used and works for many situations. The Concat module offers more flexibility but also more complexity. Exec commands with sed/grep should generally be avoided. Augeas provides a powerful way to edit configuration files while preserving formatting and only changing what is needed.
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet
This document discusses challenges encountered when scaling Puppet to manage over 100,000 nodes, and proposes an alternative approach called PVC (Puppet Variable Control) to help address those challenges. Some key issues identified include uneven and unpredictable Puppet run times that cause system thrashing. PVC aims to run Puppet reactively based on available capacity and local file changes, using frequent pings and fact collection to determine run timing in a way that achieves a flat and consistent service curve. It also aims to improve security by running Puppet immediately when monitored files change outside of Puppet runs.
The document discusses using Fabric for deployment and system administration tasks across multiple servers. It provides examples of Fabric configuration, defining roles for servers, writing tasks to run commands on servers, and how to structure tasks for a full deployment workflow. Fabric allows running commands remotely via SSH and provides tools for task composition and failure handling.
Ansible is an IT automation tool that can provision and configure servers. It works by defining playbooks that contain tasks to be run on target servers. Playbooks use YAML format and modules to automate configuration changes. Vagrant and Ansible can be integrated so that Ansible playbooks are run as part of the Vagrant provisioning process to automate server setup. The document provides an introduction and examples of using Ansible playbooks with Vagrant virtual machines to install and configure the Apache HTTP server.
Dennis Matotek, Technical Lead Platforms at Experian Hitwise Australia, gave an excellent presentation on setting up puppet using vagrant, puppet and testing, including a full demo of rspec-puppet and Jenkins.
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecMartin Etmajer
The goal of Continuous Delivery is, briefly, to get features into your users' or customers' hands as quickly and confidently as possible. In order to succeed, Development and Operations teams need to align and come up with both working and deployable software in short, regular intervals. Chef, Puppet, Ansible & Co. enable teams to code up application runtime environments, but alone do not allow for building quality into their processes. In this presentation I will show how you can apply the "Red, Green, Refactor Cycle" of Test-Driven Development and combine it with your configuration management or orchestration tool of choice in order to come up with better infrastructure that can automatically be tested using Ansible, Test Kitchen, Docker, Serverspec and RSpec.
Take control of your Jenkins jobs via job DSL.Łukasz Proszek
Jenkins jobs can be managed via the GUI, CLI, or script console which become unwieldy for large numbers of jobs. The Jenkins Job DSL plugin allows jobs to be defined and maintained as code using a Groovy domain-specific language. This provides benefits such as version control of job configuration, reuse of common job properties, and programmatic job creation. A seed job can be used to generate other jobs from DSL scripts checked into a code repository and run validation/testing.
The document provides configuration details for setting up a Capistrano deployment with multistage environments and recipes for common tasks like installing gems, configuring databases, and integrating with Thinking Sphinx. It includes base configuration definitions, recipes for setting up Thinking Sphinx indexes and configuration files, and instructions for packaging the Capistrano configurations as a gem.
- The document provides information on using Ansible to manage network device configurations including Juniper devices. It discusses using modules like junos_get_config to backup configurations, templates to generate configurations, and junos_install_config to deploy them. It also covers using Ansible to manage users on Linux systems.
The document discusses Puppet configuration management. It provides an agenda that covers Puppet overviews, installation, configuration, the Puppet master, Puppet language basics and advanced topics, provisioning hosts, and best practices. The document includes sections on the Puppet architecture, installing and configuring the Puppet master and agents, the Puppet configuration tree and files, resources, variables, templates, and creating sample modules for SSH and NTP configuration.
Ansible : what's ansible & use case by REXSaewoong Lee
The document discusses using Ansible to upgrade MySQL from version 3.10 to 3.12 across 1000 servers. It provides steps to create backups and run upgrade scripts on each server using Ansible playbooks and bash scripts in a loop. It also asks how to make the deployment easier, safer and more comfortable. Later sections explain Ansible concepts like installation, modules, playbooks, tags, inventory, variables and demonstrate usage through examples.
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
Wai Keen Woon, CTO CDN Division OnApp Malaysia, gave an interesting overview of what the Puppet architecture at OnApp looks like. The CDN division at OnApp is a large provider of CDN services, and as such makes a very interesting candidate for a case study.
This document discusses using Puppet for scalable systems management. It begins with challenges faced by system administrators and an introduction to Puppet. It covers installing and configuring Puppet, including certificate signing. It also discusses managing infrastructure with Puppet through classes, modules, and templates. Examples of Puppet configuration are provided.
Al Tobey (@AlTobey) is an Open Source Mechanic at DataStax. Prior to working at DataStax, Al was a Tech Lead of Compute and Data Services at Ooyala, which has been using Apache Cassandra since version 0.4 and these days uses Go in production.
Al will be presenting a brief introduction to Go (#golang) and Cassandra, and how they are a great fit for each other. This talk will include code samples and a live demo.
Walter Heck, founder of OlinData, presented a step-by-step guide on how to set up a proper puppet repository, complete with the brand new PuppetDB, exported resources and usage of open source modules.
This fabric workshop aims to create a deploy tool using Fabric that can deploy code to servers defined in roles, show existing tags, change to a different tagged version, and remove tags. The agenda includes demonstrating local tasks, remote tasks using an Ansible inventory file, and functions for mkdir, cd, and uploading files. Fabric provides a simple way to automate operations across multiple servers.
The document discusses automating software deployment using Ansible. It provides an overview of Ansible's basic concepts like inventory files to define hosts, playbooks to execute tasks on hosts, and roles to bundle related tasks. It then discusses using Ansible roles to automate deployments, including the ansistrano roles which can deploy applications by copying files, managing releases, and supporting deployment hooks. Overall the document presents Ansible as a way to easily automate and standardize software deployment processes.
Raphaël Pinson's talk on "Configuration surgery with Augeas" at PuppetCamp Geneva '12. Video at http://youtu.be/H0MJaIv4bgk
Learn more: www.puppetlabs.com
The document provides tips for optimizing various aspects of a website including the front end, application and database, web server, and miscellaneous topics. It recommends techniques such as minimizing HTTP requests, leveraging caching, optimizing databases and queries, offloading processing, and load balancing between web servers to improve page loading speeds and site performance. The overall goal is to analyze bottlenecks and apply solutions such as file compression, caching, and leveraging CDNs or reverse proxies to make websites faster and more scalable.
This document provides an overview and introduction to Puppet, an open source tool for configuration management. It discusses what Puppet is, how it works, its main components like the Puppet Master, Puppet Agent, and Facter for gathering system facts. It also covers Puppet manifests which define configurations declaratively using the Puppet DSL language.
This document provides an overview of a PuppetCamp presentation on using Puppet for system administrators. The presenter, Stephen Wallace, has 20 years of experience in system administration roles. He will discuss how Puppet can help achieve goals like reusability, reduced support workload, improved monitoring, and documentation for system administrators. He will also cover topics like getting started with Puppet without programming experience, using tools like Hiera and Augeas, and how Puppet can help with provisioning, documentation, and disaster recovery.
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet
This document discusses challenges encountered when scaling Puppet to manage over 100,000 nodes, and proposes an alternative approach called PVC (Puppet Variable Control) to help address those challenges. Some key issues identified include uneven and unpredictable Puppet run times that cause system thrashing. PVC aims to run Puppet reactively based on available capacity and local file changes, using frequent pings and fact collection to determine run timing in a way that achieves a flat and consistent service curve. It also aims to improve security by running Puppet immediately when monitored files change outside of Puppet runs.
The document discusses using Fabric for deployment and system administration tasks across multiple servers. It provides examples of Fabric configuration, defining roles for servers, writing tasks to run commands on servers, and how to structure tasks for a full deployment workflow. Fabric allows running commands remotely via SSH and provides tools for task composition and failure handling.
Ansible is an IT automation tool that can provision and configure servers. It works by defining playbooks that contain tasks to be run on target servers. Playbooks use YAML format and modules to automate configuration changes. Vagrant and Ansible can be integrated so that Ansible playbooks are run as part of the Vagrant provisioning process to automate server setup. The document provides an introduction and examples of using Ansible playbooks with Vagrant virtual machines to install and configure the Apache HTTP server.
Dennis Matotek, Technical Lead Platforms at Experian Hitwise Australia, gave an excellent presentation on setting up puppet using vagrant, puppet and testing, including a full demo of rspec-puppet and Jenkins.
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecMartin Etmajer
The goal of Continuous Delivery is, briefly, to get features into your users' or customers' hands as quickly and confidently as possible. In order to succeed, Development and Operations teams need to align and come up with both working and deployable software in short, regular intervals. Chef, Puppet, Ansible & Co. enable teams to code up application runtime environments, but alone do not allow for building quality into their processes. In this presentation I will show how you can apply the "Red, Green, Refactor Cycle" of Test-Driven Development and combine it with your configuration management or orchestration tool of choice in order to come up with better infrastructure that can automatically be tested using Ansible, Test Kitchen, Docker, Serverspec and RSpec.
Take control of your Jenkins jobs via job DSL.Łukasz Proszek
Jenkins jobs can be managed via the GUI, CLI, or script console which become unwieldy for large numbers of jobs. The Jenkins Job DSL plugin allows jobs to be defined and maintained as code using a Groovy domain-specific language. This provides benefits such as version control of job configuration, reuse of common job properties, and programmatic job creation. A seed job can be used to generate other jobs from DSL scripts checked into a code repository and run validation/testing.
The document provides configuration details for setting up a Capistrano deployment with multistage environments and recipes for common tasks like installing gems, configuring databases, and integrating with Thinking Sphinx. It includes base configuration definitions, recipes for setting up Thinking Sphinx indexes and configuration files, and instructions for packaging the Capistrano configurations as a gem.
- The document provides information on using Ansible to manage network device configurations including Juniper devices. It discusses using modules like junos_get_config to backup configurations, templates to generate configurations, and junos_install_config to deploy them. It also covers using Ansible to manage users on Linux systems.
The document discusses Puppet configuration management. It provides an agenda that covers Puppet overviews, installation, configuration, the Puppet master, Puppet language basics and advanced topics, provisioning hosts, and best practices. The document includes sections on the Puppet architecture, installing and configuring the Puppet master and agents, the Puppet configuration tree and files, resources, variables, templates, and creating sample modules for SSH and NTP configuration.
Ansible : what's ansible & use case by REXSaewoong Lee
The document discusses using Ansible to upgrade MySQL from version 3.10 to 3.12 across 1000 servers. It provides steps to create backups and run upgrade scripts on each server using Ansible playbooks and bash scripts in a loop. It also asks how to make the deployment easier, safer and more comfortable. Later sections explain Ansible concepts like installation, modules, playbooks, tags, inventory, variables and demonstrate usage through examples.
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
Wai Keen Woon, CTO CDN Division OnApp Malaysia, gave an interesting overview of what the Puppet architecture at OnApp looks like. The CDN division at OnApp is a large provider of CDN services, and as such makes a very interesting candidate for a case study.
This document discusses using Puppet for scalable systems management. It begins with challenges faced by system administrators and an introduction to Puppet. It covers installing and configuring Puppet, including certificate signing. It also discusses managing infrastructure with Puppet through classes, modules, and templates. Examples of Puppet configuration are provided.
Al Tobey (@AlTobey) is an Open Source Mechanic at DataStax. Prior to working at DataStax, Al was a Tech Lead of Compute and Data Services at Ooyala, which has been using Apache Cassandra since version 0.4 and these days uses Go in production.
Al will be presenting a brief introduction to Go (#golang) and Cassandra, and how they are a great fit for each other. This talk will include code samples and a live demo.
Walter Heck, founder of OlinData, presented a step-by-step guide on how to set up a proper puppet repository, complete with the brand new PuppetDB, exported resources and usage of open source modules.
This fabric workshop aims to create a deploy tool using Fabric that can deploy code to servers defined in roles, show existing tags, change to a different tagged version, and remove tags. The agenda includes demonstrating local tasks, remote tasks using an Ansible inventory file, and functions for mkdir, cd, and uploading files. Fabric provides a simple way to automate operations across multiple servers.
The document discusses automating software deployment using Ansible. It provides an overview of Ansible's basic concepts like inventory files to define hosts, playbooks to execute tasks on hosts, and roles to bundle related tasks. It then discusses using Ansible roles to automate deployments, including the ansistrano roles which can deploy applications by copying files, managing releases, and supporting deployment hooks. Overall the document presents Ansible as a way to easily automate and standardize software deployment processes.
Raphaël Pinson's talk on "Configuration surgery with Augeas" at PuppetCamp Geneva '12. Video at http://youtu.be/H0MJaIv4bgk
Learn more: www.puppetlabs.com
The document provides tips for optimizing various aspects of a website including the front end, application and database, web server, and miscellaneous topics. It recommends techniques such as minimizing HTTP requests, leveraging caching, optimizing databases and queries, offloading processing, and load balancing between web servers to improve page loading speeds and site performance. The overall goal is to analyze bottlenecks and apply solutions such as file compression, caching, and leveraging CDNs or reverse proxies to make websites faster and more scalable.
This document provides an overview and introduction to Puppet, an open source tool for configuration management. It discusses what Puppet is, how it works, its main components like the Puppet Master, Puppet Agent, and Facter for gathering system facts. It also covers Puppet manifests which define configurations declaratively using the Puppet DSL language.
This document provides an overview of a PuppetCamp presentation on using Puppet for system administrators. The presenter, Stephen Wallace, has 20 years of experience in system administration roles. He will discuss how Puppet can help achieve goals like reusability, reduced support workload, improved monitoring, and documentation for system administrators. He will also cover topics like getting started with Puppet without programming experience, using tools like Hiera and Augeas, and how Puppet can help with provisioning, documentation, and disaster recovery.
Automating MySQL operations with PuppetKris Buytaert
This document summarizes a presentation about automating MySQL operations with Puppet. It discusses:
- Why automation is important for consistency, security, and disaster recovery. Manual changes can introduce bugs and inconsistencies.
- Puppet is an open source configuration management tool that can be used to automate MySQL configuration, users, backups, replication, and high availability clustering with tools like Corosync/Pacemaker.
- Puppet modules define the desired state and Puppet ensures the actual state matches by making necessary changes. This provides auditability and change tracking through version control of Puppet code.
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet
Julien Rottenberg, CityGrid. Presentation of the tools and workflow for our puppet setup. How puppet helps us managing 500+ servers in a hybrid environment O&O Datacenter and EC2, hands free. Watch the video at http://youtu.be/FPwga7HwomM
PuppetCamp LA, May '12.
Queues can provide parallel processing, cross language scripting and more! The talk was focused on Gearman but the principles apply to any alternative.
The document discusses using Puppet and Vagrant together to create a test environment for infrastructure configuration. Vagrant allows setting up and provisioning virtual machines quickly, while Puppet configures the desired state of systems. The demo project uses Vagrant to launch a CentOS virtual machine and Puppet to configure it based on roles like webserver or database.
The document discusses using work queues with Gearman and CodeIgniter. It begins with an introduction to work queues, describing them as sequences of stored data or programs awaiting processing. It then discusses the client worker pattern for processing asynchronous jobs, some limitations of this approach, and how Gearman can help address those limitations by facilitating work distribution across languages and servers. The document provides instructions for installing and configuring Gearman to add work queue functionality.
These tools relate to automating application deployment and configuration management. Capistrano was an early tool for automating application deployment through Ruby scripts without needing scripts on production servers. Puppet and Chef are tools for configuration management that define server configurations in code and work to ensure servers match those definitions. Puppet uses a declarative domain-specific language while Chef uses extended Ruby scripts. Both aim to provide repeatable, consistent server configurations across environments.
Madison PHP 2015 - DevOps For Small TeamsJoe Ferguson
DevOps is a large part of a company of any size. In the 9+ years that I have been a professional developer I have always taken an interest in DevOps and have been the "server person" for most of the teams I have been a part of. I would like to teach others how easy it is to implement modern tools to make their everyday development and development processes better. I will cover a range of topics from "Stop using WAMP/MAMP and start using Vagrant", "version control isn't renaming files", "Automate common tasks with shell scripts / command line PHP apps" and "From Vagrant to Production".
Joe Ferguson discusses how small development teams can implement DevOps practices. He recommends using version control for all code and configurations, developing on the same environments that are deployed (using Vagrant), implementing continuous integration and testing, and automating common tasks through aliases, scripts, and cron jobs. The talk provides many specific tools and resources for setting up version control, continuous integration, testing, and automation for small teams.
Using Puppet - Real World Configuration ManagementJames Turnbull
Configuration management is the oft-misunderstood (and possibly black) art of managing your IT environment, infrastructure, and costs. Done well it can reduce operational errors and outages, simplify your environment, and help maintain the sanity of your IT staff.
Puppet is part of the bright future of configuration management for heterogeneous Unix systems. It combines automation, a powerful abstraction language, and uses a client-server model that can scale to suit enterprise-size environments. Puppet is written in Ruby and authored by recovering system administrator-turned-developer Luke Kanies.
This session explains why configuration management is important, the benefits configuration management will deliver, and how all of this can be achieved using Puppet. The session also explains emerging best practices in configuration management and addresses:
* What is configuration management? Or why am I here?
* Benefits, risks, and challenges: build fire resistant infrastructure rather than fight fires
* Best practice: how do we do this configuration management magic right?
* Where does Puppet fit in and why should management pay for its implementation?
* Why using Puppet will save you money and help staff retention (although is unlikely to stop world hunger)
* Real world configuration management using Puppet: code, examples, explanations, and using Puppet in anger
* Measuring the results and pocketing the returns
* Where to from here: some ideas about the future (may include wild-arse guesses)
Kris Buytaert discusses how they used Vagrant, Puppet, and other tools to improve their Puppet development and testing workflow. Some key points:
- Vagrant allows creating reproducible development environments for Puppet code.
- Puppet style guides help write more readable manifests. Tools like Puppet Lint can validate style.
- Testing Puppet code with rspec-puppet, cucumber-puppet, and other tools helps prevent errors.
- Using Git, GitHub, and Git flow practices helps manage Puppet modules in version control.
- Jenkins can automate building, testing, and deploying Puppet code and modules.
- Demonstr
The document discusses many challenges faced when adopting configuration management and DevOps practices. It argues that challenges are now less technical and more cultural, with unrealistic expectations from leadership, an overemphasis on automation over culture, and failure to consider operational aspects like monitoring. It advocates focusing on people over tools, improving code quality, and learning from past experiences rather than jumping to new technologies without understanding challenges already addressed.
Boxen: How to Manage an Army of Laptops and Live to Talk About ItPuppet
Will Farrington of Github talks about Boxen at Puppet Camp Atlanta, 2013. Original slides can be found: https://speakerdeck.com/wfarr/boxen-puppetcamp-atl Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
Puppet Camp Chicago 2014: Puppet at backstop another year of lessonsPuppet
Puppet is used to manage around 350 machines for a financial services company. The company moved their Puppet code to GitHub in 2013, which led to a significant increase in contributors from outside the systems administration team. They use a Git workflow with master and office branches and pull requests. Jenkins is used to test and deploy Puppet changes. MCollective and CloudStack are also leveraged in their environment. While Puppet works well overall, the speaker notes some challenges around ActiveMQ stability and the need to consider alternatives to storing all configuration data in Puppet.
DevOps is a large part of a company of any size. In the 9+ years that I have been a professional developer I have always taken an interest in DevOps and have been the "server person" for most of the teams I have been a part of. I would like to teach others how easy it is to implement modern tools to make their everyday development and development processes better. I will cover a range of topics from "Stop using WAMP/MAMP and start using Vagrant", "version control isn't renaming files", "Automate common tasks with shell scripts / command line PHP apps" and "From Vagrant to Production".
Those days, when it seemed, that web applications have overthrown standard “cumbersome” client apps, we’ll speak about present and future of consumer oriented desktop applications. This includes, but not restricted to patterns of LOB applications development with WPF, right multimedia support of DirectX bridge and new features, waiting for you in Windows 7. Also we’ll speak about subject oriented programming, will be introduced in NET. 4.0 and how to leverage it even today with the current version of Microsoft framework. tits will be shown during the session, thus restricted to mature audiences
Block cipher modes describe how block ciphers encrypt data in blocks rather than a continuous stream. Electronic Codebook (ECB) encrypts each block deterministically, while Cipher Block Chaining (CBC) encrypts blocks in a chained manner using an initialization vector, making the encryption non-deterministic and preventing errors from propagating between blocks. Cipher Feedback (CFB) converts the block cipher into a stream cipher, allowing encryption of non-fixed length data without padding.
The document provides 15 pro-tips for MySQL users, beginning with basic tips like using the correct MySQL version and understanding EXPLAIN plans, and progressing to more advanced tips involving backups, queries, indexing, and database design. Key recommendations include knowing important configuration settings, backing up at the table level, avoiding SELECT * queries, using triggers for consistency, and separating volatile and non-volatile data.
Alice & bob public key cryptography 101 - uncon dpcJoshua Thijssen
This document provides an introduction to public key cryptography. It begins with an overview of Alice and Bob, who represent the two parties in a communication. It then discusses the history of encryption, including weaknesses in early ciphers like substitution and Caesar ciphers. Frequency analysis is introduced as a way to break these simple ciphers. Symmetric encryption algorithms are discussed along with the key distribution problem they present. The document then introduces public key encryption as an solution, using two keys: a public key that can encrypt and a private key for decrypting. RSA is presented as the most widely used public key algorithm, and its workings are outlined at a high level.
Representation state transfer and some other important stuffJoshua Thijssen
The document provides an overview of Representational State Transfer (REST) architectural style. It defines REST as a set of constraints for building scalable web services. The key aspects of REST covered include identifying resources with URLs, using HTTP methods like GET, POST, PUT and DELETE to manipulate resources, making communications self-descriptive through links and embedded resource representations, and enabling stateless interactions between components through hypermedia as the engine of application state (HATEOAS). Specific examples are given to illustrate how to build RESTful state transitions in a flight booking application.
Deploying and maintaining your software with RPM/APTJoshua Thijssen
The document describes a conference about deploying and maintaining software with RPM and APT package managers. The conference will take place on April 16-17, 2011 in Antwerp, Belgium and the URL http://joind.in/3315 provides additional information about the event.
This document provides an introduction to public key cryptography. It begins with an overview of Alice and Bob, who represent communication parties. It then discusses the history of encryption, including flaws in early substitution and Caesar ciphers. Frequency analysis is introduced as a way to break these simple ciphers. The document concludes by explaining the advantages of public key encryption over symmetric encryption, such as not requiring secure key exchange.
The document outlines 15 pro-tips for MySQL users that were presented at a PHPBenelux meeting. It discusses various tips including using EXPLAIN to optimize queries, understanding important MySQL configuration settings, backing up data at the table level, avoiding SELECT * queries when only certain fields are needed, using triggers and stored procedures to enforce data consistency, avoiding FULLTEXT searches and wildcard searches for performance reasons, and sharding volatile and non-volatile data for better caching and locking. The tips range from basic to more advanced techniques.
This document provides examples of unit testing code in PHP using PHPUnit. It demonstrates how to write test cases with assertions, use PHPUnit features like data providers and expected exceptions, and addresses challenges like external dependencies by implementing dependency injection. Mocking and stubs are also presented as ways to isolate code during testing. The overall content aims to explain PHPUnit and best practices for writing clean, isolated and effective unit tests.
The document describes a presentation on sed and awk given by Joshua Thijssen. It begins with biographical information about Joshua, who works as a senior software engineer. It then discusses expanding one's "comfort zone" by learning tools like sed and awk that may be better suited than PHP for certain data manipulation tasks. The remainder of the document outlines why sed and awk are useful and previews the topics to be covered in the presentation, including an introduction to sed.
- Public key cryptography uses key pairs consisting of a public key and a private key
- RSA is an asymmetric encryption algorithm that uses these key pairs
- In RSA, the public and private keys are generated based on selecting two large prime numbers p and q, and doing mathematical operations on them like multiplying them to get n, and using p and q to calculate φ
- A public exponent e is also selected such that it is relatively prime to φ
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
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.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
1. Puppet for
Dummies
ZendCon - October 2011
Santa Clara - United States
http://joind.in/3781
2. Who am I?
Joshua Thijssen
Senior Software Engineer @ Enrise (Netherlands)
Development in PHP, Python, Perl, C, Java,
and System & DB admin.
Blog: http://adayinthelifeof.nl
Email: joshua@enrise.com
Twitter: @jaytaph
http://www.flickr.com/photos/akrabat/5422369749/in/photostream/
5. The question of the day
What is puppet and why should I care?
6. Why should I care?
“People are finally figuring out puppet
and how it gets you to the pub by 4pm.
Note that I’ve been at this pub since
2pm.”
- Jorge Castro
8. What is puppet?
Puppet is a (not necessarily the)
solution for the following problem:
How do we setup, manage, synchronize,
and upgrade our internal and external
infrastructure?
9. But isn’t that a sysadmin problem?
Sysadmin!
Y U no fix problem!
10. But isn’t that a sysadmin problem?
Sysadmin!
Y U no fix problem!
NO
16. How do we manage our infrastructure?
‣ Solution 1: We don’t,
17. How do we manage our infrastructure?
‣ Solution 1: We don’t,
‣ Solution 2: We outsource,
18. How do we manage our infrastructure?
‣ Solution 1: We don’t,
‣ Solution 2: We outsource,
‣ Solution 3: We automate the process.
19. How do we manage our infrastructure? (1)
‣ Solution 1: we don’t
20. How do we manage our infrastructure? (1)
‣ It’s not funny: you find it more often
than not. Especially inside small
development companies.
‣ Solution 1: we don’t
21. How do we manage our infrastructure? (1)
‣ It’s not funny: you find it more often
than not. Especially inside small
development companies.
‣ Internal sysadmin, but he’s too busy
with development to do sysadmin.
‣ Solution 1: we don’t
22. How do we manage our infrastructure? (1)
‣ It’s not funny: you find it more often
than not. Especially inside small
development companies.
‣ Internal sysadmin, but he’s too busy
with development to do sysadmin.
‣ We only act on escalation
‣ Solution 1: we don’t
23. How do we manage our infrastructure? (1)
‣ It’s not funny: you find it more often
than not. Especially inside small
development companies.
‣ Internal sysadmin, but he’s too busy
with development to do sysadmin.
‣ We only act on escalation
‣ reactive, not proactive
‣ Solution 1: we don’t
24. How do we manage our infrastructure? (2)
‣ Solution 2: we outsource
25. How do we manage our infrastructure? (2)
‣ Expensive $LA’s.
‣ Solution 2: we outsource
26. How do we manage our infrastructure? (2)
‣ Expensive $LA’s.
‣ What about INTERNAL servers like
your development systems and
infrastructure?
‣ Solution 2: we outsource
27. How do we manage our infrastructure? (2)
‣ Expensive $LA’s.
‣ What about INTERNAL servers like
your development systems and
infrastructure?
‣ Fight between stability and agility.
‣ Solution 2: we outsource
28. How do we manage our infrastructure? (2)
‣ Expensive $LA’s.
‣ What about INTERNAL servers like
your development systems and
infrastructure?
‣ Fight between stability and agility.
‣ Does your hosting company decide
on whether you can use PHP5.3???
‣ Solution 2: we outsource
29. How do we manage our infrastructure? (3)
‣ Solution 3: we do it ourselves and automate
30. How do we manage our infrastructure? (3)
‣ We are in charge.
‣ Solution 3: we do it ourselves and automate
31. How do we manage our infrastructure? (3)
‣ We are in charge.
‣ You can do what you like
‣ Solution 3: we do it ourselves and automate
32. How do we manage our infrastructure? (3)
‣ We are in charge.
‣ You can do what you like
‣ Use: cfEngine, chef, puppet.
‣ Solution 3: we do it ourselves and automate
33. How do we manage our infrastructure? (3)
‣ We are in charge.
‣ You can do what you like
‣ Use: cfEngine, chef, puppet.
‣ When done right, maintenance
should not be difficult.
‣ Solution 3: we do it ourselves and automate
35. What is puppet?
‣ Open source configuration
management tool.
‣ Written in Ruby
‣ Open source:
https://github.com/puppetlabs
‣ Commercial version available
(puppet enterprise)
36. What is puppet?
¹
‣ Don’t tell HOW to do stuff.
‣ Tell WHAT to do.
¹ It’s not actually true, but good enough for now...
37. What is puppet?
“yum install httpd”
“apt-get install apache2”
¹
‣ Don’t tell HOW to do stuff.
‣ Tell WHAT to do.
“install and run the apache webserver”
¹ It’s not actually true, but good enough for now...
57. Puppet manifests
class webserver {
service { “apache”:
ensure => running,
require => Package[“apache”],
}
package { “apache” :
ensure => installed,
}
}
‣ Group together into a class
58. Puppet manifests
class webserver {
service { “apache”:
ensure => running,
require => Package[“apache”],
}
package { “apache” :
ensure => installed,
}
file { “vhost_${webserver_name}” :
path => “/etc/httpd/conf/10-vhost.conf”,
content => template(“vhost.template.erb”),
notify => Service[“httpd”],
}
}
‣ Group together into a class
59. Puppet manifests
vhost.template.erb
<virtualHost <%= ipaddress %>:80>
ServerName <%= webserver_name %>
ServerAlias <%= webserver_alias %>
DocumentRoot <%= webserver_docroot %>
</virtualHost>
‣ ERB Templates can use custom variables and facts
61. Puppet modules
‣ A puppet module is a collection of
resources, classes, templates.
‣ Used for easy distribution and
code-reuse.
‣ Self-contained, run out-of-the-box
62. Puppet modules
‣ puppetforge / github
‣ Create your own (and share!).
‣ Use the ones from puppet
enterprise edition.
‣ Use the standard layout / best
practices
64. Test your modules
‣ (Unit)test your modules
‣ Test them with:
puppet apply --noop
‣ More advanced testing: cucumber /
cucumber-puppet (BDD)
65. What can puppet manage
‣ Almost everything.
‣ standard 48 different resource types
‣ Ranging from “file” to “cron” to
“ssh_key” to “user” to “selinux”.
‣ Can control your Cisco routers and
windows machines too (sortakinda)
‣ http://docs.puppetlabs.com/references/stable/type.html
67. Confusing puppet things
‣ Puppet went from v0.25 to v2.6.
‣ REST interface since 2.6. XMLRPC
before that.
‣ One binary to rule them all (puppet).
‣ Puppet v2.7 switched from GPLv2 to
apache2.0 license.
68. Confusing puppet things
‣ --test does not mean dry-run!
(--noop does).
‣ It’s not object oriented. (puppet
class != php class)
‣ It’s a declarative language.
72. MCollective
‣ Puppet agent “calls” the master every 30
minutes.
‣ But what about realtime command & control?
‣ “Puppet kick”... (meh)
‣ MCollective (Marionette Collective)
73. MCollective
‣ Which systems running a database
and have 16GB or less?
‣ Which systems are using <50% of
available memory?
‣ Restart all apache services in
timezone GMT+5.
‣ How do we handle large number of nodes?
74. MCollective
Client Middleware Node
MCollective
Server
MCollective
Client ACTIVEMQ
Server
MCollective
Server
Collective
‣ Middleware takes care of distribution,
‣ queued, broadcast etc..
75. MCollective
‣ The collective
http://docs.puppetlabs.com/mcollective/reference/basic/subcollectives.html
76. MCollective
$ mc-facts operatingsystem
Report for fact: operatingsystem
CentOS found 3 times
Debian found 14 times
Solaris found 4 times
$ mc-facts -W operatingsystem=Centos operatingsystemrelease
Report for fact: operatingsystemrelease
6.0 found 1 times
5.6 found 2 times
‣ Filter out nodes based on facts
77. MCollective - cool stuff
‣ Display all running processes
‣ Run or deploy software
‣ Restart services
‣ Start puppet agent
‣ Upgrade your systems
79. Recap (1)
‣ Configuration management tool.
‣ Focusses on “what” instead of “how”.
‣ Scales from 1 to 100K+ systems.
‣ Uses descriptive manifests.
80. Recap (2)
‣ Useful for sysadmins and developers.
‣ Keeps your infrastructure in sync.
‣ Keeps your infrastructure versioned.
‣ MCollective controls your hosts
based on facts, not names.