Hundreds Of Millions Of People May Soon Be Blocked From Using Grindr

Suryo Wibowo / AFP / Getty Images

Grindr, Hornet, and a total of more than 80 other apps and websites with LGBT content face a ban in Indonesia, the world&;s fourth most populous country, following a closed-door interagency summit held Wednesday at the country&039;s Ministry of Communications.

“The participants of the meeting all agree to block websites promoting LGBT,” Aidil Chendramata, director of information security for the Ministry of Communications, told BuzzFeed News following the meeting. The panel included representatives from the Ministry of Human Development, the National Police, and the Ministry of Religious Affairs, which was represented by a member of the country&039;s Muslim clerics association. “Most of the contents are leading toward pornography [and have] violated the law on pornography and the law on child protection,” Chendramata said.

The move comes several months after the Ministry of Communication announced it would craft a ban on LGBT “propaganda” in March, part of an unprecedented crackdown on LGBT rights in the country. The Constitutional Court is separately considering a petition that could make homosexuality a crime in Indonesia for the first time.

The meeting was initially convened to review a police request to block Grindr and 17 other gay apps they allege were used by a child prostitution ring. But the meeting reviewed a broader list, said Ericson Siregar, an officer with the National Police Criminal Investigations Department who participated in the meeting, because the Ministry of Communication had “previously investigated gay applications” and identified dozens for “promoting LGBT.”

“We would be pleased if the communication ministry blocked [gay apps] without hesitation because the smell of pornography is so strong on them, such as exhibiting nudity,” Siregar said.

Human rights activists have been alarmed at the impact this has had on the LGBT community, but internet companies and free speech advocates say this crusade is part of a much bigger battle as US-based social media companies have become a major force in the country of 250 million people.

The decision to ban LGBT content is simply the low-hanging fruit, said a representative from one global internet company with offices in Indonesia, and an easy target for conservative figures.

“We should all be concerned when we see these kinds of decisions being made, to ban an entire category of apps,” said the representative, who asked not to be named due to his company’s sensitive relationship with the Indonesian government. “It’s easy to see them starting with gay apps, and then finding a way to censor other parts of the internet… It’s easy to see them banning anything that represents the US or American values, as they see it. That’s what we are afraid of.”

Pro-LGBT activists protest on February 23, 2016 in Yogyakarta, Indonesia

Ulet Ifansasti / Getty Images

Indonesia&039;s plan could cause an immediate quandary for Apple and Google, because Communications Ministry Head of Investigations Teguh Arifiadi said they will block the apps by requesting they be removed from the Apple App store and Google Play. (Apple and Google did not immediately respond to request for comment.)

“We will ask the stores to take down the apps for Indonesia,” Arifiadi told BuzzFeed News. He said specific decisions will be made on all 80 applications “as soon as possible” once allegations against them are “verified.”

Indonesia is 90% Muslim, and the call to reign in LGBT content online has been enthusiastically endorsed by the country&039;s largest religious organizations, which have increasingly warned that the internet is bringing toxic influences from abroad.

Said Aqil Siradj, chairman of the Nahdlatul Ulama, the world&039;s largest Muslim organization claiming 91 million members, described the internet as an “oppression against Islam” during a speech delivered in August.

“All news and information is dominated by Westerners, by outsiders — they intentionally aim to influence our mind, our way of thinking,” he said, so that “our next generation might not recognize anymore” fundamental aspects of their faith “because their thought have been shaped by Facebook, Twitter, social media, YouTube.”

In an interview following the speech with BuzzFeed News, Siradj added that Indonesia’s Islamic institutions were also fighting on a second online front — against extremist Islamic groups overseas.

“On Facebook, Twitter, and other sites, there are right-wing extremism, radicalism … ISIS also uses it, Al-Qaeda also uses it, other terrorists such as Jamaah Islam, Jamaah Tabliq Al-Hijrom, Mujahiddin also use it — so it is not only LGBT,” Siradj said. “Radicalism is not the nature or role of Islam in Indonesia…. Radicalism in religion all comes from the Middle East.”

