1. The document discusses immutable infrastructure using Terraform, including defining immutable principles as not installing new software, updating servers, changing configurations, or updating code, but instead replacing infrastructure by building new images. 2. It promotes Terraform for implementing immutable infrastructure due to features like being declarative, having a state file and simple configuration language, and enabling reusable modules. 3. The document emphasizes testing infrastructure as code using tools like Terratest to test from top to bottom and prevent releasing without testing.
Sematext engineer Rafal Kuc (@kucrafal) walks through the details of running high-performance, fault tolerant Elasticsearch clusters on Docker. Topics include: Containers vs. Virtual Machines, running the official Elasticsearch container, container constraints, good network practices, dealing with storage, data-only Docker volumes, scaling, time-based data, multiple tiers and tenants, indexing with and without routing, querying with and without routing, routing vs. no routing, and monitoring. Talk was delivered at DevOps Days Warsaw 2015.
A presentation given for J-Labs academy, describing basic Ansible concepts and best practices, adapted to out production environment.
The document discusses several pain points experienced with Node.js applications and solutions for resolving them. It covers creating a strong foundation by upgrading to Node.js v5, locking down NPM dependencies, handling errors properly with try/catch blocks and promises, deploying applications using Docker for scaling, addressing security issues, and using tools like debug and profilers to improve performance.
This document summarizes a presentation about using Docker for WordPress development and deployment. It discusses using Docker to create development environments for WordPress, building Docker images, and deploying WordPress containers to production using Docker Compose or Kubernetes. It also covers customizing configurations, using Traefik for proxy and SSL termination, backup strategies, and notes that Kubernetes is more complex than Docker for simple use cases.
Lessons from running potentially malicious code inside containers. Short talk given at Docker Oxford / doxford
This document discusses how DramaFever scaled their internet TV platform on AWS using Docker, Packer, and Chef. It describes how they built Docker images for consistent development and deployment, used Packer to build AMIs for consistent server provisioning, and implemented Chef recipes to define server configurations. The tools helped them achieve faster development cycles, consistent environments, and improved ability to automatically scale their infrastructure on AWS.
More info at http://blog.carlossanchez.eu/tag/devops Video en español: http://youtu.be/E_OE4l3t5BA The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans. Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning. In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.
This document discusses setting up high availability for Kubernetes clusters on AWS. It describes using etcd for configuration storage, ensuring etcd is highly available through clustering. It also covers making Kubernetes masters highly available by running them as pods controlled by a podmaster service for automated failover. The approach uses CoreOS, Terraform and cloud-init scripts to deploy the Kubernetes infrastructure on AWS.
This talk is a very quick intro to Docker, Terraform, and Amazon's EC2 Container Service (ECS). In just 15 minutes, you'll see how to take two apps (a Rails frontend and a Sinatra backend), package them as Docker containers, run them using Amazon ECS, and to define all of the infrastructure-as-code using Terraform.
This document provides lessons learned from real world experiences with Node.js applications. It discusses the importance of upgrading to newer Node.js versions for security and features. It also emphasizes the importance of error handling, using promises for async flow control, and scaling applications using Docker containers. Debugging and monitoring Node.js applications for performance is also covered.
This document discusses Amazon EC2 Container Service (ECS) and its benefits for container management. It provides an overview of ECS components like container instances, clusters, task definitions, and services. It also demonstrates how to use the ECS CLI to register task definitions, run tasks, and manage clusters. Examples are given of companies like Coursera using ECS for its benefits of scalability, flexibility, and ease of managing containers compared to traditional virtual servers. ECS can be used along with other AWS services like Lambda, ELB, and more to build flexible container-based architectures.
This document provides an overview of using Vagrant to automate the setup of a development environment. It describes how Vagrant can be used to create and configure a virtual machine (VM) that contains all the necessary tools and files for a project, allowing new team members to get set up and running quickly by running a single script. The document outlines the steps to install Vagrant and VirtualBox, add a Ubuntu box, initialize a Vagrantfile, provision the VM with common tools like Apache and PHP, and set up a sample Drupal project.
Preparation study for Docker Event Mulodo Open Study Group (MOSG) @Ho chi minh, Vietnam http://www.meetup.com/Open-Study-Group-Saigon/events/229781420/
Node.js is a JavaScript runtime built on Chrome's V8 engine that allows building scalable network applications using JavaScript on the server-side. It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, suitable for data-intensive real-time applications that run across distributed devices. Common uses of Node.js include building web servers, file upload clients, ad servers, chat servers, and any real-time data applications. The document provides an introduction to Node.js concepts like callbacks, blocking vs non-blocking code, the event loop, streams, events, and modules.
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.
In this presentation Carlos Sanchez will share his experience running Jenkins at scale, using Docker and Apache Mesos to create one of the biggest (if not the biggest) Jenkins clusters to date. By taking advantage of Apache Mesos, the Jenkins platform is dynamically scaled to run jobs across hundreds of Jenkins masters, on Docker containers distributed across the Mesos cluster. Jenkins slaves are dynamically created based on load, using the Jenkins Mesos and Docker plugins, running in containers distributed across multiple hosts, and isolating job execution. This presentation will allow a better understanding of Apache Mesos and the challenges of running Docker containerized and distributed applications, particularly JVM ones, by sharing a real world use case, including good and bad decisions and how they affected the development.
This document provides a complete guide to Node.js, covering installation methods, checking installation, modules, NPM, events, streams, and persisting data. It discusses installing Node.js from nodejs.org, using a version manager like NVM, or compiling from source. It also covers creating a basic web server, reading and writing files, uploading files, and using Socket.IO for real-time applications.
Presentation on how Meetup tackles web performance. Given on: - Nov 17th, 2009 for the NY Web Performance Group (http://www.meetup.com/Web-Performance-NY/) - Jan 26th, 2010 for NYC Tech Talks Meetup Group (http://www.meetup.com/NYC-Tech-Talks/)
1. Meetup discussed optimizing the performance of their event details page by externalizing scripts, moving scripts to the bottom of the page, reducing requests, lazy loading scripts, and using event delegation. 2. These changes reduced the page load time by 27% from 6.321 seconds to 4.643 seconds and reduced javascript requests by 50%. 3. Meetup also optimized static content serving by versioning, compressing, caching resources and using a CDN to improve performance further.
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.
Why you need automation, configuration management and remote execution in your life. An intro to Ansible and how it can make your life in Ops infinitely easier.
Javascript and first-class citizenry: require.js & node.js Javascript on web pages is ubiquitous and its problems are legendary. Javascript, seen as a second-class code citizen, is usually hacked together even by seasoned developers. New libraries (jQuery, prototype, backbone, knockout, underscore) and runtime tools (firebug, jasmine) look like they solve many problems - and they do. But they still leave poorly written code as just that. One key problem is that all javascript code lives globally and this results in poorly managed, tested and delivered code. In this session, I will illustrate that we can treat javascript as a first-class citizen using with require.js and node.js: it can be modular, encapsulated and easily unit tested and added to continuous integration cycle. The dependencies between javascript modules can also be managed and packaged just like in C# and Java. In the end, we can resolve many javascript difficulties at compile time rather than waiting until runtime.
Through the magic of virtualization technology (Vagrant) and Puppet, a companion Enterprise grade provisioning technology, we explore how to make the complex configuration game a walk in the park. Bring new team members up to speed in minutes, eliminate variances in configurations, and make integration issues a thing of the past. Welcome to the new age of team development!
This document provides advice for programming startups. It recommends separating code that changes from code that stays the same. Program to interfaces rather than implementations. Prefer composition over inheritance and delegate functionality when possible. Only implement features that are actually needed ("You Ain't Gonna Need It" or YAGNI). Design thoughtfully before implementing and isolate design decisions.
The document provides tips and best practices for developing Joomla sites as part of a team. It discusses using version control like SVN or Git, following coding standards for naming conventions and formatting, and leveraging tools for code review and team development. Additional suggestions are given for debugging, moving sites, testing for injections, and speeding up sites through techniques like removing Mootools and using content delivery networks. The presenter encourages sharing ideas to improve Joomla development.
The document discusses various options for deferred processing and queuing in Ruby, including Delayed::Job, Resque, Amazon SQS, and AMQP. It provides an overview of how each works, how to install and use them, their advantages and disadvantages, and when each may or may not be a good fit for different needs.
This document discusses building hermetic systems without Docker. It defines hermetic systems as airtight and pure, with well-defined inputs and outputs. It discusses sources of non-determinism like external libraries and services that can introduce "leaks". It proposes using Clojure components and embedding services like Elasticsearch to build deterministic, reproducible systems. Components are reusable units with well-defined dependencies and lifecycles. Embedding services isolates the system from external changes. Randomness and time can also introduce non-determinism but may be modeled as reproducible services. The goal is to evaluate systems, identify leaks, and design trade-offs to build robust, hermetic systems.