How do you continue to ship 50 times a day, when you're constantly hiring more engineers? How can you continue, when every day you write more tests that need to be run on every commit? This talk will cover how to scale up Continuous Integration and Continuous Deployment infrastracture, for teams as small as a handful of engineers and as large as hundreds of engineers.
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.
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.
How do you continue to ship 50 times a day, when you're constantly hiring more engineers? How can you continue, when every day you write more tests that need to be run on every commit? This talk will cover how to scale up Continuous Integration and Continuous Deployment infrastracture, for teams as small as a handful of engineers and as large as hundreds of engineers.
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.
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.
Building a Modern Security Engineering OrganizationZane Lackey
Continuous deployment and the DevOps philosophy have forever changed the ways in which businesses operate. This talk with discuss how security adapts effectively to these changes, specifically covering:
- Practical advice for building and scaling modern AppSec and NetSec programs
- Lessons learned for organizations seeking to launch a bug bounty program
- How to run realistic attack simulations and learn the signals of compromise in your environment
Overview of Site Reliability Engineering (SRE) & best practicesAshutosh Agarwal
In any software organization, stability & innovation are always at loggerheads - the faster you move, the more things will break. This talk defines what SRE org looks like at high-tech organizations (Google, Uber).
Introduction of Continuous Integration (CI)
* Try to answer questions from developers, testers, team leaders, and managers.
* The topology and features of CI.
* How can CI reduce risks?
From Continuous Integration to Continuous Delivery and DevOpsLuca Minudel
An overview of Continuous Delivery from a business and a technical point of view.
Includes an overview of:
- business value proposition of CD
- prerequisites and tips for CD implementation
- CD implementation was stories and strategies
- CD technical practices
2021 08-28, QONFEST 2021 - Reliability cenetered maintenance for sleeping giantsJaap van Ekris
Many safety systems are designed to be never used: they are safety nets, waiting to avert the disaster that hopefully never will happen. For example the Dutch Storm surge barriers, dormant giants waiting to be used, but only really active every year or even once every ten years. How do you know that such a system is there when you need it. Is the giant safely asleep, or did he die without us noticing it? How do you design and optimise its maintenance, where its biggest problem is dormant failure? In this talk I adress the approach used for these systems.
Given at CraftConf 2015: http://craft-conf.com/2015
Accompanying talk repo: https://github.com/randommood/Craftconf2015
Video: http://www.ustream.tv/recorded/61449003
Let's face it, testing distributed systems is hard. Large number of inputs, partial failures, and asynchrony make these systems seemingly impossible to verify. Formal testing methods are onerous and system correctness continues to elude us. Despite the difficulty, we need to have a way to change our systems with confidence. Integration and unit tests are vital to our sanity and we know it's good for us to use continuous integration to ensure functional consistency across our products.
Come to this talk for a fresh and practical look into the various aspects of distributed systems testing and integration. We will cover CI pipelines: their strengths, weaknesses, and ways to improvement them. Get ready to rediscover the untapped power of your integration practices and develop a burning desire to make them more awesome!
Setting up Continuous Delivery Culture for a Large Scale Mobile AppNaresh Jain
Hike is a mobile-first, messaging platform that is used by 100 million users to exchange 40 billion messages/month. Hike app is available on Android, iOS and Windows phone. On the back-end, we’ve 100+ macro-services in Java, Python, Ruby, Go and Elixir. While setting up a Continuous Delivery pipeline, we ran into a series of technical challenges. However it was more important to address the organisational/behavioural challenges to ensure a sustainable culture shift in the company.
In this talk, I cover how we went about:
* Setup a trunk-based development model
* Decentralised our build & test environments using Docker and Jenkins
* Segregated and containerised our macro-services
* Refactored the mobile apps to be more container friendly
* Setup a mobile device farm using STF
* Improved the quality of code-reviews using PRBuilder & PRRiskAdvisor
* Created different kinds of automated tests to align with our CI Pipeline and get rapid feedback
* Finally how we used C3 to visualise the health of our code-base
Presented at STPCon 2016. With the extensive amount of testing performed nightly on large software projects, test and verification teams often experience lengthy wait times for the availability of test results of the latest build. As we strive to identify and resolve issues as fast as possible, alternative methods of test execution have to be found. Learn how to use Jenkins to launch tests in parallel across a number of Virtual Machines, monitor execution health, and process results. Learn about various Jenkins plugins and how they contributed to the solution. Learn how to trigger downstream jobs, even if they are on separate Jenkins instances.
Rapid software testing and conformance with static code analysisRogue Wave Software
With growing connectivity between complex automotive software components, development teams are looking for new ways to verify code security and validate against standards. This explains an exciting new approach to software testing that combines the breadth and depth of static analysis with modern test automation to provide rapid feedback to developers on incremental code changes – continuous static code analysis. By connecting deep analysis to continuous integration workflows, testing is pulled forward earlier to eliminate defects and reduce rework costs.
Walk away with knowledge of real defects, security vulnerabilities, and automotive standards (such as MISRA and ISO 26262) plus key steps to start immediate deployment of continuous static code analysis for testing. Presented at GENIVI All Member Meeting & Open Community Days.
Introduction to Puppet Enterprise - Jan 30, 2019Puppet
If you're new to Puppet Enterprise, this is the webinar for you. You'll learn why thousands of companies rely on Puppet to automate the delivery and operation of their software, and see it in action with a live demo.
We'll cover how to use Puppet Enterprise to:
Discover what you have using Puppet Discovery
Orchestrate changes to infrastructure and applications
Continually enforce your desired state and remediate any unexpected changes
Get real-time visibility and reporting to prove compliance
Automatically build, test and promote Puppet code changes using Continuous Delivery for Puppet Enterprise
What to Expect When You're Expecting (to Own Production)Michael Diamant
The intended presentation audience is developers unfamiliar with owning a production environment. I aim to share lessons I’ve learned while supporting production environments and to paint a path for how ownership can be built.
By no means is this intended to be a comprehensive guide to production ownership. Instead, it should be treated as an introduction or one of the first few steps into the topic.
This presentation was motivated by a former colleague seeking to help frame his team's mindset toward production ownership. He joined a team that was not accustomed to production deploys, on-call, etc and thought it would be valuable to share insight from our experience together in an environment where developers co-owned production.
Better Security Testing: Using the Cloud and Continuous DeliveryGene Gotimer
Even though many organizations claim that security is a priority, that claim doesn’t always translate into supporting security initiatives in software development or test. Security code reviews often are overlooked or avoided, and when development schedules fall behind, security testing may be dropped to help the team “catch up.” Everyone wants more secure development; they just don’t want to spend time or money to get it. Gene Gotimer describes his experiences with implementing a continuous delivery process in the cloud and how he integrated security testing into that process. Gene discusses how to take advantage of the automated provisioning and automated deploys already being implemented to give more opportunities along the way for security testing without schedule disruption. Learn how you can incrementally mature a practice to build security into the process—without a large-scale, time-consuming, or costly effort.
Chaos Engineering, When should you release the monkeys?Thoughtworks
Chaos Engineering is listed as 'Trial' in the ThoughtWorks Tech Radar, but what is it really and how is it different from traditional testing? When and why should you get started with Chaos Engineering and is Chaos Monkey the right place to start when you do?
Формирование туристских кластеров.
Туристский образ территории как совокупность ее природных, исторических и культурологических характеристик.
Природные ландшафты и их оценка с позиций туристского природопользования
Building a Modern Security Engineering OrganizationZane Lackey
Continuous deployment and the DevOps philosophy have forever changed the ways in which businesses operate. This talk with discuss how security adapts effectively to these changes, specifically covering:
- Practical advice for building and scaling modern AppSec and NetSec programs
- Lessons learned for organizations seeking to launch a bug bounty program
- How to run realistic attack simulations and learn the signals of compromise in your environment
Overview of Site Reliability Engineering (SRE) & best practicesAshutosh Agarwal
In any software organization, stability & innovation are always at loggerheads - the faster you move, the more things will break. This talk defines what SRE org looks like at high-tech organizations (Google, Uber).
Introduction of Continuous Integration (CI)
* Try to answer questions from developers, testers, team leaders, and managers.
* The topology and features of CI.
* How can CI reduce risks?
From Continuous Integration to Continuous Delivery and DevOpsLuca Minudel
An overview of Continuous Delivery from a business and a technical point of view.
Includes an overview of:
- business value proposition of CD
- prerequisites and tips for CD implementation
- CD implementation was stories and strategies
- CD technical practices
2021 08-28, QONFEST 2021 - Reliability cenetered maintenance for sleeping giantsJaap van Ekris
Many safety systems are designed to be never used: they are safety nets, waiting to avert the disaster that hopefully never will happen. For example the Dutch Storm surge barriers, dormant giants waiting to be used, but only really active every year or even once every ten years. How do you know that such a system is there when you need it. Is the giant safely asleep, or did he die without us noticing it? How do you design and optimise its maintenance, where its biggest problem is dormant failure? In this talk I adress the approach used for these systems.
Given at CraftConf 2015: http://craft-conf.com/2015
Accompanying talk repo: https://github.com/randommood/Craftconf2015
Video: http://www.ustream.tv/recorded/61449003
Let's face it, testing distributed systems is hard. Large number of inputs, partial failures, and asynchrony make these systems seemingly impossible to verify. Formal testing methods are onerous and system correctness continues to elude us. Despite the difficulty, we need to have a way to change our systems with confidence. Integration and unit tests are vital to our sanity and we know it's good for us to use continuous integration to ensure functional consistency across our products.
Come to this talk for a fresh and practical look into the various aspects of distributed systems testing and integration. We will cover CI pipelines: their strengths, weaknesses, and ways to improvement them. Get ready to rediscover the untapped power of your integration practices and develop a burning desire to make them more awesome!
Setting up Continuous Delivery Culture for a Large Scale Mobile AppNaresh Jain
Hike is a mobile-first, messaging platform that is used by 100 million users to exchange 40 billion messages/month. Hike app is available on Android, iOS and Windows phone. On the back-end, we’ve 100+ macro-services in Java, Python, Ruby, Go and Elixir. While setting up a Continuous Delivery pipeline, we ran into a series of technical challenges. However it was more important to address the organisational/behavioural challenges to ensure a sustainable culture shift in the company.
In this talk, I cover how we went about:
* Setup a trunk-based development model
* Decentralised our build & test environments using Docker and Jenkins
* Segregated and containerised our macro-services
* Refactored the mobile apps to be more container friendly
* Setup a mobile device farm using STF
* Improved the quality of code-reviews using PRBuilder & PRRiskAdvisor
* Created different kinds of automated tests to align with our CI Pipeline and get rapid feedback
* Finally how we used C3 to visualise the health of our code-base
Presented at STPCon 2016. With the extensive amount of testing performed nightly on large software projects, test and verification teams often experience lengthy wait times for the availability of test results of the latest build. As we strive to identify and resolve issues as fast as possible, alternative methods of test execution have to be found. Learn how to use Jenkins to launch tests in parallel across a number of Virtual Machines, monitor execution health, and process results. Learn about various Jenkins plugins and how they contributed to the solution. Learn how to trigger downstream jobs, even if they are on separate Jenkins instances.
Rapid software testing and conformance with static code analysisRogue Wave Software
With growing connectivity between complex automotive software components, development teams are looking for new ways to verify code security and validate against standards. This explains an exciting new approach to software testing that combines the breadth and depth of static analysis with modern test automation to provide rapid feedback to developers on incremental code changes – continuous static code analysis. By connecting deep analysis to continuous integration workflows, testing is pulled forward earlier to eliminate defects and reduce rework costs.
Walk away with knowledge of real defects, security vulnerabilities, and automotive standards (such as MISRA and ISO 26262) plus key steps to start immediate deployment of continuous static code analysis for testing. Presented at GENIVI All Member Meeting & Open Community Days.
Introduction to Puppet Enterprise - Jan 30, 2019Puppet
If you're new to Puppet Enterprise, this is the webinar for you. You'll learn why thousands of companies rely on Puppet to automate the delivery and operation of their software, and see it in action with a live demo.
We'll cover how to use Puppet Enterprise to:
Discover what you have using Puppet Discovery
Orchestrate changes to infrastructure and applications
Continually enforce your desired state and remediate any unexpected changes
Get real-time visibility and reporting to prove compliance
Automatically build, test and promote Puppet code changes using Continuous Delivery for Puppet Enterprise
What to Expect When You're Expecting (to Own Production)Michael Diamant
The intended presentation audience is developers unfamiliar with owning a production environment. I aim to share lessons I’ve learned while supporting production environments and to paint a path for how ownership can be built.
By no means is this intended to be a comprehensive guide to production ownership. Instead, it should be treated as an introduction or one of the first few steps into the topic.
This presentation was motivated by a former colleague seeking to help frame his team's mindset toward production ownership. He joined a team that was not accustomed to production deploys, on-call, etc and thought it would be valuable to share insight from our experience together in an environment where developers co-owned production.
Better Security Testing: Using the Cloud and Continuous DeliveryGene Gotimer
Even though many organizations claim that security is a priority, that claim doesn’t always translate into supporting security initiatives in software development or test. Security code reviews often are overlooked or avoided, and when development schedules fall behind, security testing may be dropped to help the team “catch up.” Everyone wants more secure development; they just don’t want to spend time or money to get it. Gene Gotimer describes his experiences with implementing a continuous delivery process in the cloud and how he integrated security testing into that process. Gene discusses how to take advantage of the automated provisioning and automated deploys already being implemented to give more opportunities along the way for security testing without schedule disruption. Learn how you can incrementally mature a practice to build security into the process—without a large-scale, time-consuming, or costly effort.
Chaos Engineering, When should you release the monkeys?Thoughtworks
Chaos Engineering is listed as 'Trial' in the ThoughtWorks Tech Radar, but what is it really and how is it different from traditional testing? When and why should you get started with Chaos Engineering and is Chaos Monkey the right place to start when you do?
Формирование туристских кластеров.
Туристский образ территории как совокупность ее природных, исторических и культурологических характеристик.
Природные ландшафты и их оценка с позиций туристского природопользования
5 steps to faster web sites & HTML5 games - updated for DDDscotMichael Ewins
5 practical steps we have taken to improve page loading for web sites and HTML5 games.
1. Fewer requests
2. Smaller resources
3. Reduce the round trip time
4. Optimise the critical rendering path
5. Educate the whole team about performance
These slides provide an elementary description of Power Electronics and its application domains. It also shows the different power devices and converters.
This slide comprises a very rudimentary introduction of Industrial Instrumentation.
These slides may help students understand the aspects the Industrial Instrumentation.
Gives a brief introduction about temperature measurement and its unit. it also enumerates the different techniques employed in temperature measurement.
Principles and Practices in Continuous Deployment at EtsyMike Brittain
Presented at ALM Forum 2014.
Like what you've read? We're frequently hiring for a variety of engineering roles at Etsy. If you're interested, drop me a line or send me your resume: mike@etsy.com.
http://www.etsy.com/careers
DevOps is a methodology capturing the practices adopted from the very start by the web giants who had a unique opportunity as well as a strong requirement to invent new ways of working due to the very nature of their business: the need to evolve their systems at an unprecedented pace as well as extend them and their business sometimes on a daily basis.
While DevOps makes obviously a critical sense for startups, I believe that the big corporations with large and old-fashioned IT departments are actually the ones that can benefit the most from adopting these principles and practices.
Watch the recorded version of this Webinar here:
Curious about Continuous Integration? Tune in!
Continuous Integration (CI), which is a big part of continuous delivery, is the concept of continuously building and testing software using an automated process. We have learned that utilizing CI could help us catch bugs earlier, enable better visibility, reduce repetitive processes, enable the development team to produce deployable products at a moment's notice, and reduce risk overall.
These slides will identify the various levels of continuous integration and delivery with regards to a release maturity of the development team or parent organization.
Seven habits of effective devops - DevOps Day - 02/02/2017Clara Feuillet
DevOps, pilier de la transformation stratégique de Microsoft.
Sam Guckenheimer, Corporate Product Strategist, Visual Studio and Cloud Services Munil Shah, Partner Director Software Engineering, Visual Studio Team Services
You are already the Duke of DevOps: you have a master in CI/CD, some feature teams including ops skills, your TTM rocks ! But you have some difficulties to scale it. You have some quality issues, Qos at risk. You are quick to adopt practices that: increase flexibility of development and velocity of deployment. An urgent question follows on the heels of these benefits: how much confidence we can have in the complex systems that we put into production? Let’s talk about the next hype of DevOps: SRE, error budget, continuous quality, observability, Chaos Engineering.
Al Wagner from IBM presents how to avoid deployment failures, reviewing such topics as: Deployment models like canary, blue/green and rolling that can help prevent major production outages; How to pinpoint deployment failures in your process and correct them; Pulling together a basic failure response plan; and How you can roll forward while improving your deployment process.
Learn more about IBM UrbanCode: http://www.ibm.biz/learnurbancode
Treating operational aspects of software as 'non-functional requirements' and 'an Ops problem' rather than a core part of the software product leads to poor live service and unexplained errors in Production.
Traceability, deployability, recoverability, diagnosability, monitorability, and high quality logging are key features of a software system, along with user-visible features surfaced via the UI, or a capability of an API endpoint.
However, many Product Owners understandably feel uneasy about taking on the (necessary) responsibility for prioritising operational features alongside user-visible and API features.
This session brings Scrum Masters and Product Owners up to speed on operational features and covers proven practices for improving operability in an Agile context, empowering Product Owners to make effective prioritisation choices about all kinds of product features, whether user-visible or operational.
How to Manage the Risk of your Polyglot EnvironmentsDevOps.com
In this webinar, we’ll explore how to navigate the tension between speed and security when it comes to open source languages.
Enterprises are challenged by conflicting interests:
Engineering teams want more time to focus on code quality, but product managers want to ship faster.
Developers want the best tool for the job, but companies resist adding more technology stacks to their growing tech debt.
Retrofitting for security and vulnerabilities after the fact becomes a big blocker for Development and Engineering teams. Enterprises are challenged with resolving new threats and vulnerabilities at the pace at which they crop up. And yet, speed wins over security because faster time-to-market takes a greater priority over fixing vulnerabilities.
Our expert panel will cover how to resolve the tension between speed and security by practices which:
Minimize DevOps overhead from retrofitting programming languages with new versions, dependencies, security patches, etc.
Enable Continuous Builds to keep up with your continuous deployments
Use Build Validation to vet your continuous builds against smoke tests
Software testing tools are evolving. More testing frameworks are emerging through the open source community and commercial vendors. In addition, we’re starting to see the rise of machine-learning (ML) and artificial intelligence (AI) in testing solutions.
Given this evolution, it is important to map the tools that match both the practitioners’ skills and their testing types. When referring to the testing practitioners, we mainly look at three different personas:
-The business tester
-The software developer in test (SDET)
-The software developer
These practitioners are tasked with creating, maintaining, and executing unit tests, build acceptance tests, integration, regression, and other nonfunctional tests.
In this webinar led by Perfecto’s Chief Evangelist, Eran Kinsbruner, you will learn the following:
-How should testing types be dispersed among the three personas and throughout the DevOps pipeline?
-What tools should each of these three personas use for the creation and execution of tests?
-What are the key benefits to continuous testing when mapped correctly?
How does a reliable and fast continuous delivery contribute to Engineering Culture? And how does Pipedrive do more than 65 production deployments per day? Answers are in this presentation. I just warn you, without my energetic speech, it's only half of the fun :)
Similar to What the music of the 1980s taught me about shipping software (20)
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...JeyaPerumal1
A cellular network, frequently referred to as a mobile network, is a type of communication system that enables wireless communication between mobile devices. The final stage of connectivity is achieved by segmenting the comprehensive service area into several compact zones, each called a cell.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfFlorence Consulting
Quattordicesimo Meetup di Milano, tenutosi a Milano il 23 Maggio 2024 dalle ore 17:00 alle ore 18:30 in presenza e da remoto.
Abbiamo parlato di come Axpo Italia S.p.A. ha ridotto il technical debt migrando le proprie APIs da Mule 3.9 a Mule 4.4 passando anche da on-premises a CloudHub 1.0.
Italy Agriculture Equipment Market Outlook to 2027harveenkaur52
Agriculture and Animal Care
Ken Research has an expertise in Agriculture and Animal Care sector and offer vast collection of information related to all major aspects such as Agriculture equipment, Crop Protection, Seed, Agriculture Chemical, Fertilizers, Protected Cultivators, Palm Oil, Hybrid Seed, Animal Feed additives and many more.
Our continuous study and findings in agriculture sector provide better insights to companies dealing with related product and services, government and agriculture associations, researchers and students to well understand the present and expected scenario.
Our Animal care category provides solutions on Animal Healthcare and related products and services, including, animal feed additives, vaccination
5. Homepage showing a list of games
Game page
HTML5 Games
Adverts
Run it on a server
Test on multiple devices
Is That All?
6. Does it work?
Will customers like it?
Can it handle the load?
Is it fast enough?
How to measure activity?
How to spot things going wrong?
What to do when things go wrong?
Who does what day-to-day?
How can we make changes?
How do customers get help?
Do we keep customers safe?
How will I get customers?
What is the fulfilment process?
Can the team continue to deliver?
7. Where does the data in the UI come from?
How frequently will the data be updated?
Does it behave the same on all channels?
How to measure the success of this change?
Does this require any new reports?
11. Match existing platform capabilities
PLUS custom / one-off solutions
PLUS new items we’ve been waiting on
PLUS migrate ALL the partners and
customers seamlessly
And do it in 18 months
12.
13. Limit the scope
Defer the rest
Minimise risks
Maximise the chance of success
Get something sooner
22. 42 people organised into feature teams
Feature branches & merge to trunk
Handover to Production Support
‘Release train’ every 1-2 weeks
39 major releases in 2 years (2012-2013)
Each release took approx 5 - 6 hours
Also patched releases in between major releases
Let me explain some of the pain…
24. Bug fix
(rev 100)
CANDIDATE RELEASE
2-1-0 branch
TRUNK
Create
Merge bug fix
needed in 2-1-0
Bug fix
(rev 101)
New feature
(rev 102)
Merge bug fix
to trunk
2-1-0
end of life
Hot fix
(rev 104)
Merge bug fix
to trunk
And also
2-2-0
Create 2-2-0 branch
Hot fix
(rev 103)
CANDIDATE RELEASE
25. Create branches
Any open issues in trunk from handover?
Run the standard tests (automated but slow)
Any specific issues that need regressed?
Rehearse the deployment
Sign-offs
Release to production
Post release checking
Enable feature flags
26. Small multi-disciplinary team of 8 people
11 x Microservices
Mixture of deployment models & tools
Heavy reliance on test automation
396 releases in 2014 (Jan – Nov)
75% of team have performed deployments
Each release takes 2 – 15 min
27. Easier to understand / transparent
Align to small teams
Independently deployable
Easier to debug / test / change / replace
Lower lead times & cycle times
Less technical debt
Easier to experiment with new ideas / tech
28. Stick to one version or release multiple
versions of the same service?
What happens if a change depends on
multiple services?
What about deploying database changes?
32. Review the purpose & cost of every asset
Make fewer requests
Make responses smaller
Reduce round trip time
Understand critical rendering
Establish a performance budget & stick to it
34. Monitor from the outside
Response times
Transactions
RUM
System level monitoring
Email alerts link to the runbook
Aggregate patterns in log files
Graphite dashboard including release
indicators
35.
36.
37. Frequency
Location
Scripting language
Goto URL
Form filling including logons
Interact via id / selector / label
Versioning
Escalation policy
39. A BOMB HAS LANDED IN THE COMPOUND...
Henry: (reading instructions) And carefully cut
the wires leading to the clockwork fuse at the
head.
(Trapper cuts the wires)
Henry: But first, remove the fuse.
(Everyone exchanges panicked looks, Trapper
listens to the bomb with a stethoscope)
Trapper: It stopped ticking.
Hawkeye: Let's get the hell out of here. We've
only got 2 minutes...maybe.
40. Public readme on GitHub for
our Game SDK
One page / 9 quick steps
Post a score
Save / restore game data
Trigger adverts
41. Each service has a one pager on the wiki
Overview Diagram
Links to code + CI build + test artifacts
Dependencies (link to APIs / integrations)
API + how to use
How to deploy, validate & rollback
Monitoring (links)
Troubleshooting advice
Data & Database
42.
43. Where are the inputs?
What is happening?
Where are the outputs?
Simple Minds – peaked at number 7 in the UK Singles Chart on 4th May 1985
http://www.officialcharts.com/archive-chart/_/1/1985-05-04
1. Greenfield HTML5 Games Portal for mobile / tablet / PC running on multiple channels
2. 6 weeks of effort: started development in first week of December 2013, 2 week holidays, and ready to launch by last week of January 2014.
3. Launched in mid-February 2014 as we needed decision on the launch games.
4. Team of 7: 3 back-end, 1 front-end, 1 Ops, 1 QA + me (and we also had to deal with other requests)
What you need – opening tracking on 1984 album Listen Like Thieves by INXS
Is That All? – from the U2 album October released 1981
These are multiple features – so each feature should have its own definition of done
https://www.nccgroup.com/media/57196/ncc_group_55_killer_questions_website_performance.pdf
Checklists help us avoid mistakes – where the knowledge already exists yet we run the risk of failing to apply it correctly
Ripple effect
Feature flags & deployment sequence – always deploy with feature switched off
They help to improve outcomes with no increase in skill.
Pause points: ready to start; ready to merge (a feature branch); and so on.
5-9 questions / points in the domain language
Not a comprehensive how-to guide.
We use checklists all the time in our development process.
The Real World – album track by The Mighty Lemon Drops from their 1989 album Laughter
Hatful of Hollow released in 1984. Number 28 in John Peel Festive 50 of 1984
There is a tension that can exist in some teams or between teams.
In my experience this can sometimes arise between people in different locations not having an appreciation of the challenges in other half of the team.
This can happen at product and feature level.
Proposed in 2009
Delay in signing contracts into Jan 2010 (platform tech + external dev)
May 2010: project tech handover by Architect – 1 week handover & scope not defined.
Go live was meant to be September 2010.
Phoenix – The Cult “Love” album
May 2010: project handover; External dev to internal team; Architect – 1 week handover & scope not defined. Go live was meant to be September 2010.
Existing: Multi-tenant (275 channels), i18n, Ecommerce (merchandise, catalog, checkout / tax, fulfilment), Support, GS subscriptions, digital downloads & fulfilment, analytics & reporting, emails, etc.
Custom: SSO, Billing, UI, Text, Feeds
New: time to make decision + merchandising workflow, personalisation / recommendations, paypal + adyen, UI flows, client software, ratings, FB integration, etc
Some new capabilities gained by ecommerce platform being used.
18 months: means 30 partners per month
The Clash – technically London Calling released 14-Dec 1979 but really an album most listened to in the 80s.
https://twitter.com/paulg/status/389213926769958912
A wish away – The Wonder Stuff – 8 legged groove machine
V2 – single by That Petrol Emotion in 1984. Re-released on their Manic Pop Thrill album
Core platform: content merchandising workflow + channel merchandising + storefront + purchase / fulfilment + pay & get paid + user support (self-service UI)
1 partner + no custom integrations (SSO / payment) + no custom UI + English language only
GameSaver was initially deferred but added before we launched
ATG 9 / Commerce Refrence Store – working software
Iterate and evolve
Extend platform >> what channels can we migrate now?
Started Feb 11 and went live in Aug 11.
We migrated approx 85 partners in total including custom capabilities.
This approach gave us a path to evolve and split the work.
We shutdown approx 150 partners. We never did 2-byte support + custom OEM features.
Distributed team exagerates the communication issues (product team in NY)
We gave our first demo after 2 weeks and then gave weekly demos
This applies to demos or the full feature / product
Ultimately these steps are core to what we did after we were acquired by iWin.
QA reported issues: blame culture historically existed if they missed things
Product team: every bug is MUST fix
We wanted to remove the subjective nature of issues
Out by 1 pixel bugs
Lack of test coverage – more bugs, more stuff you will never fix
Double A-side from the People Who Grinned Themselves to Death (second abum)
Build - Reached number 41 in the New Zealand charts on 1987
Norman Cook – Fat Boy Slim
Paul Heaton – The Beautiful South
Stan Collimore
Hugh Whittaker – jail / axe
I would often use this as an interview question – not for right or wrong answer but to see if the candidate would understand the change process.
For some of our services we can do this process in < 15 mins – automation, some steps are optomised out. Rails apps (branch) v varnish (release package)
Small atomic check-ins
Code reviews – sometimes pre-checkin & sometimes post check-in
We have LOTs of products / services – this is a subset.
REPEATABLE
Visible: dashboard & email notifcation on failure (for some builds we notify on success)
Fire and forget – it worked locally
Fast: individual builds/tests (<10 mins), slow builds break flow, and queue of builds (competing for build servers)
Fix the build – halt the line
Last Success – want to build everything at least weekly.
From 1988 JAMC album Barbed Wire Kisses.
Start with 100% or as close to it and stick to it as you go. If you don’t start that way it can be difficult to find time & have the discipline to plug the gaps.
We ran our Java coverage overnight. Needs instrumented code. Takes approx 10 more minutes (i.e. 45 mins)
Rails we run as is.
Echo and the Bunnymen – Heaven Up Here – 1981
This song makes me think about software deployment.
Software is sometimes thrown over a wall for someone else to deploy to production and make it work end-to-end.
http://c2.com/cgi/wiki?ThrownOverTheWall
You can write code but there are often whole other challenges in getting it out the door.
Two scenarios
http://www.slideshare.net/beamrider9/continuous-deployment-at-etsy-a-tale-of-two-approaches
Painful to merge
Long lived branches were painful to keep up to date
If you missed the train then business pressure to get it out.
Every release was a big deal.
Microservices: recommendations, adverts, FES, etc
See https://svn.iplay.com/atg/internal/site/tags/archives/release/ for archive
Branches are good to avoid poluting trunk
But merging can be painful (merge conflicts)
Test feature before re-merge and again afterwards - WASTEFUL
And long lived branches can be painful cos you merge in both directions
We were also using feature flags so that we could try to get code out quicker.
QA dominant
Microservices: chat, logon, Catalog, Event, front end, advert, etc.
Deployment models:
1. Advert: Build/unit test >> deploy / cucumber >>GATED deploy to production (no stage environment). Major change we will deploy a new production instance and cutover that way.
2. Varnish: deploy & test against mock (sinatra) >> auto build a release >> GATE deploy to production
3. MP + CMS: build / test + deploy / cuke >> candidate branch + stage env (preview / training) >> production. We don’t have version branches or feature branches. We develop to trunk and fix broken builds immediately.
Usually there is not many hours or days difference between trunk and production branch.
For devs / ops / non-devs
Less stuff to cram in your head – less code / faster
Lead time: from an idea being proposed to being in production
Cycle time = when start working to when ready for delivery
Difference between trunk and production is minimal
Less ripple effect (well defined APIs)
The barrier to testing / deploying is lower
Find a bug: just fix it and get it out
1. Whatever means zero downtime & less complexity
- Whatever works in your context
- Tidy up afterwards
2. Roll out one service at a time and don’t break things.
A simple approach is to make sure it works as is and enable via feature flags
Add things don’t change (e.g. adverts)
Enable code with feature flags
Tidy up after wards
3. DB
Add table / column and populate data
Roll out code that uses it
Roll out code that stops using a column or table in db
When nobody using it then delete
Happy Mondays – Performance is an album track from their 1988 album Bummed
I saw them support James at the QMU and went out and bought that album the next week.
1. HTML page download – the initial requst
2. Critical path JS / CSS
3. Other resources
http://www.webperformancetoday.com/2014/03/18/waterfalls-101-how-to-use-a-waterfall-chart-to-diagnose-performance-pains/
1. Dark green = DNS lookup. One lookup per domain.
Try to use fewer domains & pre-fetch.
2. Orange = TCP Connection. Round trip. Browsers can have approx 6 connections to the same domain.
Use a CDN – closer. HTTP 1.1.
3. We’re ignoring SSL / HTTPS – it will incur 1-2 additional round trips
4. Bright green = Time to first byte. This is the time from the request being made until the first byte is served back.
Fewer requests. Concatenate. Sprites. Leverage the browser cache. Server time.
5. Blue = content download. This indicates how long it takes for a server to fully serve the requested resource.
Compression, minify, gzip, review all headers. Congestion window.
Critical rendering: async JS, inline critical CSS. Speed Index
Budget – in tech language or measure that matters to users
Mobile web: less than 50 requests, less than 600K, 0 redirects, etc.
Mobile web: page speed of less than 2000 on 3G
HTML5 game: less than 500K of audio, one audio sprite, less than 50 resource requests, etc.
HTML5 game: fully loaded in less than 10 seconds on cable
Monitor – Siouxsie and the Bansheesfrom the 1981 album Juju
Featuring John McGeoch from Greenock. He was also a member of Public Image Ltd
Self-healing systems
High availability – survive single point failures
We call / text out of hours via Pager Duty if user impact (i.e. do something now)
We email for other monitoring alerts - thresholds
We have minimum of two instances of all apps – sometimes behind R53 or ELB
Opsview
CPU, Memory, Load Average, Disk space, specific processes, etc
Alert on thresholds
Monitor from end user perspective
Pagerduty integration – this means we don’t have people sitting watching servers
REM – Document - 1987
1. Sometimes / often dev teams want to run a mile if they are asked to document anything
2. Lots of services then you need documentation. Even if you have things automated.
3. The code is the documentation is sometimes the attitude but that is unhelpful.
http://martinfowler.com/bliki/CodeAsDocumentation.html
4. It’s all about seeing what you are doing from the shoes of someone else.
This was broadcast in 1973 but I watched it in the 1980s
Who: a game developer who wants to start earning money from their game asap
Simple instructions – a list.
Doable in under an hour for a HTML5 game developer.
Can dig deeper if necessary.
Writing simple instructions for a different audience does not come naturally to all developers.
One page
Our team is small – we have more services than people.
Some services see frequent development / release – some are more mature and releases are infrequent.
Easy to forget steps. If you are context switching.
We have a template that we use to write up each of our services.
Many of these steps are automated but still worth having the notes as a memory aid.
Quiet Life – Japan. Released 4 January 1980
Think about what happens if the server has issues at 3am
Welcome message – status & cut & paste commands
Apps all in same place
Log files are also documentation
Can I find the log file?
Can someone who didn’t write the code diagrnose what is happening by reviewing log file?
Poor logging means you need to patch production with improved logging before you can diagnose an issue.
INFO / WARN / ERROR
Time stamp + before / input + after / output for each step. Report error context.