“It is quite strange to ban people from finding friends.”

Grindr did not respond to repeated requests from BuzzFeed News to discuss Indonesia&039;s moves against the service. But Sean Howell, CEO of Hornet, said Indonesia would be by far the largest country to announce a ban on gay apps. Grindr and some other apps are blocked in some other countries, including Turkey, but he was aware of only the United Arab Emirates having a ban that affects so many apps in the single sector.

“There’s lots of reasons that [this move] is terrible,” Howell said. “How many other Islamic states will follow this? The internet, rather of being a tool of freedom, is becoming a tool of dictator states.”

A State Department spokesperson told BuzzFeed News that “the United States believes strongly in Internet freedom and supports the principle that has been recognized in successive multilateral resolutions that the same human rights people have offline must also be protected online.”

“We encourage the Government of Indonesia to ensure that any steps it may take that could result in limitations on access to social media sites are carefully considered, openly discussed, and consistent with the Government’s international human rights obligations,” said the spokesperson.

Yuli Rustinawati, chair of the LGBT group Arus Pelangi, said police should be focusing on the sexual abuse allegations against the child prostitution ring and not use it as a pretense to attack the LGBT community online. If the proposal moves ahead it will make the already embattled LGBT community even more vulnerable, she said.

“If gay applications are closed down, it only makes the community even more isolated as they won&039;t be able to find friends via the virtual world,” Rustinawati said. “It is quite strange to ban people from finding friends.”

Quelle: <a href="Hundreds Of Millions Of People May Soon Be Blocked From Using Grindr“>BuzzFeed

Here's How Amazon's New Echo Dot Is Actually Different

Amazon announced a redesigned, cheaper device with its personal assistant Alexa built in.

Today, Amazon unveiled the second generation Echo Dot, a smaller version of its best-selling Echo.

Today, Amazon unveiled the second generation Echo Dot, a smaller version of its best-selling Echo.

The Dot has a small built-in speaker, but its major advantage over the Echo is that you can connect the Dot to your high-quality home stereo system through a 3.5mm audio cable or a Bluetooth speaker (wireless headphones work, too). The Amazon Echo can only play audio through its built-in speaker. Those without a home audio system should opt for the Echo.

The small, hockey puck-shaped gadget is powered by Amazon&;s voice-activated personal assistant Alexa. You can ask the Dot questions like, “Alexa, what&039;s the weather like today?” or “What&039;s in the news?” Alexa also works with over 3,000 different apps (Amazon calls them “skills”) and responds to hundreds of different commands.

With its competition Google Home launching later this year, Amazon appears to be beefing up its hands-free speaker offerings. The second generation Echo Dot is slated for an Oct. 20 ship date – and here&039;s everything you need to know about it.

Amazon

The original Echo Dot was $90 and the all-new version is $50.

And, because this is Amazon, the new Dot can be bought in packs of six (buy five, get one free, so $41.67 each) or ten (buy eight, get two free, so $40 each).

The new Dot aims to fix the older model’s voice recognition problems.

The new Dot aims to fix the older model's voice recognition problems.

Some Echo dot reviews cited voice recognition inferior to the larger Amazon Echo. To power the device&039;s seven microphones, the second-generation Dot includes an improved speech processor that can recognize when you say the Dot&039;s wake word (either “Amazon” or “Alexa”) with more accuracy.

Amazon

The Echo Dot, which was previously unavailable for purchase on Amazon&039;s website and only sold to existing Echo customers, is available for pre-order for all US and UK customers and will ship October 12.

People with addresses in Germany and Austria can also pre-order a Dot. They&039;ll arrive in those countries on October 26.


View Entire List ›

Quelle: <a href="Here&039;s How Amazon&039;s New Echo Dot Is Actually Different“>BuzzFeed

