Skip to main content

Best practices for CI/CD migration: The GitHub Enterprise example

Continuous Integration/Continuous Delivery (CI/CD) software – meaning solutions that teams use to build, test and deploy applications – has come a long way over the past decade. Whereas organizations once cobbled together CI/CD pipelines using disparate open source tools, they now have a plethora of end-to-end, vendor-supported enterprise CI/CD platforms that they can use instead. Because these solutions offer everything teams need to deliver software, they are simpler to deploy and manage.

Yet, while there are clear benefits to adopting an enterprise CI/CD platform, migrating to one can be difficult. It poses a number of challenges, such as the risk of CI/CD pipeline downtime and security and compliance challenges.

That’s why businesses migrating to newer CI/CD solutions should approach the process with a detailed, step-by-step plan. Here’s a look at the challenges to navigate, along with tips on how to make CI/CD migration as smooth as possible.

To ground the discussion, I’ll focus on migrating to GitHub Enterprise, a CI/CD platform from GitHub, the software development platform now owned by Microsoft. GitHub Enterprise is the option that I’m seeing more and more businesses choose in my work helping companies to modernize their IT and software delivery practices.

Challenges to GitHub Enterprise migration

As a comprehensive CI/CD platform that is available as a fully hosted solution, GitHub Enterprise is relatively easy to use once you’ve migrated to it. The challenge, though, is getting your code into the platform, along with making the process changes necessary to begin using the solution in place of a legacy CI/CD suite.

In particular, expect to face challenges that include:

  • Application delivery delays: A drawn-out, time-consuming migration process translates to downtime for CI/CD operations – which means that your developers won’t be able to push out application updates. This can ultimately harm the business because users aren’t receiving feature enhancements while your CI/CD pipelines are in transition.
  • Performance risks: Failure to choose the right GitHub Enterprise deployment strategy, and to configure the solution in an optimal way, could slow down CI/CD performance and reduce developer productivity due to issues like insufficient infrastructure resources for building and testing applications.
  • Training requirements: Skilled software developers can typically learn to use a new CI/CD platform easily enough, but there is still an upskilling requirement. It’s important not to overlook the need to provide developers with time to learn GitHub Enterprise (or whichever solution you are migrating to).
  • Security and compliance: To mitigate risks like the injection of malicious code into your applications, it’s critical to implement access controls during the migration process that prevent unauthorized users from accessing the new CI/CD platform.
Best practices for a smooth GitHub Enterprise migration

The good news is that with the right approach, migrating to GitHub Enterprise or a similar CI/CD platform doesn’t have to be risk-prone. The following best practices can help to streamline the process.

1. Choose the right hosting option

Like many CI/CD platforms, GitHub Enterprise is available in two basic forms: A fully managed, cloud-based option and a version that users can install and manage using their own infrastructure.

In general, the fully managed solution tends to be the better choice because it significantly reduces setup and maintenance effort on the part of users. However, the self-hosted option may be better for organizations that need greater control over their CI/CD environment. This tends to be especially true for businesses in verticals like finance and insurance, where security and compliance mandates may be easier to meet when the organization runs CI/CD software on its own infrastructure (and therefore has greater control over how sensitive data is managed and secured).

2. Configured granular access policies

Like most modern CI/CD suites, GitHub Enterprise provides access control features that businesses can use to determine who can do what within CI/CD tools. For example, you can give some developers read-only access to source code, while allowing others to modify it. GitHub Enterprise also supports environment-based access settings, meaning you can configure different levels of access for the same users across dev/test and production environments.

As a best practice, take advantage of these granular access control options by assigning different access rights to each team that uses your CI/CD platform. For example, you might have an admin team whose privileges extend to changing the configuration of GitHub Enterprise, while another team that merely uses the platform has a lesser level of access.

3. Use OpenID Connect to integrate with cloud environments

GitHub Enterprise offers an identity management option that leverages OpenID Connect (OIDC) to integrate with third-party cloud environments.

When you take advantage of this feature, you can automatically run workflows (like application builds) on public cloud infrastructure without having to store cloud access credentials as long-lived GitHub secrets, which presents a substantial security risk. In addition, this approach automatically creates a log of GitHub workflows and action executions, which you can use for audit and monitoring purposes. 

