The Web has matured to be comprised of sophisticated web applications to the likes of interactive 3D visualization, audio, graphic, video software and games. Since the web has long surpassed the original ideas of a simple platform to openly and freely exchange documents across the world, security and efficiency have become more crucial then ever before.
Performance on the web is more important then ever. The need to define a smaller time efficient speedy format that can take advantage of the modern hardware capabilities that exist in mobile and internet connected devices.
Here enters WebAssembly. WebAssembly aims to address these problems on the web. It is the first solution for low-level code on the web that delivers on all of the above design goals.
What is WebAssembly? Why should I care?
WebAssembly or WASM is a Web standard that defines a binary format and a corresponding assembly-like text format for executable code in Web pages.
WebAssembly gives developers the low level building blocks that can be used to construct complex applications on the web that traditonally would never be considered.
Video production in your web browser.
We should expect to see more and more complicated applications appearing on the web. We are seeing games, VR, music and video production applications. Did you ever consider editing video in the browser? This is becoming more and more possible.
It will be interesting to see what is developed with these powerful promises. I plan to follow the topic and explore working with it and post more about it when time permits.
Serverless architecture allows companies to focus on their apps rather than the infrastructure. It's a no maintenance solution. Well technically there is maintenance of some kind but not neccessarly the “Oh gotta patch that server because of some vulnerability.” You let the cloud computing service providers handle it.
These services that make up Serverless are normally called PaaS (platform as a service), FaaS (function as a service) or BaaS (backend as a service) and probably some other acronyms not mentioned here. I don’t think there is a single definition for what Serverless means however trying to put it simply, it is when your application depends on a 3rd party service or application typically "in the cloud" to manage all or some functionality server side and is billed as used or in some entry levels actual is free. Services like databases, authentication, or even infrastructure that can be brought up on demand when needed. Scaling when needed, provision resources when needed and removing them when not.
All of these things fall into serverless.
Some charachteristics include, your application lives in a container that doesn't care about the actual server the code runs on. A new instance could be spawned and ran until there is no longer a demand and then it is destroyed. The app doesn't need to change or be aware of this only abstracted from the server. All of these things fall into serverless.
Serverless can bring powerful features, probably cheaper and a lot easier then what may have required traditionally the need for experienced back end developers and system admins to build out. Serverless brings much more possibilities for front end developers without the need for more experienced professionals. This concept can also allow smaller start ups to bring there product to market much faster then traditionally having to manage and build out their infrastructure from scratch.
Implementation of a serverless architecture may also reduce the operational cost of and complexity of a modern application. You are in a way outsourcing your infrastructure. Serverless allows for you to pay for managed servers, database’s and logic that would normally all have to be managed by you. Leveraging serverless can prove to bring reduced development costs. Writing your own authorization functionality for your application would add to the overall cost of your application. Instead leveraging serverless here with something like Auth0 which allows you to integrate authentication functionality without having to develop it. Management of your applications database, reporting analytics, messaging, authentication, and more with something like Firebase. Maybe you handle a lot a images on your site, a service like Cloudinary can do all the optimization and hosting for you. Perhaps your website or application needs to send email, a service like Mailgun can help you do this.
Serverless is not a brand new concept but it seems to have really caught on and more and more services seem to be available for developers to leverage. These services are becoming almost like building blocks that can be snapped in when needed for their application. Ultimatly I see this lowering the entry level and cost to build complex scalable applications.
In my effort to provide a basic explanation, it is a list of records securely connected to each other by means of cryptography. Each block in the chain contains some data about the previous block. Transactions that make up these blocks are on publicly openly distributed ledger making it difficult for modification and easy for verification. It forms a record or blockchain that once created can not be altered without modification of all blocks after.
The public blockchain is stored across a peer-to-peer network eliminating a central point of failure. The nature of the decentralized network used to store a publicy accessible blockchain allows for the data to be transparent to all users. The lack of a centralized system is beneficial in that there is no one entity acting as the maintainer of trust. Trust is based on the network and each user in the network.
A private blockchain is essentially a vetted system where an actor or perhaps a number of actors determine who has access to what and what is allowed. It has been described by some has no more than like a database. Private blockchains are of interest to some companies that are interested in using blockchain for record keeping but don't want that information accessible to the public.
Blockchain using smart contracts allows for an action to be triggered according to the terms in the contract without any human interaction. This can make traditional means of fullfilling and respecting a contract a thing of the past. It will be interesting to see what is created with this concept.
I have heard where we are presently with blockchain technology being compared to the internet of early nineties and that it will become bigger then the internet of now. As I write this post Bitcoin has recently fallen to its lowest for 2018 around $5800 a coin. The buzz in the news has certainly quieted since early in the year, I wonder and ask myself how long till its all the rage in the mainstream again. I'm surely going to be watching.
Any questions, comments or suggestions please feel free to drop me a message via the contact form. I appreciate your feedback and hope that you enjoyed my post.
Photo by Sunyu on Unsplash