Azure Event Hubs Archive is now in public preview, providing efficient micro-batch processing

Azure Event Hubs is a real-time, highly scalable, and fully managed data-stream ingestion service that can ingress millions of events per second and stream them through multiple applications. This lets you process and analyze massive amounts of data produced by your connected devices and applications.

Included in the many key scenarios for Event Hubs are long-term data archival and downstream micro-batch processing. Customers typically use compute (Event Processor Host/Event Receivers) or Stream Analytics jobs to perform these archival or batch processing tasks. These along with other custom downstream solutions involve significant overhead with regards to scheduling and managing batch jobs. Why not have something out-of-the-box that solves this problem? Well, look no further – there’s now a great new feature called Event Hubs Archive!

Event Hubs Archive addresses these important requirements by archiving the data directly from Event Hubs to Azure storage as blobs. ‘Archive’ will manage all the compute and downstream processing required to pull data into Azure blob storage. This reduces your total cost of ownership, setup overhead, and management of custom jobs to do the same task, and lets you focus on your apps!

Benefits of Event Hub Archive

Simple setup

Extremely straightforward to configure your Event Hubs to take advantage of this feature.

Reduced total cost of ownership

Since Event Hubs handles all the management, there is minimal overhead involved in setting up your custom job processing mechanisms and tracking them.

Cohesive with your Azure Storage

By just choosing your Azure Storage account, Archive pulls the data from Event Hubs to your containers.

Near-Real time batch analytics

Archive data is available within minutes of ingress into Event Hubs. This enables most common scenarios of near-real time analytics without having to construct separate data pipelines.

A peek inside the Event Hubs Archive

Event Hubs Archive can be enabled in one of the following ways:

With just a click on the new Azure portal on an Event Hub in your namespace

Azure Resource Manager templates

Once the Archive is enabled for the Event Hub, you need to define the time and size windows for archiving.

The time window allows you to set the frequency with which the archival to Azure Blobs will happen. The frequency range is configurable from 60 – 900 seconds (1 – 15 minutes), both inclusive, with a granularity of 1 second. The default setting is 300 seconds (5 minutes).

The size window defines the amount of data built up in your Event Hub before an archival operation. The size range is configurable between 10MB – 500MB (10485760 – 524288000 bytes), both inclusive, at byte level granularity.

The archive operation will kick in when either the time or size window is exceeded. After time and size settings are set, the next step is configuring the destination which will be the storage account of your choosing.

That’s it! You’ll soon see blobs being created in the specified Azure Storage account’s container.

The blobs are created with the following naming convention:

<Namespace>/<EventHub>/<Partition>/<YYYY>/<MM>/<DD>/<HH>/<mm>/<ss>

For example: Myehns/myhub/0/2016/07/20/09/02/15 and are in standard Avro format.

If there is no event data in the specified time and size window, empty blobs will be created by Archive.

Pricing

Archive will be an option when creating an Event Hub in a namespace and will be limited to one per Event Hub. This will be added to the Throughput Unit charge and thus will be based on the number of throughput units selected for the Event Hub.

Opting Archive will involve 100% egress of ingested data and the cost of storage is not included. This implies that cost is primarily for compute (hey, we are handling all this for you!).

Check out the price details on Azure Event Hubs pricing.

Let us know what you think about newer sinks an newer serialization formats.

Start enjoying this feature, available today.

If you have any questions or suggestions, leave us a comment below.

 
Quelle: Azure

Docker + Golang =

This is a short collection of tips and tricks showing how Docker can be useful when working with Go code. For instance, I’ll show you how to compile Go code with different versions of the Go toolchain, how to cross-compile to a different platform (and test the result!), or how to produce really small container images.
The following article assumes that you have Docker installed on your system. It doesn’t have to be a recent version (we’re not going to use any fancy feature here).
Go without go
… And by that, we mean “Go without installing go”.
If you write Go code, or if you have even the slightest interest into the Go language, you certainly have the Go compiler and toolchain installed, so you might be wondering “what’s the point?”; but there are a few scenarios where you want to compile Go without installing Go.

