Characteristics of a cloud native tool

As stated above, cloud native tools are hosted and managed by the tool vendor and run in a vendor provided environment. The tool vendor is responsible for 

  • Tool availability monitoring
  • Upgrades and updates
  • Backups
  • Incident management
  • System security


Typical cloud native tool characteristics include:

  • Service license pricing includes the above mentioned management tasks
  • Cloud native tools are typically (but not always) multi tenant environments, with a single tool instance serving multiple clients 
  • The vendor is in full control over the upgrade and update plans and schedules
  • The vendor has full control over the system security
  • The integration options are often more limited than with the self-hosted alternative 
  • The Service Level Agreements (e.g. for guaranteed availability) are vendor specific
  • Data residency options are more limited than with hosted alternatives 

Single vendor integrated toolchains

A single vendor integrated cloud native toolchain includes multiple solution components from a single vendor. A vendor integrated solution may include tools for e.g.

  • Project management
  • Document management
  • Access management
  • Version control
  • CI/CD automation
  • Binary storage
  • Static code analysis
  • Open source component security testing


The single vendor cloud native systems can be divided in two categories 

  1. Public cloud service integrated tool chains: Microsoft Azure DevOps, AWS Code pipeline, GCP Cloud Build
  2. Public cloud service service independent tool chains:  GitLab cloud, GitHub cloud, Atlassian cloud


Public cloud service integrated tools, although being able to deploy software to environments outside the said cloud service, are typically optimised to work within a specific public cloud service domain and possibly with a specific development technology stack. For example, deploying the code outside of the primary cloud service environment may cause additional costs.

Public cloud service independent tool chains are typically more neutral from the environment and technology perspective and aim to enable deployments to any environment with minimum environment specific dependencies.

Best of breed approach by using cloud native tools

It is possible to build a “best of breed” toolchain by using selected cloud native tooling components. A typical implementation of a best of breed cloud native toolchain takes one part of the tool stack from one cloud service and combines it with functionality available from other cloud native tooling providers, for example

  • Jira and Confluence and Bitbucket from the Atlassian cloud, combined with CI/CD functionality running on public cloud services - e.g. AWS CodePipeline, Azure Pipelines, or GCP Cloud Build
  • Jira and Confluence from the Atlassian cloud combined with GitHub or GitLab version control and CI/CD systems


The end result is a tooling network combining resources from multiple cloud native tool service providers.

Hybrid solutions combining cloud native and hosted tools

A hybrid solution in this case means a system that runs both cloud native and hosted tools as part of the same tool chain. Hybrid hosted and cloud native solutions are often a good solution to meet security and compliance requirements, as well as hybrid runtime environment related challenges. Eficode has the required expertise to build solutions that require system wide knowledge on both cloud native and on-premise solutions. 

In a typical hybrid case project management, document management, and version control tools run in a hosted environment but when targeting AWS as the runtime environment the code goes through the cloud native AWS CodePipeline rather than a locally hosted CI/CD pipeline. In this scenario, the code gets mirrored to the AWS CodeCommit version control system. Changes to the source code trigger first CodeBuild and then CloudDeploy that enables easy deployment to the AWS infrastructure. Eficode has plenty of experience in building such solutions, with many of them running in production today. 

Another practical example relates to GitHub. While running Github Cloud there may be a need, for security and compliance reasons, to deploy to and run tests with an on-premise system by using GitHub Actions CI/CD on a locally installed jump machine.

In these cases the user management and authentication services must be integrated to both cloud native and local tooling with AD, Azure AD or something alike. 

How to choose between hosted and cloud native solutions? 

Choosing between various hosted or cloud native tooling alternatives, or designing the most meaningful combination of locally hosted functionality and cloud native parts will require case specific analysis. The requirements that guide the decision making will also vary over time. 

Cloud native tools have multiple benefits:

  • Fast tool setup
  • No maintenance burden
  • Built in functionality for backups and other supporting functionality
  • Fast service scaling
  • Global availability
  • Faster access to new features

Additionally

  • Single vendor integrated systems provide out-of-the-box tool-to-tool integrations 
  • Public cloud service integrated systems offer easy interworking with the rest of the functionality available via the public cloud service accounts 
  • Best of breed solutions allow cherry-picking the best solutions available for each functional part of the tooling pipeline

 Hosted tools provide a good option when you require 

  • Regulatory compliance with specific requirements for the application runtimes and network security
  • Functionality that is incomplete or missing from cloud native tool chains (e.g. features or customisation) 
  • Absolute control over the system configurations and data residency in a specific region or a country
  • Full control over the update and upgrade timelines

Hybrid solutions with both hosted and cloud native parts allow you to combine benefits from both sides and take into account project specific requirements. Projects with higher compliance and security requirements may rely on partially hosted functionality whereas others rely completely on cloud native tooling.   

Other factors to take into consideration include:

  • The starting point - which tools are already in use today? Do they serve the purpose?
  • Which tools to centralize and where to provide the teams with more freedom of choice?
  • Primary development technologies
  • Both current and future runtime environment choices

Eficode is ready to assist in making the correct, future-proof choices that take into account the current systems and the desired, longer term aspirations. 

Why managed services for cloud native tools?

While cloud native tooling solutions solve many upkeep and maintenance related problems, they do not remove the need for all tasks that are typically part of the overall tool chain management, including 

  • User management
  • Configuration management
  • Tool permission templates
  • Data migrations
  • Integrations with other tools
  • Providing guidance on correct tool usage
  • Defining and enforcing the use of best practices

Additionally, in practice the tools often require environment and workflow specific customisations to be performed by a tooling expert. For example, CI/CD agents and tools must be fitted to serve various technology and network configurations.  Authentication solutions must be designed and implemented with taking into account customer and environment specific integration requirements and policies.

Cloud service integrated tooling solutions may become expensive without proper cost optimisations. Eficode knows how to create cost effective public cloud service based build pipelines and on the other hand, when to utilize alternative solutions. As an example, these solutions are necessary when building with MacOS.

One should keep in mind that managing a cloud based toolchain is not as easy as it may appear to be. System updates can take place unexpectedly and it is great to have someone that guides you through the latest changes. 

Why Eficode ROOT?

Eficode ROOT team has plenty of experience in tool chain specification, setup, integration, maintenance, problem prevention, incident management, and on-demand consulting. 

With more than 40 tools in our service portfolio, we have worked with countless environment and tooling combinations, not only as tool experts but also as tool users. Our setup and maintenance processes use a high level of automation to guarantee overall system stability and reliability - and when necessary quick reaction times.  

We offer our customers the best possible DevOps tooling experience and let the customer side personnel to focus on more value adding work such as process automation or actual end product feature development . 

Via on-demand consulting service, we work in close collaboration with our customers to improve the ways of working. We assist with problem solving and provide battle-tested solutions.  Our service scales to serve systems both small and large, scaling from tens to thousands of users.

Eficode service benefits include:

  • Eficode manages the tool chain and the customer personnel can focus on more value adding work
  • The cloud native tool system is cost optimised by Eficode
  • The system is pre-integrated to support tool-to-tool information sharing, also with tools outside the Eficode managed service scope
  • The service covers both cloud native and hybrid systems with both cloud native and hosted tools or tool components
  • The system is easily expandable with new tools and tool extensions, based on the customer requirements
  • The Eficode ROOT support teams helps with the system usage and development, especially in highly demanding admin tasks
  • Eficode’s professional services, whether leadership-focused, guiding cultural transformation, or hands-on implementation of automated software delivery pipelines, is readily available 
  • Eficode offers high quality training courses and programs as part of their services covering all of the aspects of DevOps and the usage of tools