Introduction to cloud computing

by Anna Kane , 5 months ago

In the past decades, hard drives were the major storage device for data and information. And should any disaster occur, the entire data are lost forever – no means of retrieval whatsoever.  No wonder most businesses do not rely on hard drives as storage means anymore. 

Have you ever wondered how businesses – small, medium, and big businesses store their data? Well, the answer is the ‘cloud’.

Okay, that sounds strange. Cloud is a term which simply means ‘online’. Information said to be stored in the cloud are those information stored online.
Cloud computing, which is also known as security in the cloud, is a sub-category of a larger body, information security, which employs different sets of technologies in the protection of data and information stored online.

Thanks to technology, most organizations (70 % as recorded by the Cloud Security Agency, CSA.) across the globe, now operates in the cloud – i.e. run their programs online and store their data and information online too. So much safer I must add. 

As safe as cloud computing may be, it also has a few drawbacks. Just before then, let’s see some of the benefits of cloud computing to businesses – small, medium, and big businesses alike.

Benefits of Cloud Computing

Cloud computing or security in the cloud provides its users with lots of benefits. Some of which are:

  • Quick and Easy Access to Information: Cloud computing provides its users with easy access to data and information as they are stored on a single desktop computer. Any authorized party can easily access the company’s data anywhere across the globe.
  • It Ensures Better Business Continuity: Retrieving data after a natural disaster is made possible with cloud computing. These natural disasters – earthquake, flood, fire outbreak, power outage, etc., are bound to occur at some point in time but have no fear as your data are secured in the cloud. You just have to log in from a new device and retrieve the vital data needed for continuity of your business. 
  • Enhanced Service: Incorporating the cloud computing system enables data sharing among users. This helps increases the quality of your customer service as you can integrate different software and features to serve them better.
  • It Lowers IT Cost: Before now, a set of individuals are employed to manage a company’s data and programs. Cloud computing serves most of the functions such as software upgrade, data backups, and patches; as such you will need just a few IT staffs. Consequently, saving you more revenue.   
  • Drawbacks of Cloud Computing
  • Although securing your data in the cloud provides you with lots of benefits, it also exposes you to some risk. This is why it is advisable to pay attention to security on the cloud (securing your online account) as much as security in the cloud.
  • Some of the security concerns associated with cloud computing include;
  • Data Breaches
  • Denial of Service (DOS) attack
  • Hijacking of account 
  • Data loss
  • Malware injection

Useful Tips for Securing your Data in the Cloud

Most organizations have been victims of different cybercrimes because they pay less attention to security on the cloud. Security on the cloud is a topic of concern among small, medium, and big firms. Sadly, the individual businesses have got more roles to play than the service providers.
Here are some useful tips you can employ in securing your data in the cloud.

  1. Be sure to use strong passwords on your account. It is better to make your password as long as possible. This makes it difficult for cybercriminals to guess correctly. Also, the password should be alphanumeric. Addition of symbols is safer too.
  2. A good understanding of social engineering attacks is necessary for the safety of your data in the cloud. Employees and employers are to be educated on the various forms of phishing and social engineering attacks so that they know how to deal with such attacks when they occur.
  3. Thankfully, most cloud software now requires the use of two-factor authentication, i.e. the use of other forms of verification besides password and username. This makes it difficult for cybercriminals to hijack your cloud account.
  4. Anti-malware or anti-virus is also useful in protecting your data online. In fact, your business is at risk without anti-malware software in your devices – phones, computers, tablets, etc. Virus come into your devices through different means, it could be through an email, a link, or an app. This anti-virus software help protect your devices from such attacks.


