This document discusses using containers and pipelines to automate the deployment of a Dashing dashboard application. It describes building containers for different components like Ruby, then using those containers to build and test the Dashing application. Jenkins pipelines are used to automate the build, test, and deployment process. Key challenges addressed include managing dependencies, running tests across environments, and reproducing builds. The document advocates defining pipelines as code using the Jenkins Job DSL plugin to centrally manage and version pipeline jobs.
Adopting Devops , Stories from the trenchesKris Buytaert
As presented at Baltic Devops in Talllinn ,
Starting with devops is either the most trivial, or the hardest thing to do.
This talk will teach you a number of tricks on how to make life easier for your team. How to work together with your management and how to convince them devops is a relevant thing
Adopting Devops , Stories from the trenchesKris Buytaert
As presented at Baltic Devops in Talllinn ,
Starting with devops is either the most trivial, or the hardest thing to do.
This talk will teach you a number of tricks on how to make life easier for your team. How to work together with your management and how to convince them devops is a relevant thing
Técnicas de gestión del tiempo para Administradores de SistemasCAPSiDE
¿Por qué los sistemas de gestión de tiempo no funcionan del todo con los SysAdmins?
En CAPSiDE, la gestión del tiempo de nuestro equipo de ingenieros especialistas y administradores de sistemas es clave para el buen funcionamiento de nuestra actividad diária.
Presentación de Alba Ferrer, SysAdmin en CAPSiDE
http://capside.com
Publicada el: 05/12/2011
Shirt Ops: How to make awesome t-shirts for your conferenceJames Wickett
Make great t-shirts for your tech conference. In this deck I share the process we use for DevOps Days Austin to make awesome t-shirts. Using this process you will be on your way to making great shirts.
Link for shirt design in deck:
- http://bit.ly/shirtops
Get your #shirtops on!
Pragmatic Security and Rugged DevOps - SXSW 2015James Wickett
From SXSW Interactive 2015
Writing code that works is hard. Writing rugged code that can stand the test of time is even harder. This difficulty is often compounded by crunched timelines and fast cycles that prioritize new features. Add in evolving business needs and new technology and it becomes confusing to know what to do and how to integrate security into your application.
This workshop brings in some of the top developers and application security practitioners to help you ruggedize your end-to-end development lifecycle from code commit to running system.
Three Takeaways:
1. You will learn pragmatic approaches and tooling that will affect your development processes and delivery pipelines.
2. Armed with tools and ideas for monitoring your operational and runtime security.
3. You will walk away with code examples and tools that you can put into practice right away for security and rugged testing.
http://schedule.sxsw.com/2015/events/event_IAP35935
Application Security Epistemology in a Continuous Delivery WorldJames Wickett
CD Summit - Austin, from DevOps Connect
Desc:
Over the years, application security (appsec) has made progress, but it has also made some considerable mis-steps. Appsec focuses almost solely on developer awareness and secure development training as remediation. This isn’t sustainable and arguably does little good. There is a better way, but we have to separate ourselves from the core assumptions we have made that got us here.
http://www.devopsconnect.com/events/cd-summit-austin/
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
В своём докладе мы расскажем о том, что значит DevOps для нас, и как мы его готовим в большой организации со всеми её ограничениями, проблемами и челленджами как с технической, так и менеджерской точек зрения. Поделимся наработанным уникальным опытом в непростых вопросах: а зачем банку вообще нужен DevOps? как поставить более-менее правильные цели и продать это себе, своим коллегам, начальнику и бизнесу? Какие метрики нужно поставить, и попробуем разобраться есть ли в метриках счастье? Покажем, какие метрики были для нас окошком в Нарнию, и что в итоге получилось, расскажем про трансформацию людей и те инженерные практики, которые мы применяем (парная работа, тотальный кодинг, TDD, Infrastructure as a Code, API самообслуживания и т.д.), ответим на вопросы о том, что это за команда DevOps: какие грабли точно подстерегают нас, и как не наступать на них
Esta presentación muestra el contenido de la charla online, cuyo objetivo es poner sobre la mesa la diversidad de desafíos que tienen los Testers/Probadores de Software, y dar una breve reseña de los cambios que hay tanto en los procesos como en los aspectos de la tecnología de Testing y que invitan a que nos adaptemos rápidamente.
Información del Evento
Título del Evento: Los nuevos desafíos del Testing
Expositora: María José Pérez Zavala (LinkedIn)
Tipo de Evento: No Arancelado
Plataforma: Hangout en Directo
Fecha del Evento: 12/12/15
Inicio: 10:00 am (GMT -03:00)
Fin: 12:00 am (GMT -03:00)
Comentarios:
Se transmitirá en directo por YouTube.
Minutos antes del Inicio del evento estaremos publicando la url para que puedas acceder, seguir la charla y hasta incluso participar con tus comentarios y/o preguntas.
RSA Conference 2016: Who Are You? From Meat to Electrons and Back AgainMike Schwartz
Authentication technologies are intersecting science fiction and comedy. A flyby of recently discovered and invented mechanisms to digitally identify a person makes it clear that it’s not for lack of options. If the usability and security of strong authentication have been solved, how can we improve deployability, which is the main reason we are still using passwords?
This presentation was delivered by Mike Schwartz at RSA Conference 2016.
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
In the beginning there was CFEngine, and the learning curve was high, then came Puppet , Chef and the learning curve was still high.
Now we have Ansible , for everyone that wasn't smart enough to learn the original tools. Or wasn't that the problem ?
For some people Infrastructure as Code became a goal alone, not caring about the infrastructure, Junior people wanted to learn Puppet, but forgot about the service they were configuring. Too Complex, Too much effort, .. And then containers came.
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewiredotCloud
Docker is an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.
OSDC 2012 | Devops and Open Source by Kris BuyaertNETWAYS
For the past couple of years everybody from your cat to the Gartner analysts have been talking about devops, but what is this devops thing. Why does it matter .. and what does it have to do with Open Source?
We've come a long way since introducing new ideas in server automation and deployment, and also in creating a culture of collaboration between the traditional silos in organizations. But how does this impact the traditional sysadmin world? Are we all a DevOps now? Does a DevOps person = sysadmin 2.0? Will DevOps put us out of a job? I will give a brief overview of how culture, workflow, and behavior have evolved.
After evaluating the past and the present, I will talk about the future, identifying technical gaps in monitoring, packaging, and data collection and identifying emerging human, organizational evolutions.
OSDC 2012 | Devops and Open Source by Kris BuytaertNETWAYS
For the past couple of years everybody from your cat to the Gartner analysts have been talking about devops, but what is this devops thing. Why does it matter .. and what does it have to do with Open Source?
We've come a long way since introducing new ideas in server automation and deployment, and also in creating a culture of collaboration between the traditional silos in organizations. But how does this impact the traditional sysadmin world? Are we all a DevOps now? Does a DevOps person = sysadmin 2.0? Will DevOps put us out of a job? I will give a brief overview of how culture, workflow, and behavior have evolved.
After evaluating the past and the present, I will talk about the future, identifying technical gaps in monitoring, packaging, and data collection and identifying emerging human, organizational evolutions.
This talk will try to cover the most important techniques and best practices used when creating Django web application.
Overview of the topics covered:
- development general principles and goals
- python/django project initial setup - project layout, git&venv&pip&shell, settings
- central project shell command - contains all commands to manage project
- "IDE" - editor & shell
- edit/run/test cycle
- deploy/test-remotely cycle
Disclaimer: techniques and practices presented are current AUTHOR'S optimal choice used for usual django project.
Most people will claim that this never happens, others hope it never happens, but it happened on March 10, 2021, and it was not just the 1 datacenter that got impacted, but the whole campus of the provider that got powered down. This talk will explain how our customers survived this outage, how our culture, opensource tooling and automation saved the da(y,ta). A talk about disaster recovery, business continuity plans and building cloud agnostic stacks that survive disasters.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
The Art of the Pitch: WordPress Relationships and Sales
Groovy there's a docker in my application pipeline
1. Groovy, there is a docker in
my application pipeline
Kris Buytaert
@krisbuytaert
2. Kris BuytaertKris Buytaert
● I used to be a Dev,I used to be a Dev,
● Then Became an OpThen Became an Op
● Chief Trolling Officer and Open SourceChief Trolling Officer and Open Source
Consultant @Consultant @inuits.euinuits.eu
● Everything is an effing DNS ProblemEverything is an effing DNS Problem
● Building Clouds since before the bookstoreBuilding Clouds since before the bookstore
● Some books, some papers, some blogsSome books, some papers, some blogs
● Evangelizing devopsEvangelizing devops
● Organiser of #devopsdays, #cfgmgmtcamp,Organiser of #devopsdays, #cfgmgmtcamp,
#loadays, ….#loadays, ….
● Part of the travelling geek circusPart of the travelling geek circus
5. NirvanaNirvana
An “ecosystem” that supports continuous delivery, fromAn “ecosystem” that supports continuous delivery, from
infrastructure, data and configuration management toinfrastructure, data and configuration management to
business.business.
Through automation of the build, deployment, and testingThrough automation of the build, deployment, and testing
process, and improved collaboration between developers,process, and improved collaboration between developers,
testers, and operations, delivery teams can get changestesters, and operations, delivery teams can get changes
released in a matter of hours — sometimes even minutes–noreleased in a matter of hours — sometimes even minutes–no
matter what the size of a project or the complexity of its codematter what the size of a project or the complexity of its code
base.base.
Continuous Delivery , Jez HumbleContinuous Delivery , Jez Humble
6. This talk:This talk:
Journey / Early steps of a team that is used toJourney / Early steps of a team that is used to
infrastructure as codeinfrastructure as code
Adopting containers step by step.Adopting containers step by step.
9. " Our job as engineers (and ops, dev-ops, QA," Our job as engineers (and ops, dev-ops, QA,
support, everyone in the company actually) is tosupport, everyone in the company actually) is to
enable the business goals. We strongly feel thatenable the business goals. We strongly feel that
in order to do that you must havein order to do that you must have the ability tothe ability to
deploy code quickly and safelydeploy code quickly and safely. Even if the. Even if the
business goals are to deploy strongly QA’d codebusiness goals are to deploy strongly QA’d code
once a month at 3am (it’s not for us, we push allonce a month at 3am (it’s not for us, we push all
the time), having a reliable and easythe time), having a reliable and easy
deployment should bedeployment should be non-negotiablenon-negotiable."."
Etsy Blog upon releasing DeployinatorEtsy Blog upon releasing Deployinator
http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/
10. We need :We need :
AnAn unmodifiedunmodified artifact from build to deploy.artifact from build to deploy.
SameSame artifact on dev, staging, acceptance,artifact on dev, staging, acceptance,
production, shadow, dr …production, shadow, dr …
11. Why ops like to packageWhy ops like to package
● Packages give you featuresPackages give you features
•Consistency, security, dependenciesConsistency, security, dependencies
● Uniquely identify where files come fromUniquely identify where files come from
•Package or cfg-mgmtPackage or cfg-mgmt
● Source repo not always availableSource repo not always available
•Firewall / Cloud etc ..Firewall / Cloud etc ..
● Weird deployment locations , no easy accessWeird deployment locations , no easy access
● Little overhead when you automateLittle overhead when you automate
● CONFIG does not belong in a packageCONFIG does not belong in a package
12. Example app for today :Example app for today :
DashingDashing
13. Dashing is DeadDashing is Dead
● No it has been forkedNo it has been forked
● https://github.com/dashing-io/dashinghttps://github.com/dashing-io/dashing
● s/dashing/smashing/g;s/dashing/smashing/g;
14. Dashing {su/ro}cksDashing {su/ro}cks
The GoodThe Good
● Lots of existingLots of existing
widgetswidgets
● Easy to startEasy to start
● Simple rubySimple ruby
● Eventstream forEventstream for
debuggingdebugging
The UglyThe Ugly
● Ruby Gem hellRuby Gem hell
● Widget DeploymentWidget Deployment
from a Gist ?from a Gist ?
● No config separationNo config separation
15. Deploying DashingDeploying Dashing
● gem install dashinggem install dashing
● gem install is the new maven downloading thegem install is the new maven downloading the
internetinternet
● Reproducable ?Reproducable ?
16. A typical deploymentA typical deployment
● P all software is packagedP all software is packaged
•
CentOS mostlyCentOS mostly
•
RPM generated with fpmRPM generated with fpm
•
Build in Jenkins, uploaded to pulpBuild in Jenkins, uploaded to pulp
● C config is managed by PuppetC config is managed by Puppet
● S service is managed by PuppetS service is managed by Puppet
17. Building Ruby/python/nodeBuilding Ruby/python/node
● We need a chrootWe need a chroot
● With the right ruby/python versionWith the right ruby/python version
● With the right dependenciesWith the right dependencies
● IsolatedIsolated
● Ruby => rvmRuby => rvm
● Ruby 2.1 (dashing is pretty picky aboutRuby 2.1 (dashing is pretty picky about
versions)versions)
● What about we try this in a container ?What about we try this in a container ?
18. Pipelines ?Pipelines ?
● One to build basic dashingOne to build basic dashing
● One to build and deploy the dashboards, scriptsOne to build and deploy the dashboards, scripts
and all other dashing related stufand all other dashing related stuf
•
No hacking In production,No hacking In production,
•
Dashboards are production viewsDashboards are production views
•
Dev → prod promotionsDev → prod promotions
19. JenkinsJenkins
● Starting point :Starting point :
•
Dev jenkinsDev jenkins
•
1 master (no running jobs)1 master (no running jobs)
•
Multiple slavesMultiple slaves
● Production : diferent jenkins stack with similarProduction : diferent jenkins stack with similar
pipelinespipelines
● We need to be able to reproduce a pipelineWe need to be able to reproduce a pipeline
20. Building a dashingBuilding a dashing
container step 0container step 0
● Empty / standard distro containerEmpty / standard distro container
updatesupdates
add fpmadd fpm
epel and build dependenciesepel and build dependencies
● Triggering docker from the cli, no plugin inTriggering docker from the cli, no plugin in
Jenkins used (coz Bugz)Jenkins used (coz Bugz)
● $customer environment requires http_proxy$customer environment requires http_proxy
22. Building a dashingBuilding a dashing
container step 1container step 1
● Read rvm installation docsRead rvm installation docs
● frownfrown
● Frown againFrown again
● Containers => YoloContainers => Yolo
● fpm the whole treefpm the whole tree
23. Building a dashingBuilding a dashing
container step 2container step 2
● Take rvm containerTake rvm container
● rvm install ruby-2.1rvm install ruby-2.1
● fpm -s dir -t rpm -n rvm-ruby -v 2.1.8fpm -s dir -t rpm -n rvm-ruby -v 2.1.8
/usr/local/rvm/rubies/ruby-2.1.8/usr/local/rvm/rubies/ruby-2.1.8
24. Building a dashingBuilding a dashing
container step 3container step 3
● Take ruby-2.1 containerTake ruby-2.1 container
● rvm use 2.1rvm use 2.1
● gem install bundlegem install bundle
● gem install dashing (fills /usr/local/rvm/gems/ruby-gem install dashing (fills /usr/local/rvm/gems/ruby-
2.1.8 with gems2.1.8 with gems
● mkdir -p /opt/dashing/ && dashing new dashboardmkdir -p /opt/dashing/ && dashing new dashboard
● cd /opt/dashing/dashboardcd /opt/dashing/dashboard
● bundle installbundle install
25. ● Now we have a “reproducable” container whichNow we have a “reproducable” container which
will show an empty default dashboard uponwill show an empty default dashboard upon
launchinglaunching
● We also have an artifact which we can redeployWe also have an artifact which we can redeploy
● We killed most of those layers afterwardsWe killed most of those layers afterwards
27. A dashboardA dashboard
● git repo withgit repo with
•
Dashboards (html/erb)Dashboards (html/erb)
•
JobsJobs
•
Mostly with datasources hardcoded inMostly with datasources hardcoded in
scriptsscripts
•
Not multitenantNot multitenant
•
WidgetsWidgets
● Pipeline to deploy and test thatPipeline to deploy and test that
29. Testing the dashboardsTesting the dashboards
● Not all deploys were workingNot all deploys were working
● New job, required gems are missingNew job, required gems are missing
● TestingTesting
•
Build container with most recent dashboardBuild container with most recent dashboard
•
Based on the rpm'sBased on the rpm's
•
docker run -p 0.0.0.0:3030:3030 -ddocker run -p 0.0.0.0:3030:3030 -d
dashing/dashboardsdashing/dashboards
•
wget http://localhost:3030/wget http://localhost:3030/
30. Deploying theDeploying the
dashboardsdashboards
● Deploy 2 rpms on vm's via mcollectiveDeploy 2 rpms on vm's via mcollective
•
dashing-gemsdashing-gems
•
dashing-dashboarddashing-dashboard
on nodes with profile_dashingon nodes with profile_dashing
● mco package update dashing-gems -Fmco package update dashing-gems -F
environment=svc1prd -C profile_dashingenvironment=svc1prd -C profile_dashing
31. We need a local dockerWe need a local docker
images repositoryimages repository
● Distributed Jenkins (master + multiple slaves)Distributed Jenkins (master + multiple slaves)
● An image build on node X is not available onAn image build on node X is not available on
node Ynode Y
● Tests run on other nodeTests run on other node
docker push dashing/dashingdocker push dashing/dashing
docker push dashing/dashboardsdocker push dashing/dashboards
32. We need a local dockerWe need a local docker
images repositoryimages repository
● Pulp ?Pulp ?
•
Read only (August 2016)Read only (August 2016)
•
Good for mirrorsGood for mirrors
● Nexus / ArtifactoryNexus / Artifactory
● Docker registry (obsolete, used to be only in aDocker registry (obsolete, used to be only in a
container)container)
● Docker-distribution : packages availableDocker-distribution : packages available
33. Docker IncompatibilitiesDocker Incompatibilities
● Search path for imagesSearch path for images
•
Local firstLocal first
•
Upstream afterwardsUpstream afterwards
Docker Inc says NODocker Inc says NO
Redhat says YesRedhat says Yes
● --build-args -e--build-args -e
•
Redhat vs Docker implementation diferRedhat vs Docker implementation difer
34. Problems solvedProblems solved
● Chrooted package build, no complex mockChrooted package build, no complex mock
setups or specfilessetups or specfiles
● Internal docker repo allows reuse of buildInternal docker repo allows reuse of build
images on other nodesimages on other nodes
● Jenkins and docker “integration”Jenkins and docker “integration”
35. Rinse & RepeatRinse & Repeat
● Similar patterns forSimilar patterns for
•
Python , php, etc.Python , php, etc.
● Test can now run in containers with the correctTest can now run in containers with the correct
versionversion
● Tests can be run with multiple versions of php/Tests can be run with multiple versions of php/
phython/ruby etc..phython/ruby etc..
36. Can you Automate yourCan you Automate your
Pipeline Creation ?Pipeline Creation ?
● Pipeline as CodePipeline as Code
● Jenkins Job DSLJenkins Job DSL
● Pipeline PluginPipeline Plugin
37. Building the PipelineBuilding the Pipeline
● Dev environment for JenkinsDev environment for Jenkins
•
Fully puppetizedFully puppetized
● JobsJobs
•
Jenkins Job DSL PluginJenkins Job DSL Plugin
•
https://wiki.jenkins-ci.org/display/JENKINS/Johttps://wiki.jenkins-ci.org/display/JENKINS/Jo
b+DSL+Pluginb+DSL+Plugin
•
41. Job partsJob parts
● Logrotator : how long to keep buildsLogrotator : how long to keep builds
● Scm : git configScm : git config
● Trigger : when to buildTrigger : when to build
● Label : where to runLabel : where to run
● Steps : shell(readFileFromWorkspace('file.sh'))Steps : shell(readFileFromWorkspace('file.sh'))
● publisherspublishers
43. Pipeline Problems solvedPipeline Problems solved
● No more promoted build pluginNo more promoted build plugin
•
Manual promote in pipelineManual promote in pipeline
•
Easy visabilityEasy visability
● No more clicking around to create / editNo more clicking around to create / edit
pipelinepipeline
● One job per task, no reuse of jobs with diferentOne job per task, no reuse of jobs with diferent
parametersparameters
● Centrally managed jobs (git)Centrally managed jobs (git)
44. Solved problems bySolved problems by
ContainersContainers
● Multiversion test of application stacksMultiversion test of application stacks
•
Eg diferent puppet/ php versionsEg diferent puppet/ php versions
● Both functional and unit testing in the pipelineBoth functional and unit testing in the pipeline
● Non blocking pipeline branches for futureNon blocking pipeline branches for future
versionsversions
● Provide developers with producton alikeProvide developers with producton alike
containerscontainers
● Growing container experience with ops folksGrowing container experience with ops folks