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:
Togaf http://www.opengroup.org/subjectareas/enterprise/togaf/
Zacman http://www.zachman.com/
Dodaf http://dodcio.defense.gov/Library/DoDArchitectureFramework.aspx
Agilie methodology:
Atlassian JIRA https://www.atlassian.com/software/jira
Atlassian Confluence https://www.atlassian.com/software/confluence
Scrum https://en.wikipedia.org/wiki/Scrum_(software_development)
Kanban https://en.wikipedia.org/wiki/Kanban_(development)
Other https://en.wikipedia.org/wiki/Agile_software_development
Testing automation:
JMeter http://jmeter.apache.org
Selenium http://seleniumhq.org/
HPQC http://www.hp.com/go/qualitycenter
Cucumber https://cucumber.io/
Other https://en.wikipedia.org/wiki/List_of_web_testing_tools
Deployment Automation:
IDE (Netbeans, Eclipse, Visual Studio) https://netbeans.org/
https://eclipse.org/ide/
https://www.visualstudio.com/
Vagrant, Docker, Packer etc. https://www.vagrantup.com/
https://www.docker.com/
https://www.packer.io/
Virtual Box, VMware etc. https://www.virtualbox.org/
http://www.vmware.com
Cloud (AWS, Azzure, Google etc) https://aws.amazon.com/application-management/
https://aws.amazon.com/codedeploy
https://aws.amazon.com/codepipeline
https://www.visualstudio.com/
https://azure.microsoft.com/en-us/documentation/scenarios/devtest/
https://cloud.google.com/deployment-manager
Other Scripting?
Project Management & Service Transition:
Project Management (Prince2, PMP/PMBOK) https://www.prince2.com
http://www.pmi.org/PMBOK-Guide-and-Standards.aspx
Release/Change Management (ITIL) https://en.wikipedia.org/wiki/ITIL
CAB (ITIL) https://en.wikipedia.org/wiki/Change_advisory_board
Knowledge Transfer (ITIL) https://en.wikipedia.org/wiki/Knowledge_transfer
Other https://en.wikipedia.org/wiki/IT_service_management
Development - Automation
Coding:
IDE (Netbeans, Eclipse, Visual Studio) https://netbeans.org
/
https://eclipse.org/ide/
https://www.visualstudio.com/
Source Control (Git, Subversion) https://git-scm.com
/
https://en.wikipedia.org/wiki/Apache_Subversion
TDD, BDD (Test / Behaviour Driven Development) https://en.wikipedia.org/wiki/Test-driven_development
https://en.wikipedia.org/wiki/Behavior-driven_development
Other https://en.wikipedia.org/wiki/Build_automation
Build automation:
Gradle, Maven, Ant/Ivy https://gradle.org
https://maven.apache.org
http://ant.apache.org
Jenkins, Go Pipelines, Bamboo, TeamCity, Cruise Control https://jenkins-ci.org
https://www.go.cd/
/https://www.atlassian.com/software/bamboo
http://www.jetbrains.com/teamcity/
http://cruisecontrol.sourceforge.net/
Other List_of_build_automation_software#Continuous_integration_tools
Package Management:
Artifactory, Nexus, Apache Archiva http://www.jfrog.com/open-source
http://www.sonatype.org/nexus/go/
http://archiva.apache.org/
Maven, NPM, NuGet https://maven.apache.org
http://npmjs.org/
https://nuget.org/
Other List_of_software_package_management_systems#Application-level_package_managers
Unit/Integeration Testing:
Junit http://junit.org
RSpec http://rspec.info
Nunit http://www.nunit.org
TestNG http://testng.org
Spock https://code.google.com/p/spock
Other List_of_unit_testing_frameworks
Code coverage:
SonarQube http://www.sonarqube.org
Cobertura http://cobertura.github.io/cobertura/
Clover https://www.atlassian.com/pt/software/clover
NCover https://www.ncover.com
Simplecov https://github.com/colszowka/simplecov
Other https://en.wikipedia.org/wiki/Code_coverage
Operations - Collaboration
Agile practices:
Atlassian JIRA (Issues, Feedback) https://www.atlassian.com/software/jira
Atlassian Confluence (Documentation) https://www.atlassian.com/software/confluence
Scrum (Daily standups) https://en.wikipedia.org/wiki/Stand-up_meeting
Kanban (Agility) https://en.wikipedia.org/wiki/Kanban_board
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.) http://aws.amazon.com
/
https://azure.microsoft.com
http://www.rackspace.com
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. ) http://aws.amazon.com/
http://www.salesforce.com/au/platform/overview/
https://azure.microsoft.com
https://cloud.google.com
https://www.openshift.com
Service Transition:
Project Management (Prince2, PMP/PMBOK) https://www.prince2.com
http://www.pmi.org/PMBOK-Guide-and-Standards.aspx
Change Management, Incident Management (ITIL / ServiceNow) https://en.wikipedia.org/wiki/ITIL
https://www.servicenow.com
CAB (ITIL) https://en.wikipedia.org/wiki/Change_advisory_board
Knowledge Transfer (ITIL) https://en.wikipedia.org/wiki/Knowledge_transfer
Other https://en.wikipedia.org/wiki/IT_service_management
Continuous Service Improvement:
Issues/Feedback Manangement (JIRA, ServiceNow, BMC Remedy) https://www.atlassian.com/software/jira
https://www.servicenow.com
http://www.bmc.com/it-solutions/remedy-itsm.html
Risks and Reporting (ITSM) https://en.wikipedia.org/wiki/IT_service_management
http://www.bmc.com/it-solutions/remedy-itsm.html
Service Continuity (ITSM) https://en.wikipedia.org/wiki/IT_service_management
http://www.bmc.com/it-solutions/remedy-itsm.html
Other https://en.wikipedia.org/wiki/Continual_improvement_process
Operations - Automation
Configuration Management:
Chef http://www.chef.io/
Puppet http://www.puppetlabs.com/
Ansible http://www.ansible.com/
Salt http://saltstack.com/
CFEngine http://www.cfengine.com/
Other Scripting?
Deployment Automation:
Chef, Puppet, Ansible, Salt http://www.chef.io/
http://www.puppetlabs.com/
http://www.ansible.com/
http://saltstack.com/
Cloud Services (AWS, Azure, Heroku, Google, Custom) http://aws.amazon.com
http://www.salesforce.com/au/platform/overview/
https://azure.microsoft.com
https://cloud.google.com
Other Scripting?
Monitoring:
Nagios, CA UIM, BMC, Solarwinds https://www.nagios.org
http://www.ca.com/us/opscenter/ca-unified-infrastructure-management.aspx
http://www.bmc.com/it-solutions/truesight-operations-management.html
http://www.solarwinds.com
Zabbix, NewRelic, ScienceLogic, AppDynamics http://www.zabbix.com
/
http://newrelic.com/
https://www.sciencelogic.com/
http://www.appdynamics.com/
Cloud Services (AWS, Azure, Heroku, Google, Custom) http://aws.amazon.com
http://www.salesforce.com/au/platform/overview/
https://azure.microsoft.com
https://cloud.google.com
Other https://en.wikipedia.org/wiki/Application_performance_management
Security & Analysis:
Splunk http://www.splunk.com
Sumo Logic https://www.sumologic.com
Loggly https://www.loggly.com
ArcSight http://www.hp.com/go/ArcSight
Cloud Services (AWS, Azure, Heroku, Google, Custom) http://aws.amazon.com
http://www.salesforce.com/au/platform/overview/
https://azure.microsoft.com
https://cloud.google.com
Other https://en.wikipedia.org/wiki/Security_information_and_event_management


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

Whitepapers

Solutions
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

Servicecatalog
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

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

AWS Config

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