Skip links

Should you choose Open Source or AWS Services for AWS Well-Architected CI/CD capabilities?

The enormous spread of services available to AWS gives them the freedom to adopt open-source tools on AWS services, implement AWS services or choose a combination of the two.

To understand the advantages and disadvantages of each, this article evaluates the choices using Continuous Integration (CI) and Continuous Delivery as the objective of the (hypothetical) organization. And we do this from two perspectives: an SME and a large mature enterprise.

 

The reason we have selected CI-CD as the focus of our investigation is that this is the conduit that fastest delivers every new development you make to your customers. And any investment provides returns only when it is in the hands of your customer. Thus, speed is of the essence. And CI-CD’s ability to quickly and consistently deliver value by helping the organization identify risks, resolve them, and avoid manual errors in this manner supports development, testing, and deployment for a variety of actions, such as making updates to an application, changing multi-media assets or changing Machine Learning models.

In other words, it frees you from related manual processes, so you can focus on core business objectives, e.g. meeting customer needs, differentiating the organization, and bringing critical changes into production.

 

Key Considerations

The first step in our investigation is to assess needs in order to make informed decisions.

The very first question in the Operation Excellence (OE) Pillar is: how do you decide what you need?

Understanding the following factors can help you in your own decision-making.

Key considerations

Functional needs: features that deliver value

Non-functional needs: supporting features, which enable safe, and efficient delivery of functional requirements. For instance: security, reliability, performance, and cost-related factors.

These aspects are all interrelated: security is important to earn customer trust; reliability allows you to serve customers, performance focuses on timely and efficient delivery—not just speedy delivery, and cost as in optimized value received vis-a-vis money/resources spent, rather than just reducing spends.

Operational requirements: Everything that empowers you to support, and improves the delivery of value to your customers.

In a nutshell, these considerations are why Operational Excellence, Security, Reliability, Performance, Efficiency, and Cost Optimization are considered the 5 pillars of AWS’s Well-Architected Framework.

 

 

The Start-Up View

Start-up companies mostly comprise small but well-knit teams of people working together and driven by a strong sense of shared belief and belonging. Everyone knows what needs to be done and brings their own expertise to help do it in the best way they know.

However, manual activities are prone to mistakes. Inconsistencies can enter, depending on how the team members go about the tasks. The tasks are not all equal in importance either. Many tasks take time and take away focus from the main goal.

Start-ups do have capital, but this is mostly budgeted towards enabling team members who will directly contribute towards developing the solution. It is important to remember that start-ups need fast iterative ability in order to be qualified for subsequent rounds of funding.

 

In a nutshell

Objectives: To complete set goal to be eligible for the next round of funding

Requirements: eliminate or reduce manual processes and their attendant errors

Urgency: Quick iterations

CI/CD approach: basic CI/CD capabilities and non-functional requirements assume priority over rich features

 

The Mature View

Large organizations tend to be found in mature market segments. Their focus is majorly on enabling high-impact positive customer experiences that built improve loyalty and enhance transaction value. The drawback here is that paradoxically, it is their very size that becomes a hindrance as it limits personal interactions between service and development teams. There is usually a system in place to make requests and interfaces between the team and the systems are well understood. But the systems, which are usually implemented over time–as needs are better understood and addressed–are not usually well documented. Furthermore, the existing toolchain incorporates a certain amount of scripting, which may be done in-house, and is supported and/or unsupported using open-source tools.

This also hampers mature organizations’ ability for new customer acquisition.

As conditions change and new features are needed, mature organizations have to implement and deploy supporting features as quickly as possible. The ability to differentiate services is a clear opportunity to win new customers.

Another way to improve profitability is to continue to evolve processes, maximize integrations and incorporate cost reductions.

 

In a nutshell

Objective: To stand out in the marketplace with desirable new features

Requirements: To shore up risks in systems and software that are undocumented and unsupported

Urgency: Improve efficiency

CI/CD emphasis: Rich features and integrations will assume priority over the improvement of non-functional capabilities

 

 

Open source tools or AWS services?

It is important to remember that this is not an either/or choice. Organizations can opt for any combination of solutions that gives them the maximum value. For instance, organizations can and should implement open-source tools —where specific benefits deliver value that outweighs costs—using AWS services like Amazon EC2 to host them. They can then opt for AWS-managed services, such as CodeBuild for undifferentiated features without attracting additional financial or operational costs.

 

 

 

Conclusion

The choice between open-source tools and AWS services, thus, depends on your own organization, its circumstances, and its structure. You must examine your organization to understand your own objectives, needs, priorities, and your current objective. You can start off by asking the following questions:

What do you (the organization) want to accomplish? Why?

What challenges do you face?

What objectives do you wish to achieve using CI/CD?

What problems do you wish to solve with CI/CD tools?

How big are you; and what is the organizational structure?

What are the roles and responsibilities and how are they spread across teams?

How clearly are your processes understood?

How is development, testing, delivery, and deployment managed currently?

 

 

The answers to the above questions will give you the knowledge you needed to evaluate and choose between open source and managed AWS services. The benefits and risks must be evaluated against the prism of key considerations: Features, Cost, Security, Reliability, Performance, and Operations.

 

A Well-Architected solution can include open source tools, AWS Services, or combinations of both. The ideal solution is one that balances benefits and risks, satisfies your needs, and supports your business objectives.

Leave a comment

error: Content is protected !!
Explore
Drag