Wednesday 15 June 2016

Is DevOps and Agile same?

Well, it is a valid question that would churn in anyone's mind!

Ideally, both Agile methodology and DevOps methodology promotes the software development practices, where the ultimate aim is to realize the business value much faster through iterative, smaller and continuous software deliveries.

Looking at the Agile Principles, we can say that DevOps is nothing but a subset of the Agile software development methodology.

While Agile is an over arching IT software development methodology, DevOps have more emphasis on the collaboration between IT Development and Operational organisations with automation as key principle, in order to improve overall efficiency and productivity.

Although, one of the Agile principles says "Business people and developers must work
together daily throughout the project", it sort of neglects the operational side of IT, which as a matter of fact much more relevant for bigger and mature IT organisations. As a result IT Ops practices were often "not" in align with those of Development team and hence the business suffered.

So IMO, an evolution of the DevOps methodology took place in around year 2008, for Development and Operational organisations to collaborate with each other and together realise the business value faster!

DevOps tools - One stop!

The purpose of this post is to create a one-stop shop for all the popular tools and frameworks promoting DevOps

Development - Collaboration
Architecture & Development standards:
Agilie methodology:
Atlassian JIRA
Atlassian Confluence
Testing automation:
Deployment Automation:
IDE (Netbeans, Eclipse, Visual Studio)
Vagrant, Docker, Packer etc.
Virtual Box, VMware etc.
Cloud (AWS, Azzure, Google etc)
Other Scripting?
Project Management & Service Transition:
Project Management (Prince2, PMP/PMBOK)
Release/Change Management (ITIL)
Knowledge Transfer (ITIL)
Development - Automation
IDE (Netbeans, Eclipse, Visual Studio)
Source Control (Git, Subversion)
TDD, BDD (Test / Behaviour Driven Development)
Build automation:
Gradle, Maven, Ant/Ivy
Jenkins, Go Pipelines, Bamboo, TeamCity, Cruise Control
Other List_of_build_automation_software#Continuous_integration_tools
Package Management:
Artifactory, Nexus, Apache Archiva
Maven, NPM, NuGet
Other List_of_software_package_management_systems#Application-level_package_managers
Unit/Integeration Testing:
Other List_of_unit_testing_frameworks
Code coverage:
Operations - Collaboration
Agile practices:
Atlassian JIRA (Issues, Feedback)
Atlassian Confluence (Documentation)
Scrum (Daily standups)
Kanban (Agility)
Infrastructure as a Service:
Private Cloud (DC, VMware) Traditional DC: Microsoft HyperV, VMware vCloud Suite, Oracle, Cisco, Redhat etc.
Public Cloud (AWS, Azure, RackSpace etc.)
Platform as a Service:
Private Cloud (DC, VMware) Traditional DC: Microsoft HyperV, VMware vCloud Suite, Oracle, Cisco, Redhat etc.
Public (AWS, SalesForce, Azure, Google, IBM, OpenShift etc. )
Service Transition:
Project Management (Prince2, PMP/PMBOK)
Change Management, Incident Management (ITIL / ServiceNow)
Knowledge Transfer (ITIL)
Continuous Service Improvement:
Issues/Feedback Manangement (JIRA, ServiceNow, BMC Remedy)
Risks and Reporting (ITSM)
Service Continuity (ITSM)
Operations - Automation
Configuration Management:
Other Scripting?
Deployment Automation:
Chef, Puppet, Ansible, Salt
Cloud Services (AWS, Azure, Heroku, Google, Custom)
Other Scripting?
Nagios, CA UIM, BMC, Solarwinds
Zabbix, NewRelic, ScienceLogic, AppDynamics
Cloud Services (AWS, Azure, Heroku, Google, Custom)
Security & Analysis:
Sumo Logic
Cloud Services (AWS, Azure, Heroku, Google, Custom)

Let's keep it up-to-date for mankind!

Sunday 5 June 2016

AWS vs DevOps

DevOps is not limited to the IT organizations operating in the traditional Data Centres but it is very aggressively being adopted by organisations running on cloud. When we talk about cloud, it is hard to pass by AWS (Amazon Web Services).

Even world biggest cloud providers like AWS are aligning their suite of services and product line according to the industry accepted DevOps practices!

Following table provides a quick insight into how AWS services/products are aligned to the DevOps practices:

DevOps Pactise AWS Services Comments
Architecture & Development standards Architecture


A great mix of Architectures, Whitepapers and Solutions based upon various different Application and Use types.
Code Management Codecommit Works with AWS IAM by default. Though it's obvious integration with other DevOps related services like AWS CodePipeline, CodeDeploy etc. could be a game-changer!
Build automation Codepipeline Integrates nicely with GitHub, Jenkins, AWS CodeDeploy, Lambda, IAM etc. to provide a nice CI/CD experience.
Package Management Way to go... But AWS CodePipeline can be used with AWS S3 service to store archives. Refer to our DevOps Tools - One Stop page for more info.
Testing automation Way to go... But AWS CodePipeline can be used create Custom Actions for testing automation. Refer to our DevOps Tools - One Stop page for more info.
Code coverage AWS CodeGuru Refer to our DevOps Tools - One Stop page for more info.
Infrastructure as a Code Cloudformation

Build entire AWS infrastructure via code/template
Platform as a Service AWS EC2
AWS EC2 Container Service (ECS)
Use AWS AMI to pre-package and create AWS EC2 Compute Instances. Whereas ECS is a Docker based clustering solution. Can use Packer to generate AMIs or Docker images.
Deployment Automation
Elasticbeanstalk Provide a good range of pre-built platform (Java, Ruby, Python, Docker, NodeJS, GO etc) with choice of pre-configured Auto Scaling Group and Load Balancer etc. Most easy to use and hence less choice for customization. Just bring your code.
Opsworks OpsWorks is Chef based currently and can be used for Deployment Automation. Just bring your own recipes or select from built-in platform, without the need to maintain your own Chef server. Allows more customization and control as compared to Beanstalk.
Codedeploy Use your existing automated scripts to simply deploy the code. Nicely integrates with AWS S3, GitHub and AWS CodePipeline. You have full control on the underlying platform choice and deployment. Has good lifecycle and deployment management.
Cloudformation Allows complete control over the underlying infrastructure and code installation with the help of built-in Metadata. Hence most complex and powerful option.
Configuration Management Opsworks AWS OpsWorks is Chef based currently and can be used for Deployment Automation as well as Configuration Management
Monitoring Cloudwatch

CloudWatch is for basic monitoring, alerting and logs management, whereas CloudTrail is for auditing
Security and Reporting AWS IAM

AWS Config

IAM is core Ideantity and Access management that integerates with almost every AWS service.