<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bunnyshell</title>
    <description>The latest articles on DEV Community by Bunnyshell (@bunnyshell_eaas).</description>
    <link>https://dev.to/bunnyshell_eaas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F374560%2Fe58b816b-edea-4b64-be09-94da8809e9d2.png</url>
      <title>DEV Community: Bunnyshell</title>
      <link>https://dev.to/bunnyshell_eaas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bunnyshell_eaas"/>
    <language>en</language>
    <item>
      <title>Creating Ephemeral Environments for CI/CD (GitOps) Pipelines with Kubernetes</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Wed, 28 Sep 2022 21:50:01 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/creating-ephemeral-environments-for-cicd-gitops-pipelines-with-kubernetes-1pnb</link>
      <guid>https://dev.to/bunnyshell_eaas/creating-ephemeral-environments-for-cicd-gitops-pipelines-with-kubernetes-1pnb</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1msljSsh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddfnhgftp30w8i8kpmvt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1msljSsh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddfnhgftp30w8i8kpmvt.png" alt="Image description" width="880" height="791"&gt;&lt;/a&gt;&lt;br&gt;
🌐 [Upcoming Webinar] Testing your application in a production-like environment can help you catch bugs early in the development life cycle and increase the overall quality of the shipped product. However, setting up your CI/CD pipeline in a way that allows you to set up ephemeral production-like environments is not a trivial undertaking.&lt;/p&gt;

&lt;p&gt;But... Kubernetes can help. Join &lt;a href="https://www.linkedin.com/in/sorin-dumitrescu/"&gt;Sorin Dumitrescu&lt;/a&gt;, VP of Engineering, and &lt;a href="https://www.linkedin.com/in/cristian-blanaru-614ba559/"&gt;Cristian Blanaru&lt;/a&gt;, SRE team lead as they explore 🔍:&lt;/p&gt;

&lt;p&gt;☑️ How to use Kubernetes to create cost-effective, ephemeral environments that look like production&lt;br&gt;
☑️ How to easily integrate GitLab and GitHub pipeline testing with Bunnyshell using ephemeral environments&lt;br&gt;
☑️ How to run tests automatically for every PR to accelerate code quality and see all changes in real-time before each merge&lt;/p&gt;