Register and post a comment

  • 3 months ago
    Sebastian Schiau

      

  • Latest articles

    Battle of Frontend - Hottest frameworks at the moment


    Web applications are getting more powerful, therefore the tools for building them need to increase in power too. Web frameworks are becoming better and they make the whole web development process a piece of cake.

     

    While the availability of different frameworks is cool, it generates confusion among developers. Questions like “Which is the best framework?”, “Which is the easiest to learn?”, “Which framework do companies use more?”, are raised.

     

    In this article, we would have a brief overview of the three big frontend web development frameworks, Angular, React, Vue.

     

    We would be looking at the three frameworks in alphabetical order.

     

    Angular

    Open sourced in 2010, Angular is a powerful web framework created by Misko Hevery. Angular was built as a side project while Hevery was a developer at Google.

    Over time, this framework has experienced a lot of changes. Most notable is the dropping of JavaScript to use TypeScript which led to a change in the framework’s name, from AngularJS to Angular.

     

    Advantages

    1. It is a MVC framework
    2. It offers great performance
    3. It compiles fast
    4. It has a large user community
    5. Resources are available and are easy to use

     

    Disadvantages

    1. It is quite complex
    2. Knowledge of TypeScript is needed
    3. It doesn’t fare well with Search Engine Optimization



    React

    Open sourced in 2013, React was created by Jordan Walke. Just like in the case of Angular, React was created while Walke was an employee of a big company, this time Facebook.

    Unlike Angular, React is not a framework, instead it’s library. React was built under the influence of XHP which serves as an HTML component for PHP.

     

    React uses JSX, which adds XML/HTML syntax to React applications. The main objective of creating the library was to build HTML components and it does it well.

     

    Advantages

    1. React is very lightweight
    2. It is the best for building components
    3. It is easy to learn
    4. It starts up quickly

     

    Disadvantages

    1. React uses JSX, which could make development strange
    2. While it is easy to learn, it takes a long time to master
    3. Since it is mainly used to build components, it needs other tools to be integrated to create features such as routing, form validation etc.

     

    Vue

    Open sourced in 2014, Vue was created by Evan You. Unlike React and Angular, Vue wasn’t built with the influence of any big company.

     

    Vue is more like a combination of React and Angular as Evan You merged what he felt were the best components of both frameworks. Vue is used to build event driven web applications using native web APIs, HTML templates and CSS.

     

    Advantages

    1. Vue offers great performance
    2. It has a great user community
    3. It is easy to use through the CLI it provides
    4. It has a large number of learning resources

     

    Disadvantages

    1. It requires third party tools to build a complete application
    2. Its Chinese background means some resources are not in English

     

    Conclusion

    Angular, React and Vue are powerful frontend web frameworks, they also have their best use cases.

    To wrap it up, let’s take a look at some of them: Angular is the best tool to use for single page applications, React is the best for DOM management, Vue is best for building event driven web applications.

     

    Top 10 tech trends of 2019

    Ever since the evolution of technology started, we’re in a constant state of change. Every year we make some of the assumptions and estimates regarding the new technology trends for the New Year. Most of those estimates are in actual are informed guess, based on the ongoing work in the variety of fields. So, if you love to stay update or if you love the latest technology trends, this piece of writing is all about your fantasies.

    In this writing output, we will discuss some of the most awaiting tech trends of 2019. So, keep on reading to know more.


    1.     Data privacy

    With the involvement of the internet in the most vital decision of our lives, our privacy has become more prone to privacy breaches.  Among all internet of things devices, it becomes effortless for hackers to perform data breaches. With the new tech trend discussion going on, here are the two most positive and latest trend in data security. Zero knowledge proof is the technological trends that will enable the users to enhance the transactions security with the use of mathematics.

    Along with Zero Knowledge Proof, the trendsetters are also working towards securing the businesses with the continuous adapting technology-CARTA. CARTA is the abbreviation for Continuous adaptive Risk and Trust Assessment, and it offers the maximum protection by adopting according to the nature of business transaction and experiences.


    2.     Artificial intelligence

    Automation is the new buzz in the market and every business regardless of the nature of service offering is indulge in it. Artificial intelligence is the part of automation and no matter how old this technology might get. But the advancement in it will always pose the potential to change our lives for good. The concept of artificial intelligence comprises machines that portray intelligence akin to human and perform task accordingly. With the further advancements in the artificial intelligence, now we will make the machine capable of making a decision based on experience.


    3.     Machine Learning

    Machine learning is a type of artificial intelligence. As we have mentioned above that now, the developers are moving towards making the machine capable of decision making this is what machine learning is all about. With the help of machine learning, now the machines do not have to depend on the formulas, codes and algorithms to perform tasks as now they can perform according to the experience and situations.


    4.     Robotic process automation

    The automation process does not end t artificial intelligence or machine learning, but it goes way beyond that to RPA. RPA is the technological facility that offers ease and convenience to the businesses and individual as a whole. It assists with the automation of the processes, facilitating the transactions and dealing with large piles of data. In 2019, we will witness more advancement into the field of RPA, although it is posing a threat to the employment status across the globe, however, at the same time in the automation field, it is creating lucrative opportunities as well.


    5.     Blockchain

    Well, yes, most of you will think that it is related to cryptocurrencies till now. However, with the changing pattern of security and demand for a secure and safe working environment, the blockchain has become one of the most sought-after technology.

    The blockchain is the term used for the process which is widely in use for the protection of transaction information in cryptocurrencies. A blockchain will allow only the flow of information in one direction i-e in forwarding direction and thus protect the data from being misused. Due to the one way flow of data, cryptocurrencies are the most secure form of the transaction now, and the indulgence of blockchain process in another field will help to gain the same safety.


    6.     Virtual reality and augmented reality

    In the start, virtual reality only offers the creativity in the field of games. However, with the new insight into the field of virtual reality, now the developers are more concerned with the use of this technology in almost every other field. Virtual reality is something that tends the person to immerse into a certain environment where on the other hand augmented reality offers a more enhanced environment. The use of VR and AR in 2019 will be more inclined to be used in security, medical and training fields.


    7.     Internet of things

    Isn’t it feel fantastic to control most of your life through a simple internet connection and a device? Well, the internet of things is all about connecting various things through a single platform. The advancement in the IoT leads us to control our lives, our appliances and protect our homes. This cloud technology is connecting the various devices over cloud through simple internet connectivity and that pretty much our future.


    8.     Edge computing

    One step ahead of cloud computing, edge computing offers the users a facility of small data centers, It can process the data without being connected to the centralised station. This not only helps us to manage the large piles of data but also save lots of time.


    9.     3D printing

    By just adding the little bit of information in the system now you can make any 3D model. In 3D printing, a model is prepared under the supervision of a computer in which the material is added together, and then the machines follow the commands from a computer.


    10.   Digital twins

    Who does not want to be at two different places at the same time? Well, we all love to experience it. The digital twins are the digital representation of anything in the real world. In 2019, we will see more advancement into this technology to get more on the real world affairs. 


    So, we have mentioned some of the most expected trends that are going to be on top in the year 2019. If you know any new trend or want to share your experience with any of this technology, we are more than hearing all you need is to do let us know about it in comments.

    Queuing emails in Laravel with Background Jobs

    So most of the web apps nowadays are featuring email notifications, newsletters and all kinds of different email implementations.  Laravel eases up the process a lot with its suit of tools that allows you to send email via any driver you wish, template and customize your emails and even queue them for later execution.


    The queue functionality comes in handy in particular when you want to speed up up your application by not having to wait for server response when doing requests that are sending emails. This basically allows emails to be sent asynced on the server side. Couple examples of use cases:


    • When for example pressing on the register button, the UI won’t have to wait for the server response, while the server is sending the email.
    • When your server / service sends your email to slow.
    • When sending large number of emails, maybe even bypassing Mailgun’s 100 emails / hour limit.


    But enough with the long talk and let’s get to business. For this particular example, I have used Laravel 5.4, but this should be pretty much the same on newer and even older versions. Let's get started!

    Step 1. For easier to edit code in the future, we will use a Service provider to easily dispatch email actions across our controllers. To get the based of your provider, you can run the following command

    php artisan make:provider EmailProvider

    After the base file has been created, make sure it looks something like this

    <?php
    namespace App\Providers;
    use App\Jobs\SendEmail;
    use Illuminate\Support\ServiceProvider;
    class EmailProvider extends ServiceProvider
    {
        /**
         * Bootstrap the application services.
         *
         * @return void
         */
        public function boot()
        {
            //
        }

        /**
         *
         * Generic email template method
         *
         * @param $email
         * @param $header
         * @param $content
         */
        public static function sendEmail($subject, $title, $content){
            dispatch(new SendEmail($subject,$title,$content));
        }

        /**
         * Register the application services.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    }

    Step 2. Create a Laravel Job

    php artisan make:job SendEmail

    After the base file has been created, make sure it looks something like this

    <?php
    namespace App\Jobs;
    use App\Mail\GenericEmail;
    use Carbon\Carbon;
    use Illuminate\Bus\Queueable;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Queue\InteractsWithQueue;
    use Illuminate\Contracts\Queue\ShouldQueue;
    use Illuminate\Foundation\Bus\Dispatchable;
    use Mail;
    class SendEmail implements ShouldQueue
    {
        use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
        public $emailSubject,$emailTitle,$emailContent;
        /**
         * Create a new job instance.
         *
         * @return void
         */
        public function __construct($emailSubject,$emailTitle,$emailContent)
        {
            //
            $this->emailSubject = $emailSubject;
            $this->emailTitle = $emailTitle;
            $this->emailContent = $emailContent;
        }
        /**
         * Execute the job.
         *
         * @return void
         */
        public function handle()
        {
            //
            Mail::to($user->email)->later(Carbon::now()->addMinute(1), new GenericEmail($this->emailSubject,$this->emailTitle,$this->emailContent));
        }
    }

    Step 3. Create a Mailable Class

    php artisan make:mail GenericEmail


    <?php
    namespace App\Mail;
    use Illuminate\Bus\Queueable;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Contracts\Queue\ShouldQueue;
    class GenericEmail2 extends Mailable
    {
        use Queueable, SerializesModels;
        public $subject = 'Mass email';
        public $title = 'Email header';
        public $content = 'Email content';
        /**
         * Create a new message instance.
         *
         * @return void
         */
        public function __construct($emailTitle,$emailTitle,$emailContent)
        {
            //
            $this->subject = $emailTitle;
            $this->title = $emailTitle;
            $this->content = $emailContent;
        }
        /**
         * Build the message.
         *
         * @return $this
         */
        public function build()
        {
            return $this
                ->subject($this->subject)
                ->view('emails.template');
        }
    }

    Step 4. Create an email template file in a directory like resources/views/emails/template.blade.php with a content like


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" style="font-size: 100%; font-family: 'Avenir Next', 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; line-height: 1.65; margin: 0; padding: 0;">
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width" />
    <!-- For development, pass document through inliner -->
      </head>
      <body style="font-size: 100%; font-family: 'Avenir Next', 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; line-height: 1.65; width: 100% !important; height: 100%; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; background: #efefef; margin: 0; padding: 0;">
      <h2>{!!$emailTitle!!}</h2>
      <p>{!!$content!!}</p>
      </body>
    </html>

    Now you should be be able to send queued emails from wherever you want in your app with something like

    EmailProvider::sendGlobal(‘This is a test email’,’Welcome friend’,’Just testin things around’);


    But before actually sending the emails, we will need to configure laravel and our server to run the service worker continuously and send actually send the previously queued emails.
    Now, there are many options you can chose from when it comes to service worker drivers, including self hosted worker, AWS or Redis.

    In this example we will work with a self hosted worker, so let’s start by creating the tables it needs to store the tables.

    php artisan queue:table
    php artisan migrate


    Then open up your dot env file and make sure the following entry is present
    QUEUE_DRIVER=database

    Bonus: Installing service supervisor

    Now, in real life usage, on sites with decent amounts of traffic the service is very likely to fail from time to time, so Supervisor makes sure the worker gets restarted if this happens.

    This time I am using a Centos system, but the commands should be relatively similar on *nix systems.

    easy_install supervisor
    yum install supervisor
    echo_supervisord_conf > /etc/supervisord.conf
    nano /etc/supervisord.conf

    And add following content:

    [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=/usr/bin/php /var/www/html/artisan queue:work --sleep=3 --tries=3 --daemon
    autostart=true
    autorestart=true
    numprocs=2

    Create log file

    sudo mkdir -p /var/log/supervisor/laravel/
    sudo touch /var/log/supervisor/laravel/worker.log

    Start the service

    sudo service supervisord start
    sudo supervisorctl reload

    And enable it at system start

    systemctl enable supervisord

    If you have config changes

    supervisorctl reread
    supervisorctl update
    supervisorctl restart all

    That’s it for this tutorial! If everything went well, then your Laravel email setup should be able to handle all the emails you need.

    If you are having any questions, don’t hesitate to ask me via a comment!