supporting your devops journey - ultima business solutions · implementing devops enablers and...

1
Who Are We? Head Office Gainsborough House Manor Park, Basingstoke Road Reading, Berkshire, RG2 0NA 0333 015 8000 [email protected] www.ultima.com © Ultima Business Solutions 2017 Ultima’s Cloud Development Services have been designed to help development and operations teams understand how to successfully implement DevOps principles, ushering in a culture of open communication and collaboration. We can help you along the journey, from defining visible processes and building a DevOps pipeline, to enabling rapid delivery and automated testing. Ultima offers a wide range of strategic and tactical offerings to help you automate and modernise your development practices, utilising industry standard software including Microsoft toolsets, Jira, Jenkins, Bamboo and Git. Whether you’re starting a born-in-the-cloud project, or modernising an existing solution, we can help drive business value. Being outcome driven, these engagements are not just about implementing and configuring products. Instead we help you leverage tools to influence process, automation, culture and governance. Through the application of DevOps processes, we aim to bring your development and operations teams together, to work collaboratively on important business challenges. Supporting Your DevOps Journey At Ultima, we recognise how hard it is to remain at the forefront of technological developments. Keeping up with ever changing business requirements and the demands on IT services, the dynamic nature of application development and the rapid time to market required by new projects and services can be a constant struggle. The disruptive nature of cloud computing has accelerated the pace of change to previously unseen levels, often bringing in new competitors to existing markets. This puts pressure on development teams to meet the increased demand. Through our in-house Development Services practice, we address these challenges directly. Our industry experts can help you realise your development ambitions, ensuring you are well placed to provide a consistently reliable and enjoyable user experience for your customers. Every day, we help development and operations teams become more cohesive by promoting agile methodologies, implementing DevOps enablers and ensuring that cloud efficiencies are realised. Automate Your Pipeline We can help you create repeatable end-to- end deployment processes from code commit, phased deployment and testing into production Reduce Management Overheads By leveraging VSTS and SaaS, this can free your team to focus on business challenges - rather than patching and maintenance Collaborate Better By adopting a single tool for workflow management, barriers between development and operations teams are removed Increase Production Stability Automation using Azure and AWS provides representative test and dev environments, leading to improved stability and confidence Take Back Control Through the use of source code management, we help you take control of feature branches and merges, while protecting intellectual property Improve Overall Agility Harness the ability to prioritise goals and change priorities according to feedback, instead of having to plan months ahead As businesses become more dynamic and competitive, there is a need to evolve quickly or be left behind. While business leaders often understand the need to be agile and adapt to market forces and changes in focus, IT departments can often struggle under the weight of technical debt, regulatory compliance and the on-going support and maintenance of legacy environments. All of this exacerbates the challenge of continually delivering new services. Since IT operations are ultimately responsible for keeping the lights on, they often view change as a risk to stability. And while history has generally proven them right, their cautious approach can make teams appear obstructive, when in fact their aim is to protect operational integrity. Development teams on the other hand are frequently tasked with creating new and innovative solutions to drive the business forward. In some cases, they want to release new products or functionality as soon as possible, sometimes with inadequate testing or consideration of the resulting impact on the operations team - or the business as a whole. This approach can make them appear cavalier in their actions, though they are just trying to provide what is needed in the requested time frame. Herein lies the problem. Two distinctly separate groups are both trying to serve the business needs in their own way, but the disconnection causes issues. Getting these groups to work cohesively - from design through to release - is a critical challenge. This is where development services comes in: STREAMLINING YOUR SOFTWARE DELIVERY PRODUCTION LINE Staying Competitive As the rate of change accelerates, organisations find themselves less able to predict where their markets are heading. Waiting a year for a system update often means falling behind and losing competitive advantage. Smaller, more dynamic companies are able to go to market faster, utilising the power of elastic cloud computing. Production Challenges The urgency to remain competitive can result in quality being sacrificed, causing a domino effect on resolver groups and the wider business. It exacerbates issues such as the provision of suitable hardware for new applications, and stretches support teams who are fixing issues and firefighting on top of their already demanding workloads. Departmental Silos Maintaining a siloed mentality can be detrimental to business growth. It allows localised and disconnected decision making, and promotes an unhealthy culture - a lack of ownership or collective goals results in a blame culture. Above all it prevents organisations from adopting the kind of changes necessary for promoting growth and innovation. Reliance on Individuals Organisations begin to depend on highly skilled infrastructure, middleware and database specialists. These key individuals know the systems intimately and have created bespoke solutions to fix issues encountered during the deployment of complex applications. This works until there is an outage and no one with the required knowledge is available to fix the problem. Cloud Development Advisory Service + TFS to VSTS Migration Technology Deployments Cloud Development Agile Workshop Cloud Development Pipeline Proof of Concept (PoC) + The aim of this engagement is to assist organisations in implementing a DevOps strategy within cloud and hybrid IT infrastructure models. It delivers a strategic review of your existing development lifecycle, with a view to moving towards an end-to-end DevOps model. The process helps select a suitable development methodology, alongside version control, build tools, testing and release products. The service also delivers a plan for adoption, so that you can begin increasing the cadence of software delivery. Visual Studio Team Services (VSTS) is a Software as a Service (SaaS) platform equivalent to Team Foundation Server (TFS). Built on Azure, it delivers a comprehensive agile-based development environment in the cloud; increasing productivity through agile tools, package management, version control, continuous integration, testing, reporting and release management. Ultima can help you migrate to VSTS, driving DevOps practices and easing the deployment of apps to the cloud. + + + Once you have defined your new processes and decided on your chosen methodology, you will most likely be looking at software solutions to streamline the process and ensure that all steps are completed. Our Cloud Development practice can assist in the selection, design and implementation of a range of popular open source and commercial tools, covering collaboration, source code management, build, unit testing, continuous integration (CI), functional testing and continuous deployment (CD). Linear development methodologies such as Waterfall are often sequential and non-iterative. Modern iterative processes such as Agile allow the scope to be flexible, with priorities set on a per-sprint basis, based on current needs. Through this jumpstart engagement, we can work with your team to determine which methodology is the best fit for your products and workflows. This workshop takes you through the first steps to adoption, alongside appropriate lifecycle management tools and culture changes. By implementing your DevOps pipeline design as a PoC, we can prove that the end-to-end process works, and ensure that it satisfies the functional, non-functional and cost requirements. From software version control, build and test, to release and deployment, issues can be identified and resolved long before the production pipeline is established. This engagement delivers a demonstration of the concepts and functionality, alongside a presentation of our findings to aid you through to transition. 1 2 What are Development Services? Development services help make teams more productive, while improving business agility and responsiveness through the adoption of DevOps principles. Ultima can help your development and operations team improve overall stability, increase release cadence and provide process transparency, by introducing new processes and tools, as well as a culture change. Secure Code Management Source code is the most important aspect of any project or application. Apart from being your intellectual property (IP), it can help malicious attackers identify bugs and exploits which can compromise your environment. Where you do not intend to open source your software, we recommend using private repositories and maintaining role-based access control. Source code management solutions make it easy to track changes and compare versions of code, as well as create branches; allowing you to work on features or versions of your products without risking the core code tree. Keeping tighter control of your IP can help with compliance and governance challenges. Work Management Solutions that help manage the software lifecycle workflow allow teams to become more agile and reactive to business requirements, whilst providing feedback on progress and resourcing. Using the appropriate tools, bugs, user stories and feature requests can be prioritised according to business needs, rather than carried out on a first-come first-served - or easiest to hardest basis - as is often the case in unmanaged environments. The priorities can be changed as required, but taking the decision away from the development team is important to allow them to focus solely on the task at hand. ADLM and SDLC Application Development Lifecycle Management (ADLM) and Software Development Life Cycle (SDLC) provide greater confidence that a release is ready for deployment, as they allow control of the development process from inception through to delivery. Once developers have written code, the ADLM solution controls and records testing, while also providing quality control gates between phases. This ensures that developers, operations, management and users all approve code before it enters production. These solutions enable traceability through recording code commits, test results, feedback and governance actions, and any associated comments. Build and Deploy Automation The build platform can take source code and automate processes from various trigger events, reducing or removing human error, by making steps repeatable and more reliable. By integrating with Software Configuration Management (SCM), code can automatically compile and build upon a new commit at any level or branch of the system. This could be as simple as a developer committing a single feature to a private branch on a private SCM server, or a new integration commit with many changes from different teams. Once a trigger is activated, scripts and orchestration can be used to build environments or deploy code and software to any system in the environment. Monitoring The concept of monitoring servers to ensure they remain stable and performant is something that we have grown accustomed to. The same can be said for applications; ensuring that the user experience is delivered as expected. Developers need the ability to quickly identify and diagnose performance issues and other anomalies, as well as understand how consumers are using the application, so that they can take mitigating action. Application telemetry tools provide teams with the information they need to know about their software, to ensure they remain efficient - irrespective of where they are installed (on premise, or in the cloud). Testing Automated testing can drastically improve the cadence of releases, as well as the quality of software. While it is at the heart of the “release early, release often” mantra, it can represent significant work, since unit tests must be created for all new and existing code. With a proper testing regime, functional items can be tested each time a new build is created, to ensure no bugs have been introduced. Furthermore, operations can ensure that software will meet performance requirements by scaling the platform or trying different configurations. Thanks to automation, results can provide confidence in the deployment - or trigger an abandonment of the build if failures are found. 3 Plan Release

