Here are a few clarifications we need from you :
Not able to find back-end service (mDS, mSS) components on GitHub. Could you let us know the path and the implementation steps? We are trying to deploy mimik's back-end components on the EC2 instance and try to configure/access the micro service deployed on the local laptop from another device.
How can we deploy microservices written in other languages like java, python etc. we can see support for microservices written in Java Script( Node JS) only.
mDS and mSS are core mimik backend services and are not publicly available on any website. The capabilities/functionalities of mSS and mDS are provided within edgeEngine during runtime on supported platforms. You can learn about these concepts and develop your own solutions in tandem with edgeEngine and various backend microservices on our developer portal below:
https://developer.mimik.com/products/
1.1. You can run edgeEngine on any of our supported platforms and deploy any of our publicly available local microservices as a way of learning how to develop, deploy and work with edge-microservice.
The agent program on any platform can be developed by any desired programming language; however, for exposing a restful API at the edge to provide any specific function or for orchestration purpose, you need to develop them using JavaScript. In this way you can re-use the microservice and deploy them dynamically on all platforms with different operating systems. This means we only support the deployment of microservices written in JavaScript on to edegEngine environment
If you are trying to develop your own commercial solution please contact mimik support team directly at support#mimik.com.
In addition to the above response by Maz Mandi, please note that your application on top of edgeEngine (application and microservices) will communicate with your application back-end directly vs. going through mimik global functions such as mDS and mSS.
Related
I am a .net developer and trying to learn implementing Microservice using .NET Framework >4.0.
All the article that I refer from internet search, they all talks about implementing Microservices using .NET Core. But I wonder, I could not find any article that says how to develop microservice using .NET Framework >4.0.
I knew that .net core has all the features and run time for Microservices but my question is as below
Question -
1. Is not possible develop Microservice using .NET framework at all ? If not then what are all constrain and limitation ?
2. What are the alternatives if we choose .NET Framework only to develop Microservices oriented architecture
3. Any example/ sample code will be helpful
Thank you
As mentioned in the comments, microservices (MS) is not bound to any language, it's an architectual principle.
Microservices are a software development technique —a variant of the
service-oriented architecture (SOA) structural style— that arranges an
application as a collection of loosely coupled services. In a
microservices architecture, services are fine-grained and the
protocols are lightweight.
https://en.wikipedia.org/wiki/Microservices
You can build MS/SOA with any language and a variety of platform solutions, but there are drawbacks of course to some implementations.
All you do is define a small service A and another small service B to act as your system, exposing data through lightweight REST API(s) (maybe even gRPC) and let them talk to each other - and voila! you have your MS system.
But why are e.g. Microsoft pushing to use .NET Core for MS systems? My best guess would be because of Docker (and other container solutions), to containerize each MS. The difference between .NET Core and .NET Framework in this context is containerization, .NET Core can run on all platforms, such as linux - and docker supports linux containers.
In computing, self-contained system (SCS) is a software architecture
approach that focuses on a separation of the functionality into many
independent systems, making the complete logical system a
collaboration of many smaller software systems
https://en.wikipedia.org/wiki/Self-contained_system_(software)
Why are the linux containers important? Well, I would argue because of Kubernetes (or other container orchestration tools).
Kubernetes (commonly stylized as k8s) is an open-source
container-orchestration system for automating application deployment,
scaling, and management. It was originally designed by Google, and
is now maintained by the Cloud Native Computing Foundation. It aims to
provide a "platform for automating deployment, scaling, and operations
of application containers across clusters of hosts". It works with
a range of container tools, including Docker. Many cloud services
offer a Kubernetes-based platform or infrastructure as a service (PaaS
or IaaS) on which Kubernetes can be deployed as a platform-providing
service. Many vendors also provide their own branded Kubernetes
distributions.
https://en.wikipedia.org/wiki/Kubernetes
Kubernetes is a very powerful container orchestration system. I't can scale your loosely coupled MS linux containers at will - and so much more.
Now, I'd suggest you to keep on reading, a good start would be this:
Read
https://learn.microsoft.com/en-us/dotnet/architecture/microservices/
Source code
https://github.com/dotnet-architecture/eShopOnContainers
https://github.com/EdwinVW/pitstop
Videos
https://www.youtube.com/watch?v=-AfZxdXa7yc
https://www.youtube.com/watch?v=qWUINCZHs6E
I am a .NET developer and I have developed a software for an organization in which there are 2 other different software applications. All these 3 applications are isolated and they don't send and receive data to and from any other software.
The organization's manager asked me to integrate these products.
After some research on the internet I found that I have to use BizTalk. Now I have some basic knowledge about BizTalk (like what are Schema,Maps,Pipelines,Orchestration etc).
The problem is that I don't know the changes I have to make for my own software and the change I have to ask the other developers (of the other software) to make in their own software to be able to integrate them via BizTalk.
Shall we make web services for our software?
Is that possible to connect directly to databases? Is that a good practice at all?
Any other suggestion or resources will be very appreciated.
Since this a very broad topic, I'll stick to answering your specific questions:
Sure, this is frequently called a Web Service Facade. It's most useful when many different apps will be calling into it.
If you own the apps and their databases, yes, this is a perfectly valid solution. BizTalk connects natively to SQL Server and Oracle as well as other databases through an ODBC Adpater.
You could also program your existing apps to emit and consume Xml messages.
I am new to WCF and going through tutorials right now. I was wondering what are the benefits and disadvantages of using a WPF or an ASP.NET web application as a client for a service. I understand it will depend on the kind of service, but besides the common difference of one being a windows app and other a web application, what are the advantages of one over other.
First of all, the choice of client technology does not depend at all on the kind of service you will be talking to. Both WPF/Winforms and a Web app will be perfectly capable to talk to a web service.
Instead, choice of client technology should purely be driven by requirements on the client side
Factors that you should consider when coosing one client technology over the other are:
Know-How available to you (and your team)
Deployment scearios: How do you get your app to the users, etc.
Client environment: How many OSs do you need to support, how many different browsers would you have to support when doing a web app?
Do you have occasionally connected scenarios, or do you need privileged access to client resources? - This would tip the scale somewhat towards a Rich client.
Even so, in many cases a web app appears to be a very valid option as you have access to a wealth of non-MS tech like Javascript Frameworks, CSS resources etc. etc.
On a personal note: Do not use WCF to define your web services - there are fantastic Open Source Frameworks, most notably ServiceStack that will make you more productive and concentrate on what your service does and less on the mechanics and abstractions.
I have a partly developed asp.net application, but now the client wants it to be developed in azure. How much of the existing code can be used in developing the application in azure.
What challenges could we possibly encounter when we try to port an existing asp.net application to azure? Are there any other alternatives to azure in cloud computing?
For an asp.net application, you can certainly port that to Azure. Your core logic will port in a relatively straightforward manner, and you'll gain the many benefits Azure has to offer. With the June 2010 release, you'll also have .NET 4 support, along with IntelliTrace for debugging.
However, as you begin to plan your Azure migration, there are several considerations you'll need to think about (none of them insurmountable, and several relatively simple to deal with):
You have to deal with ASP.NET Session State management across your web role instances (which isn't supported out of the box, except for inproc). You'll also have to set up and use the role and membership providers (see here for more detail). EDIT: You now have access to both AppFabric Cache for session state as well as SQL Azure, part of the Universal Providers included with the Windows Azure SDK+Tools.
You have to examine your SQL backend for incompatibilities with SQL Azure (such as scheduled jobs,since there's no SQL Agent support). SQL Azure differences are documented here. You'll also need to consider the SQL Azure size limit of 50GB, which might require you to offload content to Azure blob storage. EDIT: You can run your SQL Server database through the SQL Azure Migration Wizard for compatibility-testing.
You need to configure logging and diagnostics, preferably with Trace output, so that you can retrieve this data remotely.
You need to think about how you'll monitor and scale your application. All information you might need for scaling is available to you (performance counters, queue lengths, etc.). Check out WASABI - the auto-scale application block, part of Enterprise Library. You can also subscribe to a service such as AzureWatch.
You'll need to think about caching, as there's currently no out-of-the-box caching implementation that runs across instances of your web role which is now provided as a service. Read details here, as well as an FAQ here.
Do you need SMTP support? If so, there are details you should read about here. SendGrid recently announced a free-tier promotion for Windows Azure.
Are you hosting WCF services as well? If so, check out this site for further details (specifically the Known Issues).
So: yes, there are some things you need to concern yourself with, but Azure is a great platform for hosting an asp.net application and you should strongly consider it.
It should be very easy to port your application to Azure--especially if you're using a SQL back-end. The code could run almost without modification. You'll need to create an Azure installation package for the project and configuration file.
If your application makes use of persistent storage (other than SQL Server), you may have to rework that code somewhat. However, the platform now has drive storage, which simulates a file system, so this should be fairly easy.
Another issue to watch out for is web.config. If you make heavy use of this for runtime customization, you'll have to rework that too. You can't deploy single files to your application in Azure, so the recommended approach is to migrate these sort of settings to the Azure config file.
The hardest thing you're likely to encounter is external applications. If your app relies on launching other processes, then this will require some serious redesign.
Azure now supports Web Sites as a deployment type. Basically this allows you to publish any standard Asp.net (and other supported like PHP etc) application to Azure and have it as a scalable server. See this article http://blog.ntotten.com/2012/06/07/10-things-about-windows-azure-web-sites/
Many of the benefits of Azure without having to introduce Azure specific code/Project to your existing application.
Also this question here What is the difference between an Azure Web Site and an Azure Web Role
This is a pretty vague question but I'm struggling a bit to get my head around what is involved in cloud hosting.
Say for instance if I had an asp.net web app using:
- Webforms
- linq to sql
- an sql server database
- Calling some external restful webservices
What would need to be done to host it on a cloud service?
Are there specific code changes that would be required and do these need to be considered in the initial design?
Can sql server and linq to sql be used in this type of setup?
What platform if any would be best suited?
in it's most basic form, Azure is just a highly available web-hosting environment - if you have an ASP.Net web application, you can deploy it to cloupapp.net and it should work.
To try it out, get yourself a Vista/7 machine, download the Azure SDK and VS Tools, and create a new Azure application. There are 2 main parts at this point, the Cloud project, and an ASP.Net Web Application. The ASP.Net will have a "web-role" relationship with the Cloud project. This is as it sounds, it is the visual front-end to the Cloud application, that interacts with visitors.
You can, at this point, just leave it there - it's a normal ASP.Net application with very good hosting. Your SQL connection strings should work, though you may want to consider SQL Azure. You can also host WCF services.
As Manoj points out, Azure does have a different programming model which you can take advantage to produce very robust applications. Azure also has the concept of Worker Roles, which are similar to Managed Services, in that they perform processing without a public interface. Instead, your web-roles take the requests, place them on the Queues, and the worker-roles then pick them up, process and send back responses.
It's a very powerful system, which I haven't fully explored, but the good news is that you don't have to be an immediate expert in the whole system, but can create simple ASP.Net sites as web-roles, deploy those then expand from there.
Have a go, it's well worth it
Toby
AppHarbor is a .NET Platform-as-a-Service. We can host your ASP.NET websites more or less un-modified and without the Visual Studio plugins and other crud that Windows Azure requires.
It depends on what type of cloud hosting are you looking for. There is some cloud hosting which will just give you space for application data like Amazon. While Azure gives you complete application framework which supports your application to be hosted in cloud. But programming in cloud is different programming paradigm than in traditional web form. You will have some limited classes from .Net framework available but better resources for scalability.
You cant directly use sql server in azure application. What you can use SqlAzure services.
Just referring a book which i feel would provide you the answer
Cloud Computing Book
EDIT :
Check this microsoft link
Ramp Up
yes, it is supported and live demo of Asp.NET 4.5 Web Forms available on Microsoft azure websites... you can visit this link for detailed information
Create and deploy a secure ASP.NET Web Forms app with Membership, OAuth, and SQL Database to Azure App Service