Categories
Cloud Entrepreneurship General Topics and tips Management and Projects Sotfware & Developers & DevOps Storage

Cloud and DevOps: A match made in heaven

How the relationship between Cloud and DevOps affects the industry.

Development teams look for new tools, methods, and approaches for developing and delivering the most advanced technologies every day. For many of today’s most creative innovators, the cloud offers a scalable and adaptable route to success. It provides novel security, automation, and development options. Integrating DevOps into the cloud enables businesses to compete more effectively in a complex and ever-changing industry. Rather than reinventing DevOps, effective cloud integration requires implementing and adopting best engineering practices.

Often, this involves upgrading the core infrastructure and ecosystem in preparation for cloud redeployment. In this article, we’ll look at what DevOps is and how it works, as well as the connection between cloud and DevOps, cloud-based DevOps solutions, and the benefits of cloud-based DevOps solutions.

What is DevOps?

DevOps is a technique that companies use to manage the development and release of software. DevOps is a methodology for rapidly providing services and applications. The development approach combines software development and operations into a unified process emphasizing automation and efficiency.

The goal of DevOps is to have frequent incremental improvements rather than periodic significant releases. This method enables businesses to produce higher-quality software products more smoothly and effectively.

DevOps Best Practices
DevOps Best Practices

The primary benefits of DevOps in today’s environment are as follows:

  • Effective application release automation 
  • Infrastructure automation choices
  • CI/CD
  • Rapid Delivery with Agile frameworks
  • Rapid issue resolution

How DevOps works?

Development and operations teams do not divide themselves in the DevOps environment, as they would be in traditional development setups. In specific scenarios, these two teams combine to form a single unit where engineers may work throughout the entire development lifecycle, from development to deployment and operations.

Here, you may acquire a variety of talents unrelated to any particular role. Security mechanisms and quality assurance may become increasingly engaged in the application development lifecycle in some instances. When everyone on a DevOps team focuses on security, the team becomes a DevSecOps solution.

In a DevOps environment, teams use a variety of techniques to automate formerly laborious and slow operations. They use the most advanced technology available to accelerate the development of apps. For example, in DevOps, automating tasks like code deployment and infrastructure provisioning that previously needed assistance from other teams to improve the team’s pace.

What is the relationship between DevOps and Cloud?

Both cloud computing and DevOps have plenty of other advantages in the area of the agile enterprise. Cloud technology enables businesses to access an infinite number of features and solutions at their own pace. There is no limit to the amount of capability that a company may access through the cloud. Cloud technology enables rapid feature upgrades and enhancements in any setting.

Similarly, DevOps fosters an agile workplace for all parties involved. Both systems provide distinct advantages in terms of speed and production. However, when cloud and DevOps combine, their capabilities complement one another, resulting in an even more attractive solution.

The cloud enables centralized deployments and may include built-in DevOps assistance. For instance, if DevOps teams are required to build the components of a solution in a particular manner, the cloud’s sophisticated automation capabilities may help simplify and repeat the process.

Cloud-Based DevOps Tools

Nowadays, you can operate your complete DevOps stack in the cloud through cloud-managed DevOps solutions. We have discussed two of the most popular ones: Azure DevOps and AWS DevOps.

Azure Cloud and DevOps

Azure DevOps
Microsoft Azure

Microsoft’s integrated DevOps platform is Azure DevOps (previously known as Visual Studio Team System or VSTS). It allows you to manage the whole of your DevOps cycle via a single integrated interface. While Azure DevOps Services is a cloud-based DevOps solution that you may use as a SaaS (Software-as-a-Service) application, Azure DevOps Server is a self-hosted on-premises version of the same product.

Microsoft’s DevOps solution comprises several products, each of which addresses a unique step of your process. Azure Boards enable planning and project management. The Azure Pipeline is a continuous integration and delivery tool. Azure Repos provides cloud-hosted Git repositories, Azure Test Plans is a testing toolkit, and Azure Artifacts enable the creation, management, and deployment of packages.

However, you don’t need to utilize all of the tools included in Azure DevOps Services; you may alternatively subscribe to them separately. If you need more capabilities, the Visual Studio Marketplace has over 1,000 Azure DevOps extensions, including integrations, statistics, visualizations, and crash reporting.

AWS Cloud and DevOps