You still have this old Go 1.2 on your machine (that you can’t or won’t upgrade), and you have to work on this codebase that requires a newer version of the toolchain.
You want to play with cross compilation features of Go 1.5 (for instance, to make sure that you can create OS X binaries from a Linux system).
You want to have multiple versions of Go side-by-side, but don’t want to completely litter your system.
You want to be 100% sure that your project and all its dependencies download, build, and run fine on a clean system.

If any of this is relevant to you, then let’s call Docker to the rescue!
Compiling a program in a container
When you have installed Go, you can do go get -v github.com/user/repo to download, build, and install a library. (The -v flag is just here for verbosity, you can remove it if you prefer your toolchain to be swift and silent!)
You can also do go get github.com/user/repo/… (yes, that’s three dots) to download, build, and install all the things in that repo (including libraries and binaries).
We can do that in a container!
Try this:
docker run golang go get -v github.com/golang/example/hello/…
This will pull the golang image (unless you have it already; then it will start right away), and create a container based on that image. In that container, go will download a little “hello world” example, build it, and install it. But it will install it in the container … So how do we run that program now?
Running our program in a container
One solution is to commit the container that we just built, i.e. “freeze” it into a new image:
docker commit $(docker ps -lq) awesomeness
Note: docker ps -lq outputs the ID (and only the ID!) of the last container that was executed. If you are the only uesr on your machine, and if you haven’t created another container since the previous command, that container should be the one in which we just built the “hello world” example.
Now, we can run our program in a container based on the image that we just built:
docker run awesomeness hello
The output should be Hello, Go examples!.
Bonus points
When creating the image with docker commit, you can use the –change flag to specify arbitrary Dockerfile commands. For instance, you could use a CMD or ENTRYPOINT command so that docker run awesomeness automatically executes hello.
Running in a throwaway container
What if we don’t want to create an extra image just to run this Go program?
We got you covered:
docker run –rm golang sh -c
“go get github.com/golang/example/hello/… && exec hello”
Wait a minute, what are all those bells and whistles?

–rm tells to the Docker CLI to automatically issue a docker rm command once the container exits. That way, we don’t leave anything behind ourselves.
We chain together the build step (go get) and the execution step (exec hello) using the shell logical operator &&. If you’re not a shell aficionado, && means “and”. It will run the first part go get…, and if (and only if!) that part is successful, it will run the second part (exec hello). If you wonder why this is like that: it works like a lazy and evaluator, which needs to evaluate the right hand side only if the left hand side evaluates to true.
We pass our commands to sh -c, because if we were to simply do docker run golang “go get … && hello”, Docker would try to execute the program named go SPACE get SPACE etc. and that wouldn’t work. So instead, we start a shell and instruct the shell to execute the command sequence.
We use exec hello instead of hello: this will replace the current process (the shell that we started) with the hello program. This ensures that hello will be PID 1 in the container, instead of having the shell as PID 1 and hello as a child process. This is totally useless for this tiny example, but when we will run more useful programs, this will allow them to receive external signals properly, since external signals are delivered to PID 1 of the container. What kind of signal, you might be wondering? A good example is docker stop, which sends SIGTERM to PID 1 in the container.

