Skip to main content

DevOps

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops).

It aims to shorten the systems development life cycle and provide continuous delivery with high software quality.

Building on Agile and Lean, DevOps enables the business to respond to changes and meet customer needs faster.


DevOps process:

  1. Coding – code development and review, source code management tools, code merging.
  2. Building – continuous integration tools, build status.
  3. Testing – continuous testing tools that provide quick and timely feedback on business risks.
  4. Packaging – artifact repository, application pre-deployment staging.
  5. Releasing – change management, release approvals, release automation.
  6. Configuring – infrastructure configuration and management, infrastructure as code tools.
  7. Monitoring – applications performance monitoring, end-user experience.

Benefits of DevOps:

  1. Faster time to market
  2. Higher ROI
  3. Greater user/customer satisfaction
  4. Increased efficiency
  5. Improved collaboration
  6. Early detection and correction of issues

CI/CD is a method to frequently deliver apps to customers by introducing automation into the stages of app development.

The main concepts attributed to CI/CD are continuous integration, continuous delivery, and continuous deployment.

CI/CD is a solution to the problems integrating new code can cause for development and operations teams.

Specifically, CI/CD introduces ongoing automation and continuous monitoring throughout the lifecycle of apps, from integration and testing phases to delivery and deployment.

Taken together, these connected practices are often referred to as a "CI/CD pipeline" and are supported by development and operations teams working together in an agile way with a DevOps.

Tools used:

Git (Coding Phase):  tool used for source code management.

Maven (Build Phase)dynamically downloads Java libraries and Maven plug-ins from one or more repositories and create build.

JUnit (Test Phase):  used to write and run repeatable automated tests

Jenkins (Release Phase): central build and continuous integration

Docker (Deploy Phase): enables developers to package applications into containers, configure containers ready to deploy to the cloud.

Kubernetes (Operate Phase): Kubernetes is a system that manages containers (containerized applications) where a container could be explained as a lightweight virtual machine. To build an application you need to build a bunch of containers and then use Kubernetes to manage those containers.

AWS Cloud Watch (Monitor Phase): collects monitoring and operational data in the form of logs, metrics, and events.


Comments

Popular posts from this blog

Delivering a project within budget

 Here are some tips for delivering a project within budget: Set a realistic budget Define the project's scope and necessary resources, and create a budget that's realistic. Cost estimate Segment the project into smaller tasks and milestones to plan how to use resources and provide clarity. Divide the project plan Break down the project into tasks to avoid late deliverables and over-budget projects. Monitor progress Regularly track the project's progress to identify and prevent cost overruns. Use progress reports to compare actual costs to the budget. Anticipate and revise changes Communicate with stakeholders to identify and assess risks, and assign owners to each risk. Consider different scenarios Estimation can be difficult for complex projects with many potential outcomes. Tracking: Tracking time spent on tasks, Tracking expenses per project, and Using project management software. Use Historical Data Your project is likely not the first to try and accomplish a specific o...

Certified Enterprise Architect Professional (CEAP) - Module 5 - Architecture Frameworks

Architecture Frameworks: An Architecture Framework is a theoretical structure that has the purpose of developing, executing, and maintaining an Enterprise Architecture. Advantages of EA framework: Simplify Breaks down areas of the business process Organise business components and create and identify relationships between business Determine the scope Customization in the existing framework Disadvantages of EA framework: Need to follow process Provides only direction and not information It's based on goal and objective Need creativity and proactive thinking Zachman Framework: The Zachman Framework is a widely used model in Enterprise Architecture (EA) that provides a structured way to classify and organize an organization's information infrastructure by defining different perspectives from various stakeholders, allowing for a holistic view of the enterprise and facilitating alignment between business needs and technology solutions; essentially acting as a template to organize arc...

Bucket System project estimation

 The Bucket System is an Agile estimation technique that uses predefined buckets to group tasks or user stories by size, complexity, or effort.  Each bucket represents an estimate range, such as small, medium, or large.  The Bucket System is a group activity that helps align the team's understanding of work effort and complexity.  It's a good technique for quickly estimating a large number of items with a medium to large group of people. The effort of small, medium, or large bucket size arrived by team based on T-shirt sizing, PERT estimation or Planning Poker. Each bucket represents a level or an estimate range (e.g., small, medium, large). The team compares user stories to one another and places them into the appropriate buckets. This process is a group activity, promoting discussions and aligning the team's understanding of work complexity and effort. To use the Bucket System: Set up a row of cards, or buckets, with values in the Fibonacci sequence or other metho...