As enterprises and organizations survey their applications
and assets to be moved to the cloud, one of the often-overlooked processes
involve the entrenched and almost boutique build systems that they have
invested in over the years. The public clouds advocate the use of cloud native
DevOps pipeline and automations that work well for new repositories and small
projects but when it comes to billion dollars plus revenue generating source
code assets, the transition of build and deployment to cloud become surprisingly
challenging.
New code projects and businesses can start out with a code
repository in GitHub or GitHub Enterprise with files conforming to the 100MB
limit and the repository sizes
conforming to the 5GB limit. When
we start clean, on the Cloud based DevOps, managing the inventory to retain
only text in the source and move the binaries to an object storage is easy.
When the enterprises have accrued massive repositories over time, even a copy
operation becomes difficult to automate. What used to be robocopy on windows
involving large payloads, must now involve a transfer over S3.
One of the first challenges in the movement of build and
capacity planning infrastructure to the cloud is to prepare the migration.
External dependencies and redundancies can cause these repositories to become
very large, not to mention branches and versions. Using a package manager or
their equivalents to separate out the dependencies into their packages can be
helpful to their reusability. Bundler, Node’s package manager and Maven are
testament to this effect. Object storage or Artifactory and their equivalents
can store binary data and executables. Backup and restore can easily be added
from Cloud Services when they are not configurable via the respective cloud
services.
Another challenge is the proper mapping of infrastructure to
handle such large processes involved in Continuous Integration and Continuous
Deployment. GitHub Enterprise can provide up to 32 cores and 50000
minutes/month for public repositories of sizes up to 50GB. The cloud, on the
other hand, is limitless compute, storage and networking, all with the
convenience of pay-as-you-go billing. If there is effective transformation of
DevOps automations, both the infrastructure required and the automations they
support become easier to host in the cloud. As with the first challenge, the
ability to take stock of the inventory for infrastructure resources and
automation logic becomes daunting. Consequently, some form of organization and
nomenclature to divide up the inventory into sizeable chunks can help with the
transformation and even parallelization
A third challenge involved is environmental provisioning and
manual testing. Subscriptions, resource groups, regions and configurations
proliferate in the cloud when such DevOps are transformed and migrated. These
infrastructure and state become veritable assets to guard just the same way as
the source that are delivered with the DevOps. From importing and exporting
these infrastructure-as-a-code templates as well as their states and forming
blueprints that can include policies and reconcile the state become a
necessity. A proper organization and naming convention are needed for these as
well.
Other miscellaneous challenges include but are not limited
to forming best practices and centers of excellence, creating test data,
providing manual deployments and overrides, ensuring suppliers, determining
governance, integrating an architecture for tools say in the form of runbooks,
manual releases, determination of telemetry, determining teams and managing
accesses, supporting regulatory compliance, providing service virtualization,
and providing education for special
skillsets. In addition, managing size and inconsistencies, maintaining the
sanctity as a production grade system and providing an escalation path for
feedback and garnering collaboration across a landscape of organizations and
teams must be dealt with.
Finally, people, process and technology must come together
in a planned and streamlined manner to make this happen. These provide a
glimpse of the roadmap towards the migration of build and deployments to the
cloud.
No comments:
Post a Comment