Using a different version of Go
When you use the golang image, Docker expands that to golang:latest, which (as you might guess) will map to the latest version available on the Docker Hub.
If you want to use a specific version of Go, that’s very easy: specify that version as a tag after the image name.
For instance, to use Go 1.5, change the example above to replace golang with golang:1.5:
docker run –rm golang:1.5 sh -c
“go get github.com/golang/example/hello/… && exec hello”
You can see all the versions (and variants) available on the Golang image page on the Docker Hub.
Installing on our system
OK, so what if we want to run the compiled program on our system, instead of in a container?
We could copy the compiled binary out of the container. Note, however, that this will work only if our container architecture matches our host architecture; in other words, if we run Docker on Linux. (I’m leaving out people who might be running Windows Containers!)
The easiest way to get the binary out of the container is to map the $GOPATH/bin directory to a local directory. In the golang container, $GOPATH is /go. So we can do the following:
docker run -v /tmp/bin:/go/bin
golang go get github.com/golang/example/hello/…
/tmp/bin/hello
If you are on Linux, you should see the Hello, Go examples! message. But if you are, for instance, on a Mac, you will probably see:
-bash:
/tmp/test/hello: cannot execute binary file
What can we do about it?
Cross-compilation
Go 1.5 comes with outstanding out-of-the-box cross-compilation abilities, so if your container operating system and/or architecture doesn’t match your system’s, it’s no problem at all!
To enable cross-compilation, you need to set GOOS and/or GOARCH.
For instance, assuming that you are on a 64 bits Mac:
docker run -e GOOS=darwin -e GOARCH=amd64 -v /tmp/crosstest:/go/bin
golang go get github.com/golang/example/hello/…
The output of cross-compilation is not directly in $GOPATH/bin, but in $GOPATH/bin/$GOOS_$GOARCH. In other words, to run the program, you have to execute /tmp/crosstest/darwin_amd64/hello.
Installing straight to the $PATH
If you are on Linux, you can even install directly to your system bin directories:
docker run -v /usr/local/bin:/go/bin
golang get github.com/golang/example/hello/…
However, on a Mac, trying to use /usr as a volume will not mount your Mac’s filesystem to the container. It will mount the /usr directory of the Moby VM (the small Linux VM hidden behind the Docker whale icon in your toolbar).
You can, however, use /tmp or something in your home directory, and then copy it from there.
Building lean images
The Go binaries that we produced with this technique are statically linked. This means that they embed all the code that they need to run, including all dependencies. This contrasts withdynamically linked programs, which don’t contain some basic libraries (like the “libc”) and use a system-wide copy which is resolved at run time.
This means that we can drop our Go compiled program in a container, without anything else, and it should work.
Let’s try this!
The scratch image
There is a special image in the Docker ecosystem: scratch. This is an empty image. It doesn’t need to be created or downloaded, since by definition, it is empty.
Let’s create a new, empty directory for our new Go lean image.
In this new directory, create the following Dockerfile:
FROM scratch
COPY ./hello /hello
ENTRYPOINT [“/hello”]
This means: * start from scratch (an empty image), * add the hello file to the root of the image, * define this hello program to be the default thing to execute when starting this container.
Then, produce our hello binary as follows:
docker run -v $(pwd):/go/bin –rm
golang go get github.com/golang/example/hello/…
Note: we don’t need to set GOOS and GOARCH here, because precisely, we want a binary that will run in a Docker container, not on our host system. So leave those variables alone!
Then, we can build the image:
docker build -t hello .
And test it:
docker run hello
(This should display Hello, Go examples!.)
Last but not least, check the image’s size:
docker images hello
If we did everything right, this image should be about 2 MB. Not bad!
Building something without pushing to GitHub
Of course, if we had to push to GitHub each time we wanted to compile, we would waste a lot of time.
When you want to work on a piece of code and build it within a container, you can mount a local directory to /go in the golang container, so that the $GOPATH is persisted across invocations: docker run -v $HOME/go:/go golang ….
But you can also mount local directories to specific paths, to “override” some packages (the ones that you have edited locally). Here is a complete example:
# Adapt the two following environment variables if you are not running on a Mac
export GOOS=darwin GOARCH=amd64
mkdir go-and-docker-is-love
cd go-and-docker-is-love
git clone git://github.com/golang/example
cat example/hello/hello.go
sed -i .bak s/olleH/eyB/ example/hello/hello.go
docker run –rm
-v $(pwd)/example:/go/src/github.com/golang/example
-v $(pwd):/go/bin/${GOOS}_${GOARCH} 
-e GOOS -e GOARCH
golang go get github.com/golang/example/hello/…
./hello
# Should display “Bye, Go examples!”
 
