I must admit, cloud technology has become clearly a winner because of the network effect. Surprisingly not just because of the economy of scale, economy of scope and cost factors but due to the network effect between the different technologies. As an example there is an efficient machine learning algorithm in the Azure cloud, the technology is used in analyzing security breaches of the basic infrastructure to improve security working with data sets from all around the world. The improved machine learning assisted security is used to improve the whole infrastructure of every services, even for the infrastructure of the machine learning part. That is a real network effect of technology integration.
Practical notes on Enterprise software systems and the economics of software.
...by Daniel Szego
|
| |
|
"On a long enough timeline we will all become Satoshi Nakamoto.."
|
|
|
Daniel Szego
|
Showing posts with label cloud. Show all posts
Showing posts with label cloud. Show all posts
Thursday, February 23, 2017
Thursday, December 8, 2016
Trust as a Service, Immutability as a Service
Blockchain and Bitcoin technologies do not only provide a way for a high-availability and high-trust system, but several hybrid applications might be possible as well. The bitcoin blockchain has some several characteristic that could be delegated to other non-Blockchain based systems, such features are for instance the immutability and trust of the central ledger. Considering a non-Blockchain application that want to save certain events in a way that they are high-trusted and immutable for future changes the Bitcoin Blockchain provides an excellent way for that.
Sunday, August 21, 2016
Notes on social as a service
Current trends of social platforms, like Facebook, LinkedIn, WhatsUp try to extend in some way the original human social communication. However, they seem to be pretty much ad-hoc for the first sight. What is missing somehow the systematical analysis: these are the drawbacks and awkward of the human communication and social interaction, these are the points that can be done better with different IT systems and as a result these are systems that are available.
As at the end of day all of these systems are extensions of the human interaction, we might as well call the whole field as Social as a Services.
Brainware Plugins or Brainware as a Service
Artificial intelligence has got a long history of trying to achieve a computer program that can match with humans in thinking, like passing Turing test, beating humans in games like chess or go. As it is certainly an ambitious research direction, there is another direction that is much more practical and probably business oriented as well. As opposed to create thinking machines it would be similarly exciting systematically analyse the limits of the human thinking and focusing on extending it with different kind of IT support, like brain computer interface, extended memory, additional external knowledge for unknown domains. As there are already some achievements in this area they seem to be rather island solutions, there is not seem to be a general platform for that. It would be more existing somehow mimic the mobile app platforms and provide a basic brainware computer interface and provide the possibility to write custom Brainware apps or custom Brainware plugins on top. Considering that the platform is probably supported by the cloud, we might as call as Brainware as a Services.
Tuesday, August 16, 2016
Artificial Intelligence as a Service - Cognitive Science as a Service
Recent trends in cloud computing shows the direction of integrating several artificial intelligence and machine learning tools into a cloud platform. From the Microsoft side tools like Cognitive Science, Azure machine learning, or Cortana Analytics provide machine learning and artificial intelligence in the cloud. Similarly tools can be found from AWS, like Amazon Web Services Machine Learning. In this sense, it make sense to identify the whole area as Artificial Intelligence as a Service, or rather Cognitive Science as a Service or just simply Machine Learning as a Service.
On the other hand applications can be found as well, that use intelligent cloud services to achieve certain domain specific tasks, like intelligent thread analytics from Microsoft.
Tuesday, July 5, 2016
Cloud Storage versus Dezentralised P2P Storage
Current trends of the decentralized software development makes new applications and platforms to appear every day. One exiting direction is to build decentralized or P2P storage systems on the top of exiting Blockchain technologies, like SWARM on the top of Ethereum. Certainly these technologies are pretty much in the experimental phase, despite it is interesting to evaluate which advantage or disadvantage can have a P2P storage system for example comparing with a classical cloud storage.
- Zero downtime: well cloud systems have got surely the high availability characteristic. The same property can be found however at a P2P storage as well. Copies of a document or data is generally stored on a lot of nodes: if an adequate distribution algorithm is implemented to store copies based on availability and geographical location of the nodes, than high availability can be guaranteed.
- Fault tolerance: The same is true for fault tolerance. Adequate distribution of the copies of different pieces of information on different nodes can realize a highly fault tolerance system, similarly as at a Cloud storage.
- Scale up - Scale down: well from the point of scaling up or down the two systems have got more or less the same characteristic. One can always get some more storage with a couple of clicks, one can set some storage free similarly.
- DDoS resistance: Well Cloud is more or less centralized or at least based on several huge centralized cloud center, as a consequent they are not so immune for a DDoS attack as a fully decentralized P2P network.
- Censorship-Resistant: Possible censorship is a major characteristic even of a cloud storage system. As the cloud service itself is operated by a large company like Microsoft or Amazon, there is always an easy possibility for censorship. On the contrary on a P2P system for a successful censorship at least 51 or perhaps 100% of the resources are required that is economically pretty expensive.
- Security: Security is a big issues for a P2P storage system. As our data is stored overall of the world, the only way to provide professional service is that the data itself is so highly secured that even the hoster of the node can not make the decryption. As it is theoretically possibly to realize such a strong decryption mechanism, the question is if accessing the data remains performant enough.
- Price: The second big question is the price of such a system that can be influenced by two factors. On the one hand a P2P storage can be more expensive than a Cloud storage as most of the data are stored in more copies. On the other hand, a P2P storage can be cheaper as well as most of the resources are extreme cheap, meaning that they are stored on resources that otherwise would not be utilized.
As a conclusion, I would say the major risk is the security - performance characteristic. If these two properties can be realized in a way that is comparable with a Cloud storage or at least acceptable to the market, than there is a chance that in a year or two decentralized P2P storage services appear.
Friday, May 20, 2016
Testing versus Monitoring ? - any difference with managed cloud services ?
"Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test"
"Website monitoring is the process of testing and verifying that end-users can interact with a website or web application as expected."
Software testing means checking the requirements during a software is being developed and monitoring means rather in the checking if a ready developed software still working. As the two activities usually mean two totally different things,they seem to be pretty similar if we consider cloud service integration. As we use practically ready to go building blocks, checks that we use to identify if we developed a correct software can be used to monitor if the ready application still working. In this sense, the two process should not be two separate things, but actually one common platform to guarantee the software quality both at development and at operating the application as well.
An idea for such a common platform might be the following:
Let CTEST = {C1, C2, ... CN} a number of checks that is being used during software testng.
Let CMON = {CI, CI+1, ... CM} ⊂ CTEST a subset of checks that are being used in the future as well for monitoring purpose.
Certainly the major question is how we can define checks and a common framework that can be used both at testing and at monitoring.
Monday, May 2, 2016
Low-code application delivery in the cloud à la Microsoft
Current trends of Microsoft cloud services show a pretty strong trend of realizing low-code application delivery solutions. As most of these solutions are pretty much in the beta phase it is difficult exactly to predict how they will look like in a year or two, but it can be easily imagined that a complex low-code application delivery ecosystem will be realized.
- PowerApps for Mobile application building framework.
- Flow as a rule engine: https://flow.microsoft.com/en-us/
- Office 365 for web publishing and corporate collaboration
- Office Forms as a Form engine: https://forms.office.com/
- Azure Machine learning for AI and data mining:
https://azure.microsoft.com/en-us/services/machine-learning/
- ...?
Of course the question is what are a the requirements to be realized for a real enterprise ready low code platform. I think there has to be at least two requirements:
1. Integration: there has to be a very good integration possibility between both the above mentioned solutions and between other parts of the Azure cloud infrastructure as well. As an example, the same rule of Flow should be possible to use both with a mobile application and with web publishing as well, Similarly general infrastructure elements of Azure, like connecting corporate data with the cloud should be also available (AppFabric, VPN..)
2. Extensions: If a solutions reaches the architecture limit, there has to be a way to extend the solution with hard-core coding elements, like with Visual Studio and Xamarin for mobile apps,
and create professional solutions.
Application delivery for such an ecosystem can be realized in two steps:
a. Low code application delivery: The phase provides the possibility for power users to build up environment on their own or provide the opportunity for partner companies for consulting and training. First step of a whole application delivery, like Proof of concept or prototyping can be realized here as well
b. Hard core development: real development can be realized if the framework does not provide enough possibility for certain requirements, so further use-cases have to be realized by hard core software development and project management.
Building up consulting and development services based on the technology might contain the following phases:
i., Beta technology: until the technology is in beta phase, it is not very realistic to make business on the market. However there is the possibility to capitalize the first movers advantage, positioning on the market with strong marketing. As an example, writing blogs, articles, presentations, case studies, or even making indirect partner marketing with the provider (Microsoft).
ii., Early Phase: at the early phase of the technology it is expected that everything is changing very fast, some integration and extension methods are not carefully designed, as a consequence the whole platform is not very stable. As a consequence rather consulting and training business or rather small development projects are expected.
iii., Performing Phase: As the platform getting more stable, less innovative and changing slower, full scale extensions and development projects are expected as well. Like classical development projects with off-shoring, project management...
Certainly the major question is if the ecosystem is capable to achieve an enterprise ready and strong performing state or it remains just a couple of innovative island solutions.
Sunday, April 24, 2016
Notes on offline availability measures...
Considering the wider-spreading of cloud solutions nowadays and the sometimes still limited possibility of full scale online availability, it is important to define if a certain solution or software is available offline as well or not. Therefore we define the followings terminology and definitions.
Let s be a certain cloud solutions or software. Let Fall(s) be the number of all functionalities or services provided by the s cloud solution. Let Foffline(s) be the number of functionalities or services that are still available even if the cloud solution is offline. So we can define the offline capability of a cloud service as:
Coffline(s) = Foffline(s) / Fall(s)
The number of services that are available offline per the total number of services.
Similarly we can define the amount of time until the cloud service can remain offline but working further, as cloud service availability.
Aoffline = the amount of time until a the cloud service can operate offline as well...
Sunday, April 17, 2016
The cloud computing and the battery...
Cloud technology generally supposes that you have valid and practically always live internet connections, similarly that all of the electronic devices suppose that you have some kind of an electricity somehow. Electricity itself is actually produced pretty well with the help of the highly effective infrastructure, however it is important to note that it was taking about a hundred years until the electrical infrastructure got so stable. Well with internet it is still not the fact, even sitting in the middle of one of the most developed country in the world, Zürich, does not automatically mean that you gave stable mobile intranet. Certainly there are some software that support offline availability, for a certain amount of time, with certain functionalities and somehow providing the possibility to synchronize, some when, somehow...
Well the original idea of cloud computing is a little bit ideal, you will be online always, I guess it will be taking a couple of years to be realized. Until that point it would be important to build some kind of a standardized ways for offline availability. Similarly as batteries for electricity : if your electricity system is down, you can use batteries or accumulators having certain characteristics, like kwh indicating how much can you operate something without the electrical network. So is it possible to define something similar to the inernet? How long and how far is an internet gadget or service operational without net? Is there perhaps a way to really define a "battery" in an Internet way ? Like simulating and storing a certain level of Transactions until the network is really back?
Well the original idea of cloud computing is a little bit ideal, you will be online always, I guess it will be taking a couple of years to be realized. Until that point it would be important to build some kind of a standardized ways for offline availability. Similarly as batteries for electricity : if your electricity system is down, you can use batteries or accumulators having certain characteristics, like kwh indicating how much can you operate something without the electrical network. So is it possible to define something similar to the inernet? How long and how far is an internet gadget or service operational without net? Is there perhaps a way to really define a "battery" in an Internet way ? Like simulating and storing a certain level of Transactions until the network is really back?
Saturday, July 11, 2015
cloud versus on-premise compared based on technology curves
Licensing model and cloud model might help to reduce the initial setup cost of a certain technology. As at setting up an on-premise environment and buying server license implies a huge cost and setup time, buying cloud pro user license definitely means a reduction in setup time and cost. Certainly the situation is not so simple, as on the one hand a user license based model can be more expensive on with a given number of users, On the other hand the extension possibilities of a cloud model are usually more limited as with an on premise environment, meaning that the technology limit can be reached more easily.
Set up time and cost (before Q1): Set-up time and cost are definitely much faster on a cloud environment.
Effective agile development (between Q1 and Q2): considering most software as a service cloud environment, the provided services are usually much more limited as on the on premise versions. Cloud soft wares are much more 'boxed' products.
Architecture limit (after Q2): Architecture limit can be much more easily reached on a cloud software as a service solution. Hence if the limit once reached there is much less possibility to create some extensions, if there is at all the possibility to create extention.
As conclusion, a cloud based user license environment is certainly much faster and cheaper on a short run, however not necessarily the best choice on a long run.
Figure 1, Cloud versus On-Premise compared base on cost-use-case model.
Subscribe to:
Posts (Atom)