4. Leverage single sign-on

Another way to streamline the migration into GitHub Enterprise is to integrate the platform with whichever single sign-on (SSO) provider (like Microsoft Entra or Active Directory) your business already uses. Ideally, you’ll also enable multi-factor authentication (MFA) through your SSO solution to add another layer of security.

This approach eliminates the need to manage GitHub Enterprise access credentials separately from your existing accounts. It also reduces the burden placed on your IT team during the migration because instead of having to “reinvent the wheel,” they can simply use a sign-on solution that already exists.

5. Document common tasks

To ease the learning curve for developers as they migrate to GitHub Enterprise, document common tasks – such as how to migrate code from local repositories or another CI/CD platform into GitHub Enterprise.

This is another tactic that eliminates the need for your team to reinvent the wheel repeatedly; instead of forcing each engineer to figure out how to migrate on their own, everyone can follow a prescribed plan.

6. Publish workflow patterns

Going a step further, consider as well publishing detailed steps on how to use key features in GitHub Enterprise that are likely to be important for all of your teams. For example, you can detail how to create pull requests or build Docker images in the platform, or how to execute Infrastructure-as-Code (IaC) deployments.

Here again, this strategy reduces the learning curve and helps get your team up and running on the new platform as quickly as possible.

7. Automate common workflows using GitHub Actions

Going even further, you can create fully automated workflows for common tasks using GitHub Actions, a feature that lets you trigger automated operations across various parts of your CI/CD pipeline. For instance, you can automatically trigger an application build after code has been checked in, or automatically begin testing after the build is complete.

Highly complex workflows that may vary between projects or teams are not great candidates for this type of automation, but core routines can be fully automated, making it even easier for your team to begin using the new platform.

The post Best practices for CI/CD migration: The GitHub Enterprise example appeared first on SD Times.



from SD Times https://ift.tt/XO8sRMH

Comments

Popular posts from this blog

Difference between Web Designer and Web Developer Neeraj Mishra The Crazy Programmer

Have you ever wondered about the distinctions between web developers’ and web designers’ duties and obligations? You’re not alone! Many people have trouble distinguishing between these two. Although they collaborate to publish new websites on the internet, web developers and web designers play very different roles. To put these job possibilities into perspective, consider the construction of a house. To create a vision for the house, including the visual components, the space planning and layout, the materials, and the overall appearance and sense of the space, you need an architect. That said, to translate an idea into a building, you need construction professionals to take those architectural drawings and put them into practice. Image Source In a similar vein, web development and design work together to create websites. Let’s examine the major responsibilities and distinctions between web developers and web designers. Let’s get going, shall we? What Does a Web Designer Do?...

A guide to data integration tools

CData Software is a leader in data access and connectivity solutions. It specializes in the development of data drivers and data access technologies for real-time access to online or on-premise applications, databases and web APIs. The company is focused on bringing data connectivity capabilities natively into tools organizations already use. It also features ETL/ELT solutions, enterprise connectors, and data visualization. Matillion ’s data transformation software empowers customers to extract data from a wide number of sources, load it into their chosen cloud data warehouse (CDW) and transform that data from its siloed source state, into analytics-ready insights – prepared for advanced analytics, machine learning, and artificial intelligence use cases. Only Matillion is purpose-built for Snowflake, Amazon Redshift, Google BigQuery, and Microsoft Azure, enabling businesses to achieve new levels of simplicity, speed, scale, and savings. Trusted by companies of all sizes to meet...

2022: The year of hybrid work

Remote work was once considered a luxury to many, but in 2020, it became a necessity for a large portion of the workforce, as the scary and unknown COVID-19 virus sickened and even took the lives of so many people around the world.  Some workers were able to thrive in a remote setting, while others felt isolated and struggled to keep up a balance between their work and home lives. Last year saw the availability of life-saving vaccines, so companies were able to start having the conversation about what to do next. Should they keep everyone remote? Should they go back to working in the office full time? Or should they do something in between? Enter hybrid work, which offers a mix of the two. A Fall 2021 study conducted by Google revealed that over 75% of survey respondents expect hybrid work to become a standard practice within their organization within the next three years.  Thus, two years after the world abruptly shifted to widespread adoption of remote work, we are dec...