Upload: vudiep

Post on 07-May-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Who Are We?

Head Office Gainsborough House Manor Park, Basingstoke Road Reading, Berkshire, RG2 0NA

0333 015 8000 [email protected]

www.ultima.com © Ultima Business Solutions 2017

Ultima’s Cloud Development Services have been designed to help development and operations teams understand how to successfully implement DevOps principles, ushering in a culture of

open communication and collaboration. We can help you along the journey, from defining visible processes and building a DevOps pipeline, to enabling rapid delivery and automated testing.

Ultima offers a wide range of strategic and tactical offerings to help you automate and modernise your development practices, utilising industry standard software including Microsoft toolsets, Jira, Jenkins, Bamboo and Git. Whether you’re starting a born-in-the-cloud project, or modernising an

existing solution, we can help drive business value.

Being outcome driven, these engagements are not just about implementing and configuring products. Instead we help you leverage tools to influence process, automation, culture and

governance. Through the application of DevOps processes, we aim to bring your development and operations teams together, to work collaboratively on important business challenges.

Supporting Your DevOps Journey

At Ultima, we recognise how hard it is to remain at the forefront of technological developments. Keeping up with ever changing business requirements and the demands on IT services, the dynamic

nature of application development and the rapid time to market required by new projects and services can be a constant struggle. The disruptive nature of cloud computing has accelerated the pace of change to previously unseen levels, often bringing in new competitors to existing markets.

