The Agile in DevOps!
-
Upload
michael-dunham -
Category
Technology
-
view
403 -
download
0
Transcript of The Agile in DevOps!
The Agile in DevOps!
Successful Outsourcing
What’s it All About – DevOps?
• DevOps implementations are increasing dramatically– But there are many differences between the practices
and goals among users.• What should DevOps accomplish? Who is it for?– Is it just for enterprise? Enterprise with agile
development practices?– Should companies with service applications (SaaS and
other network-based apps) be using DevOps? – Is it only for apps with continuous support and updates or
should every app pass through DevOps systems?
From Agile, Lean & More
• DevOps came from input from many sources in 2009– IT Operations was primarily waterfall-based– Dev was rapidly moving to agile-based practices– Inputs from agile, Lean, Theory of Constraints,
ITSM and operations management movements• Resolved with primary inputs from agile &
many new practices & tools
Comparing Agile & DevOps
• Agile Values – the Agile Manifesto
• Agile Principles – The Agile Principles
• Agile Methods – process implementations such as Scum, XP & others
• DevOps Values – expressed with Agile Manifesto with focus on service & value delivered to customer/end-user
• DevOps Principles – broadly follow Agile with the inclusion of systems & operations required to deliver software functionality continuously to users instead of stopping at code check-in.
• DevOps Methods – Extended implementations of agile methods such as Scrum with Operations, Kanban with Operations, etc. Entire delivery value chain integrated into one agile system.
Comparing Agile & DevOps
• Agile Practices – tactical techniques such as standups, backlogs, planning poker, and other artifacts
• Agile Tools – specific tools or apps to facilitate process such as JIRA, Bugzilla, KanBoard, etc.
• DevOps Practices – agile techniques plus specifics such as continuous integration & deployment, toolchains, metrics, monitoring, virtualization, etc. Techniques to accelerate change and lower risk.
• DevOps Tools – Many in use. Tend to overshadow agile values & principles. Provides for integration & automation from dev to delivery to users. Puppet, chef, TeamCity, OpenStack, AWS – among the tools used widely
DevOps & Tool Hype• DevOps is not just the
tools you use, anymore than agile is just an implementation of scrum– Entire value chain of
delivery must buy into values & principles
– All stakeholders must be part of agile collaboration throughout app lifecycle
• In practice, “done” is moved to delivery to the end user. – Operations practices & tools are
moved to as early in the development cycle as possible
– Silos are flattened, the value of incremental release is allowed to flow to end-users without barriers
The Agile Release Train (ART)• The integration of agile development with IT operations is sometimes called the Agile
Release Train– Silos of Dev, QA, Operations are flattened– QA, integration, configuration, release, and all activities related to delivery of software
functionality are included in sprint planning and app backlog– The entire team participates in agile practices and rituals, taking responsibility for their tasks,
being aware of goals and outcomes.
• Is there agile in DevOps?− Yes. There has to be, or it doesn’t
provide value.
The Deployment Pipeline
Nuts & Bolts – Deployment Pipeline
• The primary characteristic of DevOps – continuous delivery system to bring new features & software updates to the end user– Includes all the people, principles, processes and
tools required in a flexible, repeatable, automated system
– Scale depends on the size of the organization and the complexity of the software stacks involved
Deployment Pipeline• Production-equivalent staging environment
– Development staging as close as possible to production configuration– Include all aspects necessary – version control, continuous
integration, test frameworks, configuration management, etc. in the build system
• Flat, integrated development and production test environments– Insure testing environments in dev and for production are as closely
matched as possible– Entire DevOps team needs to participate in prorogating configuration
and specifications forward and backward across all environments in pipeline
Deployment Pipeline• Deploy to staging every iteration with deployment to
production frequently– Deployment to staging improves confidence that releases will
pass through to production successfully– It may not be possible to release every iteration to production.
• Delays may be necessary to assure full feature sets are released in context for users to make use of or to allow evaluations of security and regulatory issues or market impacts
• End to end version control– Manage all the artifacts, metadata, supporting configuration
and test data
Deployment Pipeline• Automated builds for new environments
– Use virtualization, tools and scripts to automate the implementation of new environments and lower the risks of manual implementations. Quick and consistent implementations are key.
• Automated deployment to production– Avoid the risks and inconsistencies of manual processes and
passed responsibilities between silos as much as possible. – Getting all stakeholders on board and to loosen their grip on
processes to allow them to be automated is not light work – but it is necessary to reach the goal
– Consistency, don’t lose momentum in the pipeline
Outsourced Teams in the Pipeline
• Can it work with an outsourced team?– Everyone on the same page, committed and involved in
an agile deployment pipeline– Staging, working environments, testing, automation –
the entire pipeline as flat & consistent as possible. Every step away from the ideal introduces risk and unknowns.
– With continuous delivery to end-users, not a discrete project
• Assumed – Dedicated development team is required
What Does this Tell Us?
• Either the outsourcing vendor will need to replicate the environment locally or the team will need to work remotely in the host DevOps environment– For agile teams, it is more likely they will work remotely– Remote team needs the infrastructure and security to meet
requirements of host environment to work efficiently• Real-time collaboration & communication are critical
– With more people & processes in pipeline, more collaboration is necessary
– A 12 hour delay or a circular cycle of questions is not acceptable
What Does this Tell Us?
• Nearshore or geographically close vendors are going to work best– Language, cultural issues cannot be
allowed to become barriers• Vendors need to be fully engaged
in getting their teams up to speed and involved in the team as a whole– Will require face-to-face meetings,
team building as it does for any new agile team
Can It Work?• Yes!
– We have participated in DevOps teams and been a strong member of the team throughout
– Yes, there are lots of moving parts, but this is true in all DevOps teams (outsourced or not) regardless of locations or how the team is integrated into the organization
• Is it worth it? – In most cases, certainly– Depends on the value of continuous release within your organization. Large shift if
you are not now DevOps implemented. – On the other hand, how many times have you taken on risk from large changes to
new software versions (instead of incremental changes) or untested approaches?
Scio is a provider of nearshore software development services to clients in North America. We have extensive experience with dedicated teams in DevOps situations, working remotely. If you have a question or requirement, contact us for more information.