Sponsored Links

Selasa, 05 Juni 2018

Sponsored Links

CA Continuous Delivery Director รข€
src: i.ytimg.com

Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.


Video Continuous delivery



Relationship to DevOps

Continuous delivery and DevOps are similar in their meanings and are often conflated, but they are two different concepts. DevOps has a broader scope, and centers around the cultural change, specifically the collaboration of the various teams involved in software delivery (developers, operations, quality assurance, management, etc.), as well as automating the processes in software delivery. Continuous delivery, on the other hand, is an approach to automate the delivery aspect, and focuses on bringing together different processes and executing them more quickly and more frequently. Thus, DevOps can be a product of continuous delivery, and CD flows directly into DevOps.


Maps Continuous delivery



Relationship to continuous deployment

Continuous delivery is sometimes confused with continuous deployment. Some people even use these two terms interchangeably. However, most practitioners tend to clearly distinguish these two terms. The distinction is that under Continuous Deployment we deploy any change to production that passes a series of tests. In contrast, under Continuous Delivery, we ensure that the software can be reliably released at any time, but it is up to a human to decide when to release, usually based on business reasons. In order to do continuous deployment one must be doing continuous delivery.


Why is Jenkins the de facto Continuous Delivery engine? | IT Briefcase
src: www.itbriefcase.net


Principles

Continuous delivery treats the commonplace notion of a deployment pipeline as a lean Poka-Yoke: a set of validations through which a piece of software must pass on its way to release. Code is compiled if necessary and then packaged by a build server every time a change is committed to a source control repository, then tested by a number of different techniques (possibly including manual testing) before it can be marked as releasable.

Developers used to a long cycle time may need to change their mindset when working in a CD environment. It is important to understand that any code commit may be released to customers at any point. Patterns such as feature toggles can be very useful for committing code early which is not yet ready for use by end users. Using NoSQL can eliminate the step of data migrations and schema changes, often manual steps or exceptions to a continuous delivery workflow. Other useful techniques for developing code in isolation such as code branching are not obsolete in a CD world, but must be adapted to fit the principles of CD - for example, running multiple long-lived code branches can prove impractical, as a releasable artifact must be built early in the CD process from a single code branch if it is to pass through all phases of the pipeline.


Continuous Delivery Maturity Model | Praqma
src: was.www.praqma.com


Deployment pipeline

Continuous delivery is enabled through the deployment pipeline. The purpose of the deployment pipeline has three components: visibility, feedback, and continually deploy.

  • Visibility - All aspects of the delivery system including building, deploying, testing, and releasing are visible to every member of the team to promote collaboration.
  • Feedback - Team members learn of problems as soon as possible when they occur so that they are able to fix them as quickly as possible.
  • Continually deploy - Through a fully automated process, you can deploy and release any version of the software to any environment.

Continuous Delivery: lead time and cycle time - Caroli.org
src: 4.bp.blogspot.com


Tools/tool types

Continuous delivery takes automation from source control all the way through production. There are various tools that help accomplish all or part of this process. These tools are part of the deployment pipeline which includes continuous delivery. The types of tools that execute various parts of the process include: continuous integration, application release automation, build automation, application lifecycle management.


Real-World Strategies for Continuous Delivery with Maven and ...
src: i.ytimg.com


Architecting for continuous delivery

To practice continuous delivery effectively, software applications have to meet a set of architecturally significant requirements (ASRs) such as deployability, modifiability, and testability. These ASRs require a high priority and cannot be traded off lightly anymore.

Microservices is often used for architecting for continuous delivery. The use of Microservices can increase a software system's deployability and modifiability. The observed deployability improvements include: deployment independency, shorter deployment time, simpler deployment procedures, and zero downtime deployment. The observed modifiability improvements include: shorter cycle time for small incremental functional changes, easier technology selection changes, incremental quality attribute changes, and easier language and library upgrades.


Patterns - Continuous Delivery | DevOps | Pinterest
src: s-media-cache-ak0.pinimg.com


Implementation and usage

The CD book written by Jez Humble and David Farley popularized the term, however since its creation the definition has continued to advance and now has a more developed meaning. Companies today are implementing these continuous delivery principles and best practices. Difference in domains, e.g. medical vs. web, are still significant and affect the implementation and usage. Well-known companies that have this approach include Yahoo.com, Amazon.com, Facebook, Google, Paddy Power and Wells Fargo.


Continuous Delivery - Continuous Deployment Explained | People10 ...
src: i.ytimg.com


Benefits and obstacles

Several benefits of continuous delivery have been reported.

  • Accelerated Time to Market: CD lets an organization deliver the business value inherent in new software releases to customers more quickly. This capability helps the company stay a step ahead of the competition.
  • Building the Right Product: Frequent releases let the application development teams obtain user feedback more quickly. This lets them work on only the useful features. If they find that a feature isn't useful, they spend no further effort on it. This helps them build the right product.
  • Improved Productivity and Efficiency: Significant time savings for developers, testers, operations engineers, etc. through automation.
  • Reliable Releases: The risks associated with a release have significantly decreased, and the release process has become more reliable. With CD, the deployment process and scripts are tested repeatedly before deployment to production. So, most errors in the deployment process and scripts have already been discovered. With more frequent releases, the number of code changes in each release decreases. This makes finding and fixing any problems that do occur easier, reducing the time in which they have an impact.
  • Improved Product Quality: The number of open bugs and production incidents has decreased significantly.
  • Improved Customer Satisfaction: A higher level of customer satisfaction is achieved.

Obstacles have also been investigated.

  • Customer preferences: Some customers do not want continuous updates to their systems. This is especially true at the critical stages in their operations.
  • Domain restrictions: In some domains, such as telecom and medical, regulations require extensive testing before new versions are allowed to enter the operations phase.
  • Lack of test automation: Lack of test automation leads to lack developer confidence and can prevent using continuous delivery.
  • Differences in environments: Different environments used in development, testing and production can result in undetected issues slipping to the production environment.
  • Tests needing a human oracle: Not all quality attributes can be verified with automation. These attributes require humans in the loop, slowing down the delivery pipeline.

Eight further adoption challenges were raised and elaborated by Chen. These challenges are in the areas of organizational structure, processes, tools, infrastructure, legacy systems, architecting for CD, continuous testing of non-functional requirements, and test execution optimization.


Continuous Everything: The Modern and Agile Experience Delivery ...
src: www.kanbansolutions.com


Strategies to overcome adoption challenges

Several strategies to overcome continuous delivery adoption challenges have been reported.


Continuous Delivery 101 (Part 1) - YouTube
src: i.ytimg.com


See also

  • Application lifecycle management
  • Application release automation
  • Build management
  • Change management
  • CI/CD
  • Continuous configuration automation
  • Continuous integration
  • Continuous testing
  • DevOps
  • Release management
  • Software configuration management
  • Version control
  • WinOps

Continuous Delivery PowerPoint Presentation - SlideModel
src: cdn.slidemodel.com


Further reading

  • Humble, Jez; Farley, David (2010). Continuous Delivery: Reliable Software Releases Through Build, Test and Deployment Automation. Addison-Wesley. ISBN 978-0-321-60191-9. 
  • Wolff, Eberhard (2017). A Practical Guide to Continuous Delivery. Addison-Wesley. ISBN 978-0-134-69147-3. 

Tips to Achieve Continuous Integration/Delivery using HP ALM ...
src: i.ytimg.com


References

Source of the article : Wikipedia

Comments
0 Comments