AWS & DevOps

AWS DevOps is a service offered by Amazon Web Services that consists of a collection of integrated DevOps tools for managing the entire software development lifecycle. While AWS is mainly utilized in the cloud, you can also run all the tools on-premises using AWS Outposts, which enable you to deploy any AWS infrastructure component on your in-house server.

In contrast to Azure DevOps Services, a PaaS (Platform-as-a-Service) solution, AWS is an IaaS (Infrastructure-as-a-Service) solution, which means it is connected to the underlying infrastructure. While packages may be deployed from Azure DevOps Platform to another environment, such as AWS, the opposite is not feasible. You can only deploy to AWS infrastructure through AWS DevOps, such as EC2 (Elastic Compute Cloud) or S3 (Simple Storage Service).

AWS DevOps toolset includes:

  • A continuous integration/continuous delivery service called AWS CodePipeline.
  • A managed service build tool called AWS CodeBuild.
  • A deployment automation tool called AWS CodeDeploy.
  • A platform for managing DevOps projects called AWS CodeStar.

In general, AWS DevOps is probably the most refined DevOps platform for existing or prospective Amazon Web Services customers.

Which one to choose between Azure and AWS?

The primary distinction between the Azure and AWS DevOps toolsets is how they integrate with their respective platforms. Both products, for obvious reasons, combine the appearance and feel of their different cloud platform’s user interfaces. AWS DevOps is much simpler to get started with, while the Azure DevOps suite is more integrated across the various Azure DevOps toolsets and has a considerably more extensive set of integrations with the whole Azure Marketplace.

Moreover, upon choosing, it all comes down to what your employer thinks. That is, whatever job you get is of primary importance. If the sole job available targets Azure systems, then focus on completing an Azure DevOps certification. On the other hand, the industry has shifted toward AWS. Many companies and hiring managers prefer individuals with an AWS-based DevOps certification, owing to AWS’s increasing market dominance and various other fundamental options that perform better when AWS systems are used.

Apart from that, it all comes down to your work needs and which one you believe is most advantageous for you since this is the only way to choose between the two and seek a source of DevOps certifications.

Advantages of cloud computing DevOps

Cloud solutions and DevOps complement one another well in an environment designed for agility and adaptability. When DevOps and cloud computing are integrated, they can significantly improve the software development lifecycle. Businesses that use DevOps in the cloud may improve software delivery performance by an average of 81 percent.

The following are the primary advantages of cloud-based DevOps:

Automation options based on the cloud

Automation is a critical component of DevOps efficiency. Numerous cloud platforms provide sophisticated automation capabilities for DevOps operations, such as continuous development and integration. These technologies provide uniformity and efficiency while requiring less human involvement.

Centralized platform

The cloud offers a centralized framework from which businesses can manage all aspects of their production workloads, including testing, deployment, monitoring, and operation. This enables you to keep track of everything in one location. When all of your DevOps information is in one place, it’s simpler to manage compliance and security. This way, you may get even more actionable insights and business information.

Scalable infrastructure

The cloud is the most cost-effective method to guarantee that you can scale up or down any infrastructure required without spending a fortune on equipment. As a result of this scalability, DevOps is a highly effective way to roll out new features, functionality, and possibilities as your company develops. You can mix cloud computing with DevOps agility to provide limitless development possibilities for your organization.

Agile development

The cloud can offer a variety of staging and testing servers, allowing DevOps teams to continue working while waiting for servers to become available. Utilizing DevOps across the cloud environment enables teams to experiment more freely since builds may occur more often. DevOps teams can rapidly provision servers that meet their requirements.

Reliability and stability

Since cloud providers emphasize availability and stability, they can manage and maintain all aspects of the platform. Instead of worrying about these problems, IT firms can concentrate on product development, which results in better product performance, user experience, and speed to market. The key to success, in this case, is selecting a cloud provider capable of delivering the appropriate degree of uptime for your company.

Conclusions

Cloud computing, on its whole, has risen in popularity over the last several years. Businesses of all sizes can discover how a cloud environment enables them to develop at their speed. Just as cloud communications continue to increase in popularity, cloud-based development and application management procedures become more attractive as your team realizes the full advantages of cloud-based DevOps.

