This organization is a leading provider of cloud-based CRM solutions that provides critical sales context without sacrificing productivity. Its platform automates data capture, helping provide much needed customer insight to relationship-driven businesses. As a marketing technology provider, this firm helps companies win customers and keep them engaged through increased sales, improved service delivery and streamlined operations.
• Achieve distinct competitive advantage with greenfield opportunity
• Grow Innovation and development agility
• Achieve rapid provisioning and continuous deployment
This mature start-up wanted to ensure it had a leg-up on the competition with a new initiative it was starting. As a global cloud-based solution provider, it was well aware of the benefits of cloud computing and wanted to extend those benefits to its newest application. The company knew that Docker containers in AWS could bring developer flexibility, system scalability and portability to its greenfield opportunity. To ensure it was on the right path and to expedite the process, this marketing technology company brought in the AWS experts at Flux7 to:
• Assess the plans for a new application built on Docker in the cloud,
• Design the best architectural approach, and
• Train the team on new technologies used in the process.
• AWS, Docker-based microservices architecture
• DevOps best practices approach
• Secure and agile Continuous Delivery code pipelines
Flux7 agreed that AWS and Docker combined could provide real competitive advantages for this firm’s new application. Indeed, it recommended that it embrace a microservices architecture based on AWS and Docker for the utmost advantage. This would allow the Development team to create, test and deploy the application on a per service basis, moving each service to completion independent of any other service. This would result in faster time to market for the new application, and the ability to quickly and easily update individual services, maintaining a critical edge over the competition.
This firm wanted to build a new solution front end using Angular 2 inside of Docker containers deployed in AWS with its data and rest layer maintained in its data center. With its deep AWS expertise, the Flux7 experts dove in, affirming this approach and architecting a CD pipeline that assured continuous production success.
Rapid Provisioning & Continuous Deployment
A tenet of DevOps-based cloud computing, rapid provisioning is a key component of successful microservices. This company was able to achieve rapid provisioning through greater automation that orchestrated deployments in a secure, duplicable manner. Once components of the firm’s environment were determined, they could be deployed time and again with predictable, repeatable results. Continuous deployment was achieved through the use of automation, cloud-based services, Docker containers and best practices. Flux7 used these resources to build code delivery pipelines that are secure and agile. In the process, this firm’s developers were able to accelerate the software delivery process, cutting the overall cost of software development, and delivering high-quality code faster.
Specifically, the customer had a unique need in that they needed multiple versions of the same microservice running concurrently. When a customer logged in, the login system would assign them the versions of the microservices that they shall be communicating with. This allowed them to selectively roll new versions of each microservice to different customers one by one, rather than upgrading them all at the same time. The decision regarding which microservice version a customer should use was based on the upgrade cycle they were following. For usability reasons, the customer did not want this information to be exposed to the end user through the URL.
This required a solution that could allow the login system to inform the microservices router (Nginx in our case) as to which requests should be mapped to which services. We fashioned a solution using version-aware cookies which allowed the login system to decide the versions of all services, encode this information in the session cookie and send it back to the user. When future requests from this user hit the cluster, and were sent to Nginx, Nginx used this information from the cookie to decide which set of containers the particular request should be forwarded to.
Amongst those containers, Nginx used its standard load balancing to decide which specific container would service the request. When a particular customer was to be upgraded to a newer version, the only change required was in the user login database, which automatically started servicing newly logged in users from that customer with the newer version of the service. This approach is unique and allowed user-level selection of the microservices version through common open source tools.
An important measure of the new application was its scalability, including a mechanism for geo-located scaling. Scalability is much more easily achieved with microservices as each service is able to scale up or down based on the need of the individual service, regardless of demand on any other service. Geolocated scaling allowed this firm to direct traffic to the nearest geographic origin point based on a user’s location. This allowed the firm to dynamically address peaks in demand by geography, effectively meeting system demand while increasing service speed to customers.
Agility & Innovation
Applying DevOps principles and Flux7 best practices, the teams worked closely together to ensure agility through the microservices architecture. With individual teams focused on their own autonomous services, multiple services within the project could be worked on at the same time, accomplishing the end goal much more quickly. This approach also enabled agility, with developers able to respond to market needs for their own services without concern for the implication of change on other services.
The new microservices environment also enhanced innovation through its flexible and agile design, enabling developers to experiment with new features and functionality without the fear of breaking an entire application. Using Docker containers, Flux7 was able to provide this marketing technology organization with a homogeneous deployment framework which helped streamline infrastructure needs, allowing developers to focus on delivering innovation.
Already familiar with the benefits of cloud computing, this marketing technology provider was able to take advantage of a new microservices architecture for advanced innovation and agility. Rapid provisioning and continuous deployment helped automate the cumbersome and time-consuming tasks that slow down the release of software code, further streamlining the speedy development process that microservices encourage. With hundreds of thousands of users across the globe, this company needed to retain its competitive advantage while ensuring customer satisfaction. Scalability helped assure reliability and availability of service while innovation was delivered through the quick delivery of a brand new application.
AWS Services: EC2, AWS VPC, CloudWatch, CloudFormation, CloudTrail, AWS Config, S3, ElastiCache, Consul, Nginx