See how Kamil Cholewiński talks about Practical automation in Tech Talk episode 10
Visit pilot.co — World’s best engineering and design talent on demand.
YouTube: https://youtu.be/x0eQ7x7xN8o
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
This document discusses Docker and Puppet and how they can be used together. It suggests using Puppet to install and configure Docker on the host system, and then using Dockerfiles to build container images in a deterministic way. While Puppet could theoretically be used to build containers, the document argues it is better to use Dockerfiles for image builds and to separate operational concerns like logging and monitoring into separate containers for better portability and flexibility.
The Docker ecosystem and the future of application deployment
Ten years ago, virtualization ignited a revolution which gave birth to the Cloud and the DevOps initiative. Today, with containers, we are at the dawn of a similar breakthrough.
How can we capture the value of containers? How can we use their features to implement microservices and immutable infrastructures, while retaining as much as possible of our existing practices? The answer is in the rich ecosystem that developed around Docker, an open-source platform to build, ship, and run applications in containers.
In this keynote we’ll explore what the applications of tomorrow will look like, how they’ll be deployed and distributed – and how to leverage those tools today.
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
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.
Looking at how people, with current deployments, can start using docker with out having to replace anything. Also giving a migration path that allows testing the separate pieces and migrating over slowly without painting yourself into a corner. Also covering why you might want to do this and the problems it may help to solve.
This document discusses Docker containers and how they compare to virtual machines and configuration management tools like Puppet. It provides an overview of Docker, including how to build Docker images using Dockerfiles. It then compares Dockerfiles to shell scripts and configuration management, noting advantages and disadvantages of each. The document suggests using Puppet to install Docker and build Docker images, but not running Puppet inside containers. It provides examples of building Docker images that use Puppet for configuration.
This document discusses writing command-line tools with IronPython and Visual Studio. It describes creating a Python CLI tool in IronPython to upgrade hundreds of thousands of lines of C# code to .NET 4.0. The tool uses functions to validate the Visual Studio version in solution files, walk a file tree to find solution files, convert projects to the VS2010 format using the devenv tool, and recursively modify solution files in the tree. The run method parses arguments and executes the conversion process on the specified path, excluding any directories matching the given path.
Solving Real World Production Problems with Docker
The document discusses securing the Docker delivery and execution process. It recommends choosing images carefully, scanning Dockerfiles, enabling Docker Content Trust to verify image integrity and publisher, and running the Docker Benchmark for Security to audit container configurations. The document outlines best practices for building, delivering, and executing Docker containers in a production environment.
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.
Introduction to Docker, December 2014 "Tour de France" Edition
Docker, the Open Source container Engine, lets you build, ship and run, any app, anywhere.
This is the presentation which was shown in December 2014 for the "Tour de France" in Paris, Lille, Lyon, Nice...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
In less than two years Docker went from first line of code to major Open Source project with contributions from all the big names in IT. Everyone is excited, but what's in for me - as a Dev or Ops? In short, Docker makes creating Development, Test and even Production environments an order of magnitude simpler, faster and completely portable across both local and cloud infrastructure. We will start from Docker main concepts: how to create a Linux Container from base images, run your application in it, and version your runtimes as you would with source code, and finish with a concrete example.
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Docker, the Open Source container Engine, lets you build, ship and run, any app, anywhere.
This is the presentation which was shown in December 2014 for the last stop of the "Tour de France" in Bordeaux. It is slightly different from the presentation which was shown in the other cities (http://www.slideshare.net/jpetazzo/introduction-to-docker-december-2014-tour-de-france-edition), and includes a detailed history of dotCloud and Docker and a few other differences.
Special thanks to https://twitter.com/LilliJane and https://twitter.com/zirkome, who gave me the necessary motivation to put together this slightly different presentation, since they had already seen the other presentation in Paris :-)
This document provides an introduction to Docker and includes instructions for several exercises to help users learn Docker in 90 minutes. The document covers downloading and running Docker containers, creating Docker images, understanding Docker layers, exposing container ports, using Dockerfiles to build images, and sharing images in Docker repositories. The exercises guide users through hands-on experience with common Docker commands and concepts.
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.
The document discusses using Docker containers and Puppet to compartmentalize services running on a personal server. Previously, many services like Postfix, Dovecot, DNS, etc. were running on the server with no isolation. The approach taken was to define Puppet profiles for each service, build Docker containers from those profiles, and run the containers independently with their own isolated environments. This improves security, ease of development and deployment, and allows immutable infrastructure by replacing containers instead of changing server configurations. Challenges discussed include Docker bugs, inconsistent Debian packages, and future plans to add HAProxy and a container registry.
1. The document discusses moving from a Dev to DevOps model by addressing issues like siloization between development and operations teams and embracing concepts like infrastructure as code.
2. It recommends several DevOps tools for infrastructure automation including Puppet, Vagrant, and VeeWee which allow developers to define infrastructure in code and provision environments.
3. The Puppet Domain Specific Language (DSL) is demonstrated for declaring resources like users, files, packages, and services with attributes and relationships between them in a declarative way.
Puppet is a configuration automation platform that simplifies system administration tasks. It uses a client/server model where agent nodes pull configuration profiles from the Puppet master. Modules on the master describe the desired system configuration. Puppet translates modules into code and configures agent servers as needed. Puppet can manage infrastructure across multiple servers.
The document discusses ways to streamline a Puppet development workflow including using revision control, running Puppet in noop or automatic mode, moving changes slowly through testing and using branches, reporting on changes, and implementing testing strategies like unit testing with rspec-puppet and integration testing with serverspec. It also recommends tools like Foreman, Norman, Puppetfile, and Jenkins to improve testing and deployment.
This document discusses leadership styles and the qualities of an effective leader. It describes four main leadership styles: autocratic, democratic, free rein, and paternalistic. It emphasizes that the ideal leader influences others towards common goals through careful planning, excellence under pressure, high standards, focus, integrity, communication, and soft skills like listening, courtesy, discretion, literacy, appearance, feedback. An effective leader helps others achieve their potential and believes that "impossible is nothing."
Industrial engineers determine the most effective ways to use resources like people, machines, materials, and energy to improve business operations and efficiency. They work to make products and services safer, faster, easier, and more profitable through techniques like project management, supply chain optimization, quality control, and financial analysis. The field offers opportunities across many industries as well as consulting, government, healthcare, education, and more.
A leader is defined as a person who influences others towards achieving a goal. To be an effective leader, one must have followers who trust them. Key attributes of good leadership include having a deep commitment to the goal, the ability to visualize success, and being worthy of others' trust. Effective leadership requires understanding followers' needs and motivating them through two-way communication that depends on the specific situation. Traits, skills, inspiring a vision, and inviting participation are important factors in leadership.
Orchestration, resource scheduling…What does that mean? Is this only relevant for data centers with thousands of nodes? Should I care about Mesos, Kubernetes, Swarm, when all I have is a handful of virtual machines? The motto of public cloud IAAS is "pay for what you use," so in theory, if I deploy my apps there, I'm already getting the best "resource utilization" aka "bang for my buck," right? In this talk, we will answer those questions, and a few more. We will define orchestration, scheduling, and others, and show what it's like to use a scheduler to run containerized applications there.
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
In this session, we will learn how to define and run multi-container applications with Docker Compose. Then, we will show how to deploy and scale them seamlessly to a cluster with Docker Swarm; and how Amazon EC2 Container Service (ECS) eliminates the need to install,operate, and scale your own cluster management infrastructure. We will also walk through some best practice patterns used by customers for running their microservices platforms or batch jobs. Sample code and Compose templates will be provided on GitHub afterwards.
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet
This document discusses Docker and Puppet and how they can be used together. It suggests using Puppet to install and configure Docker on the host system, and then using Dockerfiles to build container images in a deterministic way. While Puppet could theoretically be used to build containers, the document argues it is better to use Dockerfiles for image builds and to separate operational concerns like logging and monitoring into separate containers for better portability and flexibility.
The Docker ecosystem and the future of application deploymentJérôme Petazzoni
Ten years ago, virtualization ignited a revolution which gave birth to the Cloud and the DevOps initiative. Today, with containers, we are at the dawn of a similar breakthrough.
How can we capture the value of containers? How can we use their features to implement microservices and immutable infrastructures, while retaining as much as possible of our existing practices? The answer is in the rich ecosystem that developed around Docker, an open-source platform to build, ship, and run applications in containers.
In this keynote we’ll explore what the applications of tomorrow will look like, how they’ll be deployed and distributed – and how to leverage those tools today.
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.
Looking at how people, with current deployments, can start using docker with out having to replace anything. Also giving a migration path that allows testing the separate pieces and migrating over slowly without painting yourself into a corner. Also covering why you might want to do this and the problems it may help to solve.
This document discusses Docker containers and how they compare to virtual machines and configuration management tools like Puppet. It provides an overview of Docker, including how to build Docker images using Dockerfiles. It then compares Dockerfiles to shell scripts and configuration management, noting advantages and disadvantages of each. The document suggests using Puppet to install Docker and build Docker images, but not running Puppet inside containers. It provides examples of building Docker images that use Puppet for configuration.
This document discusses writing command-line tools with IronPython and Visual Studio. It describes creating a Python CLI tool in IronPython to upgrade hundreds of thousands of lines of C# code to .NET 4.0. The tool uses functions to validate the Visual Studio version in solution files, walk a file tree to find solution files, convert projects to the VS2010 format using the devenv tool, and recursively modify solution files in the tree. The run method parses arguments and executes the conversion process on the specified path, excluding any directories matching the given path.
Solving Real World Production Problems with DockerMarc Campbell
The document discusses securing the Docker delivery and execution process. It recommends choosing images carefully, scanning Dockerfiles, enabling Docker Content Trust to verify image integrity and publisher, and running the Docker Benchmark for Security to audit container configurations. The document outlines best practices for building, delivering, and executing Docker containers in a production environment.
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.
Introduction to Docker, December 2014 "Tour de France" EditionJérôme Petazzoni
Docker, the Open Source container Engine, lets you build, ship and run, any app, anywhere.
This is the presentation which was shown in December 2014 for the "Tour de France" in Paris, Lille, Lyon, Nice...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
In less than two years Docker went from first line of code to major Open Source project with contributions from all the big names in IT. Everyone is excited, but what's in for me - as a Dev or Ops? In short, Docker makes creating Development, Test and even Production environments an order of magnitude simpler, faster and completely portable across both local and cloud infrastructure. We will start from Docker main concepts: how to create a Linux Container from base images, run your application in it, and version your runtimes as you would with source code, and finish with a concrete example.
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionJérôme Petazzoni
Docker, the Open Source container Engine, lets you build, ship and run, any app, anywhere.
This is the presentation which was shown in December 2014 for the last stop of the "Tour de France" in Bordeaux. It is slightly different from the presentation which was shown in the other cities (http://www.slideshare.net/jpetazzo/introduction-to-docker-december-2014-tour-de-france-edition), and includes a detailed history of dotCloud and Docker and a few other differences.
Special thanks to https://twitter.com/LilliJane and https://twitter.com/zirkome, who gave me the necessary motivation to put together this slightly different presentation, since they had already seen the other presentation in Paris :-)
This document provides an introduction to Docker and includes instructions for several exercises to help users learn Docker in 90 minutes. The document covers downloading and running Docker containers, creating Docker images, understanding Docker layers, exposing container ports, using Dockerfiles to build images, and sharing images in Docker repositories. The exercises guide users through hands-on experience with common Docker commands and concepts.
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.
The document discusses using Docker containers and Puppet to compartmentalize services running on a personal server. Previously, many services like Postfix, Dovecot, DNS, etc. were running on the server with no isolation. The approach taken was to define Puppet profiles for each service, build Docker containers from those profiles, and run the containers independently with their own isolated environments. This improves security, ease of development and deployment, and allows immutable infrastructure by replacing containers instead of changing server configurations. Challenges discussed include Docker bugs, inconsistent Debian packages, and future plans to add HAProxy and a container registry.
1. The document discusses moving from a Dev to DevOps model by addressing issues like siloization between development and operations teams and embracing concepts like infrastructure as code.
2. It recommends several DevOps tools for infrastructure automation including Puppet, Vagrant, and VeeWee which allow developers to define infrastructure in code and provision environments.
3. The Puppet Domain Specific Language (DSL) is demonstrated for declaring resources like users, files, packages, and services with attributes and relationships between them in a declarative way.
Puppet is a configuration automation platform that simplifies system administration tasks. It uses a client/server model where agent nodes pull configuration profiles from the Puppet master. Modules on the master describe the desired system configuration. Puppet translates modules into code and configures agent servers as needed. Puppet can manage infrastructure across multiple servers.
Steamlining your puppet development workflowTomas Doran
The document discusses ways to streamline a Puppet development workflow including using revision control, running Puppet in noop or automatic mode, moving changes slowly through testing and using branches, reporting on changes, and implementing testing strategies like unit testing with rspec-puppet and integration testing with serverspec. It also recommends tools like Foreman, Norman, Puppetfile, and Jenkins to improve testing and deployment.
Presentation on Leadership - saloni chopraRE/MAX India
This document discusses leadership styles and the qualities of an effective leader. It describes four main leadership styles: autocratic, democratic, free rein, and paternalistic. It emphasizes that the ideal leader influences others towards common goals through careful planning, excellence under pressure, high standards, focus, integrity, communication, and soft skills like listening, courtesy, discretion, literacy, appearance, feedback. An effective leader helps others achieve their potential and believes that "impossible is nothing."
Industrial engineers determine the most effective ways to use resources like people, machines, materials, and energy to improve business operations and efficiency. They work to make products and services safer, faster, easier, and more profitable through techniques like project management, supply chain optimization, quality control, and financial analysis. The field offers opportunities across many industries as well as consulting, government, healthcare, education, and more.
A leader is defined as a person who influences others towards achieving a goal. To be an effective leader, one must have followers who trust them. Key attributes of good leadership include having a deep commitment to the goal, the ability to visualize success, and being worthy of others' trust. Effective leadership requires understanding followers' needs and motivating them through two-way communication that depends on the specific situation. Traits, skills, inspiring a vision, and inviting participation are important factors in leadership.
The document is a short eBook about leadership titled "The Second Little Book of Leadership". It contains short passages and quotes on various aspects of leadership. In under 3 sentences:
The eBook contains advice and insights on leadership from various sources, discussing topics such as what leaders do (create meaning), how leadership is learned through emulation, the importance of actions aligning with words, getting people engaged in their work, moving from a focus on oneself to the team, and creating more new leaders rather than just followers. The passages provide different perspectives on effective leadership strategies and behaviors.
The document discusses various theories and styles of leadership. It defines leadership as the ability to influence others towards achieving a common goal. Some key points made are:
1) There are different theories of leadership including trait theory, behavioral theory, contingency theory and situational theory.
2) Common leadership styles discussed are authoritarian, democratic, and laissez-faire.
3) Additional models covered include Fiedler's contingency model, path-goal theory, the managerial grid, and Likert's leadership systems.
4) Factors that influence leadership effectiveness include the leader, followers, communication skills, and adapting to different situations.
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
Jérôme Petazzoni discussed using Docker in production environments. He covered installing Docker on development machines and servers, building Docker images with Dockerfiles, distributing images through Docker Hub or private registries, using links or ambassador containers for service discovery, and orchestrating containers with tools like Kubernetes, Mesos, or configuration management systems. He also addressed logging, backups, and remote access of containers for sysadmin tasks.
Containers, Docker, and Microservices: the Terrific TrioJérôme Petazzoni
One of the upsides of Microservices is the ability to deploy often,at arbitrary schedules, and independently of other services, instead of requiring synchronized deployments happening on a fixed time.
But to really leverage this advantage, we need fast, efficient, and reliable deployment processes. That's one of the value propositions of Containers in general, and Docker in particular.
Docker offers a new, lightweight approach to application portability.It can build applications using easy-to-write, repeatable, efficient recipes; then it can ship them across environments using a common container format; and it can run them within isolated namespaces which abstract the operating environment, independently of the distribution,versions, network setup, and other details of this environment.
But Docker can do way more than deploy your apps. Docker also enables you to generalize Microservices principles and apply them on operational tasks like logging, remote access, backups, and troubleshooting.This decoupling results in independent, smaller, simpler moving parts.
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Jérôme Petazzoni
If you're not familiar yet with Docker, here is your chance to catch up. This presentation includes a quick overview of the Open Source Docker Engine, and its associated services delivered through the Docker Hub. Recent features are listed, as well as a glimpse at what's next in the Docker world.
This presentation was given during OSCON, at a meet-up hosted by New Relic, with co-presentations from CoreOS and Rackspace OnMetal.
This document introduces Docker and discusses its benefits for hosting web applications. It explains that Docker provides an abstraction layer between applications and operating systems using containers, allowing applications to run consistently across different computing environments. Key points covered include:
- Docker images contain application code and dependencies to run consistently on any infrastructure.
- Containers are lightweight and decoupled from underlying infrastructure, providing efficient usage of resources.
- Composing systems with Docker Compose and orchestrating containers with Kubernetes allows scaling applications across multiple machines.
- Docker is open source but also a company, and many major companies support its use for development, testing, and production deployments in private data centers and public clouds.
This document introduces Docker containers and provides examples of using Docker for networking containers across virtual machines. It discusses setting up a GRE tunnel between two VMs to connect their Docker interfaces and allow containers running on different VMs to communicate. Specific commands are provided to configure the Docker and overlay networks on each VM, establish the GRE tunnel, and run a sample container to test the connectivity.
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...Eric Smalling
Slides from my 2.5 hour hands-on workshop covering Docker basics, the Docker MTA program and how it applies to legacy Java applications and some tips on running those apps in containers in production.
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewiredotCloud
This document provides an introduction and overview of Docker and containers. It discusses that Docker is an open source tool that allows applications to be packaged with all their dependencies and run as isolated processes on any machine. Containers provide lightweight virtualization that improves efficiency by sharing resources but still isolating processes. The document outlines how Docker uses containers powered by Linux namespaces and cgroups to package and deploy applications easily and consistently across environments.
Infrastructure as Code (IaC), how to choose the right tool, terraform vs. CDK vs. Pulumi, best practices, Principles, and a lot of the underlying principles are described in this crash course.
Joxean Koret - Database Security Paradise [Rooted CON 2011]RootedCON
The document discusses vulnerabilities found in various database software products through analyzing their code and installation directories. Local privilege escalation bugs were found in IBM DB2 and Informix by exploiting how environment variables and shared libraries were handled. Remote code execution bugs were also discovered in UniData and Informix through fuzzing protocols and by exploiting unsafe functions. The document encourages searching for more bugs in database software.
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Ambassador Labs
1. The presentation introduces Docker, Kubernetes, and Envoy as foundational tools for building microservices. Docker allows packaging applications into portable containers, Kubernetes provides a platform to manage containers across clusters of hosts, and Envoy handles traffic routing and resilience at the application layer.
2. The presenters demonstrate how to build a simple Python web application into a Docker container image. They then deploy the containerized application to a Kubernetes cluster using Kubernetes objects like deployments and services. This allows the application to scale across multiple pods and be accessed via a stable service endpoint.
3. Finally, the presenters note that as applications become distributed across microservices, failures at the application layer (L7) become more common and
This document provides step-by-step instructions for building a simple orchestrator. It begins by setting up the basic components including RabbitMQ as a messaging broker and Celery workers. Step 1 demonstrates executing a simple AWS resource by adding a task to the queue. Step 2 adds a MongoDB database to store resources outside of the queue. Step 3 builds a service level on top by allowing resources like AWS instances and Docker containers to be orchestrated together through a YAML file.
The document discusses the author's approach to setting up a development environment for Django projects. It describes establishing a project layout with separate folders for source code, virtual environments, requirements files, and more. It also covers tools and practices for tasks like dependency management, testing, debugging, deployment, and overall software development philosophy.
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.
This document provides an overview of containerization and Docker. It covers prerequisites, traditional application deployment challenges, container components like namespaces and cgroups, major Docker concepts like images and containers, common Docker commands, building Dockerfiles, and Docker workflows and best practices. Hands-on exercises are included to build and run containers.
This document summarizes Dockerizing a Django application. It describes the speakers' experiences moving from a non-Dockerized setup with many issues, like outdated images and long recovery times, to a Dockerized setup with improved scalability, documentation, and development workflows. Key aspects of the new setup include using Docker Compose to run multiple services, Docker Machine to provision environments, and Docker Swarm for production deployments across multiple instances.
ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)DynamicInfraDays
Slides from Nick Gauthier's talk "Continuous Delivery with Containers" at ContainerDays Boston 2015: http://dynamicinfradays.org/events/2015-boston/programme.html#cdwithcontainers
Real-World Docker: 10 Things We've Learned RightScale
Docker has taken the world of software by storm, offering the promise of a portable way to build and ship software - including software running in the cloud. The RightScale development team has been diving into Docker for several projects, and we'll share our lessons learned on using Docker for our cloud-based applications.
This document discusses Docker and containers. It begins with an introduction to Docker and the container model. It explains that containers provide isolation using namespaces and cgroups. Containers deploy applications efficiently by sharing resources and deploying anywhere due to standardization. The document then covers building images with Dockerfiles for reproducible builds. It concludes by discussing Docker's future including networking, metrics, logging, plugins and orchestration.
Similar to Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński (20)
Pilot Tech Talk #12 — Dependency Injection in Go by Justus PerlwitzPilot
This document discusses dependency injection in Go. It provides an example of a mail delivery application with a hidden dependency on a mail delivery API. This makes the code difficult to test and maintain. The document proposes using dependency injection by defining a MailDelivery interface and injecting different implementations. This makes the code easier to test by allowing different mock delivery services to be injected. It demonstrates injecting two different delivery APIs, one that refuses delivery to Santa and one that accepts it.
Pilot Tech Talk #9 — Ember.js: Productivity without the fatigue by Jacek Gala...Pilot
See how Jacek Galanciak talks about Ember.js: Productivity without the fatigue in Tech Talk episode 9
Visit pilot.co — World’s best engineering and design talent on demand.
Pilot Tech Talk #6 — Strategy for Better Productivity by Matt DrozdzynskiPilot
See how Matt Drozdzynski talks about Strategy and Tactics for Better Productivity in Tech Talk episode #6
Visit pilot.co — World’s best engineering and design talent on demand.
Pilot Tech Talk #7 — Optimizing Infinite Scroll by Paweł SułkowskiPilot
See how Paweł Sułkowski talks about Optimizing Infinite Scroll in Tech Talk episode #7
Visit Pilot to see Paweł Sułkowski profile at pilot.co — World’s best engineering and design talent on demand.
Pilot Tech Talk #5—Managing notifications and messages in Slack by Piotrek Pe...Pilot
See how Piotrek Petrus talks about Managing notifications and messages in Tech Talk episode #5
Visit pilot.co — World’s best engineering and design talent on demand.
YouTube: https://www.youtube.com/watch?v=0opTbPeebtM
Pilot Tech Talk #4 — Building bots for Slack by Matt DrozdzynskiPilot
See how Matt Drozdzynski talks about building bots for Slack in Tech Talk episode #4
Visit pilot.co — World’s best engineering and design talent on demand.
YouTube: https://youtu.be/oTIXF67KnX4
Pilot Tech Talk #3 — Zapier — my top 5 favorite zaps by Staszek KolarzowskiPilot
See how Staszek Kolarzowski talks about his top 5 favorite zaps in Tech Talk episode #3
Visit pilot.co — World’s best engineering and design talent on demand.
YouTube: https://youtu.be/hVCW6e4byu8
Pilot Tech Talk #1 — 101 Nonviolent Communication by Karola MorawskaPilot
This document discusses nonviolent communication (NVC) and how to apply its principles in a workplace setting. It outlines different types of aggressive communication like threats, criticism, and passive aggression. NVC uses empathy, compassion, and understanding to resolve conflicts through observing objectively, identifying feelings and needs, and making requests rather than demands. Examples show how to rephrase statements in a more positive, collaborative way. Key takeaways include focusing on facts, speaking kindly, checking for understanding, giving praise, and paying attention to nonverbal cues.
How to Configure Time Off Types in Odoo 17Celine George
Now we can take look into how to configure time off types in odoo 17 through this slide. Time-off types are used to grant or request different types of leave. Only then the authorities will have a clear view or a clear understanding of what kind of leave the employee is taking.
Delegation Inheritance in Odoo 17 and Its Use CasesCeline George
There are 3 types of inheritance in odoo Classical, Extension, and Delegation. Delegation inheritance is used to sink other models to our custom model. And there is no change in the views. This slide will discuss delegation inheritance and its use cases in odoo 17.
Slide Presentation from a Doctoral Virtual Open House presented on June 30, 2024 by staff and faculty of Capitol Technology University
Covers degrees offered, program details, tuition, financial aid and the application process.
No, it's not a robot: prompt writing for investigative journalismPaul Bradshaw
How to use generative AI tools like ChatGPT and Gemini to generate story ideas for investigations, identify potential sources, and help with coding and writing.
A talk from the Centre for Investigative Journalism Summer School, July 2024
Ardra Nakshatra (आर्द्रा): Understanding its Effects and RemediesAstro Pathshala
Ardra Nakshatra, the sixth Nakshatra in Vedic astrology, spans from 6°40' to 20° in the Gemini zodiac sign. Governed by Rahu, the north lunar node, Ardra translates to "the moist one" or "the star of sorrow." Symbolized by a teardrop, it represents the transformational power of storms, bringing both destruction and renewal.
About Astro Pathshala
Astro Pathshala is a renowned astrology institute offering comprehensive astrology courses and personalized astrological consultations for over 20 years. Founded by Gurudev Sunil Vashist ji, Astro Pathshala has been a beacon of knowledge and guidance in the field of Vedic astrology. With a team of experienced astrologers, the institute provides in-depth courses that cover various aspects of astrology, including Nakshatras, planetary influences, and remedies. Whether you are a beginner seeking to learn astrology or someone looking for expert astrological advice, Astro Pathshala is dedicated to helping you navigate life's challenges and unlock your full potential through the ancient wisdom of Vedic astrology.
For more information about their courses and consultations, visit Astro Pathshala.
Beginner's Guide to Bypassing Falco Container Runtime Security in Kubernetes ...anjaliinfosec
This presentation, crafted for the Kubernetes Village at BSides Bangalore 2024, delves into the essentials of bypassing Falco, a leading container runtime security solution in Kubernetes. Tailored for beginners, it covers fundamental concepts, practical techniques, and real-world examples to help you understand and navigate Falco's security mechanisms effectively. Ideal for developers, security professionals, and tech enthusiasts eager to enhance their expertise in Kubernetes security and container runtime defenses.
Webinar Innovative assessments for SOcial Emotional SkillsEduSkills OECD
Presentations by Adriano Linzarini and Daniel Catarino da Silva of the OECD Rethinking Assessment of Social and Emotional Skills project from the OECD webinar "Innovations in measuring social and emotional skills and what AI will bring next" on 5 July 2024
The Jewish Trinity : Sabbath,Shekinah and Sanctuary 4.pdfJackieSparrow3
we may assume that God created the cosmos to be his great temple, in which he rested after his creative work. Nevertheless, his special revelatory presence did not fill the entire earth yet, since it was his intention that his human vice-regent, whom he installed in the garden sanctuary, would extend worldwide the boundaries of that sanctuary and of God’s presence. Adam, of course, disobeyed this mandate, so that humanity no longer enjoyed God’s presence in the little localized garden. Consequently, the entire earth became infected with sin and idolatry in a way it had not been previously before the fall, while yet in its still imperfect newly created state. Therefore, the various expressions about God being unable to inhabit earthly structures are best understood, at least in part, by realizing that the old order and sanctuary have been tainted with sin and must be cleansed and recreated before God’s Shekinah presence, formerly limited to heaven and the holy of holies, can dwell universally throughout creation
Views in Odoo - Advanced Views - Pivot View in Odoo 17Celine George
In Odoo, the pivot view is a graphical representation of data that allows users to analyze and summarize large datasets quickly. It's a powerful tool for generating insights from your business data.
The pivot view in Odoo is a valuable tool for analyzing and summarizing large datasets, helping you gain insights into your business operations.
Lecture_Notes_Unit4_Chapter_8_9_10_RDBMS for the students affiliated by alaga...Murugan Solaiyappan
Title: Relational Database Management System Concepts(RDBMS)
Description:
Welcome to the comprehensive guide on Relational Database Management System (RDBMS) concepts, tailored for final year B.Sc. Computer Science students affiliated with Alagappa University. This document covers fundamental principles and advanced topics in RDBMS, offering a structured approach to understanding databases in the context of modern computing. PDF content is prepared from the text book Learn Oracle 8I by JOSE A RAMALHO.
Key Topics Covered:
Main Topic : DATA INTEGRITY, CREATING AND MAINTAINING A TABLE AND INDEX
Sub-Topic :
Data Integrity,Types of Integrity, Integrity Constraints, Primary Key, Foreign key, unique key, self referential integrity,
creating and maintain a table, Modifying a table, alter a table, Deleting a table
Create an Index, Alter Index, Drop Index, Function based index, obtaining information about index, Difference between ROWID and ROWNUM
Target Audience:
Final year B.Sc. Computer Science students at Alagappa University seeking a solid foundation in RDBMS principles for academic and practical applications.
About the Author:
Dr. S. Murugan is Associate Professor at Alagappa Government Arts College, Karaikudi. With 23 years of teaching experience in the field of Computer Science, Dr. S. Murugan has a passion for simplifying complex concepts in database management.
Disclaimer:
This document is intended for educational purposes only. The content presented here reflects the author’s understanding in the field of RDBMS as of 2024.
Feedback and Contact Information:
Your feedback is valuable! For any queries or suggestions, please contact muruganjit@agacollege.in
(T.L.E.) Agriculture: Essentials of GardeningMJDuyan
(𝐓𝐋𝐄 𝟏𝟎𝟎) (𝐋𝐞𝐬𝐬𝐨𝐧 𝟏.𝟎)-𝐅𝐢𝐧𝐚𝐥𝐬
Lesson Outcome:
-Students will understand the basics of gardening, including the importance of soil, water, and sunlight for plant growth. They will learn to identify and use essential gardening tools, plant seeds, and seedlings properly, and manage common garden pests using eco-friendly methods.
2. Automation?
For whom?
For DevOps and IT...
...and for anyone who can code
...and for mere mortals as well!
How?
With Ansible, Docker, Hubot...
...and with whatever else you see fit
3. Why automate?
Humans love being lazy
Do the extra work now
Be lazy forever after
Most things are already automated
Except for those you really need
Engineer: a person that takes 3 hours to turn a 2-hour task into a 1-hour task
Reap benefits until heat death of the universe
(Or until things break mysteriously...)
"If it's worth doing it twice, it's worth automating it"
Except when it's not
Often, attempting automating things can get you nowhere and waste time
4. So when is it a good idea to automate?
Anything repetitive
Create / delete user accounts, rotate passwords...
Upgrade vulnerable software packages...
Tweak a config file...
...on ALL the servers!
...all. the. time...
Anything daunting
Go through all email groups and delete those that have no members
Migrate data from an old service to a new one
Any low-hanging fruit
Things that are not hard, not too boring; still easy to script
Good ROI, easy to get into the habit of automating
5. What if something can't be automated?
Delegate it!
Maybe there's someone more competent?
Maybe it should be a person's decision, not a machine's?
Maybe you can replace yourself with a push-button, and give the button to the guy in
charge?
Think of a better process - talk to your fellow humans
7. Problem: Managing server configuration
My story:
Developer suddenly turned sysadmin; inherited entire company's web hosting &
server infrastructure; ca 30-40 servers
Nothing was documented, everything was done by hand
Started an inventory in a spreadsheet; quickly realized it doesn't scale, and most
importantly: it's not machine-readable
8. First attempt: Ansible
Server / configuration management tool
Installed Ansible, re-created the inventory as .ini file, now I can ping ALL
hosts with one command:
ansible -m ping all
Yes, this is the way to go!
git commit -m "Hello, world"
We kept the repository ("The Cookbook") private
Lots of valuable, reusable code...
...But many parts tightly integrated with our infrastructure
2 years, 1800+ commits, 300+ pull requests, and 8 contributors later...
9. How do we use Ansible? What can it do for
you?
Need a new server or two...
ansible-playbook cloud-ec2.yml -e project=kittens -e env=live -e count=2
Provision the base system? Simple:
ansible-playbook provision-base-system.yml --limit tag_project_kittens
Deploy project "kittens" to staging environment:
ansible-playbook deploy-kittens.yml -e env=stage
Update our DNS zones:
ansible-playbook managed-dns.yml
Audit all servers for access; remove revoked public keys, etc:
ansible-playbook managed-cleanup.yml
13. Problem: Is Ansible good or bad?
Better than doing it by hand? Definitely!
Better than curl | sudo bash? Yes!!!
Better than shell scripts? Worse?
Better than any of the million other tools? Maybe...
Better than hand-rolling something? Not so sure now...
14. Problem: Is your automation efficient?
Now we can spin up & setup servers with a few simple commands. But it was
slow... Base+nginx+SSL+Python+app often took ~2h. We hated it and we
avoided it.
Solution? Create a base image
First, we tried Packer (http://packer.io/) - but it had annoying bugs; was very difficult
to debug
Second attempt: plain Ansible - worked much better
Maybe there are better tools to do these things?
We haven't even tried any of the other popular solutions: Chef, Puppet,
Fabric, Atlas/Terraform, etc.
15. Some take-aways
No automation is the worst.
Slow automation is no better than no automation.
Buggy automation is even worse!
Solutions can sometimes create more problems.
Research your tools, pick stuff that works for your needs!
16. Problem: So how exactly do you deploy these
"kittens"?
Our company has very dynamic and growing needs
Remember rule #1: automate the repetitive, boring, daunting stuff
Sysop team spent days writing elaborate Ansible playbooks to set up servers
for projects
But wait! Rule #2: can't automate something? Delegate it!
First attempt: let developers write Ansible playbooks...
Ansible has a pretty steep learning curve and some serious limitations
Difficulties micro-managing access
Difficulties achieving parity between local dev, vagrant, CI, stage, live...
Result: playbooks full of ugly hacks
Second attempt: Docker
17. Docker: some seriously magical stuff
happened
Docker puts apps into portable "containers"
Many difficult problems become easy
Developers are (mostly) in charge of their Dockerfiles
Developers no longer blocked by sysadmins
Builds are 100% automated and 100% reproducible
Much easier to review, audit, understand
Output is a fixed image; if it runs well in dev, stage, it will (probably) run well
in prod
Our deploy playbooks for Ansible are basically copy-paste & tweak; work
underway to unify them
We've created a set of base images that make it easy to follow our internal
conventions - people stick to conventions more often
18. Docker: but not everything is so rosy!
Another tool to learn for the (always busy) developers.
Difference between "build time" and "run time" greatly emphasized, for the
better and for the worse.
# XXX broken?
RUN service nginx start
RUN curl localhost
Many difficult problems stay difficult, or become even harder.
Not a silver bullet: we've dockerized most of our apps, but Ansible still
manages the raw computing infrastructure.
(You can pry Ansible from my cold, dead hands!)
(But I'm still writing my own configuration management tool, as a side
project.)
20. Automation: For IT staff
Often burdened with stuff that's not always easily automated:
Purchases, finance
Onboarding, helpdesk, troubleshooting
Setup, wiring, "hands" in the server room
Often burdened with daunting, scriptable tasks, but no time to develop the
automation
At our company, sysadmins and "IT guys" often work together closely
21. Some classical problems
Have hundreds of groups on G Suite. Review and delete empty ones.
Review group membership; create list of users from outside the domain.
Update everyone's email signatures.
Ensure there are no rogue .mp3's on anyone's Google Drive.
Create a project on JIRA with all the standard workflows, templates, etc.
...all of that, regularly.
22. Solutions?
Write some simple scripts!
Our in-house tool: https://bitbucket.org/u9/gadmin
E.g. to delete empty groups on G Suite:
$ gadmin groups count example.com
developers@example.com 11
foo@example.com 0
older-group@example.com 0
some-group@example.com 4
trash@example.com 0
$ gadmin groups count example.com | awk '$2=="0" {print $1}'
| xargs -r -n1 gadmin groups delete
Very much WIP, it may eat your laundry ;)
23. Solutions?
Write some more sophisticated scripts!
We have in-house tools for:
Device tracking for testers
JIRA project setup
Processing invoices
URL shortening
And more...
24. Solutions?
Use a third-party service!
We use BetterCloud - https://www.bettercloud.com/
Automates stuff like email signatures, Drive sharing policies, user
provisioning, and a lot more...
25. Automation: For developers: Hubot
Chatbot; built internally at Github, open-sourced: https://hubot.github.com/
Plenty of community-maintained plugins
Easy to roll your own: JS, Coffee...
We use it internally for a whole bunch of small stuff:
Standup alarms
hubot: @here it's 11:00 AM, standup time! https://hangups.example.com/kittens-
standup
Trigger a deployment
me: hubot deploy kittens 0.2.17 to dev
hubot: OK! Running:
hubot:
ansible-playbook deploy-kittens.yml -e version=0.2.17 -e env=dev
26. Automation: For developers: Hubot
...and for fulfilling our random gif needs
me: hubot pug me
hubot: https://media.tumblr.com/tumblr_lisv04akTl1qb08qmo1_500.jpg
27. Automation: For developers:make
Old, venerable tool - 1976, probably older than you
Surprisingly versatile
(If your problem can be expressed as producing an output file from a
bunch of input files!)
Build your project (obviously)
Maintain .gitignore via https://www.gitignore.io/
Maintain your scripts & dotfiles across machines (make + git)
These slides were made with make ;)
%.html: %.md
@pandoc --self-contained -f markdown -t slidy $< -o $@
make practical-automation.html
28. Automation: For everyone!
Creating sophisticated automation requires coding skills, understanding of
the problem domain, commitment to maintenance...
But not all tools need to be THIS sophisticated!
If enough people have the same problem...
29. Automation: For mere mortals: GUI tools,
Automation-as-a-Service...
Plenty of options, domain-specific or more general:
AutoHotKey - https://www.autohotkey.com/ - for Windows users
BetterCloud - https://www.bettercloud.com/ - G Suite and more
If This Then That - https://ifttt.com/
Zapier - https://zapier.com/
Various Slack bots; off-the-shelf Hubot plugins
30. Questions? Comments?
Any tools YOU would recommend?
Success stories?
Hate mail?
I will answer everything :)
cat /dev/audience
| while read question
do
echo 42 > /dev/audience
done
harry666t@gmail.com
kamil@rollc.at