The special case of the net package and CGo
Before diving into real-world Go code, we have to confess something: we lied a little bit about the static binaries. If you are using CGo, or if you are using the net package, the Go linker will generate a dynamic binary. In the case of the net package (which a lot of useful Go programs out there are using indeed!), the main culprit is the DNS resolver. Most systems out there have a fancy, modular name resolution system (like the Name Service Switch) which relies on plugins which are, technically, dynamic libraries. By default, Go will try to use that; and to do so, it will produce dynamic libraries.
How do we work around that?
Re-using another distro’s libc
One solution is to use a base image that has the essential libraries needed by those Go programs to function. Almost any “regular” Linux distro based on the GNU libc will do the trick. So instead of FROM scratch, you would use FROM debian or FROM fedora, for instance. The resulting image will be much bigger now; but at least, the bigger bits will be shared with other images on your system.
Note: you cannot use Alpine in that case, since Alpine is using the musl library instead of the GNU libc.
Bring your own libc
Another solution is to surgically extract the files needed, and place them in your container with COPY. The resulting container will be small. However, this extraction process leaves the author with the uneasy impression of a really dirty job, and they would rather not go into more details.
If you want to see for yourself, look around ldd and the Name Service Switch plugins mentioned earlier.
Producing static binaries with netgo
We can also instruct Go to not use the system’s libc, and substitute Go’s netgo library, which comes with a native DNS resolver.
To use it, just add -tags netgo -installsuffix netgo to the go get options.

-tags netgo instructs the toolchain to use netgo.
-installsuffix netgo will make sure that the resulting libraries (if any) are placed in a different, non-default directory. This will avoid conflicts between code built with and without netgo, if you do multiple go get (or go build) invocations. If you build in containers like we have shown so far, this is not strictly necessary, since there will be no other Go code compiled in this container, ever; but it’s a good idea to get used to it, or at least know that this flag exists.

The special case of SSL certificates
There is one more thing that you have to worry about if your code has to validate SSL certificates; for instance if it will connect to external APIs over HTTPS. In that case, you need to put the root certificates in your container too, because Go won’t bundle those into your binary.
Installing the SSL certificates
Three again, there are multiple options available, but the easiest one is to use a package from an existing distribution.
Alpine is a good candidate here because it’s so tiny. The following Dockerfile will give you a base image that is small, but has an up-to-date bundle of root certificates:
FROM alpine:3.4
RUN apk add –no-cache ca-certificates apache2-utils
 
