DevOps CI & CD
Not just pipelines but end to end ALM enabler

DevOps CI & CD

DevOps has moved from a buzz word / new trend to a critical component of all new modern software development projects!

Without DevOps you will not reap the benefits of all those good agile engineering practices we have been speaking about in my previous blog posts. DevOps is the the manufacturing line that will take your agile engineered engineered piece of code through all the Application Life Cycle (ALM) steps from first build to delivery including monitoring and support.

Lets demystify DevOps first as there seems to be this perception that it is the crazy complex and difficult concept that only rocket scientist could possible comprehend and understand it. At its simplest DevOps is about automating the manual operations processes of the past to improve efficiency and quality.

Efficiency: This is about automating operations tasks using a scripting language to improve the time it takes to complete the task. It also ensures the tasks are repeatable with zero human error.

Quality: This is to ensure the code that has been written is of the highest quality and lowest risk possible. This is done by using static code analysis tools, peer code reviews and test automation.

DevOps is a set of software development practices that combines  software development ( Dev) and  information technology operations( Ops) to shorten the  systems development life cycle while  delivering features, fixes, and updates frequently in close alignment with business objectives

Continues Integration (CI) is the first pipeline in the application life cycle and consists of integration with a source control system, build steps, dependency management, test automation, quality gates and artifact management.

Continues Delivery (CD) is the second pipeline and consist of integration with a artifact repository, approval gates, deployment, configuration, monitoring and support.

Two technology stacks in my opinion which are emerging as the best of breed are:

  1. The Atlassian Technology Stack: Jira / Bit Bucket /Jenkins /Confluence / Fisheye / (Third Party: Artifact Repo / Test suite / Monitoring)
  2. The Azure DevOps Technology Stack: Boards / Repos / Pipelines / Tests Plans / Artifacts / Azure Monitor.

These two technology stacks can both effectively handle all tasks required to implement a end to end ALM. The biggest difference is that Azure DevOps is a fully integrates suite of services where the Atlassian stack is a collection of separate products and require product integration and third party integration to support end to end ALM.

In my experience its allot easier and far less expensive to use Azure DevOps tool stack for your DevOps implementation:

  1. It covers end to end application ALM
  2. It includes all DevOps services with baked in integration in one product suite
  3. Seamless integration with the Microsoft ecosystem like O365, Azure, *GitHub etc
  4. It has abstracted allot of the complexity and has a intuitive user interface
  5. On boarding new resources is quick and the learning curve is not steep
  6. Baked in trace-ability and audit-ability across all services
  7. Baked in reporting with support for Power BI
  8. Supports cloud, multi cloud or hybrid implementation
  9. Baked in integration with most popular third party tools
  10. Most importantly has very competitive pricing structure.

The last point to remember is that once your code is running in production you need a way to monitor and support it. Monitoring should be intelligent and self healing and support should be easy, transparent and traceable.

Good luck with your Agile Engineering journey!


要查看或添加评论,请登录

Richard Fisher的更多文章

  • Data Insights - Security vs Utility

    Data Insights - Security vs Utility

    Companies across all industry sectors are under increasing pressure to expand their customer data analytics initiatives…

    1 条评论
  • Architect as a Technical Leader

    Architect as a Technical Leader

    As per InfoQ info graphic above we can see that, "Architect as a technical leader" is one of the trends in Software…

    3 条评论
  • Why Not Start Modular Then Go Micro

    Why Not Start Modular Then Go Micro

    Why not start with a Modular Application Architecture and when you can justify the added complexity then move to Micro…

    2 条评论
  • Source Code Management

    Source Code Management

    Code doesn’t exist unless it’s checked into a version control system! Version Control Version control is a system that…

  • Engineering Patterns & Principles

    Engineering Patterns & Principles

    In my years of working in software development one thing has always stayed constant, namely that stakeholder time…

    3 条评论
  • Agile Architecture

    Agile Architecture

    Agile and Architecture are not traditionally seen as kindred spirits. When viewed separately in their natural state…

    1 条评论
  • Agile Engineering Foundation

    Agile Engineering Foundation

    What does a solid foundation look like that can support a end to end test automation implementation? We need to…

  • Agile Engineering

    Agile Engineering

    How do we achieve this level of software test automation by applying Agile Engineering practices? This a start of a…

社区洞察

其他会员也浏览了