This puts pressure on development teams to meet the increased demand.

Through our in-house Development Services practice, we address these challenges directly. Our industry experts can help you realise your development ambitions, ensuring you are well placed to

provide a consistently reliable and enjoyable user experience for your customers. Every day, we help development and operations teams become more cohesive by promoting agile methodologies,

implementing DevOps enablers and ensuring that cloud efficiencies are realised.

Automate Your Pipeline We can help you create repeatable end-to-end deployment processes from code commit, phased deployment and testing into production

Reduce Management OverheadsBy leveraging VSTS and SaaS, this can free your team to focus on business challenges - rather than patching and maintenance

Collaborate Better By adopting a single tool for workflow management, barriers between development and operations teams are removed

Increase Production Stability Automation using Azure and AWS provides representative test and dev environments, leading to improved stability and confidence

Take Back ControlThrough the use of source code management, we help you take control of feature branches and merges, while protecting intellectual property

Improve Overall Agility Harness the ability to prioritise goals and change priorities according to feedback, instead of having to plan months ahead

As businesses become more dynamic and competitive, there is a need to evolve quickly or be left behind. While business leaders often understand the need to be agile and adapt to market forces and changes in focus, IT departments can often struggle under the weight

of technical debt, regulatory compliance and the on-going support and maintenance of legacy environments. All of this exacerbates the challenge of continually delivering new services. Since IT operations are ultimately responsible for keeping the lights on, they often view change as a risk to stability. And while history has generally proven them right, their cautious approach can make teams appear