Check it out; the resulting image is only 6 MB!
Note: the –no-cache option tells apk (the Alpine package manager) to get the list of available packages from Alpine’s distribution mirrors, without saving it to disk. You might have seen Dockerfiles doing something like apt-get update && apt-get install … && rm -rf /var/cache/apt/*; this achieves something equivalent (i.e. not leave package caches in the final image) with a single flag.
As an added bonus, putting your application in a container based on the Alpine image gives you access to a ton of really useful tools: now you can drop a shell into your container and poke around while it’s running, if you need to!
Wrapping it up
We saw how Docker can help us to compile Go code in a clean, isolated environment; how to use different versions of the Go toolchain; and how to cross-compile between different operating systems and platforms.
We also saw how Go can help us to build small, lean container images for Docker, and described a number of associated subtleties linked (no pun intended) to static libraries and network dependencies.
Beyond the fact that Go is really good fit for a project that Docker, we hope that we showed you how Go and Docker can benefit from each other and work really well together!
Acknowledgements
This was initially presented during the hack day at GopherCon 2016.
I would like to thank all the people who proofread this material and gave ideas and suggestions to make it better; including but not limited to:

Aaron Lehmann
Stephen Day
AJ Bowen

All mistakes and typos are my own; all the good stuff is theirs! ☺
The post Docker + Golang = <3 appeared first on Docker Blog.
Quelle: https://blog.docker.com/feed/

StorSimple Virtual Array – ROBO Scenario

StorSimple solutions have been addressing some of the biggest problems faced by IT organizations – double digit data growth, storage capacity, and the data protection complexities that come with it. StorSimple 8000 series solution has addressed this problem in datacenters by storing the most used data on-premises physical array and tiering cold unused data automatically to the cloud. Customers have requested the ability to use StorSimple solutions in their remote and branch offices for a smaller amount of data and have a native file server capability. We announced the StorSimple Virtual Array general availability in March of 2016.

StorSimple Virtual Array is a software version of the StorSimple solution designed specifically to address the data growth problems in smaller remote and branch office scenarios. The virtual array is implemented in the form of a virtual machine that runs on a hypervisor (Hyper-V or VMware) in your branch and remote offices where deploying a physical appliance is not practical as the amount of data managed is small (500 GB to 5 TB). The StorSimple Virtual Array can be configured to run as an iSCSI server or as a native File Server. Check out the StorSimple Virtual Array – File Server or iSCSI Server blog post to learn more about when and where to use them.

Remote Office Branch Office (ROBO) Scenario

Customers with distributed environments have a Windows file server serving the needs for user and department file shares in their remote and branch office locations. A typical remote or branch office contains 10 – 200 users with storage requirements from 500 GB to 5 TB in the remote or branch location for quicker access to the data locally. These servers are regularly backed up to a central datacenter using a backup software or replicating the data for recovery and disaster recovery purpose. Some of the problems faced in these remote and branch offices are:

Data is growing at a fast rate and the infrastructure cannot accommodate the data growth
Stale data is sitting idle on the infrastructure and taking up valuable storage space
Backups are getting complex and are not finishing in time
Recovery is complex if the user wants a file or folder restored
Disaster recovery is untested and recovering from a disaster takes a longer time causing users to lose access to their data for an extended period of time

StorSimple Virtual Array addresses all these problems and provides enterprises an easy way to manage data growth, backup, recovery, and disaster recovery. The StorSimple virtual array reserves 10% of the provisioned space of a share or volume locally to serve hot data from local disk and automatically tiers the older data to the cloud. This allows users to have quick access to most used data and fetch any cold data from cloud on demand.

Cloud snapshots provide the daily backups of data stored on the StorSimple Virtual Array. The cloud snapshot identifies the changed data from the previous backups and transfers it to the cloud, providing a quick way to back up the data. This eliminates the need for having a backup solution and policy in the remote or branch office for user data stored on the StorSimple Virtual Array. The backups use the available Internet bandwidth to copy the data to the cloud and free up traffic on the dedicated bandwidth between the central datacenter and remote office. These backups can be used for recovery with the click of a button, which exposes a new share or volume on the same virtual array and provides the user an easy way to recover any deleted data. In a file server role, the StorSimple Virtual Array also enables the user to do self-service restores from previous five backups.

In the event of a disaster, the cloud snapshots taken from the StorSimple Virtual Array provides an easy way to failover to another StorSimple Virtual Array managed by the same StorSimple Manager. The target virtual array can be running in any remote or branch office or in a datacenter. Once the failover is performed, the users have immediate access to their data.

To get maximum benefits from the StorSimple Virtual Array, use the virtual array in remote offices and branch offices which meets the following criteria.

Data size in branch office is ~ 500 GB to 10 TB with 2 – 3% daily change rate
Number of files in a share is < 1 million
RPO of 1 day

To get started:

Provision a StorSimple Virtual Array on Hyper-V

Provision a StorSimple Virtual Array on VMware

Set up StorSimple Virtual Array as file server

Set up StorSimple Virtual Array as an iSCSI server

Best practices for deploying the StorSimple Virtual Array
Quelle: Azure