supporting your devops journey - ultima business solutions · implementing devops enablers and...
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