obstructive, when in fact their aim is to protect operational integrity.

Development teams on the other hand are frequently tasked with creating new and innovative solutions to drive the business forward. In some cases, they want to release new products or functionality as soon as possible, sometimes with inadequate testing or consideration of the resulting impact on the operations team - or the business as a whole. This approach can make them appear

cavalier in their actions, though they are just trying to provide what is needed in the requested time frame. Herein lies the problem. Two distinctly separate groups are both trying to serve the business needs in their own way, but the disconnection causes issues. Getting

these groups to work cohesively - from design through to release - is a critical challenge. This is where development services comes in:

STREAMLINING YOUR SOFTWARE DELIVERY PRODUCTION LINE

Staying Competitive

As the rate of change accelerates, organisations find themselves less able to predict where their markets are

heading. Waiting a year for a system update often means falling behind and losing competitive advantage. Smaller,

more dynamic companies are able to go to market faster, utilising the power of elastic cloud computing.

Production Challenges

The urgency to remain competitive can result in quality being sacrificed, causing a domino effect on resolver groups

and the wider business. It exacerbates issues such as the provision of suitable hardware for new applications, and

stretches support teams who are fixing issues and firefighting on top of their already demanding workloads.

Departmental Silos

Maintaining a siloed mentality can be detrimental to business growth. It allows localised and disconnected decision making, and promotes an unhealthy culture - a lack of ownership or

collective goals results in a blame culture. Above all it prevents organisations from adopting the kind of changes necessary for

promoting growth and innovation.

Reliance on Individuals

Organisations begin to depend on highly skilled infrastructure, middleware and database specialists. These key individuals know

the systems intimately and have created bespoke solutions to fix issues encountered during the deployment of complex

applications. This works until there is an outage and no one with the required knowledge is available to fix the problem.

Cloud Development Advisory Service

+

TFS to VSTS Migration

Technology Deployments

Cloud Development Agile WorkshopCloud Development Pipeline Proof of Concept (PoC)

+

The aim of this engagement is to assist organisations in implementing a DevOps strategy within cloud and hybrid IT infrastructure models. It delivers a strategic review of your existing development lifecycle, with a view to moving towards an end-to-end DevOps model. The process helps select a suitable development methodology, alongside version control, build tools, testing and release products. The service also delivers a plan for adoption, so that you can begin increasing the cadence of software delivery.

Visual Studio Team Services (VSTS) is a Software as a Service (SaaS) platform equivalent to Team Foundation Server (TFS). Built on Azure, it delivers a comprehensive agile-based development environment in the cloud; increasing productivity through agile tools, package management, version control, continuous integration, testing, reporting and release management. Ultima can help you migrate to VSTS, driving DevOps practices and easing the deployment of apps to the cloud.

+

+ +

Once you have defined your new processes and decided on your chosen methodology, you will most likely be looking at software solutions to streamline the process and ensure that all steps are completed. Our Cloud Development practice can assist in the selection, design and implementation of a range of popular open source and commercial tools, covering collaboration, source code management, build, unit testing, continuous integration (CI), functional testing and continuous deployment (CD).

