How to work with Open Source projects in Microsoft Azure. Part 2
In this blog post, you will find a roadmap for an efficient and cost-effective IT landscape upgrade with Microsoft Azure, along with a coherent journey from MVP to commercial operation with Kubernetes.
Updating an existing IT landscape with Microsoft Azure
The roadmap for an efficient and cost-effective IT landscape upgrade with Azure cloud technology includes several steps:
-
Checking the set of documentation for the existing subsystems of the software complex
-
Establishing business requirements for the updated system that is in direct contact with end users
-
Defining the first group of services that will migrate to the new infrastructure
-
Selecting and testing technologies to replace existing ones
It is essential to obtain either the complete dataset from the existing database, or de-identify it (for example, in the case of medical data, where access to information is strictly regulated by law, personal data and part of the information on the medical history are removed or replaced)
-
Creating a Proof of Concept based on new technologies to carry out load testing
A small version of the system with a few functions will be implemented and this will clearly demonstrate compliance with non-functional requirements (load, security, fault tolerance)
-
Building a Minimum Viable Product (MVP, product with the minimum feature set) based on new technologies for pilot operation
In this mode, the early adopters including the working group, end users and company leaders have the opportunity to test the solution, make their comments and suggestions
-
Full-fledged commissioning of the updated services into commercial operation — after all the requirements have been taken into account
It can be performed on servers in the old IT landscape, or on newly purchased equipment (requirements for a new data center are shaped on the basis of stages 5 and 6)
-
Analyzing the results and migrating the next group of services
After analyzing the results, you shouldn't settle on a ready-made solution — a new group of services is selected and then transferred to a new IT landscape
An efficient way from MVP to production with Azure Kubernetes Service
Let’s take an example of the WaveAccess project for developing a media platform, all the way from scratch to the first sales, which will demonstrate an effective transition from a Minimum Viable Product to commercial operation.
Our customer — a video marketing company — wanted to bring to the market a platform for managing video content and advertising, and expand the number of its users, encouraging them to place content on the platform with advertising services connected and after, uploading it to external platforms (YouTube, Vimeo, Facebook, etc.). In addition to developing the platform itself, it was required to ensure its rapid scalability. This scalability will ensure the support for a large number of clients who can simultaneously produce content in their accounts rapidly and practically without interruption.
The key features of the solution offered by WaveAccess involved:
-
Downloading and storing video content directly and importing it from external sources (e.g. YouTube)
-
Automated content conversion, watermarking, setting tracking codes
-
Integration with video advertising services
-
Asynchronous continuous processing of content produced by 2000 clients minimum
-
The most efficient content delivery to the viewer
-
The project was built using a content delivery network, since the customer's clients were geographically distributed throughout the world, and there was no way to store everything on servers in one region
-
Analytics of viewers' behavior gathered to provide relevant content: the system segments the audience according to its interests, in particular helping video bloggers understand which advertising is suitable for their followers
-
A subsystem for reporting on the success of all advertising campaigns
As a result, an MVP was developed within a year, and helped the customer to conclude contracts worth more than $ 5 million.
The project was built using technologies and tools as follows:
-
Microsoft Azure
-
Java Spring Framework
-
Apache Kafka (to enable communication between microservices)
-
JavaScript, AngularJS, D3, HTML 5
-
Azure Kubernetes Service (made it possible to quickly and flexibly form the infrastructure required to deliver the solution)
-
Terraform, Ansible, Docker
With its dynamic infrastructure and the ability to manage resources using Terraform and Ansible, we were able to leverage the virtual resources provided by Azure. This allowed us to provide the customer with a plan to reduce costs through the use of Reserved Instances (RI) and Azure out-of-the-box services.
How to launch a startup using Azure
A few of our major recommendations to look out for when starting a new project:
-
It is worth focusing on ready-made methodologies.
Lean Startup is among them: no development begins until the hypothesis is confirmed
-
Tasks are defined according to SMART criteria (Specific, Measurable, Achievable, Relevant, Time-bound).
It is especially important to generate a list of tasks that can be executed in a short time and with a measurable result, as the meter of the Azure resources consumed is running
-
Using Open Source technologies.
Allows you to minimize costs at all stages of product development. Installing your databases on Azure virtual machines or additional services for video conversion, image processing and communication between services. All this works out of the box, and there are ready-made frameworks of popular programming languages that provide this functionality and reduce the cost of its implementation
-
Applying Kubernetes as a software delivery standard.
Enables quick commissioning of both large services and microservices
-
Automating resource management operations with Terraform.
Provides mobility not only in Azure, but also in your own cloud storage. You can focus on the popular VMware stack: Terraform provides libraries for working, for example, with the cloud computing virtualization platform VMware vSphere — using the same scripts (or slightly changing them), you can install or set up the infrastructure in the data center, rather than in the cloud
-
Fast implementation of Proof of Concept powered by Azure Managed Services.
-
Communication with customers and users.
Feedback is especially important for priority setting
-
Development 24/7.
Using Azure DevOps and Teams in distributed team communications allows you to have a single infrastructure within a single cloud that covers the entire development cycle
In the third part of the article, we will unveil the not so obvious ways to reduce costs in a well-established infrastructure, how to properly manage business process optimization, and why you actually need Azure Kubernetes Service and multicloud.
We transform your dev process in 8 stages.
Let us tell you more about our projects!
Сontact us:
hello@wave-access.com