CofeApp
Increasing agility with a modern microservices architecture on AWS
CofeApp
Increasing agility with a modern microservices architecture on AWS
region
KINGDOM OF SAUDI ARABIA
COMPANY Type
eCommerce – B2C
industry
eCommerce – B2C
no.of employees
eCommerce – B2C
website
About CofeApp
Founded in 2018 by owner Ali Al-Ebrahim, COFE is an online coffee marketplace delivering seamless user experiences to customers in the GCC through their offices located in KSA, UAE, Kuwait, and Egypt. COFE makes ordering coffee fast, easy, and efficient; giving users access to a range of cafes right from internationally acclaimed franchises to local artisanal coffee houses and roasteries. Beginning it’s operations in Kuwait as it’s test-market, COFE App is all set to disrupt their industry and go international in their near future.
The Challenge
“The COFE App was originally built using a monolithic architecture aimed at simplifying development, testing, and deployment. However, while the monolithic approach worked well in the early stages of the project, COFE soon realized that it had significant limitations that needed to be addressed. That’s when they contacted Bespin Global based on our experience developing microservices architectures running on AWS.”
-Wael Al Aaraj, VP of Technology at Bespin Global MEA
Although a monolithic application may be easy to develop at earlier stages, it brings with it significant limitations when most noticeable when new features/functions being to roll-out as the application ages and modernizes, thus increasing the overall complexity. For example, as our client COFE App continued to evolve based on user feedback and new go-to-market the initiatives, the various components that built the application continuously grew in size, in turn making the maintenance and publishing of new features an unnecessarily tedious process. Furthermore, no matter the size of the update, COFE’s entire application had to be redeployed.
“Despite having the goal of being a modern, agile company, as the COFE App evolved, COFE found themselves becoming bogged down in maintenance activities. Since the impact of each change on the application as a whole was not well understood, extensive manual testing was required for each change, making continuous deployment difficult. In addition, monolithic applications can be difficult to scale when different modules have conflicting resource requirements.”
-Wael Al Aaraj, VP of Technology at Bespin Global MEA
The Solution
“To overcome COFE’s challenges, we focused on developing a new microservices architecture that would allow COFE App to take advantage of the modernization and scalability capabilities of AWS.”
-Dania Alrefai, DevOps Engineer at Bespin Global MEA
1- Selecting the Right Straegy
“Bespin’s mandate was to provide the microservices architecture, project oversight, and optimization suggestions required for deploying a modern app in AWS environment using agile methodologies. We wanted to leverage their expertise and experience to ensure that COFE App followed best practices and standards for deployment in the AWS environment using different DevOps tools and methodologies.”
-Iyad Abu Mallouh, Director of Product Management at COFE App
Bespin and COFE also used this project to integrate state-of-the-art DevOps best practices & tools that automate both the development workflow and software deployment. Keeping the code and functionality requirements in mind, our experts evaluated COFE’s environment to determine and implement a suite of technologies that will seamlessly integrate into the environment and be leveraged to test use cases at various integration and deployment phases.
“In the end, we decided that the best way to meet COFE’s business objectives was to build and deploy seven microservices using various CI/CD technologies. We decided to use Bitbucket’s CI/CD service to help automate the release pipeline; Terraform Cloud to create, update, and version the AWS infrastructure; and Argo CD and Argo Rollouts to deploy and monitor the COFE App to Kubernetes on AWS. We also chose other security tools to help us discover vulnerabilities in the application source code, and maintain the high quality of our code.”
-Dania Alrefai, DevOps Engineer at Bespin Global MEA
2- Streamlining COFE's Workflow
“Combining Bitbucket with Argo CD and Argo Rollouts was the right decision, but that doesn’t necessarily mean it was easy. We faced several challenges while implementing the solution, starting with the pipelines and ending with the architecture.”
-Dania Alrefai, DevOps Engineer at Bespin Global MEA
Bitbucket enables developer to build quality software at scale, while ensuring the consistent deployment of microservices. Additionally, being a self-managed solution providing source code collaboration for distributed teams, Bitbucket’s support for sandbox, UAT, and other production environments, enabled us to trigger the pipeline to move code from one environment to the other using various request and tags.
Bespin’s team also integrated Argo CD with Bitbucket, to continuously monitor COFE App by comparing it’s live state to the desired state (as specified in the Git repository) while also providing visibility into the health of the Kunernetes pods via Visual UI & integrated Helm Charts. The sister technology, Argo Rollouts, was then integrated to offer COFE an increased availability through it’s advanced blue-green deployment capabilities.
“Since every app is different, we implemented and tested various deployment strategies to ensure we got it right. We recorded our observations—including what we liked and didn’t like—and presented them to COFE, soliciting their feedback before returning to the drawing board. We always strive to satisfy the development and publishing vision of our clients.”
-Dania Alrefai, DevOps Engineer at Bespin Global MEA
3- Strengthening Security
“When you’re using multiple different tools, each with its permissions and limitations, ensuring that the data is protected as it traverses the pipeline is critical. In addition, each piece of the pipeline required extensive testing in terms of meeting functional specifications and maintaining best practices in terms of security and performance.”
-Dania Alrefai, DevOps Engineer at Bespin Global MEA
Based on our past experiences in dealing with the same, and to ensure the seamless integration with the rest of COFE’s pipeline, BESPIN GLOBAL integrated a tool that enables a low-trust environment, identity-based security automation, and encryption-as-a-service, to reduce the risk of breached and data exposure.
“At an architecture level, the main challenge we faced was integrating this tool with AWS. This involved a high degree of complexity, especially with AWS Key Management Service, a managed service designed to simplify the creation, management, and control of the cryptographic keys used to protect data. Although it took a bit of time, we got the auto-unseal working and enabled encryption to benefit from AWS key management.”
-Dania Alrefai, DevOps Engineer at Bespin Global MEA
4- Improving Efficiency
“The use of COFE App can vary significantly from day to day, as a result, we need to be able to scale our services on-demand and maintain over 99.99% availability. Moreover, since customers use COFE App at all times of the day and night, 24/7 support is critical for our business. We contracted Bespin to manage the environment based on specific SLAs, giving us the availability, flexibility, and scalability we need to satisfy our customers and grow our business.”
-Iyad Abu Mallouh, Director of Product Management at COFE App
In addition to the 24/7 integrated support services that included application & infrastructure monitoring, incident response, and backup & disaster recovery, Bespin’s Managed Services Team worked directly with COFE App’s consulting team to optimize the environment through evaluating the Amazon CloudWatch & AWS Compute Optimizer logs and metrics. This resulted in the continuous optimization of COFE App’s application and infrastructure in adherence with AWS security, operational, and financial best practices.
“COFE also took advantage of our FinOps expertise and best practices. Bespin’s Managed Services team supports COFE by tracking cost and usage trends. Then, we analyze the information to detect spending anomalies and resource constraints, providing platform optimization and multi-account cost management recommendations.”
-Dania Alrefai, DevOps Engineer at Bespin Global MEA
End Result
“Moving the COFE App to a microservices architecture has reaped significant technical benefits. The application is more fault tolerant because each service is isolated, and the fact that each microservice can be deployed independently means that each business component—the COFE Store, COFE Credits, Gift Cards, and Rewards—can be prototyped, developed, and produced more quickly. That’s huge for the business when it comes to maximizing customer engagement and spend!”
-Wael Al Aaraj, VP of Technology at Bespin Global MEA
This new architecture also enables continuous integration and delivery, which empowers COFE with a simplified & efficient method to experiment with new ideas & product innovations, while ensuring the same ease even in times when ideas don’t work out. This means that, through a low cost of failure and the ease of deployment, COFE gains much more flexibility to be bold in product innovation(s), complimented with faster time-to-market capabilities. Additionally, the improved architecture, allows for each service to be scaled independently – effective meeting the demand for the feature it supports while reducing overall infrastructure costs and the risk of capacity-related service outages.
“Working with Bespin to modernize our platform has brought numerous business benefits. First, it’s enabled us to increase productivity and drive more sales because we’re delivering new features much faster. As a result, our customers are happier, and the increased sales enhance our ROI. Moreover, as an online company, we’re now agile enough to build and deliver new products, functions, and features at a rate that keeps our customers excited and engaged.”
-Iyad Abu Mallouh, Director of Product Management at COFE App
About BESPIN GLOBAL
A recognized global leader, appearing in Gartner’s Magic Quadrant for Public Cloud Infrastructure Professional and Managed Services – 2020, Bespin Global MEA is an AWS Premier Consulting and Managed Service Partner, providing state-of-the-art automated cloud solutions & consulting services to businesses in the Middle East and Africa. Helping clients adopt cloud throughout their journey, Bespin Global has the capabilities and experience to assist clients at any stage be it Cloud Strategy & Migration or DevOps & Big Data. Also offering the industry’s most automated and end-to-end cloud management platform in OpsNow, we enable customers to manage their multi-cloud environments through a single comprehensive and insightful platform, providing automated and actionable insights that reduce costs by 30% or more.