The NEED TO KNOW Info On Amazon's Software Development
Summary
TLDRIn this video, Dave Farley discusses the importance of learning from successful companies like Amazon in software development. Amazon, deploying changes over 136,000 times daily, has adopted continuous delivery, focusing on source, build, test, and prod phases. They practice trunk-based development and continuous integration, ensuring fast feedback and visibility. The video explores Amazon's approach to testing, including health checks, integration testing, and canary releasing, emphasizing the need for observability and rollback strategies to manage change effectively.
Takeaways
- π Amazon deploys changes into production over 136,000 times per day, highlighting the importance of efficient software development practices.
- π Amazon's early technology was a constraint on growth, illustrating the need for scalable systems as companies expand.
- π The shift from relational databases to a distributed model was a key change for Amazon, emphasizing the move towards event-based systems and eventual consistency.
- π₯ Amazon's adoption of small teams, influenced by Jeff Bezos' 'two-pizza rule', led to the development of their service-oriented architecture.
- π§ Amazon's continuous delivery model includes four fundamental parts: source, build, test, and prod, aligning with the deployment pipeline concept.
- π Amazon practices trunk-based development and continuous integration, ensuring visibility of the system's true state at all times.
- π οΈ The commit phase in Amazon's model provides fast feedback to developers, crucial for a fine-grained development process.
- π Amazon's testing phase includes health checks and integration testing to ensure the release candidate's readiness for production.
- π Amazon's approach to microservices involves supporting multiple versions of APIs to manage changes between services.
- π Amazon's strategy for dealing with potential race conditions is to optimize for rollbacks and limit the impact of failures through canary releasing and observability.
- π The script suggests learning from successful companies like Amazon, despite their unique challenges, to improve software development practices.
Q & A
What is the common mistake mentioned in software development circles?
-The common mistake is dismissing successful companies like Google, Amazon, or Facebook, and not learning from their practices.
How many times per day does Amazon deploy changes into production?
-Amazon deploys changes into production more than 136,000 times per day.
What was one of the main constraints on Amazon's growth for many years?
-Amazon's technology, particularly their relational database back system, was the main constraint on the growth of the company for many years.
What was the famous initiative introduced by Jeff Bezos that impacted Amazon's development?
-The famous initiative introduced by Jeff Bezos was the 'two-pizza team' concept, which led to the distributed service model and the genesis of Amazon Web Services.
What are the four fundamental parts of Amazon's version of continuous delivery?
-The four fundamental parts of Amazon's version of continuous delivery are Source, Build, Test, and Prod.
How does Amazon ensure that their software is always releasable?
-Amazon ensures that their software is always releasable by following a deployment pipeline consisting of commit acceptance and production phases, evaluating an independently deployable unit of software.
What does Amazon call the phase where they give fast feedback to developers following any change?
-Amazon calls the phase where they give fast feedback to developers following any change the 'commit phase'.
What is Amazon's approach to development in terms of visibility into the system's true state?
-Amazon practices trunk-based development and full-blown continuous integration, maximizing visibility into the true state of the system at all times.
How does Amazon handle testing of their release candidates?
-Amazon handles testing of their release candidates by deploying them and performing health checks to confirm the system is ready before starting tests.
What is the purpose of integration testing, or 'Jazz' as Amazon calls it, in Amazon's deployment pipeline?
-The purpose of integration testing, or 'Jazz', is to deploy the same bits and bytes representing the release candidate into a production-like test environment and evaluate it in realistic scenarios.
How does Amazon manage change between microservices?
-Amazon microservices support multiple versions of all their APIs as a mechanism to manage change between them.
What strategy does Amazon use to cope with potential race conditions between teams?
-Amazon optimizes for being great at rolling back changes and limits the blast radius of any failure through sophisticated forms of canary releasing and rolling out changes progressively.
Outlines
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowKeywords
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowBrowse More Related Video
What is the "best way" to develop software applications?
CI/CD In 5 Minutes | Is It Worth The Hassle: Crash Course System Design #2
ISTQB FOUNDATION 4.0 | Tutorial 11 | TDD, BDD, ATDD | DevOps and Testing | CTFL | TM SQUARE
ΒΏQUE ES CI/CD?
5 Types Of Software Testing & When To Use Them
Software Testing Explained in 100 Seconds
5.0 / 5 (0 votes)