Later, you’ll find that you’re using various DevOps techniques to increase the efficiency of your whole workforce. When this occurs, your team’s performance and efficiency are sure to soar.  There are no limits to what your DevOps team and the cloud can achieve with the proper cloud provider guiding and supporting you.

Hits: 2

Categories
Cloud Entrepreneurship Sotfware & Developers & DevOps Tools & How-Tos

Fixing jitsi recording unavailable on docker

Recording unavailable jitsi

This post “Fixing jitsi recording unavailable on docker” was updated by: Syed Umar Bukhari on October 5, 2021

Many organizations and engineers are creating video conferencing apps during the covid-19 pandemic for online learning facilities, webinars, and for talking to loved ones– this is where Jitsi comes in. Jitsi is a free video conferencing alternative app to Zoom— it is also open source!

Why Should You Use A Video Conferencing App?

Conferencing apps have gained a major role lately; it is a need that one cannot miss out on anymore, especially during this pandemic. Because of these apps, you can meet and share tutorials, conduct business meetings, record your work plans, etc.

Also, the recording feature will always be important in building a video conferencing tool.

How To Enable Recording On Jitsi?

As a first step, let’s check the configuration on the server– so that Jitsi can create recordings during the conference.

Firstly, enable Jibri because it has a configuration for recordings to run well on Jitsi. If you don’t know how to install Jitsi on Docker yet, please read our article on Jitsi with Docker.

If recording is unavailable on Jitsi, check Github for Jitsi recording fails. To observe what happens to the Jibri container, check the container logs on Jibri with:

docker-compose logs container_name

docker-compose -f docker-compose.yml -f jibri.yml logs jibri
jibri container logs

As you can see, Jbri has a problem with the container. After this, check the container process with a command that is is useful for viewing all running container processes:

docker-compose -f docker-compose -f jibri.yml ps

docker-compose -f docker-compose.yml -f jibri.yml ps
process docker-compose jitsi

As you can see, the Jibri container is not running properly, since the container keeps restarting. If you see similar results, keep reading to understand and fix this error.

Fixing The Jibri Container

The first step to fixing the Jibri Container is checking the status of the alsa-loopback module on the server. Jibri uses this module to make recordings run fast on the server. Check alsa-loopback module with this command:

arecord

arecord -L
arecord command jitsi

Checking The Kernel

As the alsa-loopback module doesn’t work properly, let’s check the kernel. The goal here is to find out if the generic kernel is installed or not.

uname -r
check kernel generic

However, it looks like the generic kernel is already installed on the server. Hence, instead, try to enable the alsa-loopback module.

Activate it with this:

sudo modprobe snd-aloop

After enabling the alsa-loopback module with modprobe, let’s check the server to see if the alsa-loopback module is active. To check the status, use this command:

arecord -L

This is useful for viewing the module’s driver– which is already active on the server.

arecord command

You can get the module running without modprobe on the server in a way that when you reboot the server, the module will still continue to run on the server.

Adding snd-aloop to the

~/etc/modules file

with the “echo and tee” command makes it easier to use.

echo snd-aloop | tee -a /etc/modules
Adding module snd-aloop

Note: This issue with the lsa-loopback module is common as some cloud providers do not provide generic kernels capable of meeting Jitsi’s requirements. In this case, while we already had the generic kernel installed, the alsa-loopback module was not set active.

Configuration of Jibri

After that, update the config on jibri.yml– the file that is used to create a Jibri container.

version: '3'

services:
    jibri:
        image: jitsi/jibri:latest
        restart: ${RESTART_POLICY}
        volumes:
            - ${CONFIG}/jibri:/config:Z
            - /dev/shm:/dev/shm
        cap_add:
            - SYS_ADMIN
            - NET_BIND_SERVICE
        devices:
            - /dev/snd:/dev/snd
        environment:
            - PUBLIC_URL
            - XMPP_AUTH_DOMAIN
            - XMPP_INTERNAL_MUC_DOMAIN
            - XMPP_RECORDER_DOMAIN
            - XMPP_SERVER
            - XMPP_DOMAIN
            - JIBRI_XMPP_USER
            - JIBRI_XMPP_PASSWORD
            - JIBRI_BREWERY_MUC
            - JIBRI_RECORDER_USER
            - JIBRI_RECORDER_PASSWORD
            - JIBRI_RECORDING_DIR
            - JIBRI_FINALIZE_RECORDING_SCRIPT_PATH
            - JIBRI_STRIP_DOMAIN_JID
            - JIBRI_LOGS_DIR
            - DISPLAY=:0
            - TZ
        depends_on:
            - jicofo
        networks:
            meet.busanid.dev:

The file looks all set– only change the network in Docker to have it ready for use. The Docker network allows container network interconnectivity, using your domain.

Checking the ENV File

The env file stores variables and contains declarations of these variables that will eventually be loaded on the container.

These files are very important for configuring the environment in Jitsi. In the env file, you can make as many configurations as you see fit. But, keep in mind that this setting is called in Docker-Compose to be applied to the container.

For example, there are many variables to configure, such as public url, port, ssl, jvb, Jibri, etc.

For this part of the tutorial, configure the env file to use recordings in Docker. Therefore, edit the env configuration in Docker Jitsi. To do so, you must enable Rest API on JVB.

# A comma separated list of APIs to enable when the JVB is started [default: none]
# See https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md for more information
JVB_ENABLE_APIS=rest,colibri

This API helps the recording run on Docker Jitsi. Moreover, you need to enable recordings in Jitsi. So, to enable recordings, remove the fence in front of the variable ENABLE_RECORDING=1

# Enable recording
ENABLE_RECORDING=1

Set ENABLE_RECORDING=1 for feature recording on Jitsi can be enabled on the server.

This will bring up the recording menu when the moderator starts the meeting. Don’t forget to edit the XMPP domain name if you are using a different docker network than the default!

# XMPP domain for the jibri recorder
XMPP_RECORDER_DOMAIN=recorder.meet.busanid.dev

# XMPP recorder user for Jibri client connections
JIBRI_RECORDER_USER=recorder

# Directory for recordings inside Jibri container
JIBRI_RECORDING_DIR=/config/recordings

# The finalizing script. Will run after recording is complete
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

# XMPP user for Jibri client connections
JIBRI_XMPP_USER=jibri

# MUC name for the Jibri pool
JIBRI_BREWERY_MUC=jibribrewery

# MUC connection timeout
JIBRI_PENDING_TIMEOUT=90

# When jibri gets a request to start a service for a room, the room
# jid will look like: [email protected]_domain
# We'll build the url for the call by transforming that into:
# https://xmpp_domain/subdomain/roomName
# So if there are any prefixes in the jid (like jitsi meet, which
# has its participants join a muc at conference.xmpp_domain) then
# list that prefix here so it can be stripped out to generate
# the call url correctly
JIBRI_STRIP_DOMAIN_JID=muc

That looks good, right? Congratulations! You have now successfully configured the env file. What does that mean? The recordings can be used now!

In addition, it’s time to build a Docker Jitsi container using this command:

docker compose up -d.

docker-compose -f docker-compose.yml -f jibri.yml up -d
docker compose up

Wait until the process of building the Jitsi container is complete; when finished, re-check all the services running on the container with this command:

docker compose ps

docker-compose -f docker-compose.yml -f jibri.yml ps
jibri docker compose ps

Since the Jibri container is running fine, let’s look at the logs on the container with the following command::

docker compose logs

docker compose logs jibri

All looks ready to proceed to the last and final step: Jtisi Recording.

Jitsi Recording of a Conference

You should try conferencing using the Jitsi server to ensure everything is in working order.

recording conference

Recording on Jitsi is running well on our end; we’re assuming it’s the same for you. If you face any errors, please drop them in the comment section below!

Accessing the Recording Files

To access the video files from recording., go to:

~/.jitsi-meet-cfg/jibri/recordings.

Alternatively, you can customize the location of video storage from config Jibri.

Jibri recording directory

If you followed the post ,your recording should be working well on the server. Else, let us know below what errors you might be facing so we can help you fix them. At this point, the moderators can start recordings when a conference begins.

Hope you liked this article and it was able to help you fix Jibri Docker “Recording Unavailable” error. Hit the like button if you learned something new and re-blog the post if your friends might find it useful.

Don’t forget to read more of our articles, such as How To Run Jitsi With Docker? and much more tech-savvy ones on topics like MySQL databases and Python Integration of CRUD operations, etc. Stay safe, stay healthy, and keep coming back to our blog for more amazing content in the future.

Hits: 265