&lt;h1&gt;
  
  
  development #testing #engineering #kubernetes #environment
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://hubs.la/Q01n8VXN0"&gt;https://hubs.la/Q01n8VXN0&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>github</category>
      <category>git</category>
      <category>cicd</category>
    </item>
    <item>
      <title>How Slack Uses Remote Development to Improve Dev Experience &amp; Productivity</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Wed, 07 Sep 2022 20:23:20 +0000</pubDate>
      <link>https://dev.to/bunnyshell/how-slack-uses-remote-development-to-improve-dev-experience-productivity-4g0l</link>
      <guid>https://dev.to/bunnyshell/how-slack-uses-remote-development-to-improve-dev-experience-productivity-4g0l</guid>
      <description>&lt;p&gt;[YOU'RE INVITED👇]&lt;/p&gt;

&lt;p&gt;⏰ Wed, Sep 14, 2022, || 10:00 AM PST.⏰ &lt;/p&gt;

&lt;p&gt;REMOTE DEVELOPMENT capabilities give the developers the POWER to develop locally while full-stack is running in the cloud, which makes changes visible to all team members (including QAs and Product teams) without any need to rebuild.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/video/event/urn:li:ugcPost:6962637599597355008/"&gt;https://www.linkedin.com/video/event/urn:li:ugcPost:6962637599597355008/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>slack</category>
      <category>cloud</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>Benefits of Ephemeral Environments in the Dev Cycle</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Fri, 12 Nov 2021 10:45:15 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/benefits-of-ephemeral-environments-in-the-dev-cycle-2j6o</link>
      <guid>https://dev.to/bunnyshell_eaas/benefits-of-ephemeral-environments-in-the-dev-cycle-2j6o</guid>
      <description>&lt;p&gt;The main reason organizations adopt ephemeral environments is because they accelerate the software development cycle; developers can review changes visually and also share their work with non-technical team members (such as designers, for example) using a link to the proposed revision.&lt;/p&gt;

&lt;p&gt;Other benefits of ephemeral environments include:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;removing the staging / QA bottleneck: &lt;br&gt;
traditionally, organizations use a staging or QA environment to merge and test all code before pushing it into production. The problem is, they only have one or very few of these environments, so, as the organization grows, this becomes a bottleneck that slows down the development cycle. Enter ephemeral environments - now you have a limitless supply of environments you can use for testing. As every code branch is contained in its own isolated environment, it becomes its own integration environment, so you no longer need a single testing and integration environment to merge all code before pushing it into production.&lt;/p&gt;

&lt;p&gt;allowing early and often feedback: &lt;br&gt;
the earlier in the development cycle you identify quality issues, the more you can reduce rework and improve development velocity. Ephemeral environments help minimize rework by enabling all stakeholders to become part of the development process. For example, QAs, designers, product managers, or even customers no longer have to wait until a developer finishes coding to see changes, they can offer feedback as the feature is being built.&lt;/p&gt;

&lt;p&gt;limiting rework, thus increasing development velocity:&lt;br&gt;
Continuous Integration (CI) focuses on the idea that you should continuously test your code as it’s being pushed. The problem is, most CI systems only perform unit tests (they test small units of code, not the entire system), while Integration and Smoke tests (which test the system as a whole) are left until the code is merged to the main branch in the staging environment. If any issues are found at that stage, it’s already too late; you’ll need rework to get them fixed. Even more, if there’s only one staging environment available, this will create bottlenecks. Ephemeral environments allow Integration and Smoke tests to be run right after the environment is created, thus ensuring they’re performed as frequently as unit tests and allowing you to find issues early in the development process.&lt;/p&gt;

&lt;p&gt;allowing for experimentation with infrastructure:&lt;br&gt;
infrastructure changes are costly both in terms of money and time, and they can slow down your team’s velocity. But with ephemeral environments, testing the new infrastructure can be done in isolation, so it doesn’t affect other developers. &lt;/p&gt;

&lt;p&gt;they enable Agile / Scrum: today, many organizations follow Agile / Scrum practices, but their infrastructure and technology are not always adapted to iterative software development. These workflows focus on early and frequent feedback, and ephemeral environments are the perfect tool to enable that. &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>agile</category>
    </item>
    <item>
      <title>Storing Files In Today’s Cloud: What Is Object Storage</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Thu, 26 Nov 2020 09:00:37 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/storing-files-in-today-s-cloud-what-is-object-storage-1d0c</link>
      <guid>https://dev.to/bunnyshell_eaas/storing-files-in-today-s-cloud-what-is-object-storage-1d0c</guid>
      <description>&lt;p&gt;Simply put, object storage, or object-based storage, is a data storage architecture that manages data as distinct units called objects. Each object includes the data itself, a variable amount of metadata, and a globally unique identifier. &lt;/p&gt;

&lt;p&gt;Further, object storage devices can be aggregated into larger storage pools, and these pools can be distributed across multiple locations. This enables not only unlimited scale but also data resiliency and disaster recovery. &lt;/p&gt;

&lt;p&gt;Because of this, object storage is used to retain and manage massive amounts of unstructured data, such as Facebook photos, Spotify songs, or Dropbox files. &lt;/p&gt;

&lt;h2&gt; How object storage works &lt;/h2&gt;

&lt;p&gt;Let’s suppose you want to store all the books in the world in a very large library system on a single platform. There are two things you need to store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; the contents of the books (data)
&lt;/li&gt;
&lt;li&gt; and the associated information like author, publisher, publication date, etc. (metadata).
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditionally, you would do this using a relational database, organized in folders under a hierarchy of directories and subdirectories. But because we’re talking about a vast amount of books, the search and retrieval process becomes cumbersome and time-consuming when you want to access a specific book.&lt;/p&gt;

&lt;p&gt;Instead, object storage is a better choice because the data is static or fixed (neither the contents of the books or the associated information will change).&lt;/p&gt;

&lt;p&gt;In this case, the objects (data, metadata, and ID) will be stored as “packages” in a flat structure that’s easily located and retrieved with a single API call. In the future, as the number of books will grow, you can aggregate storage devices into larger storage pools and distribute these storage pools for unlimited scale.&lt;/p&gt;

&lt;h2&gt; Object storage use cases &lt;/h2&gt;

&lt;p&gt;Besides the storage of unstructured data, object storage can be used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; storage of backup files, database dumps, and log files;
&lt;/li&gt;
&lt;li&gt; large data sets;
&lt;/li&gt;
&lt;li&gt; archiving files in place of local take drives.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt; Object storage vs. block storage vs. file storage &lt;/h2&gt;

&lt;p&gt;There are fundamental differences between file storage and object storage. File storage organizes data hierarchically inside directories, sub-directories, and files. It works great when the number of files is not very large and you know exactly where they’re stored. &lt;/p&gt;

&lt;p&gt;Object storage, on the other hand, typically presents itself via a RESTful API – there’s no concept of a file system. Instead, applications save objects (files + additional metadata such as the file name, the date it was created, and the date it was last modified) to the object store using the PUT or POST API, and the object storage saves the object somewhere in the system. &lt;/p&gt;

&lt;p&gt;Then, the application receives a unique key (think of it like the number you receive when you leave your coat in the cloakroom) for that object from the object storage platform which will be saved in the application database. If an application wants to fetch that object, all they would need to do is give the key as part of the GET API and the object would be fetched by the object storage.&lt;/p&gt;

&lt;p&gt;Some good examples of object storage APIs are those used by Amazon S3 (the default standard for object storage access), OpenStack Swift, and Azure Blob Service REST API. &lt;/p&gt;

&lt;p&gt;Because objects are stored in a flat address space, this makes it easier to locate and retrieve data across regions. This is why object storage has become the preferred solution for data archiving and backup.&lt;/p&gt;

&lt;p&gt;Files in a filesystem have a broader set of functions that can be applied to them, including appending data and updating data in place. The programming model is more complex than an object store and is, nowadays at least, almost always accessed programmatically via a “POSIX” style of interface. Generally, the use of CPU and memory is very efficient and there’s a mindset that the filesystem is a private local resource. &lt;/p&gt;

&lt;p&gt;Although NFS and SMB do allow for a filesystem to be made available as a multi-tenanted resource, developers usually avoid them because, sometimes, there are subtle differences in how they react compared to “local” filesystems despite their full support for POSIX semantics.&lt;/p&gt;

&lt;p&gt;Another big difference between file storage and object storage is that file systems are designed with consistency in mind, and are usually accessed over low to moderate latency (50 microseconds – 50 milliseconds) networks. In contrast, object stores are distributed over a shared infrastructure, connected together over low-bandwidth high-latency wide area networks, and their time to first byte can sometimes be measured in multiples of whole seconds. Performing lots of small (4K – 16K) random reads from an object store is likely to cause frustration and performance problems.&lt;/p&gt;

&lt;p&gt;Last but not least, maybe the biggest advantage object storage has is that you can be reasonably sure that anything you put in an object store will remain there until you ask for it again, and that it will never run out of space as long as you pay for what you use. These resources generally run at large scale with built-in replication, version control, automated recovery, etc., and only natural disasters will make the data disappear (but even then, you have easy options to make another copy in another location). &lt;/p&gt;

&lt;p&gt;When it comes to filesystems, especially those you’re expecting you or your local team to manage, you can only hope that everything is getting backed up and that it doesn’t fill up accidentally and cause everything to melt down when you can’t update your data anymore.&lt;/p&gt;

&lt;p&gt;Block storage is an alternative to file storage. It takes a file apart into equally-sized data blocks and then stores these blocks as separate pieces of data. Each piece of data has a different address, so they don’t need to be stored in a file structure. To access a file, the operating system uses the unique addresses to reassemble it. &lt;/p&gt;

&lt;p&gt;Want to find out more about &lt;a href="https://www.bunnyshell.com/blog/what-is-object-storage/?utm_source=Devto&amp;amp;utm_medium=Devto&amp;amp;utm_campaign=Object%20Storage"&gt;the benefits of Object Storage&lt;/a&gt;? Check out our blog!&lt;/p&gt;

</description>
      <category>database</category>
    </item>
    <item>
      <title>Top Issues Stemming From Multi-Cloud Adoption</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Wed, 04 Nov 2020 16:16:08 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/top-issues-stemming-from-multi-cloud-adoption-1g4f</link>
      <guid>https://dev.to/bunnyshell_eaas/top-issues-stemming-from-multi-cloud-adoption-1g4f</guid>
      <description>&lt;p&gt;Whether to &lt;strong&gt;optimize the costs&lt;/strong&gt; associated with running and managing their own infrastructure or to enable development teams to &lt;strong&gt;build more efficient apps&lt;/strong&gt;, most businesses today are interested in adopting a cloud infrastructure.&lt;/p&gt;

&lt;p&gt;This is why now we have quite a few cloud solutions on the market, from &lt;strong&gt;public clouds&lt;/strong&gt; such as Amazon Web Services, Microsoft Azure, and DigitalOcean, to &lt;strong&gt;private clouds&lt;/strong&gt; such as Azure Stack, VMWare, or HPE. &lt;/p&gt;

&lt;p&gt;In the early days, cloud adoption was about using a new approach to building applications. Today, however, implementing the cloud model is about the ability to &lt;strong&gt;embrace a multi-cloud architecture&lt;/strong&gt;. Each of the solutions available appeals to different types of businesses and business needs. They can even be combined to create &lt;strong&gt;hybrid clouds&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;And this is exactly where the problems start to appear. In their race towards creating the best cloud architecture for their organizational needs, companies &lt;strong&gt;sacrifice visibility&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Because their infrastructure is spread across multiple platforms and vendors, it’s almost impossible to have a clear overview. This lack of visibility leads to issues such as &lt;strong&gt;time-consuming infrastructure management&lt;/strong&gt; and even the &lt;strong&gt;impossibility of scaling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Find out more about &lt;a href="https://www.bunnyshell.com/blog/multi-cloud-adoption-issues-solutions/?utm_source=Devto&amp;amp;utm_medium=Devto&amp;amp;utm_campaign=Multi-cloud"&gt;the drawbacks of multi-cloud adoption&lt;/a&gt; on our blog.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>6 Online Magento Events You Can Attend From Home This Fall</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Mon, 26 Oct 2020 07:21:17 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/6-online-magento-events-you-can-attend-from-home-this-fall-1jd2</link>
      <guid>https://dev.to/bunnyshell_eaas/6-online-magento-events-you-can-attend-from-home-this-fall-1jd2</guid>
      <description>&lt;p&gt;2020 was a year like no other, and among the many things that we had to get accustomed to was the lack of offline events. If you’re a professional who likes to connect with the local community or attend conferences and learn from the best in your industry, we’re sure this was a bitter pill to swallow.&lt;/p&gt;

&lt;p&gt;Luckily, most organizers didn’t cancel their events; they simply moved them online. And from this, new opportunities emerged, as we’re now able to attend events we’d otherwise not be able to.&lt;/p&gt;

&lt;p&gt;Below we’ve compiled a list of all the Magento events happening in the next months, from local meetups to webinars and international conferences. Which ones are you most eager to attend?&lt;/p&gt;

&lt;h2&gt;
  
  
  Magento Events Calendar
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Meet Magento Poland 2020
&lt;/h3&gt;

&lt;p&gt;Meet Magento Poland is the biggest event in Middle-Eastern Europe dedicated to the business community circled around big eCommerce projects. It’s the place to be if you want to form lasting business relationships, work on mutual projects, and expand your network.&lt;/p&gt;

&lt;p&gt;The agenda for this 9th edition is split into two parts – business and technology, and will address subjects like Polish implementations, integration with Polish eCommerce service suppliers, and the development of global and Polish markets.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When&lt;/strong&gt;: Tuesday, October 27, 2020&lt;br&gt;
&lt;strong&gt;Where&lt;/strong&gt;: Online event&lt;br&gt;
&lt;strong&gt;Type&lt;/strong&gt;: Conference&lt;br&gt;
&lt;strong&gt;Details&lt;/strong&gt;: &lt;a href="https://meetmagento.pl/en"&gt;https://meetmagento.pl/en&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find out more &lt;a href="https://www.bunnyshell.com/blog/2020-magento-events/?utm_source=DevTo&amp;amp;utm_medium=DevTo&amp;amp;utm_campaign=leads&amp;amp;utm_content=6%20Online%20Magento%20Events%20You%20Can%20Attend%20From%20Home%20This%20Fall"&gt;online Magento events&lt;/a&gt; on our blog.&lt;/p&gt;

</description>
      <category>magento</category>
      <category>events</category>
      <category>eventsinyourcity</category>
    </item>
    <item>
      <title>How to set up Laravel in Ubuntu</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Thu, 10 Sep 2020 08:24:44 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/how-to-set-up-laravel-in-ubuntu-bob</link>
      <guid>https://dev.to/bunnyshell_eaas/how-to-set-up-laravel-in-ubuntu-bob</guid>
      <description>&lt;p&gt;Laravel is a very popular open-source PHP framework aimed at easy development of applications. If you are looking for a new PHP framework, you should give Laravel a try.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The following steps will show you how to install and run Laravel on an Ubuntu 18.04 LTS based Apache server. This tutorial works for Ubuntu 17.x as well. But for servers, you should prefer to use an Ubuntu LTS release like the current Ubuntu 18.04 LTS. Learn how to set up Laravel in Ubuntu. &lt;/p&gt;

&lt;p&gt;After showing you how to set up this PHP framework in Ubuntu, we’ll be showing you what it takes to set up your Laravel Application using the Bunnyshell Platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to set up Laravel in Ubuntu
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pre-Requisites
&lt;/h3&gt;

&lt;p&gt;We will assume that you have a basic server based on Ubuntu running.&lt;/p&gt;

&lt;p&gt;Before proceeding with the installation, it’s always a good idea to make sure your sources and existing software are updated.&lt;/p&gt;

&lt;p&gt;sudo apt-get update &lt;/p&gt;

&lt;p&gt;sudo apt-get upgrade &lt;/p&gt;

&lt;p&gt;Before Laravel, we need to install other components that are essential.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Apache and PHP 7.2
&lt;/h3&gt;

&lt;p&gt;Next step is to install PHP along with several extra packages that would prove useful if you are going to work with Laravel.&lt;/p&gt;

&lt;p&gt;sudo add-apt-repository ppa:ondrej/php&lt;/p&gt;

&lt;p&gt;sudo apt-get update&lt;/p&gt;

&lt;p&gt;sudo apt-get install apache2 libapache2-mod-php7.2 php7.2 php7.2-xml php7.2-gd&lt;/p&gt;

&lt;p&gt;php7.2-opcache php7.2-mbstring&lt;/p&gt;

&lt;p&gt;Even though Ubuntu’s own repository has PHP, it’s better to add a 3rd party repository here because it gets more frequently updated. You can skip that step and stick to Ubuntu’s version if that’s what you prefer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Laravel
&lt;/h3&gt;

&lt;p&gt;Before we finally delve into it, we also need Git version control to be installed. If you have it installed, you can skip the following step.&lt;/p&gt;

&lt;p&gt;Download and install Git for Linux:&lt;/p&gt;

&lt;p&gt;sudo apt-get install git&lt;br&gt;
Once the installation has successfully completed, the next thing to do is to set up the configuration details of the GitHub user.&lt;/p&gt;

&lt;p&gt;git config --global user.name "user_name"&lt;/p&gt;

&lt;p&gt;git config --global user.email "email_id"&lt;br&gt;
To install Laravel, we need to install Composer first. It is a tool for dependency management in PHP that allows you to package all the required libraries associated with a package as one. To install Laravel and all its dependencies, Composer is required. &lt;/p&gt;

&lt;p&gt;cd /tmp&lt;/p&gt;

&lt;p&gt;curl -sS &lt;a href="https://getcomposer.org/installer"&gt;https://getcomposer.org/installer&lt;/a&gt; | php&lt;/p&gt;

&lt;p&gt;sudo mv composer.phar /usr/local/bin/composer&lt;/p&gt;

&lt;p&gt;The curl command downloads composer.phar package to your /tmp directory. But we would want composer to run globally hence we need to move it to /usr/local/bin/ directory under the name ‘composer’. Now we can run composer from anywhere.&lt;/p&gt;

&lt;p&gt;To install Laravel, move to the public html directory on your system. Since we are on Ubuntu and using Apache, we will install it in the /var/www/html directory.&lt;/p&gt;

&lt;p&gt;cd /var/www/html&lt;/p&gt;

&lt;p&gt;sudo composer create-project laravel/laravel your-project --prefer-dist&lt;/p&gt;

&lt;p&gt;The above command will create a “your-project” directory with Laravel installation in it. Composer uses Git to download and install all the packages and modules that Laravel requires for functioning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring Apache
&lt;/h3&gt;

&lt;p&gt;Now that we have installed Laravel, we move onto the step of configuring Apache webserver.&lt;/p&gt;

&lt;p&gt;Give proper permissions to the project directory:&lt;/p&gt;

&lt;p&gt;sudo chgrp -R www-data /var/www/html/your-project&lt;/p&gt;

&lt;p&gt;sudo chmod -R 775 /var/www/html/your-project/storage&lt;br&gt;
Go to the /etc/apache2/sites-available directory and use the following command to create a configuration file for our Laravel install:&lt;/p&gt;

&lt;p&gt;cd /etc/apache2/sites-available&lt;/p&gt;

&lt;p&gt;sudo nano laravel.conf&lt;/p&gt;

&lt;p&gt;Add the following content to the file and close it after saving. Replace yourdomain.tld with the domain name of your website inside the file:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ServerName yourdomain.tld

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html/your-project/public

&amp;lt;Directory /var/www/html/your-project&amp;gt;

    AllowOverride All

&amp;lt;/Directory&amp;gt;

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We have to enable this newly created .conf file and disable the default .conf file that is installed with the default Apache install. Also, we need to enable mod_rewrite so that permalinks can function properly:&lt;/p&gt;

&lt;p&gt;sudo a2dissite 000-default.conf&lt;/p&gt;

&lt;p&gt;sudo a2ensite laravel.conf&lt;/p&gt;

&lt;p&gt;sudo a2enmod rewrite&lt;/p&gt;

&lt;p&gt;sudo service apache2 restart&lt;/p&gt;

&lt;p&gt;Your Laravel installation is now complete. Visit the IP address or domain name of your server with a web browser.&lt;/p&gt;

&lt;p&gt;Looking for an easier way? Check &lt;a href="https://www.bunnyshell.com/blog/how-to-set-up-laravel-in-ubuntu/"&gt;the full tutorial&lt;/a&gt; to see how to set up Laravel using Bunnyshell. &lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Introduction To Cloud Optimization</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Wed, 08 Jul 2020 13:30:33 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/introduction-to-cloud-optimization-41o1</link>
      <guid>https://dev.to/bunnyshell_eaas/introduction-to-cloud-optimization-41o1</guid>
      <description>&lt;p&gt;With the ever-increasing amount of data being shared, used, and processed, web app performance is more important than ever. &lt;/p&gt;

&lt;p&gt;At the same time, users expect applications to run seamlessly, and a bad experience can potentially damage business productivity.  &lt;/p&gt;

&lt;p&gt;Slow and unreliable web applications also mean higher resource consumption, which can lead to higher costs, diminished profits, and even serious damage to the company’s image.&lt;/p&gt;

&lt;p&gt;However, all these shortcomings can easily be avoided through cloud optimization. Specifically, through the continuous optimization of web applications at each critical level. &lt;/p&gt;

&lt;p&gt;This article is part of a Cloud Optimization Series where we discuss how you can configure your cloud environment to achieve the best results. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is cloud optimization?
&lt;/h2&gt;

&lt;p&gt;Every web app is unique, and so are its infrastructure requirements. Plus, these requirements change over time. &lt;/p&gt;

&lt;p&gt;Cloud optimization refers to the process of balancing these requirements and allocating the right resources so that an application can run efficiently. &lt;/p&gt;

&lt;p&gt;Some of these optimizations can also be automated through AI/ML, with little to no developer intervention. This means fewer resources to manage and a more streamlined infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why should you care about cloud optimization?
&lt;/h2&gt;

&lt;p&gt;There are 3 main reasons why you should care about cloud optimization:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Site performance &amp;amp; speed
&lt;/h3&gt;

&lt;p&gt;Web app optimization isn’t just nice to do, but a necessity. 47% of internet users expect websites to load in 2 seconds or less, and 40% will abandon a page that takes 3 or more seconds to load.&lt;/p&gt;

&lt;p&gt;An Aberdeen study also found that a 1-second delay in page load time equals 11% fewer page views, a 16% decrease in customer satisfaction, and 7% loss in conversions.  &lt;/p&gt;

&lt;h3&gt;
  
  
  2. Site ranking &amp;amp; SEO
&lt;/h3&gt;

&lt;p&gt;Your website’s SEO ranking is closely related to its loading speed. There are many factors that contribute to how high or low Google ranks a page (like how much time users spend on it and whether they find what they’re looking for), but among them, page speed is one of the most important.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Cost optimization
&lt;/h3&gt;

&lt;p&gt;On one hand, Financial Departments want to keep cloud spend in check. On the other hand, developers want to make sure their apps are always working at 100%, so simply reducing the allocated resources is not an option.&lt;/p&gt;

&lt;p&gt;The more complex your web app is, the more resources it will need, and they don’t come cheap. The efficient use of the tools and resources you have at your disposal can translate into savings and overall better management of your IT budget.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five levels of cloud optimization
&lt;/h2&gt;

&lt;p&gt;Cloud optimization techniques can be applied at each level of the cloud environment. We can, therefore, talk about 5 levels of cloud optimization, one at every level. If you want to dive into each of them, read the full article &lt;a href="https://www.bunnyshell.com/blog/introduction-to-cloud-optimization/"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudcomputing</category>
      <category>cloudoptimization</category>
    </item>
    <item>
      <title>How to deploy Discourse in Cloud</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Thu, 07 May 2020 11:03:25 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/how-to-deploy-discourse-in-cloud-125c</link>
      <guid>https://dev.to/bunnyshell_eaas/how-to-deploy-discourse-in-cloud-125c</guid>
      <description>&lt;h3&gt;
  
  
  As an open-source community forum platform, &lt;strong&gt;Discourse&lt;/strong&gt; proposes an out of the box approach. It is developed as a social interaction method looking to empower the community mindset. It uses an automatic trust system that encourages the members of the community to vote out trolls and spammers.
&lt;/h3&gt;

&lt;p&gt;In this step by step tutorial, we are going to show you how to deploy Discourse in Cloud by using Bunnyshell, the easiest tool to manage your technology stack on &lt;strong&gt;multiple clouds&lt;/strong&gt;. Since it is the same interface, the commands are similar on different clouds, including Azure and Digital Ocean, AWS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Log in your Bunnyshell account (cloud.bunnyshell.com) and open the Dashboard.&lt;/p&gt;

&lt;p&gt;On the left side of the page you will see the main menu where you can find environments (you can see the environment as projects in your business e.g tracking, production), package bundles (a package contains apps that are already configured and ready to use), and one-click apps (apps like Jorani,  Jenkins, WordPress a which are ready to deploy).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ_wZgQH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ftiwqov7z7jw8bsrmov5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ_wZgQH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ftiwqov7z7jw8bsrmov5.png" alt="Alt Text" width="512" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: Go to &lt;strong&gt;RESOURCES&lt;/strong&gt; and select &lt;strong&gt;One Click Apps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YNi1YGfK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pclmflwzvybipp9diayd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YNi1YGfK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pclmflwzvybipp9diayd.png" alt="Alt Text" width="289" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Here you will find a variety of apps that you can deploy on your cloud. If you can’t find the app you are looking for, you can use the search bar located on top of the apps. When you found the app you need, click on it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YBAEY61k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ngpq7qcgil45dqkbjyfc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YBAEY61k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ngpq7qcgil45dqkbjyfc.png" alt="Alt Text" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;: Press &lt;strong&gt;“Launch in Cloud”&lt;/strong&gt; button:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qyZTEyTQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uhh8xe2kmk44voy4gl5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qyZTEyTQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uhh8xe2kmk44voy4gl5k.png" alt="Alt Text" width="199" height="39"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;: Give the app a name, and choose: the location of the server, a virtual network, and the server size.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2oL9yAaK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cfli6d4a3jqsawf1nuit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2oL9yAaK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cfli6d4a3jqsawf1nuit.png" alt="Alt Text" width="880" height="965"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6&lt;/strong&gt;: Next, you need to look at the bottom of the page. There you will find the application secrets that you have to complete. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7DS0dCnN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o9zbk2wnrmiiv65nnzbx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7DS0dCnN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o9zbk2wnrmiiv65nnzbx.png" alt="Alt Text" width="880" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7&lt;/strong&gt;: Once you are done, all you have to do is to click on &lt;strong&gt;DEPLOY&lt;/strong&gt;. Then you will be redirected to a page where you can see that Discourse is deploying. You can click on View logs to see how the app is deployed.&lt;/p&gt;

&lt;p&gt;Your job here is done. You can now focus on creating the best forum for your visitor. Give yourself some time to learn how to use all of the functionalities of Discourse.&lt;/p&gt;

&lt;p&gt;See? You can easily deploy &lt;em&gt;Discourse&lt;/em&gt; in Cloud with Bunnyshell!&lt;/p&gt;

</description>
      <category>discourse</category>
      <category>opensource</category>
      <category>cloud</category>
      <category>automation</category>
    </item>
    <item>
      <title>How to use Docker with Bunnyshell</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Thu, 07 May 2020 10:50:29 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/how-to-use-docker-with-bunnyshell-4a49</link>
      <guid>https://dev.to/bunnyshell_eaas/how-to-use-docker-with-bunnyshell-4a49</guid>
      <description>&lt;p&gt;Docker is the most popular file format for Linux-based container development and deployments. If you’re using containers, you’re most likely familiar with the container-specific toolset of Docker tools, that enable you to create and deploy container images to a cloud-based container hosting environment.&lt;/p&gt;

&lt;p&gt;This can work great for brand-new environments, but it can be a challenge to mix container tooling with the systems and tools you need to manage your traditional IT environments. And, if you’re deploying your containers locally, you still need to manage the underlying infrastructure and environment.&lt;/p&gt;

&lt;p&gt;Bunnyshell allows you to automate Docker in your environment, enabling you to operationalize your Docker container build and deployment process in ways that you’re likely doing manually today, or not doing at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the provisioning configuration, Docker can be installed and configured as needed. First, let’s dive into provisioning for a moment, to better understand how it works with Bunnyshell.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provisioning refers to bringing a server in a desired state. Some resources handled by provisioning are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Packages that should be installed and configured in a certain manner&lt;/li&gt;
&lt;li&gt;Services that should be running and enabled at boot&lt;/li&gt;
&lt;li&gt;Users and Groups&lt;/li&gt;
&lt;li&gt;Crons and Log rotates&lt;/li&gt;
&lt;li&gt;File system components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The provisioning can be done using two mechanisms:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Use supported Bunnyshell packages
&lt;/h2&gt;

&lt;p&gt;The advantage of using these packages is that configuration and updates are easy to handle, with one-click install.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0lU6SLQu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ssdugwe2fjv0dsw2g0zh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0lU6SLQu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ssdugwe2fjv0dsw2g0zh.png" alt="Alt Text" width="880" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Use Bunnyconfig
&lt;/h2&gt;

&lt;p&gt;This method can be used for all other provisioning resources which are not natively supported in Bunnyshell.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--heu9u9wu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5fdsudv35cp1z62xeihk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--heu9u9wu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5fdsudv35cp1z62xeihk.png" alt="Alt Text" width="880" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to provision your servers with Docker, you would do that through Bunnyconfig.&lt;/p&gt;

&lt;p&gt;Next, let’s see how you can deploy a Docker image. Before, let’s take a look at how deployments work in Bunnyshell.&lt;/p&gt;

&lt;p&gt;Bunnyshell supports multiple applications on a single server each application having its own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source&lt;/li&gt;
&lt;li&gt;Secrets&lt;/li&gt;
&lt;li&gt;Deploy steps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Source
&lt;/h3&gt;

&lt;p&gt;The application source can be from Git or archives. You can also use the deploy steps described below to get the application source. Furthermore, an application can have no source and contain only deploy step configurations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Secrets
&lt;/h3&gt;

&lt;p&gt;Application secrets are sensitive data which needs to be accessible by the application. We store these secrets in an encryption service and allow the application to get its own secrets at deployment time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deploy steps
&lt;/h3&gt;

&lt;p&gt;There are three steps which are being executed when initiating a deployment action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exec-Once – Action which is executed only for the first deploy or at demand. This may include:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Global application configuration&lt;/li&gt;
&lt;li&gt;Install/Configure application dependencies&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Build Actions – Actions which are being executed every time before the application version switch. This may include:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Building, compiling, warmup, etc&lt;/li&gt;
&lt;li&gt;Passing application secrets in required locations: config file, web server configs&lt;/li&gt;
&lt;li&gt;Creating symlinks to other application components&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Post Deploy Actions – Actions which are being executed after the application version switch. This may include:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Restarting a service for example a web server&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--As8C8YYd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4irnr009aut7k6h4ld4j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--As8C8YYd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4irnr009aut7k6h4ld4j.png" alt="Alt Text" width="880" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Docker
&lt;/h2&gt;

&lt;p&gt;Bunnyshell can be adapted to easily deploy docker application.&lt;/p&gt;

&lt;p&gt;Using the provisioning configuration, Docker can be installed and configured as needed.&lt;/p&gt;

&lt;p&gt;For deploying the application you can do this in a number of ways.&lt;/p&gt;

&lt;p&gt;The way you construct/maintain infrastructure depends on the application business logic and on project constraints. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All containers run a different application which has to be maintained&lt;/li&gt;
&lt;li&gt;All containers run the same application, same configuration&lt;/li&gt;
&lt;li&gt;A batch of containers runs the same application, others don’t&lt;/li&gt;
&lt;li&gt;Container configuration must be changed or not on application deploy&lt;/li&gt;
&lt;li&gt;Application deploy in parallel on all containers or not (in case all containers contain the same application, same configuration)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assuming Docker is installed on one server and on that server will run all containers (created with docker-compose for example), being on one server you can only make &lt;em&gt;all at once deployment&lt;/em&gt; for any defined environment application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docker &amp;amp; Bunnyshell usecases:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Docker-compose + 2 containers + same application/configuration on all containers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s take this example. First steps will be to create a new environment of type single (only one server needed to run docker)&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;Environments -&amp;gt; New Environment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sQzaI7OZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/47fvt5c78c7svwwa87ou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sQzaI7OZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/47fvt5c78c7svwwa87ou.png" alt="Alt Text" width="880" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next step is to create docker configuration on a server.&lt;/p&gt;

&lt;p&gt;To do this, we use the concept of &lt;strong&gt;Application&lt;/strong&gt;. An application is an entity which can be installed on a server. The Application can contain source code (can import from &lt;em&gt;git/gitlab&lt;/em&gt; existing repository) or can be empty.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;When can the application be empty?&lt;/em&gt; Well, the reason we are discussing this is because an application means more than just a source code, it means commands which can be executed and configured using &lt;strong&gt;Bunnyconfig&lt;/strong&gt;. Imagine you just need some commands to update server configuration, for  this you don’t need any source code, just a way to run some commands.&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;Environment -&amp;gt; Application -&amp;gt; New Application&lt;/strong&gt;. Create a new one:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UqwTKYMu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xqpizewll19mev21wphs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UqwTKYMu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xqpizewll19mev21wphs.png" alt="Alt Text" width="880" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Also, the application can have a git source where the “docker compose” file is versioned.&lt;/p&gt;

&lt;p&gt;Use &lt;strong&gt;Bunnyconfig&lt;/strong&gt; &lt;em&gt;Build Actions&lt;/em&gt; to build the images. At this step you can also add application secrets to the configuration file in order to include them in the image.&lt;/p&gt;

&lt;p&gt;Use Bunnyconfig Build Actions to run the new image.&lt;/p&gt;

&lt;p&gt;You will be redirect to application page, go to &lt;em&gt;Deploy Actions&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RpQOo1Ua--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9qujtbqy56wbpzf6qn4t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RpQOo1Ua--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9qujtbqy56wbpzf6qn4t.png" alt="Alt Text" width="880" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All commands which have to run only once (on first deploy action of the application) should be configured with &lt;strong&gt;Bunnyconfig&lt;/strong&gt; on &lt;em&gt;Exec-Once Actions&lt;/em&gt;. Here you can add docker specific boot commands like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get Docker image from registry&lt;/li&gt;
&lt;li&gt;Create docker-compose file on server&lt;/li&gt;
&lt;li&gt;Run “docker-compose up -d” to start containers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All commands which have to run each time a deploy action is triggered should be configured in &lt;strong&gt;Bunnyconfig&lt;/strong&gt;  on &lt;em&gt;Build Actions&lt;/em&gt;. You can use this section to stop docker before build by implementing command &lt;em&gt;“docker-compose stop”&lt;/em&gt;, for example.&lt;/p&gt;

&lt;p&gt;All commands which have to run on Post Deploy Event, should be configured in &lt;strong&gt;Bunnyconfig&lt;/strong&gt; on &lt;em&gt;Post Deploy Actions&lt;/em&gt;. You use this section to start docker after deploy by implementing command “docker-compose up -d”.&lt;br&gt;
Now, let’s presume you have created an environment with an application used to manage Docker.&lt;/p&gt;

&lt;p&gt;How can we maintain the code executed into containers?&lt;/p&gt;

&lt;p&gt;The applications installed on all containers should have a hard/soft file system link on main server (path to the application). For simplicity we’ll consider 2 docker containers with two different applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Container 1 will run application 1, Container 2 will run application 2.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Application 1 has a path /var/www/app_1, Application 2 has path /var/www/app_2.&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;Environment -&amp;gt; Applications -&amp;gt; New Application&lt;/strong&gt; and create new application (git type). Do this for application 1 and application 2.&lt;/p&gt;

&lt;p&gt;After all applications were created, configure deploy steps (exec once, build actions, post build actions) for both applications.&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;Environment -&amp;gt; Applications -&amp;gt; Application 1&lt;/strong&gt; to deploy application 1.&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;Environment -&amp;gt; Applications -&amp;gt; Application 2&lt;/strong&gt; to deploy application 2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Container 1 will run application 1, Container 2 will run application 1.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this case, both containers runs the same application. You can use a shared folder between containers to update the same source code for  both of them using one application configured.&lt;/p&gt;

&lt;p&gt;In this case, both containers runs the same application. You can use a shared folder between containers to update the same source code for  both of them using one application configured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrap up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In conclusion, regardless of your scenario, whether you have a simple architecture or a complex one (with load balancers, clusters or hundreds of servers, docker, etc), Bunnyshell helps you create and maintain your entire devops pipeline: from creating servers, provisioning, application deployments, monitoring or ops management.&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>container</category>
      <category>docker</category>
      <category>devops</category>
    </item>
    <item>
      <title>#DevsTogether – How devs are working to help fight COVID-19</title>
      <dc:creator>Bunnyshell</dc:creator>
      <pubDate>Mon, 27 Apr 2020 10:41:50 +0000</pubDate>
      <link>https://dev.to/bunnyshell_eaas/devstogether-how-devs-are-working-to-help-fight-covid-19-p2c</link>
      <guid>https://dev.to/bunnyshell_eaas/devstogether-how-devs-are-working-to-help-fight-covid-19-p2c</guid>
      <description>&lt;p&gt;These last few weeks, it seems like the physical world has been replaced by the virtual. &lt;/p&gt;

&lt;p&gt;As more and more changes take place in how people live and work around the world, the Cloud is a mighty force against the coronavirus pandemic.&lt;/p&gt;

&lt;p&gt;Over time more companies have given their employees the right to work from home. That’s led to an increase in demand and usage of Cloud services and collaboration tools. It’s also led these companies to put out freemium offers meant to attract even more users. &lt;/p&gt;

&lt;p&gt;Take Microsoft for example, who’s offering its Office 365 free for 6 months, following an announcement of a &lt;a href="https://azure.microsoft.com/en-us/blog/update-2-on-microsoft-cloud-services-continuity/"&gt;775% increase in demand&lt;/a&gt; for its cloud services in regions enforcing social distancing and/or shelter-in place. &lt;/p&gt;

&lt;p&gt;The unprecedented demand has also led to outages. Just this month a &lt;a href="https://www.datacenterdynamics.com/en/news/google-cloud-suffers-brief-outage-bringing-down-gmail-snapchat-and-nest/"&gt;Google Cloud outage&lt;/a&gt; caused failures at Gmail, Snapchat and the smart home company Nest, among other services.&lt;/p&gt;

&lt;p&gt;From the fast adaptation to working from home to businesses that have found themselves needing to migrate to Cloud overnight, these daily life changes are showing up in patterns of Cloud use around the world. Luckily, its most faithful developers have stepped up to the challenge. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We’ve put together a list of some of the most impactful initiatives where devs have contributed in the fight against COVID-19.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Are you a dev looking to make your own contribution? We’ve also made sure to include a few freemium resources at the end for you that can get you started in the fight against COVID-19.&lt;/em&gt;&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  ## Table Of Contents&lt;br&gt;
    * How devs are helping in the fight against COVID-19&lt;br&gt;
    * Freemium Dev Resources to fight COVID-19&lt;br&gt;
    * How has the Coronavirus pandemic impacted the Cloud?&lt;br&gt;
    * How Cloud Automation can help &lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  How devs are helping in the fight against COVID-19&lt;br&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0U6TcqAA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.bunnyshell.com/wp-content/uploads/2020/04/annie-spratt-qckxruozjrg-unsplash-scaled.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0U6TcqAA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.bunnyshell.com/wp-content/uploads/2020/04/annie-spratt-qckxruozjrg-unsplash-scaled.jpg" alt="devs against COVID-19" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.bunnyshell.com/en-covid-19/"&gt;Bunnyshell offers free migration to Cloud&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Bunnyshell, a SaaS platform that simplifies the usage of Cloud infrastructure, is migrating companies affected by COVID-19 to cloud for free.  &lt;/p&gt;

&lt;p&gt;The platform helps companies by automating repetitive cloud tasks, from coding to production to maximize applications performance, speed and uptime with essential auto-scaling functions.&lt;/p&gt;

&lt;p&gt;For all the SME that have been economically affected by the virus and for the Medical, NGOs and Educational companies that are active in finding a solution to the COVID-19 virus bunnyshell aid their recovery and evolution with free cloud migration. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://developer.ibm.com/callforcode/get-started/covid-19/"&gt;IBM’s 2020 Call for Code&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The tech giant has expanded the 2020 Call for Code Global Challenge to take on COVID-19. Developers and problem solvers are encouraged to submit their open source solutions by April 27th for early deployment and to make an immediate and lasting impact.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://blog.aboutamazon.com/innovation/aws-launches-initiative-to-accelerate-covid-19-diagnostics-research-and-testing"&gt;AWS initiative&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A global initiative to accelerate COVID-19 diagnostics, research, and testing with Amazon Web Services committing $20 million for customers working on diagnostics solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://techcrunch.com/2020/04/10/apple-and-google-are-launching-a-joint-covid-19-tracing-tool/"&gt;Apple &amp;amp; Google tracking tool&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Apple and Google’s engineering teams have banded together to create a decentralized contact tracing tool that will help individuals determine whether they have been exposed to someone with COVID-19.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://codevid19.com"&gt;Codevid-19 – Dev Hackaton against COVID-19&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The world’s first pandemic hackathon. Projects compete in four problem areas:&lt;/p&gt;

&lt;p&gt;Supporting Crisis Response&lt;br&gt;
Understanding The Pandemic&lt;br&gt;
Social Distancing &amp;amp; Isolation&lt;br&gt;
Scarcity &amp;amp; The Economy&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.usdigitalresponse.org"&gt;U.S. Digital Response&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A volunteer tech industry veteran run initiative that’s helping governments find technology, communications, and operations volunteers.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.synology.com/en-us/company/news/article/PR_VPNPlus/Enabling%20Remote%20Work%20-%20VPN%20Plus%20Licenses%20Free%20Until%20September%2030,%202020"&gt;Synology offers VPN Plus Licenses for Free&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Starting from April 6, Synology VPN Plus licenses will become free to purchase until September 30, 2020. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.arubanetworks.com/assets/promo/Healthcare-Connectivity-Bundle.pdf"&gt;HPE Aruba provides network help to floating hospital in Italy&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Aruba, a Hewlett Packard Enterprise company, has installed network infrastructure on the GNV Splendid, a passenger ferry that has been turned into a floating hospital to help fight the COVID-19 pandemic.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://covid-oss-help.org"&gt;COVID-19 Open-Source Help Desk&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Expert users, developers, maintainers and community leaders of major open source scientific computing software packages used across scientific fields offering virologists, epidemiologists, or researchers working on a cure that make use of open-source scientific computing software to help them use their time most effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://fossresponders.com"&gt;FOSS Responders&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A community looking to help those that COVID-19 is impacting, in the open source industry. Help may come in many forms such as advice on how to cancel and negotiate your event contracts, how to manage digital events, and individual or organizational financial support.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.blog/2020-03-23-open-collaboration-on-covid-19/"&gt;Open GitHub collaboration on COVID-19&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Devs collaborating on some of the most impactful open source projects for tracking, understanding, and responding to COVID-19.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://covidtracking.com"&gt;The COVID Tracking Project&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A project launched out of The Atlantic to fill a major gap in publicly available COVID-19 testing data, that collects and publishes the most complete testing data available for US states and territories. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/pcm-dpc/COVID-19"&gt;COVID-19 Italia – Monitoraggio situazione&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Italians have open sourced their COVID-19 data, providing a dashboard that tracks infections in real-time.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/mhdhejazi/CoronaTracker"&gt;CoronaTracker&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The app for iOS &amp;amp; macOS includes maps and charts, using the latest data available. It updates automatically to reflect current changes and provides two levels of detail for tracking countries or the state of individual cities. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://foldingathome.org/covid19/"&gt;Folding@Home&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Devs are lending their computing power to the cause. Folding@Home provides software that runs on the computer in the background. It is available for Windows, macOS, and 64bit and 32bit Linux. All data is then made available to the public.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://cord19.vespa.ai"&gt;CORD-19 Search&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Verizon Media (formerly Yahoo) is giving its new Vespa search engine a chance to show what it can do against CORD-19, the collection of scholarly articles about COVID-19. The company is inviting the public to try using Vespa against the data set.&lt;/p&gt;

&lt;h1&gt;
  
  
  Freemium Dev Resources to fight COVID-19
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7q-PhgWX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.bunnyshell.com/wp-content/uploads/2020/04/fabian-grohs-dc6pb2jdaqs-unsplash-scaled.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7q-PhgWX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.bunnyshell.com/wp-content/uploads/2020/04/fabian-grohs-dc6pb2jdaqs-unsplash-scaled.jpg" alt="devs against COVID-19" width="880" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/helpfulengineering/free-for-covid"&gt;GitHub – Free for COVID&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A collection of tools and software provided for free for those contributing to alleviating the COVID-19 pandemic.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/HankiDesign/Remote-Work-and-Study-Resources"&gt;GitHub – Remote Work &amp;amp; Study Resources&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Free products/services and premium services that offer free plans for schools, companies and individuals affected by the pandemic.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://developers.arcgis.com"&gt;ArcGIS for Developers&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A suite of no-cost location services and SDKs that devs developing coronavirus disease COVID-19 apps can use in their solutions. &lt;/p&gt;

&lt;h1&gt;
  
  
  How has the Coronavirus pandemic impacted the Cloud?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BV1fJyYo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.bunnyshell.com/wp-content/uploads/2020/04/markus-spiske-3_svgdspste-unsplash-scaled.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BV1fJyYo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.bunnyshell.com/wp-content/uploads/2020/04/markus-spiske-3_svgdspste-unsplash-scaled.jpg" alt="devs against COVID-19" width="880" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ways this epidemic has impacted the Cloud and how devs have stood up against COVID-19 offers a clue into what the future might bring. So what does the new normal in Cloud Infrastructure look like? &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Migration &amp;amp; Portability&lt;/strong&gt; – For organizations playing catchup on cloud migration, that are recognizing the unquestionable value that the Cloud delivers. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Consolidation&lt;/strong&gt; – for infrastructure operators struggling to maintain SRE programs and keep services running under increased load.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Team Productivity&lt;/strong&gt; – a shift towards automation, which can mask the complexity of infrastructure and empower app developers to create, deploy and manage apps without the headache of dealing with infrastructure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Increased Agility&lt;/strong&gt; – the search for an agile framework that not only supports deployment of new services and quickly pivots to new economic and market realities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Horizontal Scaling&lt;/strong&gt; – as more and more individuals start working from home and using tools that are cloud native, the need for better apps on faster, more numerous servers has left some businesses looking for scaling solutions.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  How Cloud Automation can help
&lt;/h1&gt;

&lt;p&gt;Companies that rely on cloud infrastructure to keep up with their needs have found that the effort to maintain operations during the COVID-19 pandemic puts cloud computing at center stage.&lt;/p&gt;

&lt;p&gt;This means facing a “what if” scenario made real that shows the worth of being able to scale up at a moment’s notice with the cloud.&lt;/p&gt;

&lt;p&gt;Those running their own infrastructure may hit limits on what they can provide and possibly be forced to turn away customers or see some service degradation. Businesses that have automated scaling solutions in place are more likely to deliver, which is a key value proposition.&lt;/p&gt;

&lt;p&gt;Perhaps the most valuable thing about cloud automation is the flexible options it provides in this time of crisis, when companies need solutions they can implement and test quickly. &lt;/p&gt;

&lt;p&gt;A vast, never-ending network of cloud-based systems enabled to stay up and running throughout this pandemic, to maintain service thanks to layers of planning and redundancies through automation.&lt;/p&gt;

&lt;p&gt;The post #DevsTogether – How devs are working to help fight COVID-19 appeared first on &lt;a href="https://www.bunnyshell.com/"&gt;bunnyshell.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.bunnyshell.com/devstogether-covid-19/"&gt;Article source&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>coronavirus</category>
      <category>covid19</category>
    </item>
  </channel>
</rss>