Linear development methodologies such as Waterfall are often sequential and non-iterative. Modern iterative processes such as Agile allow the scope to be flexible, with priorities set on a per-sprint basis, based on current needs. Through this jumpstart engagement, we can work with your team to determine which methodology is the best fit for your products and workflows. This workshop takes you through the first steps to adoption, alongside appropriate lifecycle management tools and culture changes.

By implementing your DevOps pipeline design as a PoC, we can prove that the end-to-end process works, and ensure that it satisfies the functional, non-functional and cost requirements. From software version control, build and test, to release and deployment, issues can be identified and resolved long before the production pipeline is established. This engagement delivers a demonstration of the concepts and functionality, alongside a presentation of our findings to aid you through to transition.

1

2

What are Development Services?

Development services help make teams more productive, while improving business agility and responsiveness through the adoption of DevOps principles. Ultima can help your development

and operations team improve overall stability, increase release cadence and provide process transparency, by introducing new processes and tools, as well as a culture change.

Secure Code Management

Source code is the most important aspect of any project or application. Apart from being your intellectual property (IP), it can help malicious attackers identify bugs and exploits which can compromise your environment. Where you do not intend to open source your software, we recommend using private

repositories and maintaining role-based access control. Source code management solutions make it easy to track changes and compare versions of code, as well as create branches; allowing you to work on features or versions of your products without

risking the core code tree. Keeping tighter control of your IP can help with compliance and governance challenges.

Work Management

Solutions that help manage the software lifecycle workflow allow teams to become more agile and reactive to business requirements, whilst providing feedback on

progress and resourcing. Using the appropriate tools, bugs, user stories and feature requests can be prioritised according

to business needs, rather than carried out on a first-come first-served - or easiest to hardest basis - as is often the case in unmanaged environments. The priorities can be changed as required, but taking the decision away from

the development team is important to allow them to focus solely on the task at hand.

ADLM and SDLC

Application Development Lifecycle Management (ADLM) and Software Development Life Cycle (SDLC) provide greater

confidence that a release is ready for deployment, as they allow control of the development process from inception through to

delivery. Once developers have written code, the ADLM solution controls and records testing, while also providing quality

control gates between phases. This ensures that developers, operations, management and users all approve code before it enters production. These solutions enable traceability through recording code commits, test results, feedback and governance

actions, and any associated comments.

Build and Deploy Automation

The build platform can take source code and automate processes from various trigger events, reducing or removing

human error, by making steps repeatable and more reliable. By integrating with Software Configuration Management (SCM),

code can automatically compile and build upon a new commit at any level or branch of the system. This could be as simple as a developer committing a single feature to a private branch on a private SCM server, or a new integration commit with many

changes from different teams. Once a trigger is activated, scripts and orchestration can be used to build environments or deploy

code and software to any system in the environment.

Monitoring

The concept of monitoring servers to ensure they remain stable and performant is something that we have grown accustomed to. The same can be said for applications;

ensuring that the user experience is delivered as expected. Developers need the ability to quickly identify and diagnose

performance issues and other anomalies, as well as understand how consumers are using the application, so that they can take mitigating action. Application telemetry tools provide teams with the information they need to know about their software, to ensure they remain efficient - irrespective of

where they are installed (on premise, or in the cloud).

Testing

Automated testing can drastically improve the cadence of releases, as well as the quality of software. While it is at the heart

of the “release early, release often” mantra, it can represent significant work, since unit tests must be created for all new and existing code. With a proper testing regime, functional items can

be tested each time a new build is created, to ensure no bugs have been introduced. Furthermore, operations can ensure that

software will meet performance requirements by scaling the platform or trying different configurations. Thanks to automation,

results can provide confidence in the deployment - or trigger an abandonment of the build if failures are found.

3

Plan

Relea

se