This document discusses deployment models and strategies, beginning with initial "chaotic" deployments and progressing to optimized continuous deployment. It describes maturity levels from initial to repeatable to managed to optimized. Various deployment tools, environments, testing practices, and strategies are also covered, including continuous integration, feature flags, and ensuring staging environments match production. The key is automating deployment processes while monitoring outcomes to deploy frequently and learn from both successes and failures.
Release software is no less important than activities that precede it.
The Continuous Delivery is a set of practices and methodologies that build an ecosystem for the software development lifecycle.
We will see how to build this ecosystem around the applications developed, for which this release activities becomes a low-risk, inexpensive, fast and predictable.
The Continuous delivery Value @ codemotion 2014David Funaro
System Crash, failure data migration, partial update: issues that no one would ever want to meet during the deploy and ... hoping for the best is not enough.
The deployment activity is important as those that precede it. The Continuous Delivery will give you low risk, cheap, fast, predictable delivery and ... soundly.
One of the cornerstones in Agile development is fast feedback. For engineering, "fast" means "instantly" or "in 5 minutes", not "tomorrow" or "this week". Your engineering practices should ensure that you can answer yes to most of the following questions:
- Do we get all test results in less than 5 minutes after a commit?
- Is our code coverage more than 75% for both front-end and back-end?
- Can we start exploratory testing in less than 15 minutes after a commit?
- Do all our tests pass more than 90% of our commits?
This talk will give you practical advice on how to get to "yes, we get fast feedback".
A great deal of confusion surrounds the concepts of release automation, continuous integration, continuous delivery, and continuous deployment. Even some industry experts are confused about the differences. How these concepts work progressively to achieve high quality software delivery is generating a lot of discussion and controversy. Bryan Linder defines the methodology, processes, and tools associated with release automation, as well as the differences between its maturity levels. Understand the benefits of more frequent, smaller releases, and the exponential risk generated by large, infrequent releases. Hear highlights of industry case studies that demonstrate the substantial speed, quality, and ROI gains of improving your release automation process. Acquire the insight and motivation needed to take the next step—from wherever you organization is now—toward full release automation. Takeaways include a glossary of terms, a continuous integration tools comparison chart, and a release automation maturity chart.
Release software is no less important than activities that precede it.
The Continuous Delivery is a set of practices and methodologies that build an ecosystem for the software development lifecycle.
We will see how to build this ecosystem around the applications developed, for which this release activities becomes a low-risk, inexpensive, fast and predictable.
The Continuous delivery Value @ codemotion 2014David Funaro
System Crash, failure data migration, partial update: issues that no one would ever want to meet during the deploy and ... hoping for the best is not enough.
The deployment activity is important as those that precede it. The Continuous Delivery will give you low risk, cheap, fast, predictable delivery and ... soundly.
One of the cornerstones in Agile development is fast feedback. For engineering, "fast" means "instantly" or "in 5 minutes", not "tomorrow" or "this week". Your engineering practices should ensure that you can answer yes to most of the following questions:
- Do we get all test results in less than 5 minutes after a commit?
- Is our code coverage more than 75% for both front-end and back-end?
- Can we start exploratory testing in less than 15 minutes after a commit?
- Do all our tests pass more than 90% of our commits?
This talk will give you practical advice on how to get to "yes, we get fast feedback".
A great deal of confusion surrounds the concepts of release automation, continuous integration, continuous delivery, and continuous deployment. Even some industry experts are confused about the differences. How these concepts work progressively to achieve high quality software delivery is generating a lot of discussion and controversy. Bryan Linder defines the methodology, processes, and tools associated with release automation, as well as the differences between its maturity levels. Understand the benefits of more frequent, smaller releases, and the exponential risk generated by large, infrequent releases. Hear highlights of industry case studies that demonstrate the substantial speed, quality, and ROI gains of improving your release automation process. Acquire the insight and motivation needed to take the next step—from wherever you organization is now—toward full release automation. Takeaways include a glossary of terms, a continuous integration tools comparison chart, and a release automation maturity chart.
A brief history of automation in Software EngineeringGeorg Buske
In this talk we will discuss different levels of automation and what automation has in common with DevOps, Product Maturity and Machine learning. We will show how automation enables fast feedback and finally, while looking at an example of an observable and continuous deployable system we will show how automation can make your team more productive (while delivering more stable software and decrease time to market).
An introduction to the concepts behind Continuous Delivery as well as an introduction to some of the tools available for implementing continuous delivery practices on a new project. This presentation is geared towards Java developers, but is applicable to all.
Experiments that have worked for me in the last 7 years playing with Scrum in Agile teams.
The presentation covers 4 key pilars of Scrum:
- Roles: Product Owner, Scrum Master and Development Team.
- Scrum Events: Planning Meeting, Daily Stand-up, Grooming/Refinement, Demo and Retrospective.
- Scrum Artifacts: Product Backlog, User Stories, Definition of Done, Sprint Backlog, Sprint Dashboad.
- Reports: End of Sprint Report, New Sprint Report, Burn-up/Burn-down, Product Report.
A brief history of automation in Software EngineeringGeorg Buske
In this talk we will discuss different levels of automation and what automation has in common with DevOps, Product Maturity and Machine learning. We will show how automation enables fast feedback and finally, while looking at an example of an observable and continuous deployable system we will show how automation can make your team more productive (while delivering more stable software and decrease time to market).
An introduction to the concepts behind Continuous Delivery as well as an introduction to some of the tools available for implementing continuous delivery practices on a new project. This presentation is geared towards Java developers, but is applicable to all.
Experiments that have worked for me in the last 7 years playing with Scrum in Agile teams.
The presentation covers 4 key pilars of Scrum:
- Roles: Product Owner, Scrum Master and Development Team.
- Scrum Events: Planning Meeting, Daily Stand-up, Grooming/Refinement, Demo and Retrospective.
- Scrum Artifacts: Product Backlog, User Stories, Definition of Done, Sprint Backlog, Sprint Dashboad.
- Reports: End of Sprint Report, New Sprint Report, Burn-up/Burn-down, Product Report.
5 Steps to Jump Start Your Test AutomationSauce Labs
With the acceleration of software creation and delivery, test activities must align to the new tempo. Developers need immediate feedback to be efficient and correct defects as those are introduced. The path to achieving this vision is to build a reliable and scalable continuous test solution.
All beginnings are hard. Having a well-defined plan outlining the approach for your organization to create test automation is key to ensure long term success. Join Diego Molina, Senior Software Engineer at Sauce Labs as he discusses:
The importance of setting up the team correctly from the start
Choosing the right Testing Framework for your organization
Identifying the right scenarios and workflows to test
Learning to avoid common pitfalls at the beginning of the transformation journey
Just In Time Scalability Agile Methods To Support Massive Growth PresentationTimothy Fitz
Eric Reis and Chris Hondl's MySQL conference presentation on Just In Time Scalability. http://startuplessonslearned.blogspot.com/2008/09/just-in-time-scalability.html
Learn why you should put your blackbox (or system/integration) tests into Docker Containers.
Brief (remedial) overview of Docker for software testers who don't know docker, and only need to know the basics to wrap their regression tests inside of a container.
Don't Fumble the Data! Integrate Database Automation into your DevOps ToolchainDevOps.com
Today, we have proven techniques for many DevOps practices. For provisioning a new environment, we apply file based environment definitions to dynamic infrastructure: Helm for Kubernetes, Heat for OpenStack or Terraform for other clouds. For automating an application deployment, we can turn to basic pipelines like Jenkins provides or release automation tools like IBM UrbanCode deploy.
However, one area is a constant sticking point. Data. A provisioned test lab is useless without test data. Automated deployment tied to a manual schema update is only as fast as good as the DBA's working by hand. Meanwhile, data is different. There can be a lot of it. It's often sensitive. Changes to schema are generally incremental. Naively applying something like Terraform to the data problem is a recipe for trouble.
There is good news. Tools that specialize in managing databases are easy to integrate into your DevOps toolchain. Join Actifio's Jay Livens, DBmaestro's Chris Lucca and IBM's Eric Minick for a lively conversation examining how to overcome this stumbling block.
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalAnna Royzman
Thomas Haver teaches how to automate both strategically and tactically to maximize the benefits of automation - at Test Leadership Congress 2018.
http://testleadershipcongress-ny.com
The DevOps methodology integrates development and operations so that system changes can get rolled out quickly without causing unplanned downtime. Industrial organizations that successfully implement DevOps will have a strong advantage, but knowing how to get started can be a real challenge.
Enterprise PHP development teams, no matter the maturity level, focus on one thing, releasing stable apps that perform. They also want to avoid reinventing the wheel. Therefore, make the investment to listen to the top lessons we've learned from across industries to deliver PHP code faster without sacrificing quality, user experience, or existing workflows.
You will learn:
How to dig deep into application behavior and performance at runtime
How to maximize existing continuous delivery principles and tools
When to take advantage of existing frameworks and extensions and when to do it yourself
How to avoid reinventing the wheel each time you deploy, upgrade, or rollback
DevQAOps - Surviving in a DevOps WorldWinston Laoh
Talk given by Winston Laoh at the QA/LA meetup hosted at Q Los Angeles. The goal of the presentation was to inform and persuade test related engineers on how to integrate into DevOps organizations.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
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.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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.
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
5. Initial
Startup phase of many projects
Long term
Push code whenever you feel like it
Devs push code
Not a lot of tests, automation, or verification
5
6. Repeatable
Often after a 1.0, first non-beta ship, or first
ship with a significant number of users
Some kind of written process
Push when a feature is done: less often than
initially, typically
6
18. Source control
Stable vs unstable
Branch per bug, branch per feature
“git flow” is overkill, but you need a process
If it’s not per-patch-push, tag what you push
Open source needs ESRs even if you’re high
velocity
18
19. Dev Envs
Dev’s laptop is a horrible environment
VMs can be hard to maintain
Development databases are hard: fake data, minidbs
Development API sandbox
Lightweight set up and tear down VMs
“Development” staging server (unstable)
19
20. Staging Envs
Staging environment MUST REFLECT
PRODUCTION
Same versions, same proportions: a scale
model
Realistic traffic and load (scale)
Staging must be monitored
Staging must have managed configuration
20
21. One Box Fail
Staging needs to be more than one box
If you have multiple databases or webheads
or whatever in prod...you need that in
staging
21
23. Testing
Unit tests: run locally, run on build
Acceptance/User tests: run against browser
(Selenium or whatever)
Load tests: how does it perform under prod
load?
Smoke tests: what’s the maximum load we
can support with this build?
23
24. Deployment tools
It doesn’t really matter what you use
Automate it
Do it the same way in staging and production
Use configuration management to deploy
config changes and manage your
platform...the same way in staging and
production
24
25. QA
Feature tests on unstable
Full tests on stage
Full tests on production (verification)
25
29. Quantum of
deployment
(via Erik Kastner)
“What’s the smallest number of steps,
with the smallest number of people
and the smallest amount of ceremony required
to get new code running on your servers?”
http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/,
29
30. Chemspills
Even if you have heavyweight/non-automated
deployments, what does a chemspill look
like?
30
33. Fail
Sometimes you can’t fail forward
Example: intractable/unforeseen performance
problem, hardware failures, datacenter
migrations
Sometimes it happens.
Upper time limits: failing forward is taking
too long
33
34. Rollback
Going back to the last known good
Having a known process for rollback is just
as important as having a known process for
deployment
Practice rollbacks
34
35. Decision points
When shipping something new, define some
rules and decision points
If it passes this test/performance criteria
we’ll ship it
If these things go wrong we’ll roll back
Make these rules beforehand, while heads
are calm
35
36. Feature switches
A nicer alternative to rollback
Turn a feature on for a subset of users: beta
users, developers, n% of users
Turn it on for everybody
Turn it off if you’re having problems or
unexpected load: “load shedding”
36
38. What is CD?
Total misnomer
Not continuous, discrete
Automated not automatic, generally
Intention is push-per-change
Usually driven by a Big Red Button
38
39. Technical requirements
Continuous integration with build-on-commit
Tests with good coverage, and a good feel for the
holes in coverage
A staging environment that reflects production
Managed configuration
Scripted single button deployment to a large number
of machines
39
40. People and process
High levels of trust
Realistic risk assessment and tolerance
Excellent code review
Excellent source code management
Tracking, trending, monitoring
40
41. Testing vs monitoring
Run tests against production
Continuous testing = one kind of monitoring
Testing is an important monitor
You need other monitors
You need tests too
41
42. You should build the capability for
continuous deployment
even if you never intend to do
continuous deployment.
42
43. The only way to get good at
deployment is to deploy a lot.
43